Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: GoogleCloudPlatform/opentelemetry-operations-go
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.50.0
Choose a base ref
...
head repository: GoogleCloudPlatform/opentelemetry-operations-go
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.51.0
Choose a head ref
  • 5 commits
  • 100 files changed
  • 5 contributors

Commits on Feb 10, 2025

  1. Update example.go documentation (#1013)

    ProbabilitySampler was renamed to TraceIDRatioBased
    
    Signed-off-by: Pranav Sharma <sharmapranav@google.com>
    psx95 authored Feb 10, 2025
    Copy the full SHA
    9a7fc19 View commit details
  2. update some go dependencies to v1.23.6 (#1014)

    dashpole authored Feb 10, 2025
    Copy the full SHA
    9faf11b View commit details

Commits on Feb 21, 2025

  1. Update go.opentelemetry.io/collector (#1019)

    * Update go.opentelemetry.io/collector
    
    * make fixtures
    
    * remove oudated opentelemetry dependency pinning scripts
    
    * drop support for 1.22 and add support for 1.24
    
    * update go version in tools
    
    ---------
    
    Co-authored-by: Mend Renovate <bot@renovateapp.com>
    dashpole and renovate-bot authored Feb 21, 2025
    Copy the full SHA
    560e9d1 View commit details

Commits on Feb 24, 2025

  1. collector: use buildinfo to make user agent (#1022)

    * collector: use buildinfo to make user agent
    
    This PR adjusts the `NewGoogleCloud*Exporter` functions to take a
    `component.BuildInfo`, and to format that build info into the UserAgent
    instead of defaulting to `opentelemetry-collector-contrib`.
    
    * use exporter settings in exporter creation functions
    
    * move testBuildInfo into local
    
    * format runtime info into unit test agent string
    
    * add missing license header
    
    * do not include runtime info in sdk metric test useragent
    
    * update protobuf, fix golangci deprecation
    braydonk authored Feb 24, 2025
    Copy the full SHA
    90c5cf5 View commit details

Commits on Feb 26, 2025

  1. Prepare for v1.27.0/v0.51.0 (#1023)

    ridwanmsharif authored Feb 26, 2025
    Copy the full SHA
    19c4db6 View commit details
Showing with 726 additions and 629 deletions.
  1. +2 −2 .github/workflows/ci.yml
  2. +4 −37 Makefile
  3. +2 −2 cloudbuild-e2e-cloud-functions-gen2.yaml
  4. +1 −1 cloudbuild-e2e-gae-standard.yaml
  5. +1 −1 cloudbuild-e2e-gae.yaml
  6. +1 −1 cloudbuild-integration-tests.yaml
  7. +1 −1 detectors/gcp/go.mod
  8. +1 −1 e2e-test-server/Dockerfile
  9. +4 −4 e2e-test-server/cloud_functions/go.mod
  10. +3 −3 e2e-test-server/go.mod
  11. +3 −3 example/metric/exponential_histogram/go.mod
  12. +1 −1 example/metric/otlpgrpc/go.mod
  13. +3 −3 example/metric/sdk/go.mod
  14. +3 −3 example/trace/http/go.mod
  15. +1 −1 example/trace/otlpgrpc/example.go
  16. +17 −3 exporter/collector/config.go
  17. +24 −0 exporter/collector/config_test.go
  18. +27 −22 exporter/collector/go.mod
  19. +52 −40 exporter/collector/go.sum
  20. +8 −6 exporter/collector/googlemanagedprometheus/go.mod
  21. +20 −20 exporter/collector/googlemanagedprometheus/go.sum
  22. +3 −3 exporter/collector/integrationtest/cmd/recordfixtures/main.go
  23. +83 −77 exporter/collector/integrationtest/go.mod
  24. +176 −168 exporter/collector/integrationtest/go.sum
  25. +10 −9 exporter/collector/integrationtest/inmemoryotelexporter.go
  26. +4 −4 exporter/collector/integrationtest/logs_integration_test.go
  27. +5 −4 exporter/collector/integrationtest/metrics_integration_test.go
  28. +9 −1 exporter/collector/integrationtest/metrics_test.go
  29. +7 −7 exporter/collector/integrationtest/protos/fixtures.pb.go
  30. +51 −0 exporter/collector/integrationtest/testcases/exporter_settings.go
  31. +1 −1 exporter/collector/integrationtest/testdata/fixtures/logs/logs_apache_access_batches_expected.json
  32. +1 −1 exporter/collector/integrationtest/testdata/fixtures/logs/logs_apache_access_expected.json
  33. +1 −1 ...ector/integrationtest/testdata/fixtures/logs/logs_apache_access_resource_attributes_expected.json
  34. +1 −1 exporter/collector/integrationtest/testdata/fixtures/logs/logs_apache_error_expected.json
  35. +1 −1 exporter/collector/integrationtest/testdata/fixtures/logs/logs_apache_error_scope_expected.json
  36. +1 −1 ...r/collector/integrationtest/testdata/fixtures/logs/logs_apache_json_error_reporting_expected.json
  37. +1 −1 ...r/collector/integrationtest/testdata/fixtures/logs/logs_apache_text_error_reporting_expected.json
  38. +1 −1 ...llector/integrationtest/testdata/fixtures/logs/logs_multi_project_destination_quota_expected.json
  39. +1 −1 exporter/collector/integrationtest/testdata/fixtures/logs/logs_multi_project_expected.json
  40. +1 −1 exporter/collector/integrationtest/testdata/fixtures/logs/logs_span_trace_id_expected.json
  41. +1 −1 exporter/collector/integrationtest/testdata/fixtures/logs/logs_user_agent_expected.json
  42. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/batching_expect.json
  43. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/bms_ops_agent_host_metrics_expect.json
  44. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/boolean_gauge_expect.json
  45. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/counter_compressed_expect.json
  46. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/counter_expect.json
  47. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/counter_gmp_expect.json
  48. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/counter_unknown_domain_expect.json
  49. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/counter_user_agent_expect.json
  50. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/counter_wal_deadline_expect.json
  51. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/counter_wal_expect.json
  52. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/counter_wal_unavailable_expect.json
  53. +1 −1 ...collector/integrationtest/testdata/fixtures/metrics/counter_workloadgoogleapis_prefix_expect.json
  54. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/create_service_timeseries_expect.json
  55. +1 −1 ...ter/collector/integrationtest/testdata/fixtures/metrics/create_service_timeseries_wal_expect.json
  56. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/delta_counter_expect.json
  57. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/delta_counter_gmp_expect.json
  58. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/exponential_histogram_expect.json
  59. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/exponential_histogram_gmp_expect.json
  60. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/gauge_expect.json
  61. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/gauge_gmp_expect.json
  62. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/gke_control_plane_expect.json
  63. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/gke_metrics_agent_expect.json
  64. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/google_managed_prometheus_expect.json
  65. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/histogram_expect.json
  66. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/histogram_gmp_expect.json
  67. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/multi_project_expected.json
  68. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/nonmonotonic_counter_expect.json
  69. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/nonmonotonic_counter_gmp_expect.json
  70. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/ops_agent_host_metrics_expect.json
  71. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/ops_agent_self_metrics_expect.json
  72. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/prometheus_empty_buckets_expected.json
  73. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/prometheus_expect.json
  74. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/prometheus_stale_expect.json
  75. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/prometheus_wal_expect.json
  76. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/summary_expect.json
  77. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/summary_gmp_expect.json
  78. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/untyped_gauge_expect.json
  79. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/untyped_gauge_gmp_expect.json
  80. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/with_resource_filter_expect.json
  81. +1 −1 exporter/collector/integrationtest/testdata/fixtures/metrics/workload_metrics_expect.json
  82. +21 −21 exporter/collector/integrationtest/testdata/fixtures/traces/traces_basic_expected.json
  83. +21 −21 exporter/collector/integrationtest/testdata/fixtures/traces/traces_user_agent_expected.json
  84. +5 −4 exporter/collector/integrationtest/traces_integration_test.go
  85. +5 −7 exporter/collector/logs.go
  86. +10 −8 exporter/collector/metrics.go
  87. +22 −21 exporter/collector/metrics_test.go
  88. +5 −8 exporter/collector/traces.go
  89. +1 −3 exporter/collector/traces_test.go
  90. +1 −1 exporter/collector/version.go
  91. +2 −2 exporter/metric/go.mod
  92. +1 −1 exporter/metric/version.go
  93. +2 −2 exporter/trace/go.mod
  94. +1 −1 exporter/trace/version.go
  95. +15 −13 extension/googleclientauthextension/go.mod
  96. +26 −26 extension/googleclientauthextension/go.sum
  97. +4 −5 golangci.yml
  98. +2 −2 tools/go.mod
  99. +2 −2 tools/go.sum
  100. +2 −2 tools/release.go
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ on:
pull_request:
env:
# Default minimum version of Go to support.
DEFAULT_GO_VERSION: "1.23.1"
DEFAULT_GO_VERSION: "1.23.6"
jobs:
lint:
runs-on: ubuntu-latest
@@ -107,7 +107,7 @@ jobs:
compatibility-test:
strategy:
matrix:
go-version: ["1.23.1", "1.22.5"]
go-version: ["1.23.6", "1.24.0"]
os: [ubuntu-latest, macos-latest, windows-latest]
arch: ["386", amd64]
exclude:
41 changes: 4 additions & 37 deletions Makefile
Original file line number Diff line number Diff line change
@@ -48,7 +48,7 @@ GOCOVMERGE = $(TOOLS)/gocovmerge
$(TOOLS)/gocovmerge: PACKAGE=github.com/wadey/gocovmerge

.PHONY: tools
tools: $(GOLANGCI_LINT) $(MISSPELL) $(GOCOVMERGE) $(STRINGER) $(GOJQ) $(FIELDALIGNMENT) $(PROTOC_GEN_GO)
tools: $(GOLANGCI_LINT) $(MISSPELL) $(GOCOVMERGE) $(STRINGER) $(GOJQ) $(FIELDALIGNMENT) $(PROTOC_GEN_GO) $(GOVULNCHECK)

PROTOBUF_VERSION = 3.19.0
PROTOBUF_OS = linux
@@ -157,9 +157,9 @@ lint: $(GOLANGCI_LINT) $(MISSPELL) govulncheck
done
$(MISSPELL) -w $(ALL_DOCS)
set -e; for dir in $(ALL_GO_MOD_DIRS) $(TOOLS_MOD_DIR); do \
echo "go mod tidy -compat=1.22 in $${dir}"; \
echo "go mod tidy -compat=1.23 in $${dir}"; \
(cd "$${dir}" && \
go mod tidy -compat=1.22); \
go mod tidy -compat=1.23); \
done

generate: $(STRINGER) $(PROTOC)
@@ -198,45 +198,12 @@ govulncheck/%: | $(GOVULNCHECK)

.PHONY: gotidy
gotidy:
$(MAKE) for-all-mod CMD="go mod tidy -compat=1.22"
$(MAKE) for-all-mod CMD="go mod tidy -compat=1.23"

.PHONY: update-dep
update-dep:
$(MAKE) for-all-mod CMD="$(PWD)/internal/buildscripts/update-dep"

STABLE_OTEL_VERSION=v1.30.0
UNSTABLE_OTEL_VERSION=v0.52.0
STABLE_CONTRIB_OTEL_VERSION=v1.30.0
UNSTABLE_CONTRIB_OTEL_VERSION=v0.55.0
STABLE_COLLECTOR_VERSION=v1.15.0
UNSTABLE_COLLECTOR_VERSION=v0.109.0
UNSTABLE_COLLECTOR_CONTRIB_VERSION=v0.109.0

.PHONY: update-otel
update-otel:
$(MAKE) update-dep MODULE=go.opentelemetry.io/otel VERSION=$(STABLE_OTEL_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/otel/metric VERSION=$(STABLE_OTEL_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/otel/sdk VERSION=$(STABLE_OTEL_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/otel/sdk/metric VERSION=$(STABLE_OTEL_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/otel/trace VERSION=$(STABLE_OTEL_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp VERSION=$(STABLE_OTEL_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/otel/exporters/prometheus VERSION=$(UNSTABLE_OTEL_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/contrib/detectors/gcp VERSION=$(STABLE_CONTRIB_OTEL_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp VERSION=$(UNSTABLE_CONTRIB_OTEL_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/collector VERSION=$(UNSTABLE_COLLECTOR_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/collector/confmap VERSION=$(STABLE_COLLECTOR_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/collector/component VERSION=$(UNSTABLE_COLLECTOR_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/collector/semconv VERSION=$(UNSTABLE_COLLECTOR_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/collector/otelcol VERSION=$(UNSTABLE_COLLECTOR_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/collector/extension VERSION=$(UNSTABLE_COLLECTOR_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/collector/extension/auth VERSION=$(UNSTABLE_COLLECTOR_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/collector/featuregate VERSION=$(STABLE_COLLECTOR_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/collector/pdata VERSION=$(STABLE_COLLECTOR_VERSION)
$(MAKE) update-dep MODULE=github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus VERSION=$(UNSTABLE_COLLECTOR_CONTRIB_VERSION)
$(MAKE) gotidy
$(MAKE) build
$(MAKE) fixtures

.PHONY: prepare-release
prepare-release:
echo "make sure tools/release.go is updated to your desired stable and unstable versions"
4 changes: 2 additions & 2 deletions cloudbuild-e2e-cloud-functions-gen2.yaml
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@

steps:
# Vendor dependencies, and zip the code.
- name: golang:1.23.1
- name: golang:1.23.6
id: zip-code
entrypoint: /bin/bash
args:
@@ -33,7 +33,7 @@ steps:
env: ["PROJECT_ID=$PROJECT_ID"]
args:
- cloud-functions-gen2
- --runtime=go122
- --runtime=go123
- --functionsource=/workspace/e2e-test-server/cloud_functions/function-source.zip
- --entrypoint=HandleCloudFunction

2 changes: 1 addition & 1 deletion cloudbuild-e2e-gae-standard.yaml
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ steps:
env: ["PROJECT_ID=$PROJECT_ID"]
args:
- gae-standard
- --runtime=go122
- --runtime=go123
- --appsource=/workspace/e2e-test-server/appsource.zip
logsBucket: gs://opentelemetry-ops-e2e-cloud-build-logs
substitutions:
2 changes: 1 addition & 1 deletion cloudbuild-e2e-gae.yaml
Original file line number Diff line number Diff line change
@@ -30,7 +30,7 @@ steps:
args:
- gae
- --image=$_TEST_SERVER_IMAGE
- --runtime=go122
- --runtime=go123

logsBucket: gs://opentelemetry-ops-e2e-cloud-build-logs
substitutions:
2 changes: 1 addition & 1 deletion cloudbuild-integration-tests.yaml
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@
# limitations under the License.

steps:
- name: golang:1.23.1
- name: golang:1.23.6
env: ["SECOND_PROJECT_ID=opentelemetry-ops-e2e-2"]
args: ["make", "integrationtest"]
logsBucket: gs://opentelemetry-ops-e2e-cloud-build-logs
2 changes: 1 addition & 1 deletion detectors/gcp/go.mod
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ module github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp

go 1.22

toolchain go1.23.4
toolchain go1.23.6

require (
cloud.google.com/go/compute/metadata v0.6.0
2 changes: 1 addition & 1 deletion e2e-test-server/Dockerfile
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

FROM golang:1.23.5 as builder
FROM golang:1.23.6 as builder

WORKDIR /workspace/e2e-test-server/

8 changes: 4 additions & 4 deletions e2e-test-server/cloud_functions/go.mod
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ toolchain go1.22.0
require (
cloud.google.com/go/pubsub v1.45.3
github.com/GoogleCloudPlatform/functions-framework-go v1.9.1
github.com/GoogleCloudPlatform/opentelemetry-operations-go/e2e-test-server v0.50.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/e2e-test-server v0.51.0
github.com/cloudevents/sdk-go/v2 v2.15.2
)

@@ -19,9 +19,9 @@ require (
cloud.google.com/go/functions v1.19.3 // indirect
cloud.google.com/go/iam v1.3.1 // indirect
cloud.google.com/go/trace v1.11.3 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.26.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.50.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.27.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.51.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
6 changes: 3 additions & 3 deletions e2e-test-server/go.mod
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ toolchain go1.22.0

require (
cloud.google.com/go/pubsub v1.45.3
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.26.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.27.0
go.opentelemetry.io/contrib/detectors/gcp v1.31.0
go.opentelemetry.io/otel v1.31.0
go.opentelemetry.io/otel/sdk v1.31.0
@@ -21,8 +21,8 @@ require (
cloud.google.com/go/compute/metadata v0.6.0 // indirect
cloud.google.com/go/iam v1.3.1 // indirect
cloud.google.com/go/trace v1.11.3 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.50.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.51.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
6 changes: 3 additions & 3 deletions example/metric/exponential_histogram/go.mod
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@ go 1.22.0
toolchain go1.23.4

require (
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.50.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.51.0
go.opentelemetry.io/contrib/detectors/gcp v1.31.0
go.opentelemetry.io/otel v1.31.0
go.opentelemetry.io/otel/metric v1.31.0
@@ -19,8 +19,8 @@ require (
cloud.google.com/go/auth/oauth2adapt v0.2.7 // indirect
cloud.google.com/go/compute/metadata v0.6.0 // indirect
cloud.google.com/go/monitoring v1.22.1 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.50.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.51.0 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/google/s2a-go v0.1.9 // indirect
2 changes: 1 addition & 1 deletion example/metric/otlpgrpc/go.mod
Original file line number Diff line number Diff line change
@@ -16,7 +16,7 @@ require (

require (
cloud.google.com/go/compute/metadata v0.6.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
6 changes: 3 additions & 3 deletions example/metric/sdk/go.mod
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@ go 1.22
toolchain go1.22.0

require (
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.50.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.51.0
go.opentelemetry.io/contrib/detectors/gcp v1.31.0
go.opentelemetry.io/otel v1.31.0
go.opentelemetry.io/otel/metric v1.31.0
@@ -18,8 +18,8 @@ require (
cloud.google.com/go/auth/oauth2adapt v0.2.7 // indirect
cloud.google.com/go/compute/metadata v0.6.0 // indirect
cloud.google.com/go/monitoring v1.22.1 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.50.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.51.0 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/google/s2a-go v0.1.9 // indirect
6 changes: 3 additions & 3 deletions example/trace/http/go.mod
Original file line number Diff line number Diff line change
@@ -5,8 +5,8 @@ go 1.22
toolchain go1.22.0

require (
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.26.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/propagator v0.50.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.27.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/propagator v0.51.0
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0
go.opentelemetry.io/otel v1.31.0
go.opentelemetry.io/otel/sdk v1.31.0
@@ -18,7 +18,7 @@ require (
cloud.google.com/go/auth/oauth2adapt v0.2.7 // indirect
cloud.google.com/go/compute/metadata v0.6.0 // indirect
cloud.google.com/go/trace v1.11.3 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.50.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.51.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
2 changes: 1 addition & 1 deletion example/trace/otlpgrpc/example.go
Original file line number Diff line number Diff line change
@@ -52,7 +52,7 @@ func initTracer() (func(), error) {

tp := sdktrace.NewTracerProvider(
// For this example code we use sdktrace.AlwaysSample sampler to sample all traces.
// In a production application, use sdktrace.ProbabilitySampler with a desired probability.
// In a production application, use sdktrace.TraceIDRatioBased with a desired probability.
sdktrace.WithSampler(sdktrace.AlwaysSample()),
sdktrace.WithBatcher(exporter))

20 changes: 17 additions & 3 deletions exporter/collector/config.go
Original file line number Diff line number Diff line change
@@ -19,9 +19,11 @@ import (
"errors"
"fmt"
"regexp"
"runtime"
"strings"
"time"

"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/pdata/pcommon"
"go.opentelemetry.io/collector/pdata/pmetric"
"go.opentelemetry.io/otel/metric"
@@ -197,7 +199,6 @@ var domains = []string{"googleapis.com", "kubernetes.io", "istio.io", "knative.d
// DefaultConfig creates the default configuration for exporter.
func DefaultConfig() Config {
return Config{
UserAgent: "opentelemetry-collector-contrib {{version}}",
LogConfig: LogConfig{
ServiceResourceLabels: true,
MapMonitoredResource: defaultResourceToLoggingMonitoredResource,
@@ -252,8 +253,21 @@ func ValidateConfig(cfg Config) error {
return nil
}

func setVersionInUserAgent(cfg *Config, version string) {
cfg.UserAgent = strings.ReplaceAll(cfg.UserAgent, "{{version}}", version)
func SetUserAgent(cfg *Config, buildInfo component.BuildInfo) {
if cfg.UserAgent == "" {
cfg.UserAgent = fmt.Sprintf(
"%s/%s (%s/%s)",
buildInfo.Description,
buildInfo.Version,
runtime.GOOS,
runtime.GOARCH,
)
return
}

if strings.Contains(cfg.UserAgent, "{{version}}") {
cfg.UserAgent = strings.ReplaceAll(cfg.UserAgent, "{{version}}", buildInfo.Version)
}
}

func generateClientOptions(ctx context.Context, clientCfg *ClientConfig, cfg *Config, scopes []string, meterProvider metric.MeterProvider) ([]option.ClientOption, error) {
24 changes: 24 additions & 0 deletions exporter/collector/config_test.go
Original file line number Diff line number Diff line change
@@ -15,8 +15,11 @@
package collector

import (
"fmt"
"runtime"
"testing"

"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/confmap"
"gopkg.in/yaml.v3"
)
@@ -104,3 +107,24 @@ func TestMarshal(t *testing.T) {
t.Fatal(err)
}
}

// These tests are not super useful for functionality, but they
// exist as an assertion of how we expect the user agent
// to be constructed from build info to alert if somebody
// changes it unknowingly.
func TestBuildInfoUserAgentFallback(t *testing.T) {
config := DefaultConfig()
SetUserAgent(&config, component.BuildInfo{
Description: "GoogleCloudExporter Tests",
Version: Version(),
})
expectedUserAgent := fmt.Sprintf(
"GoogleCloudExporter Tests/%s (%s/%s)",
Version(),
runtime.GOOS,
runtime.GOARCH,
)
if config.UserAgent != expectedUserAgent {
t.Fatalf("expected user agent to be %s, was %s", expectedUserAgent, config.UserAgent)
}
}
Loading