From d03e603f5dc817012e392fec620e4dc6eb8d9682 Mon Sep 17 00:00:00 2001 From: Murphy Chen Date: Tue, 28 Apr 2026 19:14:57 +0800 Subject: [PATCH 1/3] [connector/spanmetrics] rename type from spanmetrics to span_metrics with deprecated alias Renames the component type from `spanmetrics` to `span_metrics` to follow the project-wide snake_case naming convention (issue #45339). The old name is preserved as a deprecated alias via xconnector.WithDeprecatedTypeAlias, so existing configurations continue to work with a deprecation warning. Assisted-by: Claude Sonnet 4.6 --- .chloggen/config.yaml | 1 + .chloggen/rename-spanmetrics-connector.yaml | 5 ++++ connector/spanmetricsconnector/README.md | 5 ++++ connector/spanmetricsconnector/factory.go | 6 ++-- .../generated_component_test.go | 2 +- connector/spanmetricsconnector/go.mod | 2 +- .../internal/metadata/generated_status.go | 7 +++-- connector/spanmetricsconnector/metadata.yaml | 3 +- .../spanmetricsconnector/testdata/config.yaml | 28 +++++++++---------- 9 files changed, 37 insertions(+), 22 deletions(-) create mode 100644 .chloggen/rename-spanmetrics-connector.yaml diff --git a/.chloggen/config.yaml b/.chloggen/config.yaml index 798961a12bb36..d3825c22828e2 100644 --- a/.chloggen/config.yaml +++ b/.chloggen/config.yaml @@ -27,6 +27,7 @@ components: - connector/servicegraph - connector/signal_to_metrics - connector/slowsql + - connector/span_metrics - connector/spanmetrics - connector/sum - exporter/alertmanager diff --git a/.chloggen/rename-spanmetrics-connector.yaml b/.chloggen/rename-spanmetrics-connector.yaml new file mode 100644 index 0000000000000..9d3e737753a11 --- /dev/null +++ b/.chloggen/rename-spanmetrics-connector.yaml @@ -0,0 +1,5 @@ +change_type: deprecation +component: connector/span_metrics +note: Rename component type from `spanmetrics` to `span_metrics` to follow snake_case naming convention. The old name is kept as a deprecated alias. +issues: [45339] +change_logs: [user] diff --git a/connector/spanmetricsconnector/README.md b/connector/spanmetricsconnector/README.md index c0914e2850694..9076d607157ee 100644 --- a/connector/spanmetricsconnector/README.md +++ b/connector/spanmetricsconnector/README.md @@ -22,6 +22,11 @@ [Stability Level]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/component-stability.md#stability-levels +> **Deprecation Notice:** The component type has been renamed from `spanmetrics` to `span_metrics` +> to follow the OpenTelemetry snake_case naming convention. +> The old name `spanmetrics` still works but is deprecated and will be removed in a future release. +> Please update your configuration to use `span_metrics`. + ⚠️ Breaking Change Warning: The default duration metrics unit will change from `ms` to `s` to adhere to the OpenTelemetry semantic conventions and a feature gate `connector.spanmetrics.useSecondAsDefaultMetricsUnit` is also added. diff --git a/connector/spanmetricsconnector/factory.go b/connector/spanmetricsconnector/factory.go index 752e2e2126697..66ae395f17ca8 100644 --- a/connector/spanmetricsconnector/factory.go +++ b/connector/spanmetricsconnector/factory.go @@ -13,6 +13,7 @@ import ( "github.com/jonboulle/clockwork" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/connector" + "go.opentelemetry.io/collector/connector/xconnector" "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/featuregate" "go.opentelemetry.io/collector/pdata/pcommon" @@ -72,10 +73,11 @@ func init() { // NewFactory creates a factory for the spanmetrics connector. func NewFactory() connector.Factory { - return connector.NewFactory( + return xconnector.NewFactory( metadata.Type, createDefaultConfig, - connector.WithTracesToMetrics(createTracesToMetricsConnector, metadata.TracesToMetricsStability), + xconnector.WithTracesToMetrics(createTracesToMetricsConnector, metadata.TracesToMetricsStability), + xconnector.WithDeprecatedTypeAlias(metadata.DeprecatedType), ) } diff --git a/connector/spanmetricsconnector/generated_component_test.go b/connector/spanmetricsconnector/generated_component_test.go index 7d5f64df8ae9c..fba68923d11e9 100644 --- a/connector/spanmetricsconnector/generated_component_test.go +++ b/connector/spanmetricsconnector/generated_component_test.go @@ -17,7 +17,7 @@ import ( "go.opentelemetry.io/collector/pipeline" ) -var typ = component.MustNewType("spanmetrics") +var typ = component.MustNewType("span_metrics") func TestComponentFactoryType(t *testing.T) { require.Equal(t, typ, NewFactory().Type()) diff --git a/connector/spanmetricsconnector/go.mod b/connector/spanmetricsconnector/go.mod index 953204b52dc8f..77cfa8e5efe14 100644 --- a/connector/spanmetricsconnector/go.mod +++ b/connector/spanmetricsconnector/go.mod @@ -19,6 +19,7 @@ require ( go.opentelemetry.io/collector/confmap/xconfmap v0.150.1-0.20260424074859-d91c0edd1da5 go.opentelemetry.io/collector/connector v0.150.1-0.20260424074859-d91c0edd1da5 go.opentelemetry.io/collector/connector/connectortest v0.150.1-0.20260424074859-d91c0edd1da5 + go.opentelemetry.io/collector/connector/xconnector v0.150.1-0.20260424074859-d91c0edd1da5 go.opentelemetry.io/collector/consumer v1.56.1-0.20260424074859-d91c0edd1da5 go.opentelemetry.io/collector/consumer/consumertest v0.150.1-0.20260424074859-d91c0edd1da5 go.opentelemetry.io/collector/featuregate v1.56.1-0.20260424074859-d91c0edd1da5 @@ -48,7 +49,6 @@ require ( github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/collector/connector/xconnector v0.150.1-0.20260424074859-d91c0edd1da5 // indirect go.opentelemetry.io/collector/consumer/xconsumer v0.150.1-0.20260424074859-d91c0edd1da5 // indirect go.opentelemetry.io/collector/internal/componentalias v0.150.1-0.20260424074859-d91c0edd1da5 // indirect go.opentelemetry.io/collector/internal/fanoutconsumer v0.150.1-0.20260424074859-d91c0edd1da5 // indirect diff --git a/connector/spanmetricsconnector/internal/metadata/generated_status.go b/connector/spanmetricsconnector/internal/metadata/generated_status.go index da8ace98ebc83..670d401a6f314 100644 --- a/connector/spanmetricsconnector/internal/metadata/generated_status.go +++ b/connector/spanmetricsconnector/internal/metadata/generated_status.go @@ -1,7 +1,7 @@ // Code generated by mdatagen. DO NOT EDIT. // Package metadata contains the autogenerated telemetry and -// build information for the connector/spanmetrics component. +// build information for the connector/span_metrics component. package metadata import ( @@ -9,8 +9,9 @@ import ( ) var ( - Type = component.MustNewType("spanmetrics") - ScopeName = "github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector" + Type = component.MustNewType("span_metrics") + DeprecatedType = component.MustNewType("spanmetrics") + ScopeName = "github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector" ) const ( diff --git a/connector/spanmetricsconnector/metadata.yaml b/connector/spanmetricsconnector/metadata.yaml index b896204f2ac95..e3e708bcb2e31 100644 --- a/connector/spanmetricsconnector/metadata.yaml +++ b/connector/spanmetricsconnector/metadata.yaml @@ -1,4 +1,5 @@ -type: spanmetrics +type: span_metrics +deprecated_type: spanmetrics display_name: Span Metrics Connector status: diff --git a/connector/spanmetricsconnector/testdata/config.yaml b/connector/spanmetricsconnector/testdata/config.yaml index d313f90b2f7b4..7e925fd82d923 100644 --- a/connector/spanmetricsconnector/testdata/config.yaml +++ b/connector/spanmetricsconnector/testdata/config.yaml @@ -1,13 +1,13 @@ # default configuration -spanmetrics/default: +span_metrics/default: # default configuration with explicit buckets histogram -spanmetrics/default_explicit_histogram: +span_metrics/default_explicit_histogram: histogram: explicit: # configuration with all possible parameters -spanmetrics/full: +span_metrics/full: histogram: unit: "s" explicit: @@ -40,56 +40,56 @@ spanmetrics/full: metrics_flush_interval: 30s # default configuration with exponential buckets histogram -spanmetrics/exponential_histogram: +span_metrics/exponential_histogram: histogram: exponential: max_size: 10 # invalid histogram configuration -spanmetrics/exponential_and_explicit_histogram: +span_metrics/exponential_and_explicit_histogram: histogram: exponential: max_size: 10 explicit: buckets: [ 10ms, 100ms, 250ms ] -spanmetrics/invalid_histogram_unit: +span_metrics/invalid_histogram_unit: histogram: unit: "h" -spanmetrics/invalid_metrics_expiration: +span_metrics/invalid_metrics_expiration: metrics_expiration: -20s # exemplars enabled -spanmetrics/exemplars_enabled: +span_metrics/exemplars_enabled: exemplars: enabled: true # exemplars enabled with max per datapoint configured -spanmetrics/exemplars_enabled_with_max_per_datapoint: +span_metrics/exemplars_enabled_with_max_per_datapoint: exemplars: enabled: true max_per_data_point: 10 # resource metrics key attributes filter -spanmetrics/resource_metrics_key_attributes: +span_metrics/resource_metrics_key_attributes: resource_metrics_key_attributes: - service.name - telemetry.sdk.language - telemetry.sdk.name -spanmetrics/custom_delta_timestamp_cache_size: +span_metrics/custom_delta_timestamp_cache_size: aggregation_temporality: "AGGREGATION_TEMPORALITY_DELTA" metric_timestamp_cache_size: 123 -spanmetrics/invalid_delta_timestamp_cache_size: +span_metrics/invalid_delta_timestamp_cache_size: aggregation_temporality: "AGGREGATION_TEMPORALITY_DELTA" metric_timestamp_cache_size: 0 -spanmetrics/default_delta_timestamp_cache_size: +span_metrics/default_delta_timestamp_cache_size: aggregation_temporality: "AGGREGATION_TEMPORALITY_DELTA" -spanmetrics/separate_calls_and_duration_dimensions: +span_metrics/separate_calls_and_duration_dimensions: histogram: dimensions: - name: http.status_code From deaa57f3e58385c8396d621508bf8248748a1245 Mon Sep 17 00:00:00 2001 From: Murphy Chen Date: Tue, 28 Apr 2026 19:23:36 +0800 Subject: [PATCH 2/3] update --- .chloggen/rename-spanmetrics-connector.yaml | 2 +- connector/spanmetricsconnector/README.md | 26 ++++++++++----------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.chloggen/rename-spanmetrics-connector.yaml b/.chloggen/rename-spanmetrics-connector.yaml index 9d3e737753a11..8e4c9867d579c 100644 --- a/.chloggen/rename-spanmetrics-connector.yaml +++ b/.chloggen/rename-spanmetrics-connector.yaml @@ -1,5 +1,5 @@ change_type: deprecation component: connector/span_metrics note: Rename component type from `spanmetrics` to `span_metrics` to follow snake_case naming convention. The old name is kept as a deprecated alias. -issues: [45339] +issues: [] change_logs: [user] diff --git a/connector/spanmetricsconnector/README.md b/connector/spanmetricsconnector/README.md index 9076d607157ee..9af2c308339b3 100644 --- a/connector/spanmetricsconnector/README.md +++ b/connector/spanmetricsconnector/README.md @@ -164,7 +164,7 @@ exporters: nop: connectors: - spanmetrics: + span_metrics: histogram: dimensions: - name: url.scheme @@ -200,9 +200,9 @@ service: pipelines: traces: receivers: [nop] - exporters: [spanmetrics] + exporters: [span_metrics] metrics: - receivers: [spanmetrics] + receivers: [span_metrics] exporters: [nop] ``` @@ -230,16 +230,16 @@ exporters: enabled: true connectors: - spanmetrics: + span_metrics: namespace: span.metrics service: pipelines: traces: receivers: [otlp] - exporters: [spanmetrics] + exporters: [span_metrics] metrics: - receivers: [spanmetrics] + receivers: [span_metrics] exporters: [prometheusremotewrite] ``` @@ -283,7 +283,7 @@ To reduce the risk of conflicting writes: * Add `resource_metrics_key_attributes` to your configuration. ``` connectors: - spanmetrics: + span_metrics: resource_metrics_key_attributes: - service.name - telemetry.sdk.language @@ -348,7 +348,7 @@ processors: ... connectors: - spanmetrics: + span_metrics: exporters: otlp_http/observability-backend: @@ -359,9 +359,9 @@ service: traces: receivers: [otlp] processors: [transform/sanitize_spans, ...] - exporters: [otlp_http/observability-backend, spanmetrics] + exporters: [otlp_http/observability-backend, span_metrics] metrics: - receivers: [otlp, spanmetrics] + receivers: [otlp, span_metrics] processors: [...] exporters: [otlp_http/observability-backend] # ... @@ -411,7 +411,7 @@ processors: ... connectors: - spanmetrics: + span_metrics: exporters: otlp_http/observability-backend: @@ -422,9 +422,9 @@ service: traces: receivers: [otlp] processors: [transform/sanitize_spans, ...] - exporters: [otlp_http/observability-backend, spanmetrics] + exporters: [otlp_http/observability-backend, span_metrics] metrics: - receivers: [otlp, spanmetrics] + receivers: [otlp, span_metrics] processors: [...] exporters: [otlp_http/observability-backend] # ... From 3b07d3313e08fad320dbd82bb063bcc35ff7c313 Mon Sep 17 00:00:00 2001 From: Murphy Chen Date: Tue, 28 Apr 2026 19:29:37 +0800 Subject: [PATCH 3/3] update --- .chloggen/config.yaml | 1 - .chloggen/rename-spanmetrics-connector.yaml | 2 +- reports/distributions/contrib.yaml | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.chloggen/config.yaml b/.chloggen/config.yaml index d3825c22828e2..7a2c1ada839a7 100644 --- a/.chloggen/config.yaml +++ b/.chloggen/config.yaml @@ -28,7 +28,6 @@ components: - connector/signal_to_metrics - connector/slowsql - connector/span_metrics - - connector/spanmetrics - connector/sum - exporter/alertmanager - exporter/alibabacloud_logservice diff --git a/.chloggen/rename-spanmetrics-connector.yaml b/.chloggen/rename-spanmetrics-connector.yaml index 8e4c9867d579c..50daeb54f5f30 100644 --- a/.chloggen/rename-spanmetrics-connector.yaml +++ b/.chloggen/rename-spanmetrics-connector.yaml @@ -1,5 +1,5 @@ change_type: deprecation component: connector/span_metrics note: Rename component type from `spanmetrics` to `span_metrics` to follow snake_case naming convention. The old name is kept as a deprecated alias. -issues: [] +issues: [47963] change_logs: [user] diff --git a/reports/distributions/contrib.yaml b/reports/distributions/contrib.yaml index 2fe3a7c1f955e..0d789e9854acc 100644 --- a/reports/distributions/contrib.yaml +++ b/reports/distributions/contrib.yaml @@ -13,7 +13,7 @@ components: - routing - servicegraph - signal_to_metrics - - spanmetrics + - span_metrics - sum exporter: - alibabacloud_logservice