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"