diff --git a/examples/otel-sdk-migration-config.yaml b/examples/otel-sdk-migration-config.yaml
index 11f23820..18acca9f 100644
--- a/examples/otel-sdk-migration-config.yaml
+++ b/examples/otel-sdk-migration-config.yaml
@@ -122,3 +122,6 @@ logger_provider:
limits:
attribute_value_length_limit: ${OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT}
attribute_count_limit: ${OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:-128}
+instrumentation/development:
+ general:
+ stability_opt_in_list: ${OTEL_SEMCONV_STABILITY_OPT_IN}
diff --git a/language-support-status.md b/language-support-status.md
index f19229ed..8044dd54 100644
--- a/language-support-status.md
+++ b/language-support-status.md
@@ -81,6 +81,7 @@ Latest supported file format: `1.0.0-rc.3`
| [`View`](schema-docs.md#view) | supported | | * `selector`: supported
* `stream`: supported
|
| [`ViewSelector`](schema-docs.md#viewselector) | supported | | * `instrument_name`: supported
* `instrument_type`: supported
* `meter_name`: supported
* `meter_schema_url`: supported
* `meter_version`: supported
* `unit`: supported
|
| [`ViewStream`](schema-docs.md#viewstream) | supported | | * `aggregation`: supported
* `aggregation_cardinality_limit`: supported
* `attribute_keys`: supported
* `description`: supported
* `name`: supported
|
+| [`ExperimentalCodeInstrumentation`](schema-docs.md#experimentalcodeinstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalComposableAlwaysOffSampler`](schema-docs.md#experimentalcomposablealwaysoffsampler) | not_implemented | | |
| [`ExperimentalComposableAlwaysOnSampler`](schema-docs.md#experimentalcomposablealwaysonsampler) | not_implemented | | |
| [`ExperimentalComposableParentThresholdSampler`](schema-docs.md#experimentalcomposableparentthresholdsampler) | not_implemented | | * `root`: not_implemented
|
@@ -91,10 +92,12 @@ Latest supported file format: `1.0.0-rc.3`
| [`ExperimentalComposableRuleBasedSamplerRuleAttributeValues`](schema-docs.md#experimentalcomposablerulebasedsamplerruleattributevalues) | not_implemented | | * `key`: not_implemented
* `values`: not_implemented
|
| [`ExperimentalComposableSampler`](schema-docs.md#experimentalcomposablesampler) | not_implemented | | * `always_off`: not_implemented
* `always_on`: not_implemented
* `parent_threshold`: not_implemented
* `probability`: not_implemented
* `rule_based`: not_implemented
|
| [`ExperimentalContainerResourceDetector`](schema-docs.md#experimentalcontainerresourcedetector) | not_implemented | | |
-| [`ExperimentalGeneralInstrumentation`](schema-docs.md#experimentalgeneralinstrumentation) | not_applicable | | * `http`: not_applicable
* `sanitization`: not_applicable
|
+| [`ExperimentalDbInstrumentation`](schema-docs.md#experimentaldbinstrumentation) | unknown | | * `semconv`: unknown
|
+| [`ExperimentalGenAiInstrumentation`](schema-docs.md#experimentalgenaiinstrumentation) | unknown | | * `semconv`: unknown
|
+| [`ExperimentalGeneralInstrumentation`](schema-docs.md#experimentalgeneralinstrumentation) | not_applicable | | * `code`: not_applicable
* `db`: not_applicable
* `gen_ai`: not_applicable
* `http`: not_applicable
* `messaging`: not_applicable
* `rpc`: not_applicable
* `sanitization`: not_applicable
* `stability_opt_in_list`: not_applicable
|
| [`ExperimentalHostResourceDetector`](schema-docs.md#experimentalhostresourcedetector) | not_implemented | | |
| [`ExperimentalHttpClientInstrumentation`](schema-docs.md#experimentalhttpclientinstrumentation) | not_applicable | | * `known_methods`: not_applicable
* `request_captured_headers`: not_applicable
* `response_captured_headers`: not_applicable
|
-| [`ExperimentalHttpInstrumentation`](schema-docs.md#experimentalhttpinstrumentation) | not_applicable | | * `client`: not_applicable
* `server`: not_applicable
|
+| [`ExperimentalHttpInstrumentation`](schema-docs.md#experimentalhttpinstrumentation) | not_applicable | | * `client`: not_applicable
* `semconv`: not_applicable
* `server`: not_applicable
|
| [`ExperimentalHttpServerInstrumentation`](schema-docs.md#experimentalhttpserverinstrumentation) | not_applicable | | * `known_methods`: not_applicable
* `request_captured_headers`: not_applicable
* `response_captured_headers`: not_applicable
|
| [`ExperimentalInstrumentation`](schema-docs.md#experimentalinstrumentation) | not_applicable | | * `cpp`: not_applicable
* `dotnet`: not_applicable
* `erlang`: not_applicable
* `general`: not_applicable
* `go`: not_applicable
* `java`: not_applicable
* `js`: not_applicable
* `php`: not_applicable
* `python`: not_applicable
* `ruby`: not_applicable
* `rust`: not_applicable
* `swift`: not_applicable
|
| [`ExperimentalJaegerRemoteSampler`](schema-docs.md#experimentaljaegerremotesampler) | not_implemented | | * `endpoint`: not_implemented
* `initial_sampler`: not_implemented
* `interval`: not_implemented
|
@@ -102,6 +105,7 @@ Latest supported file format: `1.0.0-rc.3`
| [`ExperimentalLoggerConfig`](schema-docs.md#experimentalloggerconfig) | not_implemented | | * `enabled`: not_implemented
* `minimum_severity`: not_implemented
* `trace_based`: not_implemented
|
| [`ExperimentalLoggerConfigurator`](schema-docs.md#experimentalloggerconfigurator) | not_implemented | | * `default_config`: not_implemented
* `loggers`: not_implemented
|
| [`ExperimentalLoggerMatcherAndConfig`](schema-docs.md#experimentalloggermatcherandconfig) | not_implemented | | * `config`: not_implemented
* `name`: not_implemented
|
+| [`ExperimentalMessagingInstrumentation`](schema-docs.md#experimentalmessaginginstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalMeterConfig`](schema-docs.md#experimentalmeterconfig) | not_implemented | | * `enabled`: not_implemented
|
| [`ExperimentalMeterConfigurator`](schema-docs.md#experimentalmeterconfigurator) | not_implemented | | * `default_config`: not_implemented
* `meters`: not_implemented
|
| [`ExperimentalMeterMatcherAndConfig`](schema-docs.md#experimentalmetermatcherandconfig) | not_implemented | | * `config`: not_implemented
* `name`: not_implemented
|
@@ -113,7 +117,9 @@ Latest supported file format: `1.0.0-rc.3`
| [`ExperimentalPrometheusTranslationStrategy`](schema-docs.md#experimentalprometheustranslationstrategy) | supported | | * `no_translation`: not_implemented
* `no_utf8_escaping_with_suffixes`: not_implemented
* `underscore_escaping_with_suffixes`: supported
* `underscore_escaping_without_suffixes`: supported
|
| [`ExperimentalResourceDetection`](schema-docs.md#experimentalresourcedetection) | not_implemented | | * `attributes`: not_implemented
* `detectors`: not_implemented
|
| [`ExperimentalResourceDetector`](schema-docs.md#experimentalresourcedetector) | not_implemented | | * `container`: not_implemented
* `host`: not_implemented
* `process`: not_implemented
* `service`: not_implemented
|
+| [`ExperimentalRpcInstrumentation`](schema-docs.md#experimentalrpcinstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalSanitization`](schema-docs.md#experimentalsanitization) | unknown | | * `url`: unknown
|
+| [`ExperimentalSemconvConfig`](schema-docs.md#experimentalsemconvconfig) | unknown | | * `dual_emit`: unknown
* `experimental`: unknown
* `version`: unknown
|
| [`ExperimentalServiceResourceDetector`](schema-docs.md#experimentalserviceresourcedetector) | not_implemented | | |
| [`ExperimentalSpanParent`](schema-docs.md#experimentalspanparent) | not_implemented | | * `local`: not_implemented
* `none`: not_implemented
* `remote`: not_implemented
|
| [`ExperimentalTracerConfig`](schema-docs.md#experimentaltracerconfig) | not_implemented | | * `enabled`: not_implemented
|
@@ -193,6 +199,7 @@ Latest supported file format: `1.0.0-rc.2`
| [`View`](schema-docs.md#view) | unknown | | * `selector`: unknown
* `stream`: unknown
|
| [`ViewSelector`](schema-docs.md#viewselector) | unknown | | * `instrument_name`: unknown
* `instrument_type`: unknown
* `meter_name`: unknown
* `meter_schema_url`: unknown
* `meter_version`: unknown
* `unit`: unknown
|
| [`ViewStream`](schema-docs.md#viewstream) | unknown | | * `aggregation`: unknown
* `aggregation_cardinality_limit`: unknown
* `attribute_keys`: unknown
* `description`: unknown
* `name`: unknown
|
+| [`ExperimentalCodeInstrumentation`](schema-docs.md#experimentalcodeinstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalComposableAlwaysOffSampler`](schema-docs.md#experimentalcomposablealwaysoffsampler) | not_implemented | | |
| [`ExperimentalComposableAlwaysOnSampler`](schema-docs.md#experimentalcomposablealwaysonsampler) | not_implemented | | |
| [`ExperimentalComposableParentThresholdSampler`](schema-docs.md#experimentalcomposableparentthresholdsampler) | not_implemented | | * `root`: not_implemented
|
@@ -203,10 +210,12 @@ Latest supported file format: `1.0.0-rc.2`
| [`ExperimentalComposableRuleBasedSamplerRuleAttributeValues`](schema-docs.md#experimentalcomposablerulebasedsamplerruleattributevalues) | not_implemented | | * `key`: not_implemented
* `values`: not_implemented
|
| [`ExperimentalComposableSampler`](schema-docs.md#experimentalcomposablesampler) | not_implemented | | * `always_off`: not_implemented
* `always_on`: not_implemented
* `parent_threshold`: not_implemented
* `probability`: not_implemented
* `rule_based`: not_implemented
|
| [`ExperimentalContainerResourceDetector`](schema-docs.md#experimentalcontainerresourcedetector) | unknown | | |
-| [`ExperimentalGeneralInstrumentation`](schema-docs.md#experimentalgeneralinstrumentation) | unknown | | * `http`: unknown
* `sanitization`: unknown
|
+| [`ExperimentalDbInstrumentation`](schema-docs.md#experimentaldbinstrumentation) | unknown | | * `semconv`: unknown
|
+| [`ExperimentalGenAiInstrumentation`](schema-docs.md#experimentalgenaiinstrumentation) | unknown | | * `semconv`: unknown
|
+| [`ExperimentalGeneralInstrumentation`](schema-docs.md#experimentalgeneralinstrumentation) | unknown | | * `code`: unknown
* `db`: unknown
* `gen_ai`: unknown
* `http`: unknown
* `messaging`: unknown
* `rpc`: unknown
* `sanitization`: unknown
* `stability_opt_in_list`: unknown
|
| [`ExperimentalHostResourceDetector`](schema-docs.md#experimentalhostresourcedetector) | unknown | | |
| [`ExperimentalHttpClientInstrumentation`](schema-docs.md#experimentalhttpclientinstrumentation) | unknown | | * `known_methods`: unknown
* `request_captured_headers`: unknown
* `response_captured_headers`: unknown
|
-| [`ExperimentalHttpInstrumentation`](schema-docs.md#experimentalhttpinstrumentation) | unknown | | * `client`: unknown
* `server`: unknown
|
+| [`ExperimentalHttpInstrumentation`](schema-docs.md#experimentalhttpinstrumentation) | unknown | | * `client`: unknown
* `semconv`: unknown
* `server`: unknown
|
| [`ExperimentalHttpServerInstrumentation`](schema-docs.md#experimentalhttpserverinstrumentation) | unknown | | * `known_methods`: unknown
* `request_captured_headers`: unknown
* `response_captured_headers`: unknown
|
| [`ExperimentalInstrumentation`](schema-docs.md#experimentalinstrumentation) | unknown | | * `cpp`: unknown
* `dotnet`: unknown
* `erlang`: unknown
* `general`: unknown
* `go`: unknown
* `java`: unknown
* `js`: unknown
* `php`: unknown
* `python`: unknown
* `ruby`: unknown
* `rust`: unknown
* `swift`: unknown
|
| [`ExperimentalJaegerRemoteSampler`](schema-docs.md#experimentaljaegerremotesampler) | not_implemented | | * `endpoint`: not_implemented
* `initial_sampler`: not_implemented
* `interval`: not_implemented
|
@@ -214,6 +223,7 @@ Latest supported file format: `1.0.0-rc.2`
| [`ExperimentalLoggerConfig`](schema-docs.md#experimentalloggerconfig) | unknown | | * `enabled`: unknown
* `minimum_severity`: unknown
* `trace_based`: unknown
|
| [`ExperimentalLoggerConfigurator`](schema-docs.md#experimentalloggerconfigurator) | unknown | | * `default_config`: unknown
* `loggers`: unknown
|
| [`ExperimentalLoggerMatcherAndConfig`](schema-docs.md#experimentalloggermatcherandconfig) | unknown | | * `config`: unknown
* `name`: unknown
|
+| [`ExperimentalMessagingInstrumentation`](schema-docs.md#experimentalmessaginginstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalMeterConfig`](schema-docs.md#experimentalmeterconfig) | unknown | | * `enabled`: unknown
|
| [`ExperimentalMeterConfigurator`](schema-docs.md#experimentalmeterconfigurator) | unknown | | * `default_config`: unknown
* `meters`: unknown
|
| [`ExperimentalMeterMatcherAndConfig`](schema-docs.md#experimentalmetermatcherandconfig) | unknown | | * `config`: unknown
* `name`: unknown
|
@@ -225,7 +235,9 @@ Latest supported file format: `1.0.0-rc.2`
| [`ExperimentalPrometheusTranslationStrategy`](schema-docs.md#experimentalprometheustranslationstrategy) | unknown | | * `no_translation`: unknown
* `no_utf8_escaping_with_suffixes`: unknown
* `underscore_escaping_with_suffixes`: unknown
* `underscore_escaping_without_suffixes`: unknown
|
| [`ExperimentalResourceDetection`](schema-docs.md#experimentalresourcedetection) | unknown | | * `attributes`: unknown
* `detectors`: unknown
|
| [`ExperimentalResourceDetector`](schema-docs.md#experimentalresourcedetector) | unknown | | * `container`: unknown
* `host`: unknown
* `process`: unknown
* `service`: unknown
|
+| [`ExperimentalRpcInstrumentation`](schema-docs.md#experimentalrpcinstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalSanitization`](schema-docs.md#experimentalsanitization) | unknown | | * `url`: unknown
|
+| [`ExperimentalSemconvConfig`](schema-docs.md#experimentalsemconvconfig) | unknown | | * `dual_emit`: unknown
* `experimental`: unknown
* `version`: unknown
|
| [`ExperimentalServiceResourceDetector`](schema-docs.md#experimentalserviceresourcedetector) | unknown | | |
| [`ExperimentalSpanParent`](schema-docs.md#experimentalspanparent) | unknown | | * `local`: unknown
* `none`: unknown
* `remote`: unknown
|
| [`ExperimentalTracerConfig`](schema-docs.md#experimentaltracerconfig) | unknown | | * `enabled`: unknown
|
@@ -305,6 +317,7 @@ Latest supported file format: `1.0.0-rc.3`
| [`View`](schema-docs.md#view) | supported | | * `selector`: supported
* `stream`: supported
|
| [`ViewSelector`](schema-docs.md#viewselector) | supported | | * `instrument_name`: supported
* `instrument_type`: supported
* `meter_name`: supported
* `meter_schema_url`: supported
* `meter_version`: supported
* `unit`: supported
|
| [`ViewStream`](schema-docs.md#viewstream) | supported | | * `aggregation`: supported
* `aggregation_cardinality_limit`: supported
* `attribute_keys`: supported
* `description`: supported
* `name`: supported
|
+| [`ExperimentalCodeInstrumentation`](schema-docs.md#experimentalcodeinstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalComposableAlwaysOffSampler`](schema-docs.md#experimentalcomposablealwaysoffsampler) | supported | | |
| [`ExperimentalComposableAlwaysOnSampler`](schema-docs.md#experimentalcomposablealwaysonsampler) | supported | | |
| [`ExperimentalComposableParentThresholdSampler`](schema-docs.md#experimentalcomposableparentthresholdsampler) | supported | | * `root`: supported
|
@@ -315,10 +328,12 @@ Latest supported file format: `1.0.0-rc.3`
| [`ExperimentalComposableRuleBasedSamplerRuleAttributeValues`](schema-docs.md#experimentalcomposablerulebasedsamplerruleattributevalues) | supported | | * `key`: supported
* `values`: supported
|
| [`ExperimentalComposableSampler`](schema-docs.md#experimentalcomposablesampler) | supported | | * `always_off`: supported
* `always_on`: supported
* `parent_threshold`: supported
* `probability`: supported
* `rule_based`: supported
|
| [`ExperimentalContainerResourceDetector`](schema-docs.md#experimentalcontainerresourcedetector) | supported | | |
-| [`ExperimentalGeneralInstrumentation`](schema-docs.md#experimentalgeneralinstrumentation) | supported | | * `http`: supported
* `sanitization`: supported
|
+| [`ExperimentalDbInstrumentation`](schema-docs.md#experimentaldbinstrumentation) | unknown | | * `semconv`: unknown
|
+| [`ExperimentalGenAiInstrumentation`](schema-docs.md#experimentalgenaiinstrumentation) | unknown | | * `semconv`: unknown
|
+| [`ExperimentalGeneralInstrumentation`](schema-docs.md#experimentalgeneralinstrumentation) | supported | | * `code`: supported
* `db`: supported
* `gen_ai`: supported
* `http`: supported
* `messaging`: supported
* `rpc`: supported
* `sanitization`: supported
* `stability_opt_in_list`: supported
|
| [`ExperimentalHostResourceDetector`](schema-docs.md#experimentalhostresourcedetector) | supported | | |
| [`ExperimentalHttpClientInstrumentation`](schema-docs.md#experimentalhttpclientinstrumentation) | supported | | * `known_methods`: supported
* `request_captured_headers`: supported
* `response_captured_headers`: supported
|
-| [`ExperimentalHttpInstrumentation`](schema-docs.md#experimentalhttpinstrumentation) | supported | | * `client`: supported
* `server`: supported
|
+| [`ExperimentalHttpInstrumentation`](schema-docs.md#experimentalhttpinstrumentation) | supported | | * `client`: supported
* `semconv`: supported
* `server`: supported
|
| [`ExperimentalHttpServerInstrumentation`](schema-docs.md#experimentalhttpserverinstrumentation) | supported | | * `known_methods`: supported
* `request_captured_headers`: supported
* `response_captured_headers`: supported
|
| [`ExperimentalInstrumentation`](schema-docs.md#experimentalinstrumentation) | supported | | * `cpp`: not_applicable
* `dotnet`: not_applicable
* `erlang`: not_applicable
* `general`: supported
* `go`: not_applicable
* `java`: supported
* `js`: not_applicable
* `php`: not_applicable
* `python`: not_applicable
* `ruby`: not_applicable
* `rust`: not_applicable
* `swift`: not_applicable
|
| [`ExperimentalJaegerRemoteSampler`](schema-docs.md#experimentaljaegerremotesampler) | supported | | * `endpoint`: supported
* `initial_sampler`: supported
* `interval`: supported
|
@@ -326,6 +341,7 @@ Latest supported file format: `1.0.0-rc.3`
| [`ExperimentalLoggerConfig`](schema-docs.md#experimentalloggerconfig) | supported | | * `enabled`: supported
* `minimum_severity`: supported
* `trace_based`: supported
|
| [`ExperimentalLoggerConfigurator`](schema-docs.md#experimentalloggerconfigurator) | supported | | * `default_config`: supported
* `loggers`: supported
|
| [`ExperimentalLoggerMatcherAndConfig`](schema-docs.md#experimentalloggermatcherandconfig) | supported | | * `config`: supported
* `name`: supported
|
+| [`ExperimentalMessagingInstrumentation`](schema-docs.md#experimentalmessaginginstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalMeterConfig`](schema-docs.md#experimentalmeterconfig) | supported | | * `enabled`: supported
|
| [`ExperimentalMeterConfigurator`](schema-docs.md#experimentalmeterconfigurator) | supported | | * `default_config`: supported
* `meters`: supported
|
| [`ExperimentalMeterMatcherAndConfig`](schema-docs.md#experimentalmetermatcherandconfig) | supported | | * `config`: supported
* `name`: supported
|
@@ -337,7 +353,9 @@ Latest supported file format: `1.0.0-rc.3`
| [`ExperimentalPrometheusTranslationStrategy`](schema-docs.md#experimentalprometheustranslationstrategy) | not_implemented | | * `no_translation`: not_implemented
* `no_utf8_escaping_with_suffixes`: not_implemented
* `underscore_escaping_with_suffixes`: not_implemented
* `underscore_escaping_without_suffixes`: not_implemented
|
| [`ExperimentalResourceDetection`](schema-docs.md#experimentalresourcedetection) | supported | | * `attributes`: supported
* `detectors`: supported
|
| [`ExperimentalResourceDetector`](schema-docs.md#experimentalresourcedetector) | supported | | * `container`: supported
* `host`: supported
* `process`: supported
* `service`: supported
|
+| [`ExperimentalRpcInstrumentation`](schema-docs.md#experimentalrpcinstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalSanitization`](schema-docs.md#experimentalsanitization) | unknown | | * `url`: unknown
|
+| [`ExperimentalSemconvConfig`](schema-docs.md#experimentalsemconvconfig) | unknown | | * `dual_emit`: unknown
* `experimental`: unknown
* `version`: unknown
|
| [`ExperimentalServiceResourceDetector`](schema-docs.md#experimentalserviceresourcedetector) | supported | | |
| [`ExperimentalSpanParent`](schema-docs.md#experimentalspanparent) | supported | | * `local`: supported
* `none`: supported
* `remote`: supported
|
| [`ExperimentalTracerConfig`](schema-docs.md#experimentaltracerconfig) | supported | | * `enabled`: supported
|
@@ -417,6 +435,7 @@ Latest supported file format: `1.0.0-rc.3`
| [`View`](schema-docs.md#view) | unknown | | * `selector`: unknown
* `stream`: unknown
|
| [`ViewSelector`](schema-docs.md#viewselector) | unknown | | * `instrument_name`: unknown
* `instrument_type`: unknown
* `meter_name`: unknown
* `meter_schema_url`: unknown
* `meter_version`: unknown
* `unit`: unknown
|
| [`ViewStream`](schema-docs.md#viewstream) | unknown | | * `aggregation`: unknown
* `aggregation_cardinality_limit`: unknown
* `attribute_keys`: unknown
* `description`: unknown
* `name`: unknown
|
+| [`ExperimentalCodeInstrumentation`](schema-docs.md#experimentalcodeinstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalComposableAlwaysOffSampler`](schema-docs.md#experimentalcomposablealwaysoffsampler) | unknown | | |
| [`ExperimentalComposableAlwaysOnSampler`](schema-docs.md#experimentalcomposablealwaysonsampler) | unknown | | |
| [`ExperimentalComposableParentThresholdSampler`](schema-docs.md#experimentalcomposableparentthresholdsampler) | unknown | | * `root`: unknown
|
@@ -427,10 +446,12 @@ Latest supported file format: `1.0.0-rc.3`
| [`ExperimentalComposableRuleBasedSamplerRuleAttributeValues`](schema-docs.md#experimentalcomposablerulebasedsamplerruleattributevalues) | unknown | | * `key`: unknown
* `values`: unknown
|
| [`ExperimentalComposableSampler`](schema-docs.md#experimentalcomposablesampler) | unknown | | * `always_off`: unknown
* `always_on`: unknown
* `parent_threshold`: unknown
* `probability`: unknown
* `rule_based`: unknown
|
| [`ExperimentalContainerResourceDetector`](schema-docs.md#experimentalcontainerresourcedetector) | unknown | | |
-| [`ExperimentalGeneralInstrumentation`](schema-docs.md#experimentalgeneralinstrumentation) | unknown | | * `http`: unknown
* `sanitization`: unknown
|
+| [`ExperimentalDbInstrumentation`](schema-docs.md#experimentaldbinstrumentation) | unknown | | * `semconv`: unknown
|
+| [`ExperimentalGenAiInstrumentation`](schema-docs.md#experimentalgenaiinstrumentation) | unknown | | * `semconv`: unknown
|
+| [`ExperimentalGeneralInstrumentation`](schema-docs.md#experimentalgeneralinstrumentation) | unknown | | * `code`: unknown
* `db`: unknown
* `gen_ai`: unknown
* `http`: unknown
* `messaging`: unknown
* `rpc`: unknown
* `sanitization`: unknown
* `stability_opt_in_list`: unknown
|
| [`ExperimentalHostResourceDetector`](schema-docs.md#experimentalhostresourcedetector) | unknown | | |
| [`ExperimentalHttpClientInstrumentation`](schema-docs.md#experimentalhttpclientinstrumentation) | unknown | | * `known_methods`: unknown
* `request_captured_headers`: unknown
* `response_captured_headers`: unknown
|
-| [`ExperimentalHttpInstrumentation`](schema-docs.md#experimentalhttpinstrumentation) | unknown | | * `client`: unknown
* `server`: unknown
|
+| [`ExperimentalHttpInstrumentation`](schema-docs.md#experimentalhttpinstrumentation) | unknown | | * `client`: unknown
* `semconv`: unknown
* `server`: unknown
|
| [`ExperimentalHttpServerInstrumentation`](schema-docs.md#experimentalhttpserverinstrumentation) | unknown | | * `known_methods`: unknown
* `request_captured_headers`: unknown
* `response_captured_headers`: unknown
|
| [`ExperimentalInstrumentation`](schema-docs.md#experimentalinstrumentation) | unknown | | * `cpp`: unknown
* `dotnet`: unknown
* `erlang`: unknown
* `general`: unknown
* `go`: unknown
* `java`: unknown
* `js`: unknown
* `php`: unknown
* `python`: unknown
* `ruby`: unknown
* `rust`: unknown
* `swift`: unknown
|
| [`ExperimentalJaegerRemoteSampler`](schema-docs.md#experimentaljaegerremotesampler) | unknown | | * `endpoint`: unknown
* `initial_sampler`: unknown
* `interval`: unknown
|
@@ -438,6 +459,7 @@ Latest supported file format: `1.0.0-rc.3`
| [`ExperimentalLoggerConfig`](schema-docs.md#experimentalloggerconfig) | unknown | | * `enabled`: unknown
* `minimum_severity`: unknown
* `trace_based`: unknown
|
| [`ExperimentalLoggerConfigurator`](schema-docs.md#experimentalloggerconfigurator) | unknown | | * `default_config`: unknown
* `loggers`: unknown
|
| [`ExperimentalLoggerMatcherAndConfig`](schema-docs.md#experimentalloggermatcherandconfig) | unknown | | * `config`: unknown
* `name`: unknown
|
+| [`ExperimentalMessagingInstrumentation`](schema-docs.md#experimentalmessaginginstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalMeterConfig`](schema-docs.md#experimentalmeterconfig) | unknown | | * `enabled`: unknown
|
| [`ExperimentalMeterConfigurator`](schema-docs.md#experimentalmeterconfigurator) | unknown | | * `default_config`: unknown
* `meters`: unknown
|
| [`ExperimentalMeterMatcherAndConfig`](schema-docs.md#experimentalmetermatcherandconfig) | unknown | | * `config`: unknown
* `name`: unknown
|
@@ -449,7 +471,9 @@ Latest supported file format: `1.0.0-rc.3`
| [`ExperimentalPrometheusTranslationStrategy`](schema-docs.md#experimentalprometheustranslationstrategy) | unknown | | * `no_translation`: unknown
* `no_utf8_escaping_with_suffixes`: unknown
* `underscore_escaping_with_suffixes`: unknown
* `underscore_escaping_without_suffixes`: unknown
|
| [`ExperimentalResourceDetection`](schema-docs.md#experimentalresourcedetection) | unknown | | * `attributes`: unknown
* `detectors`: unknown
|
| [`ExperimentalResourceDetector`](schema-docs.md#experimentalresourcedetector) | unknown | | * `container`: unknown
* `host`: unknown
* `process`: unknown
* `service`: unknown
|
+| [`ExperimentalRpcInstrumentation`](schema-docs.md#experimentalrpcinstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalSanitization`](schema-docs.md#experimentalsanitization) | unknown | | * `url`: unknown
|
+| [`ExperimentalSemconvConfig`](schema-docs.md#experimentalsemconvconfig) | unknown | | * `dual_emit`: unknown
* `experimental`: unknown
* `version`: unknown
|
| [`ExperimentalServiceResourceDetector`](schema-docs.md#experimentalserviceresourcedetector) | unknown | | |
| [`ExperimentalSpanParent`](schema-docs.md#experimentalspanparent) | unknown | | * `local`: unknown
* `none`: unknown
* `remote`: unknown
|
| [`ExperimentalTracerConfig`](schema-docs.md#experimentaltracerconfig) | unknown | | * `enabled`: unknown
|
@@ -529,6 +553,7 @@ Latest supported file format: `1.0.0-rc.2`
| [`View`](schema-docs.md#view) | supported | | * `selector`: supported
* `stream`: supported
|
| [`ViewSelector`](schema-docs.md#viewselector) | supported | | * `instrument_name`: supported
* `instrument_type`: supported
* `meter_name`: supported
* `meter_schema_url`: supported
* `meter_version`: supported
* `unit`: not_implemented
|
| [`ViewStream`](schema-docs.md#viewstream) | supported | `attribute_keys.excluded` is not implemented, only `attribute_keys.included` is supported. | * `aggregation`: ignored
* `aggregation_cardinality_limit`: not_implemented
* `attribute_keys`: supported
* `description`: supported
* `name`: supported
|
+| [`ExperimentalCodeInstrumentation`](schema-docs.md#experimentalcodeinstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalComposableAlwaysOffSampler`](schema-docs.md#experimentalcomposablealwaysoffsampler) | not_implemented | | |
| [`ExperimentalComposableAlwaysOnSampler`](schema-docs.md#experimentalcomposablealwaysonsampler) | not_implemented | | |
| [`ExperimentalComposableParentThresholdSampler`](schema-docs.md#experimentalcomposableparentthresholdsampler) | not_implemented | | * `root`: not_implemented
|
@@ -539,10 +564,12 @@ Latest supported file format: `1.0.0-rc.2`
| [`ExperimentalComposableRuleBasedSamplerRuleAttributeValues`](schema-docs.md#experimentalcomposablerulebasedsamplerruleattributevalues) | not_implemented | | * `key`: not_implemented
* `values`: not_implemented
|
| [`ExperimentalComposableSampler`](schema-docs.md#experimentalcomposablesampler) | not_implemented | | * `always_off`: not_implemented
* `always_on`: not_implemented
* `parent_threshold`: not_implemented
* `probability`: not_implemented
* `rule_based`: not_implemented
|
| [`ExperimentalContainerResourceDetector`](schema-docs.md#experimentalcontainerresourcedetector) | ignored | | |
-| [`ExperimentalGeneralInstrumentation`](schema-docs.md#experimentalgeneralinstrumentation) | supported | | * `http`: supported
* `sanitization`: supported
|
+| [`ExperimentalDbInstrumentation`](schema-docs.md#experimentaldbinstrumentation) | unknown | | * `semconv`: unknown
|
+| [`ExperimentalGenAiInstrumentation`](schema-docs.md#experimentalgenaiinstrumentation) | unknown | | * `semconv`: unknown
|
+| [`ExperimentalGeneralInstrumentation`](schema-docs.md#experimentalgeneralinstrumentation) | supported | | * `code`: supported
* `db`: supported
* `gen_ai`: supported
* `http`: supported
* `messaging`: supported
* `rpc`: supported
* `sanitization`: supported
* `stability_opt_in_list`: supported
|
| [`ExperimentalHostResourceDetector`](schema-docs.md#experimentalhostresourcedetector) | supported | | |
| [`ExperimentalHttpClientInstrumentation`](schema-docs.md#experimentalhttpclientinstrumentation) | supported | | * `known_methods`: supported
* `request_captured_headers`: supported
* `response_captured_headers`: supported
|
-| [`ExperimentalHttpInstrumentation`](schema-docs.md#experimentalhttpinstrumentation) | supported | | * `client`: supported
* `server`: supported
|
+| [`ExperimentalHttpInstrumentation`](schema-docs.md#experimentalhttpinstrumentation) | supported | | * `client`: supported
* `semconv`: supported
* `server`: supported
|
| [`ExperimentalHttpServerInstrumentation`](schema-docs.md#experimentalhttpserverinstrumentation) | supported | | * `known_methods`: supported
* `request_captured_headers`: supported
* `response_captured_headers`: supported
|
| [`ExperimentalInstrumentation`](schema-docs.md#experimentalinstrumentation) | supported | | * `cpp`: not_applicable
* `dotnet`: not_applicable
* `erlang`: not_applicable
* `general`: supported
* `go`: not_applicable
* `java`: not_applicable
* `js`: not_applicable
* `php`: supported
* `python`: not_applicable
* `ruby`: not_applicable
* `rust`: not_applicable
* `swift`: not_applicable
|
| [`ExperimentalJaegerRemoteSampler`](schema-docs.md#experimentaljaegerremotesampler) | not_implemented | | * `endpoint`: not_implemented
* `initial_sampler`: not_implemented
* `interval`: not_implemented
|
@@ -550,6 +577,7 @@ Latest supported file format: `1.0.0-rc.2`
| [`ExperimentalLoggerConfig`](schema-docs.md#experimentalloggerconfig) | supported | | * `enabled`: supported
* `minimum_severity`: not_implemented
* `trace_based`: not_implemented
|
| [`ExperimentalLoggerConfigurator`](schema-docs.md#experimentalloggerconfigurator) | supported | | * `default_config`: supported
* `loggers`: supported
|
| [`ExperimentalLoggerMatcherAndConfig`](schema-docs.md#experimentalloggermatcherandconfig) | supported | | * `config`: supported
* `name`: supported
|
+| [`ExperimentalMessagingInstrumentation`](schema-docs.md#experimentalmessaginginstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalMeterConfig`](schema-docs.md#experimentalmeterconfig) | supported | | * `enabled`: supported
|
| [`ExperimentalMeterConfigurator`](schema-docs.md#experimentalmeterconfigurator) | supported | | * `default_config`: supported
* `meters`: supported
|
| [`ExperimentalMeterMatcherAndConfig`](schema-docs.md#experimentalmetermatcherandconfig) | supported | | * `config`: supported
* `name`: supported
|
@@ -561,7 +589,9 @@ Latest supported file format: `1.0.0-rc.2`
| [`ExperimentalPrometheusTranslationStrategy`](schema-docs.md#experimentalprometheustranslationstrategy) | not_implemented | | * `no_translation`: not_implemented
* `no_utf8_escaping_with_suffixes`: not_implemented
* `underscore_escaping_with_suffixes`: not_implemented
* `underscore_escaping_without_suffixes`: not_implemented
|
| [`ExperimentalResourceDetection`](schema-docs.md#experimentalresourcedetection) | supported | | * `attributes`: supported
* `detectors`: supported
|
| [`ExperimentalResourceDetector`](schema-docs.md#experimentalresourcedetector) | supported | | * `container`: ignored
* `host`: supported
* `process`: supported
* `service`: supported
|
+| [`ExperimentalRpcInstrumentation`](schema-docs.md#experimentalrpcinstrumentation) | unknown | | * `semconv`: unknown
|
| [`ExperimentalSanitization`](schema-docs.md#experimentalsanitization) | unknown | | * `url`: unknown
|
+| [`ExperimentalSemconvConfig`](schema-docs.md#experimentalsemconvconfig) | unknown | | * `dual_emit`: unknown
* `experimental`: unknown
* `version`: unknown
|
| [`ExperimentalServiceResourceDetector`](schema-docs.md#experimentalserviceresourcedetector) | supported | | |
| [`ExperimentalSpanParent`](schema-docs.md#experimentalspanparent) | not_implemented | | * `local`: not_implemented
* `none`: not_implemented
* `remote`: not_implemented
|
| [`ExperimentalTracerConfig`](schema-docs.md#experimentaltracerconfig) | supported | | * `enabled`: supported
|
diff --git a/opentelemetry_configuration.json b/opentelemetry_configuration.json
index 533ea2fa..87b6a1d5 100644
--- a/opentelemetry_configuration.json
+++ b/opentelemetry_configuration.json
@@ -466,6 +466,16 @@
"trace_based"
]
},
+ "ExperimentalCodeInstrumentation": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "semconv": {
+ "$ref": "#/$defs/ExperimentalSemconvConfig",
+ "description": "Configure code semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
+ }
+ }
+ },
"ExperimentalComposableAlwaysOffSampler": {
"type": [
"object",
@@ -659,6 +669,26 @@
],
"additionalProperties": false
},
+ "ExperimentalDbInstrumentation": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "semconv": {
+ "$ref": "#/$defs/ExperimentalSemconvConfig",
+ "description": "Configure database semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee database migration: https://opentelemetry.io/docs/specs/semconv/database/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
+ }
+ }
+ },
+ "ExperimentalGenAiInstrumentation": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "semconv": {
+ "$ref": "#/$defs/ExperimentalSemconvConfig",
+ "description": "Configure GenAI semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSet .experimental to true to enable latest experimental mode.\n\nSee GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
+ }
+ }
+ },
"ExperimentalGeneralInstrumentation": {
"type": "object",
"additionalProperties": false,
@@ -667,9 +697,36 @@
"$ref": "#/$defs/ExperimentalHttpInstrumentation",
"description": "Configure instrumentations following the http semantic conventions.\nSee http semantic conventions: https://opentelemetry.io/docs/specs/semconv/http/\nIf omitted, defaults as described in ExperimentalHttpInstrumentation are used.\n"
},
+ "code": {
+ "$ref": "#/$defs/ExperimentalCodeInstrumentation",
+ "description": "Configure instrumentations following the code semantic conventions.\nSee code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/\nIf omitted, defaults as described in ExperimentalCodeInstrumentation are used.\n"
+ },
+ "db": {
+ "$ref": "#/$defs/ExperimentalDbInstrumentation",
+ "description": "Configure instrumentations following the database semantic conventions.\nSee database semantic conventions: https://opentelemetry.io/docs/specs/semconv/database/\nIf omitted, defaults as described in ExperimentalDbInstrumentation are used.\n"
+ },
+ "gen_ai": {
+ "$ref": "#/$defs/ExperimentalGenAiInstrumentation",
+ "description": "Configure instrumentations following the GenAI semantic conventions.\nSee GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/\nIf omitted, defaults as described in ExperimentalGenAiInstrumentation are used.\n"
+ },
+ "messaging": {
+ "$ref": "#/$defs/ExperimentalMessagingInstrumentation",
+ "description": "Configure instrumentations following the messaging semantic conventions.\nSee messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/\nIf omitted, defaults as described in ExperimentalMessagingInstrumentation are used.\n"
+ },
+ "rpc": {
+ "$ref": "#/$defs/ExperimentalRpcInstrumentation",
+ "description": "Configure instrumentations following the RPC semantic conventions.\nSee RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/\nIf omitted, defaults as described in ExperimentalRpcInstrumentation are used.\n"
+ },
"sanitization": {
"$ref": "#/$defs/ExperimentalSanitization",
"description": "Configure general sanitization options.\nIf omitted, defaults as described in ExperimentalSanitization are used.\n"
+ },
+ "stability_opt_in_list": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Configure semantic convention stability opt-in as a comma-separated list.\nThis property follows the format and semantics of the OTEL_SEMCONV_STABILITY_OPT_IN environment variable.\nControls the emission of stable vs. experimental semantic conventions for instrumentation.\nThis setting is only intended for migrating from experimental to stable semantic conventions.\n\nKnown values include:\n- http: Emit stable HTTP and networking conventions only\n- http/dup: Emit both old and stable HTTP and networking conventions (for phased migration)\n- database: Emit stable database conventions only\n- database/dup: Emit both old and stable database conventions (for phased migration)\n- rpc: Emit stable RPC conventions only\n- rpc/dup: Emit both experimental and stable RPC conventions (for phased migration)\n- messaging: Emit stable messaging conventions only\n- messaging/dup: Emit both old and stable messaging conventions (for phased migration)\n- code: Emit stable code conventions only\n- code/dup: Emit both old and stable code conventions (for phased migration)\n\nMultiple values can be specified as a comma-separated list (e.g., \"http,database/dup\").\nAdditional signal types may be supported in future versions.\n\nDomain-specific semconv properties (e.g., .instrumentation/development.general.db.semconv) take precedence over this general setting.\n\nSee:\n- HTTP migration: https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n- Database migration: https://opentelemetry.io/docs/specs/semconv/database/\n- RPC: https://opentelemetry.io/docs/specs/semconv/rpc/\n- Messaging: https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/\nIf omitted or null, no opt-in is configured and instrumentations continue emitting their default semantic convention version.\n"
}
}
},
@@ -714,6 +771,10 @@
"type": "object",
"additionalProperties": false,
"properties": {
+ "semconv": {
+ "$ref": "#/$defs/ExperimentalSemconvConfig",
+ "description": "Configure HTTP semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee HTTP migration: https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
+ },
"client": {
"$ref": "#/$defs/ExperimentalHttpClientInstrumentation",
"description": "Configure instrumentations following the http client semantic conventions.\nIf omitted, defaults as described in ExperimentalHttpClientInstrumentation are used.\n"
@@ -913,6 +974,16 @@
"config"
]
},
+ "ExperimentalMessagingInstrumentation": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "semconv": {
+ "$ref": "#/$defs/ExperimentalSemconvConfig",
+ "description": "Configure messaging semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
+ }
+ }
+ },
"ExperimentalMeterConfig": {
"type": [
"object"
@@ -1138,6 +1209,16 @@
}
}
},
+ "ExperimentalRpcInstrumentation": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "semconv": {
+ "$ref": "#/$defs/ExperimentalSemconvConfig",
+ "description": "Configure RPC semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
+ }
+ }
+ },
"ExperimentalSanitization": {
"type": "object",
"additionalProperties": false,
@@ -1148,6 +1229,34 @@
}
}
},
+ "ExperimentalSemconvConfig": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "version": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "description": "The target semantic convention version for this domain (e.g., 1).\nIf omitted or null, the latest stable version is used, or if no stable version is available and .experimental is true then the latest experimental version is used.\n"
+ },
+ "experimental": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "description": "Use latest experimental semantic conventions (before stable is available or to enable experimental features on top of stable conventions).\nIf omitted or null, false is used.\n"
+ },
+ "dual_emit": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "description": "When true, also emit the previous major version alongside the target version.\nFor version=1, the previous version refers to the pre-stable conventions that the instrumentation emitted before the first stable semantic convention version was defined.\nFor version=2 and above, the previous version is the prior stable major version (e.g., version=2, dual_emit=true emits both v2 and v1).\nEnables dual-emit for phased migration between versions.\nIf omitted or null, false is used.\n"
+ }
+ }
+ },
"ExperimentalServiceResourceDetector": {
"type": [
"object",
diff --git a/schema-docs.md b/schema-docs.md
index 8f324485..a0cc091c 100644
--- a/schema-docs.md
+++ b/schema-docs.md
@@ -4324,6 +4324,49 @@ No snippets.
# Experimental Types
+## ExperimentalCodeInstrumentation
+
+> [!WARNING]
+> This type is [experimental](VERSIONING.md#experimental-features).
+
+| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
+|---|---|---|---|---|---|
+| `semconv` | [`ExperimentalSemconvConfig`](#experimentalsemconvconfig) | `false` | If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. | No constraints. | Configure code semantic convention version and migration behavior.
This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.
See code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/
|
+
+
+Language support status
+
+| Property | [cpp](language-support-status.md#cpp) | [go](language-support-status.md#go) | [java](language-support-status.md#java) | [js](language-support-status.md#js) | [php](language-support-status.md#php) |
+|---|---|---|---|---|---|
+| `semconv` | unknown | unknown | unknown | unknown | unknown |
+
+
+Constraints:
+
+* `additionalProperties`: `false`
+
+Usages:
+
+* [`ExperimentalGeneralInstrumentation.code`](#experimentalgeneralinstrumentation)
+
+No snippets.
+
+
+JSON Schema
+
+[JSON Schema Source File](./schema/instrumentation.yaml)
+{
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "semconv": {
+ "$ref": "#/$defs/ExperimentalSemconvConfig",
+ "description": "Configure code semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
+ }
+ }
+}
+
+
## ExperimentalComposableAlwaysOffSampler
> [!WARNING]
@@ -4847,6 +4890,92 @@ No snippets.
}
+## ExperimentalDbInstrumentation
+
+> [!WARNING]
+> This type is [experimental](VERSIONING.md#experimental-features).
+
+| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
+|---|---|---|---|---|---|
+| `semconv` | [`ExperimentalSemconvConfig`](#experimentalsemconvconfig) | `false` | If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. | No constraints. | Configure database semantic convention version and migration behavior.
This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.
See database migration: https://opentelemetry.io/docs/specs/semconv/database/
|
+
+
+Language support status
+
+| Property | [cpp](language-support-status.md#cpp) | [go](language-support-status.md#go) | [java](language-support-status.md#java) | [js](language-support-status.md#js) | [php](language-support-status.md#php) |
+|---|---|---|---|---|---|
+| `semconv` | unknown | unknown | unknown | unknown | unknown |
+
+
+Constraints:
+
+* `additionalProperties`: `false`
+
+Usages:
+
+* [`ExperimentalGeneralInstrumentation.db`](#experimentalgeneralinstrumentation)
+
+No snippets.
+
+
+JSON Schema
+
+[JSON Schema Source File](./schema/instrumentation.yaml)
+{
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "semconv": {
+ "$ref": "#/$defs/ExperimentalSemconvConfig",
+ "description": "Configure database semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee database migration: https://opentelemetry.io/docs/specs/semconv/database/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
+ }
+ }
+}
+
+
+## ExperimentalGenAiInstrumentation
+
+> [!WARNING]
+> This type is [experimental](VERSIONING.md#experimental-features).
+
+| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
+|---|---|---|---|---|---|
+| `semconv` | [`ExperimentalSemconvConfig`](#experimentalsemconvconfig) | `false` | If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. | No constraints. | Configure GenAI semantic convention version and migration behavior.
This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.
Set .experimental to true to enable latest experimental mode.
See GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/
|
+
+
+Language support status
+
+| Property | [cpp](language-support-status.md#cpp) | [go](language-support-status.md#go) | [java](language-support-status.md#java) | [js](language-support-status.md#js) | [php](language-support-status.md#php) |
+|---|---|---|---|---|---|
+| `semconv` | unknown | unknown | unknown | unknown | unknown |
+
+
+Constraints:
+
+* `additionalProperties`: `false`
+
+Usages:
+
+* [`ExperimentalGeneralInstrumentation.gen_ai`](#experimentalgeneralinstrumentation)
+
+No snippets.
+
+
+JSON Schema
+
+[JSON Schema Source File](./schema/instrumentation.yaml)
+{
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "semconv": {
+ "$ref": "#/$defs/ExperimentalSemconvConfig",
+ "description": "Configure GenAI semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSet .experimental to true to enable latest experimental mode.\n\nSee GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
+ }
+ }
+}
+
+
## ExperimentalGeneralInstrumentation
> [!WARNING]
@@ -4854,16 +4983,28 @@ No snippets.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
+| `code` | [`ExperimentalCodeInstrumentation`](#experimentalcodeinstrumentation) | `false` | If omitted, defaults as described in ExperimentalCodeInstrumentation are used. | No constraints. | Configure instrumentations following the code semantic conventions.
See code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/
|
+| `db` | [`ExperimentalDbInstrumentation`](#experimentaldbinstrumentation) | `false` | If omitted, defaults as described in ExperimentalDbInstrumentation are used. | No constraints. | Configure instrumentations following the database semantic conventions.
See database semantic conventions: https://opentelemetry.io/docs/specs/semconv/database/
|
+| `gen_ai` | [`ExperimentalGenAiInstrumentation`](#experimentalgenaiinstrumentation) | `false` | If omitted, defaults as described in ExperimentalGenAiInstrumentation are used. | No constraints. | Configure instrumentations following the GenAI semantic conventions.
See GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/
|
| `http` | [`ExperimentalHttpInstrumentation`](#experimentalhttpinstrumentation) | `false` | If omitted, defaults as described in ExperimentalHttpInstrumentation are used. | No constraints. | Configure instrumentations following the http semantic conventions.
See http semantic conventions: https://opentelemetry.io/docs/specs/semconv/http/
|
+| `messaging` | [`ExperimentalMessagingInstrumentation`](#experimentalmessaginginstrumentation) | `false` | If omitted, defaults as described in ExperimentalMessagingInstrumentation are used. | No constraints. | Configure instrumentations following the messaging semantic conventions.
See messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/
|
+| `rpc` | [`ExperimentalRpcInstrumentation`](#experimentalrpcinstrumentation) | `false` | If omitted, defaults as described in ExperimentalRpcInstrumentation are used. | No constraints. | Configure instrumentations following the RPC semantic conventions.
See RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/
|
| `sanitization` | [`ExperimentalSanitization`](#experimentalsanitization) | `false` | If omitted, defaults as described in ExperimentalSanitization are used. | No constraints. | Configure general sanitization options.
|
+| `stability_opt_in_list` | one of:
* `string`
* `null`
| `false` | If omitted or null, no opt-in is configured and instrumentations continue emitting their default semantic convention version. | No constraints. | Configure semantic convention stability opt-in as a comma-separated list.
This property follows the format and semantics of the OTEL_SEMCONV_STABILITY_OPT_IN environment variable.
Controls the emission of stable vs. experimental semantic conventions for instrumentation.
This setting is only intended for migrating from experimental to stable semantic conventions.
Known values include:
- http: Emit stable HTTP and networking conventions only
- http/dup: Emit both old and stable HTTP and networking conventions (for phased migration)
- database: Emit stable database conventions only
- database/dup: Emit both old and stable database conventions (for phased migration)
- rpc: Emit stable RPC conventions only
- rpc/dup: Emit both experimental and stable RPC conventions (for phased migration)
- messaging: Emit stable messaging conventions only
- messaging/dup: Emit both old and stable messaging conventions (for phased migration)
- code: Emit stable code conventions only
- code/dup: Emit both old and stable code conventions (for phased migration)
Multiple values can be specified as a comma-separated list (e.g., "http,database/dup").
Additional signal types may be supported in future versions.
Domain-specific semconv properties (e.g., .instrumentation/development.general.db.semconv) take precedence over this general setting.
See:
- HTTP migration: https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/
- Database migration: https://opentelemetry.io/docs/specs/semconv/database/
- RPC: https://opentelemetry.io/docs/specs/semconv/rpc/
- Messaging: https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/
|
Language support status
| Property | [cpp](language-support-status.md#cpp) | [go](language-support-status.md#go) | [java](language-support-status.md#java) | [js](language-support-status.md#js) | [php](language-support-status.md#php) |
|---|---|---|---|---|---|
+| `code` | not_applicable | unknown | supported | unknown | supported |
+| `db` | not_applicable | unknown | supported | unknown | supported |
+| `gen_ai` | not_applicable | unknown | supported | unknown | supported |
| `http` | not_applicable | unknown | supported | unknown | supported |
+| `messaging` | not_applicable | unknown | supported | unknown | supported |
+| `rpc` | not_applicable | unknown | supported | unknown | supported |
| `sanitization` | not_applicable | unknown | supported | unknown | supported |
+| `stability_opt_in_list` | not_applicable | unknown | supported | unknown | supported |
Constraints:
@@ -4874,7 +5015,29 @@ Usages:
* [`ExperimentalInstrumentation.general`](#experimentalinstrumentation)
-No snippets.
+Snippets:
+
+
+Semconv Stability Opt In
+
+[Snippet Source File](./snippets/ExperimentalGeneralInstrumentation_semconv_stability_opt_in.yaml)
+```yaml
+# Configure semantic convention stability opt-in using a comma-separated list
+# This format is compatible with OTEL_SEMCONV_STABILITY_OPT_IN environment variable
+stability_opt_in_list: "http,database/dup"
+
+# Alternatively, configure per-domain semconv settings (takes precedence over stability_opt_in_list)
+http:
+ # Use stable HTTP and networking conventions (latest version)
+ semconv:
+ version: 1
+db:
+ # Use stable database conventions and also emit previous version for phased migration
+ semconv:
+ version: 1
+ dual_emit: true
+```
+
JSON Schema
@@ -4888,9 +5051,36 @@ No snippets.
"$ref": "#/$defs/ExperimentalHttpInstrumentation",
"description": "Configure instrumentations following the http semantic conventions.\nSee http semantic conventions: https://opentelemetry.io/docs/specs/semconv/http/\nIf omitted, defaults as described in ExperimentalHttpInstrumentation are used.\n"
},
+ "code": {
+ "$ref": "#/$defs/ExperimentalCodeInstrumentation",
+ "description": "Configure instrumentations following the code semantic conventions.\nSee code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/\nIf omitted, defaults as described in ExperimentalCodeInstrumentation are used.\n"
+ },
+ "db": {
+ "$ref": "#/$defs/ExperimentalDbInstrumentation",
+ "description": "Configure instrumentations following the database semantic conventions.\nSee database semantic conventions: https://opentelemetry.io/docs/specs/semconv/database/\nIf omitted, defaults as described in ExperimentalDbInstrumentation are used.\n"
+ },
+ "gen_ai": {
+ "$ref": "#/$defs/ExperimentalGenAiInstrumentation",
+ "description": "Configure instrumentations following the GenAI semantic conventions.\nSee GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/\nIf omitted, defaults as described in ExperimentalGenAiInstrumentation are used.\n"
+ },
+ "messaging": {
+ "$ref": "#/$defs/ExperimentalMessagingInstrumentation",
+ "description": "Configure instrumentations following the messaging semantic conventions.\nSee messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/\nIf omitted, defaults as described in ExperimentalMessagingInstrumentation are used.\n"
+ },
+ "rpc": {
+ "$ref": "#/$defs/ExperimentalRpcInstrumentation",
+ "description": "Configure instrumentations following the RPC semantic conventions.\nSee RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/\nIf omitted, defaults as described in ExperimentalRpcInstrumentation are used.\n"
+ },
"sanitization": {
"$ref": "#/$defs/ExperimentalSanitization",
"description": "Configure general sanitization options.\nIf omitted, defaults as described in ExperimentalSanitization are used.\n"
+ },
+ "stability_opt_in_list": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Configure semantic convention stability opt-in as a comma-separated list.\nThis property follows the format and semantics of the OTEL_SEMCONV_STABILITY_OPT_IN environment variable.\nControls the emission of stable vs. experimental semantic conventions for instrumentation.\nThis setting is only intended for migrating from experimental to stable semantic conventions.\n\nKnown values include:\n- http: Emit stable HTTP and networking conventions only\n- http/dup: Emit both old and stable HTTP and networking conventions (for phased migration)\n- database: Emit stable database conventions only\n- database/dup: Emit both old and stable database conventions (for phased migration)\n- rpc: Emit stable RPC conventions only\n- rpc/dup: Emit both experimental and stable RPC conventions (for phased migration)\n- messaging: Emit stable messaging conventions only\n- messaging/dup: Emit both old and stable messaging conventions (for phased migration)\n- code: Emit stable code conventions only\n- code/dup: Emit both old and stable code conventions (for phased migration)\n\nMultiple values can be specified as a comma-separated list (e.g., \"http,database/dup\").\nAdditional signal types may be supported in future versions.\n\nDomain-specific semconv properties (e.g., .instrumentation/development.general.db.semconv) take precedence over this general setting.\n\nSee:\n- HTTP migration: https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n- Database migration: https://opentelemetry.io/docs/specs/semconv/database/\n- RPC: https://opentelemetry.io/docs/specs/semconv/rpc/\n- Messaging: https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/\nIf omitted or null, no opt-in is configured and instrumentations continue emitting their default semantic convention version.\n"
}
}
}
@@ -5001,6 +5191,7 @@ No snippets.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
| `client` | [`ExperimentalHttpClientInstrumentation`](#experimentalhttpclientinstrumentation) | `false` | If omitted, defaults as described in ExperimentalHttpClientInstrumentation are used. | No constraints. | Configure instrumentations following the http client semantic conventions. |
+| `semconv` | [`ExperimentalSemconvConfig`](#experimentalsemconvconfig) | `false` | If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. | No constraints. | Configure HTTP semantic convention version and migration behavior.
This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.
See HTTP migration: https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/
|
| `server` | [`ExperimentalHttpServerInstrumentation`](#experimentalhttpserverinstrumentation) | `false` | If omitted, defaults as described in ExperimentalHttpServerInstrumentation are used. | No constraints. | Configure instrumentations following the http server semantic conventions. |
@@ -5009,6 +5200,7 @@ No snippets.
| Property | [cpp](language-support-status.md#cpp) | [go](language-support-status.md#go) | [java](language-support-status.md#java) | [js](language-support-status.md#js) | [php](language-support-status.md#php) |
|---|---|---|---|---|---|
| `client` | not_applicable | unknown | supported | unknown | supported |
+| `semconv` | not_applicable | unknown | supported | unknown | supported |
| `server` | not_applicable | unknown | supported | unknown | supported |
@@ -5030,6 +5222,10 @@ No snippets.
"type": "object",
"additionalProperties": false,
"properties": {
+ "semconv": {
+ "$ref": "#/$defs/ExperimentalSemconvConfig",
+ "description": "Configure HTTP semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee HTTP migration: https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
+ },
"client": {
"$ref": "#/$defs/ExperimentalHttpClientInstrumentation",
"description": "Configure instrumentations following the http client semantic conventions.\nIf omitted, defaults as described in ExperimentalHttpClientInstrumentation are used.\n"
@@ -5165,6 +5361,10 @@ Snippets:
```yaml
general:
http:
+ semconv:
+ version: 1
+ experimental: true
+ dual_emit: true
client:
request_captured_headers:
- Content-Type
@@ -5199,6 +5399,21 @@ general:
- POST
- PUT
- TRACE
+ db:
+ semconv:
+ version: 1
+ experimental: false
+ dual_emit: false
+ rpc:
+ semconv:
+ version: 1
+ experimental: false
+ dual_emit: true
+ messaging:
+ semconv:
+ version: 1
+ experimental: true
+ dual_emit: false
sanitization:
url:
sensitive_query_parameters:
@@ -5206,6 +5421,8 @@ general:
- Signature
- sig
- X-Goog-Signature
+ # Domain-specific semconv sections above (http, db, etc.) take precedence over this general setting.
+ stability_opt_in_list: "http/dup,database"
cpp:
example:
property: "value"
@@ -5603,6 +5820,49 @@ No snippets.
}
+## ExperimentalMessagingInstrumentation
+
+> [!WARNING]
+> This type is [experimental](VERSIONING.md#experimental-features).
+
+| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
+|---|---|---|---|---|---|
+| `semconv` | [`ExperimentalSemconvConfig`](#experimentalsemconvconfig) | `false` | If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. | No constraints. | Configure messaging semantic convention version and migration behavior.
This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.
See messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/
|
+
+
+Language support status
+
+| Property | [cpp](language-support-status.md#cpp) | [go](language-support-status.md#go) | [java](language-support-status.md#java) | [js](language-support-status.md#js) | [php](language-support-status.md#php) |
+|---|---|---|---|---|---|
+| `semconv` | unknown | unknown | unknown | unknown | unknown |
+
+
+Constraints:
+
+* `additionalProperties`: `false`
+
+Usages:
+
+* [`ExperimentalGeneralInstrumentation.messaging`](#experimentalgeneralinstrumentation)
+
+No snippets.
+
+
+JSON Schema
+
+[JSON Schema Source File](./schema/instrumentation.yaml)
+{
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "semconv": {
+ "$ref": "#/$defs/ExperimentalSemconvConfig",
+ "description": "Configure messaging semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
+ }
+ }
+}
+
+
## ExperimentalMeterConfig
> [!WARNING]
@@ -6310,6 +6570,49 @@ No snippets.
}
+## ExperimentalRpcInstrumentation
+
+> [!WARNING]
+> This type is [experimental](VERSIONING.md#experimental-features).
+
+| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
+|---|---|---|---|---|---|
+| `semconv` | [`ExperimentalSemconvConfig`](#experimentalsemconvconfig) | `false` | If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. | No constraints. | Configure RPC semantic convention version and migration behavior.
This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.
See RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/
|
+
+
+Language support status
+
+| Property | [cpp](language-support-status.md#cpp) | [go](language-support-status.md#go) | [java](language-support-status.md#java) | [js](language-support-status.md#js) | [php](language-support-status.md#php) |
+|---|---|---|---|---|---|
+| `semconv` | unknown | unknown | unknown | unknown | unknown |
+
+
+Constraints:
+
+* `additionalProperties`: `false`
+
+Usages:
+
+* [`ExperimentalGeneralInstrumentation.rpc`](#experimentalgeneralinstrumentation)
+
+No snippets.
+
+
+JSON Schema
+
+[JSON Schema Source File](./schema/instrumentation.yaml)
+{
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "semconv": {
+ "$ref": "#/$defs/ExperimentalSemconvConfig",
+ "description": "Configure RPC semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
+ }
+ }
+}
+
+
## ExperimentalSanitization
> [!WARNING]
@@ -6353,6 +6656,76 @@ No snippets.
}
+## ExperimentalSemconvConfig
+
+> [!WARNING]
+> This type is [experimental](VERSIONING.md#experimental-features).
+
+| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
+|---|---|---|---|---|---|
+| `dual_emit` | one of:
* `boolean`
* `null`
| `false` | If omitted or null, false is used. | No constraints. | When true, also emit the previous major version alongside the target version.
For version=1, the previous version refers to the pre-stable conventions that the instrumentation emitted before the first stable semantic convention version was defined.
For version=2 and above, the previous version is the prior stable major version (e.g., version=2, dual_emit=true emits both v2 and v1).
Enables dual-emit for phased migration between versions.
|
+| `experimental` | one of:
* `boolean`
* `null`
| `false` | If omitted or null, false is used. | No constraints. | Use latest experimental semantic conventions (before stable is available or to enable experimental features on top of stable conventions).
|
+| `version` | one of:
* `integer`
* `null`
| `false` | If omitted or null, the latest stable version is used, or if no stable version is available and .experimental is true then the latest experimental version is used. | * `minimum`: `0`
| The target semantic convention version for this domain (e.g., 1).
|
+
+
+Language support status
+
+| Property | [cpp](language-support-status.md#cpp) | [go](language-support-status.md#go) | [java](language-support-status.md#java) | [js](language-support-status.md#js) | [php](language-support-status.md#php) |
+|---|---|---|---|---|---|
+| `dual_emit` | unknown | unknown | unknown | unknown | unknown |
+| `experimental` | unknown | unknown | unknown | unknown | unknown |
+| `version` | unknown | unknown | unknown | unknown | unknown |
+
+
+Constraints:
+
+* `additionalProperties`: `false`
+
+Usages:
+
+* [`ExperimentalHttpInstrumentation.semconv`](#experimentalhttpinstrumentation)
+* [`ExperimentalCodeInstrumentation.semconv`](#experimentalcodeinstrumentation)
+* [`ExperimentalDbInstrumentation.semconv`](#experimentaldbinstrumentation)
+* [`ExperimentalGenAiInstrumentation.semconv`](#experimentalgenaiinstrumentation)
+* [`ExperimentalRpcInstrumentation.semconv`](#experimentalrpcinstrumentation)
+* [`ExperimentalMessagingInstrumentation.semconv`](#experimentalmessaginginstrumentation)
+
+No snippets.
+
+
+JSON Schema
+
+[JSON Schema Source File](./schema/instrumentation.yaml)
+{
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "version": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "description": "The target semantic convention version for this domain (e.g., 1).\nIf omitted or null, the latest stable version is used, or if no stable version is available and .experimental is true then the latest experimental version is used.\n"
+ },
+ "experimental": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "description": "Use latest experimental semantic conventions (before stable is available or to enable experimental features on top of stable conventions).\nIf omitted or null, false is used.\n"
+ },
+ "dual_emit": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "description": "When true, also emit the previous major version alongside the target version.\nFor version=1, the previous version refers to the pre-stable conventions that the instrumentation emitted before the first stable semantic convention version was defined.\nFor version=2 and above, the previous version is the prior stable major version (e.g., version=2, dual_emit=true emits both v2 and v1).\nEnables dual-emit for phased migration between versions.\nIf omitted or null, false is used.\n"
+ }
+ }
+}
+
+
## ExperimentalServiceResourceDetector
> [!WARNING]
diff --git a/schema/instrumentation.yaml b/schema/instrumentation.yaml
index 35847d55..75b27115 100644
--- a/schema/instrumentation.yaml
+++ b/schema/instrumentation.yaml
@@ -82,11 +82,95 @@ $defs:
Configure instrumentations following the http semantic conventions.
See http semantic conventions: https://opentelemetry.io/docs/specs/semconv/http/
defaultBehavior: defaults as described in ExperimentalHttpInstrumentation are used
+ code:
+ $ref: "#/$defs/ExperimentalCodeInstrumentation"
+ description: |
+ Configure instrumentations following the code semantic conventions.
+ See code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/
+ defaultBehavior: defaults as described in ExperimentalCodeInstrumentation are used
+ db:
+ $ref: "#/$defs/ExperimentalDbInstrumentation"
+ description: |
+ Configure instrumentations following the database semantic conventions.
+ See database semantic conventions: https://opentelemetry.io/docs/specs/semconv/database/
+ defaultBehavior: defaults as described in ExperimentalDbInstrumentation are used
+ gen_ai:
+ $ref: "#/$defs/ExperimentalGenAiInstrumentation"
+ description: |
+ Configure instrumentations following the GenAI semantic conventions.
+ See GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/
+ defaultBehavior: defaults as described in ExperimentalGenAiInstrumentation are used
+ messaging:
+ $ref: "#/$defs/ExperimentalMessagingInstrumentation"
+ description: |
+ Configure instrumentations following the messaging semantic conventions.
+ See messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/
+ defaultBehavior: defaults as described in ExperimentalMessagingInstrumentation are used
+ rpc:
+ $ref: "#/$defs/ExperimentalRpcInstrumentation"
+ description: |
+ Configure instrumentations following the RPC semantic conventions.
+ See RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/
+ defaultBehavior: defaults as described in ExperimentalRpcInstrumentation are used
sanitization:
$ref: "#/$defs/ExperimentalSanitization"
description: |
Configure general sanitization options.
defaultBehavior: defaults as described in ExperimentalSanitization are used
+ stability_opt_in_list:
+ type: [string, "null"]
+ description: |
+ Configure semantic convention stability opt-in as a comma-separated list.
+ This property follows the format and semantics of the OTEL_SEMCONV_STABILITY_OPT_IN environment variable.
+ Controls the emission of stable vs. experimental semantic conventions for instrumentation.
+ This setting is only intended for migrating from experimental to stable semantic conventions.
+
+ Known values include:
+ - http: Emit stable HTTP and networking conventions only
+ - http/dup: Emit both old and stable HTTP and networking conventions (for phased migration)
+ - database: Emit stable database conventions only
+ - database/dup: Emit both old and stable database conventions (for phased migration)
+ - rpc: Emit stable RPC conventions only
+ - rpc/dup: Emit both experimental and stable RPC conventions (for phased migration)
+ - messaging: Emit stable messaging conventions only
+ - messaging/dup: Emit both old and stable messaging conventions (for phased migration)
+ - code: Emit stable code conventions only
+ - code/dup: Emit both old and stable code conventions (for phased migration)
+
+ Multiple values can be specified as a comma-separated list (e.g., "http,database/dup").
+ Additional signal types may be supported in future versions.
+
+ Domain-specific semconv properties (e.g., .instrumentation/development.general.db.semconv) take precedence over this general setting.
+
+ See:
+ - HTTP migration: https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/
+ - Database migration: https://opentelemetry.io/docs/specs/semconv/database/
+ - RPC: https://opentelemetry.io/docs/specs/semconv/rpc/
+ - Messaging: https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/
+ defaultBehavior: no opt-in is configured and instrumentations continue emitting their default semantic convention version
+ ExperimentalSemconvConfig:
+ type: object
+ additionalProperties: false
+ properties:
+ version:
+ type: [integer, "null"]
+ minimum: 0
+ description: |
+ The target semantic convention version for this domain (e.g., 1).
+ defaultBehavior: the latest stable version is used, or if no stable version is available and .experimental is true then the latest experimental version is used
+ experimental:
+ type: [boolean, "null"]
+ description: |
+ Use latest experimental semantic conventions (before stable is available or to enable experimental features on top of stable conventions).
+ defaultBehavior: "false is used"
+ dual_emit:
+ type: [boolean, "null"]
+ description: |
+ When true, also emit the previous major version alongside the target version.
+ For version=1, the previous version refers to the pre-stable conventions that the instrumentation emitted before the first stable semantic convention version was defined.
+ For version=2 and above, the previous version is the prior stable major version (e.g., version=2, dual_emit=true emits both v2 and v1).
+ Enables dual-emit for phased migration between versions.
+ defaultBehavior: "false is used"
ExperimentalHttpClientInstrumentation:
type: object
additionalProperties: false
@@ -151,6 +235,15 @@ $defs:
type: object
additionalProperties: false
properties:
+ semconv:
+ $ref: "#/$defs/ExperimentalSemconvConfig"
+ description: |
+ Configure HTTP semantic convention version and migration behavior.
+
+ This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.
+
+ See HTTP migration: https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/
+ defaultBehavior: uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set
client:
$ref: "#/$defs/ExperimentalHttpClientInstrumentation"
description: Configure instrumentations following the http client semantic conventions.
@@ -159,6 +252,73 @@ $defs:
$ref: "#/$defs/ExperimentalHttpServerInstrumentation"
description: Configure instrumentations following the http server semantic conventions.
defaultBehavior: defaults as described in ExperimentalHttpServerInstrumentation are used
+ ExperimentalCodeInstrumentation:
+ type: object
+ additionalProperties: false
+ properties:
+ semconv:
+ $ref: "#/$defs/ExperimentalSemconvConfig"
+ description: |
+ Configure code semantic convention version and migration behavior.
+
+ This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.
+
+ See code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/
+ defaultBehavior: uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set
+ ExperimentalDbInstrumentation:
+ type: object
+ additionalProperties: false
+ properties:
+ semconv:
+ $ref: "#/$defs/ExperimentalSemconvConfig"
+ description: |
+ Configure database semantic convention version and migration behavior.
+
+ This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.
+
+ See database migration: https://opentelemetry.io/docs/specs/semconv/database/
+ defaultBehavior: uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set
+ ExperimentalGenAiInstrumentation:
+ type: object
+ additionalProperties: false
+ properties:
+ semconv:
+ $ref: "#/$defs/ExperimentalSemconvConfig"
+ description: |
+ Configure GenAI semantic convention version and migration behavior.
+
+ This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.
+
+ Set .experimental to true to enable latest experimental mode.
+
+ See GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/
+ defaultBehavior: uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set
+ ExperimentalRpcInstrumentation:
+ type: object
+ additionalProperties: false
+ properties:
+ semconv:
+ $ref: "#/$defs/ExperimentalSemconvConfig"
+ description: |
+ Configure RPC semantic convention version and migration behavior.
+
+ This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.
+
+ See RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/
+ defaultBehavior: uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set
+ ExperimentalMessagingInstrumentation:
+ type: object
+ additionalProperties: false
+ properties:
+ semconv:
+ $ref: "#/$defs/ExperimentalSemconvConfig"
+ description: |
+ Configure messaging semantic convention version and migration behavior.
+
+ This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.
+
+ See messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/
+ defaultBehavior: uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set
ExperimentalSanitization:
type: object
additionalProperties: false
diff --git a/schema/meta_schema_language_cpp.yaml b/schema/meta_schema_language_cpp.yaml
index 6a08f95e..36ec3944 100644
--- a/schema/meta_schema_language_cpp.yaml
+++ b/schema/meta_schema_language_cpp.yaml
@@ -195,6 +195,9 @@ typeSupportStatuses:
- type: ViewStream
status: supported
propertyOverrides: []
+ - type: ExperimentalCodeInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalComposableAlwaysOffSampler
status: not_implemented
propertyOverrides: []
@@ -225,6 +228,12 @@ typeSupportStatuses:
- type: ExperimentalContainerResourceDetector
status: not_implemented
propertyOverrides: []
+ - type: ExperimentalDbInstrumentation
+ status: unknown
+ propertyOverrides: []
+ - type: ExperimentalGenAiInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalGeneralInstrumentation
status: not_applicable
propertyOverrides: []
@@ -258,6 +267,9 @@ typeSupportStatuses:
- type: ExperimentalLoggerMatcherAndConfig
status: not_implemented
propertyOverrides: []
+ - type: ExperimentalMessagingInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalMeterConfig
status: not_implemented
propertyOverrides: []
@@ -295,9 +307,15 @@ typeSupportStatuses:
- type: ExperimentalResourceDetector
status: not_implemented
propertyOverrides: []
+ - type: ExperimentalRpcInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalSanitization
status: unknown
propertyOverrides: []
+ - type: ExperimentalSemconvConfig
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalServiceResourceDetector
status: not_implemented
propertyOverrides: []
diff --git a/schema/meta_schema_language_go.yaml b/schema/meta_schema_language_go.yaml
index 45c48474..a6d9a580 100644
--- a/schema/meta_schema_language_go.yaml
+++ b/schema/meta_schema_language_go.yaml
@@ -221,6 +221,9 @@ typeSupportStatuses:
- type: ViewStream
status: unknown
propertyOverrides: []
+ - type: ExperimentalCodeInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalComposableAlwaysOffSampler
status: not_implemented
propertyOverrides: []
@@ -251,6 +254,12 @@ typeSupportStatuses:
- type: ExperimentalContainerResourceDetector
status: unknown
propertyOverrides: []
+ - type: ExperimentalDbInstrumentation
+ status: unknown
+ propertyOverrides: []
+ - type: ExperimentalGenAiInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalGeneralInstrumentation
status: unknown
propertyOverrides: []
@@ -284,6 +293,9 @@ typeSupportStatuses:
- type: ExperimentalLoggerMatcherAndConfig
status: unknown
propertyOverrides: []
+ - type: ExperimentalMessagingInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalMeterConfig
status: unknown
propertyOverrides: []
@@ -317,9 +329,15 @@ typeSupportStatuses:
- type: ExperimentalResourceDetector
status: unknown
propertyOverrides: []
+ - type: ExperimentalRpcInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalSanitization
status: unknown
propertyOverrides: []
+ - type: ExperimentalSemconvConfig
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalServiceResourceDetector
status: unknown
propertyOverrides: []
diff --git a/schema/meta_schema_language_java.yaml b/schema/meta_schema_language_java.yaml
index 44d329d3..e8cb1605 100644
--- a/schema/meta_schema_language_java.yaml
+++ b/schema/meta_schema_language_java.yaml
@@ -217,6 +217,9 @@ typeSupportStatuses:
- type: ViewStream
status: supported
propertyOverrides: []
+ - type: ExperimentalCodeInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalComposableAlwaysOffSampler
status: supported
propertyOverrides: []
@@ -247,6 +250,12 @@ typeSupportStatuses:
- type: ExperimentalContainerResourceDetector
status: supported
propertyOverrides: []
+ - type: ExperimentalDbInstrumentation
+ status: unknown
+ propertyOverrides: []
+ - type: ExperimentalGenAiInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalGeneralInstrumentation
status: supported
propertyOverrides: []
@@ -300,6 +309,9 @@ typeSupportStatuses:
- type: ExperimentalLoggerMatcherAndConfig
status: supported
propertyOverrides: []
+ - type: ExperimentalMessagingInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalMeterConfig
status: supported
propertyOverrides: []
@@ -339,9 +351,15 @@ typeSupportStatuses:
- type: ExperimentalResourceDetector
status: supported
propertyOverrides: []
+ - type: ExperimentalRpcInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalSanitization
status: unknown
propertyOverrides: []
+ - type: ExperimentalSemconvConfig
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalServiceResourceDetector
status: supported
propertyOverrides: []
diff --git a/schema/meta_schema_language_js.yaml b/schema/meta_schema_language_js.yaml
index 253d428c..84a50839 100644
--- a/schema/meta_schema_language_js.yaml
+++ b/schema/meta_schema_language_js.yaml
@@ -195,6 +195,9 @@ typeSupportStatuses:
- type: ViewStream
status: unknown
propertyOverrides: []
+ - type: ExperimentalCodeInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalComposableAlwaysOffSampler
status: unknown
propertyOverrides: []
@@ -225,6 +228,12 @@ typeSupportStatuses:
- type: ExperimentalContainerResourceDetector
status: unknown
propertyOverrides: []
+ - type: ExperimentalDbInstrumentation
+ status: unknown
+ propertyOverrides: []
+ - type: ExperimentalGenAiInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalGeneralInstrumentation
status: unknown
propertyOverrides: []
@@ -258,6 +267,9 @@ typeSupportStatuses:
- type: ExperimentalLoggerMatcherAndConfig
status: unknown
propertyOverrides: []
+ - type: ExperimentalMessagingInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalMeterConfig
status: unknown
propertyOverrides: []
@@ -291,9 +303,15 @@ typeSupportStatuses:
- type: ExperimentalResourceDetector
status: unknown
propertyOverrides: []
+ - type: ExperimentalRpcInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalSanitization
status: unknown
propertyOverrides: []
+ - type: ExperimentalSemconvConfig
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalServiceResourceDetector
status: unknown
propertyOverrides: []
diff --git a/schema/meta_schema_language_php.yaml b/schema/meta_schema_language_php.yaml
index fedc2207..0c99de80 100644
--- a/schema/meta_schema_language_php.yaml
+++ b/schema/meta_schema_language_php.yaml
@@ -238,6 +238,9 @@ typeSupportStatuses:
- property: aggregation_cardinality_limit
status: not_implemented
notes: "`attribute_keys.excluded` is not implemented, only `attribute_keys.included` is supported."
+ - type: ExperimentalCodeInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalComposableAlwaysOffSampler
status: not_implemented
propertyOverrides: []
@@ -268,6 +271,12 @@ typeSupportStatuses:
- type: ExperimentalContainerResourceDetector
status: ignored
propertyOverrides: []
+ - type: ExperimentalDbInstrumentation
+ status: unknown
+ propertyOverrides: []
+ - type: ExperimentalGenAiInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalGeneralInstrumentation
status: supported
propertyOverrides: []
@@ -325,6 +334,9 @@ typeSupportStatuses:
- type: ExperimentalLoggerMatcherAndConfig
status: supported
propertyOverrides: []
+ - type: ExperimentalMessagingInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalMeterConfig
status: supported
propertyOverrides: []
@@ -362,9 +374,15 @@ typeSupportStatuses:
propertyOverrides:
- property: container
status: ignored
+ - type: ExperimentalRpcInstrumentation
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalSanitization
status: unknown
propertyOverrides: []
+ - type: ExperimentalSemconvConfig
+ status: unknown
+ propertyOverrides: []
- type: ExperimentalServiceResourceDetector
status: supported
propertyOverrides: []
diff --git a/snippets/ExperimentalGeneralInstrumentation_semconv_stability_opt_in.yaml b/snippets/ExperimentalGeneralInstrumentation_semconv_stability_opt_in.yaml
new file mode 100644
index 00000000..c85670db
--- /dev/null
+++ b/snippets/ExperimentalGeneralInstrumentation_semconv_stability_opt_in.yaml
@@ -0,0 +1,19 @@
+file_format: "1.0-rc.3"
+
+instrumentation/development:
+ general:
+ # SNIPPET_START
+ # Configure semantic convention stability opt-in using a comma-separated list
+ # This format is compatible with OTEL_SEMCONV_STABILITY_OPT_IN environment variable
+ stability_opt_in_list: "http,database/dup"
+
+ # Alternatively, configure per-domain semconv settings (takes precedence over stability_opt_in_list)
+ http:
+ # Use stable HTTP and networking conventions (latest version)
+ semconv:
+ version: 1
+ db:
+ # Use stable database conventions and also emit previous version for phased migration
+ semconv:
+ version: 1
+ dual_emit: true
diff --git a/snippets/ExperimentalInstrumentation_kitchen_sink.yaml b/snippets/ExperimentalInstrumentation_kitchen_sink.yaml
index 44c26884..b0aeea01 100644
--- a/snippets/ExperimentalInstrumentation_kitchen_sink.yaml
+++ b/snippets/ExperimentalInstrumentation_kitchen_sink.yaml
@@ -4,6 +4,10 @@ instrumentation/development:
# SNIPPET_START
general:
http:
+ semconv:
+ version: 1
+ experimental: true
+ dual_emit: true
client:
request_captured_headers:
- Content-Type
@@ -38,6 +42,21 @@ instrumentation/development:
- POST
- PUT
- TRACE
+ db:
+ semconv:
+ version: 1
+ experimental: false
+ dual_emit: false
+ rpc:
+ semconv:
+ version: 1
+ experimental: false
+ dual_emit: true
+ messaging:
+ semconv:
+ version: 1
+ experimental: true
+ dual_emit: false
sanitization:
url:
sensitive_query_parameters:
@@ -45,6 +64,8 @@ instrumentation/development:
- Signature
- sig
- X-Goog-Signature
+ # Domain-specific semconv sections above (http, db, etc.) take precedence over this general setting.
+ stability_opt_in_list: "http/dup,database"
cpp:
example:
property: "value"