Skip to content
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
58ca9ed
Add support for OTEL_SEMCONV_STABILITY_OPT_IN (#492)
zeitlinger Jan 28, 2026
73a90ae
add messaging
zeitlinger Jan 28, 2026
acb213e
Address review feedback on semconv stability opt-in
zeitlinger Jan 29, 2026
928ed36
Use enums for domain-specific stability_opt_in properties
zeitlinger Jan 29, 2026
496ee26
add messaging
zeitlinger Jan 29, 2026
5e5b007
migration config
zeitlinger Jan 29, 2026
3eb78cf
pr review
zeitlinger Feb 5, 2026
d418db1
Address PR review feedback
zeitlinger Feb 6, 2026
790123b
pr revieww
zeitlinger Feb 6, 2026
a5c1b9d
rebase
zeitlinger Feb 9, 2026
3060e7f
Replace stability_opt_in enum with structured semconv object
zeitlinger Feb 11, 2026
ab45ad9
Align semconv config with merged semantic-conventions#3424
zeitlinger Feb 20, 2026
55f301b
Rename database to db and add code, gen_ai, k8s domains
zeitlinger Feb 20, 2026
a0cf8bf
Align property order with semconv spec: version, experimental, dual_emit
zeitlinger Feb 20, 2026
25b908c
Address review feedback: improve defaultBehavior for version, remove …
zeitlinger Feb 24, 2026
e9141a5
Fix broken code semconv link in link-check CI
zeitlinger Feb 24, 2026
f2a4ebd
Address review feedback: fix messaging note, clarify dual_emit for ve…
zeitlinger Feb 26, 2026
084b4f4
Apply lmolkova's suggestion: add experimental mode note to GenAI semconv
zeitlinger Feb 26, 2026
6541861
Address review feedback: add code domain, minimum for version, clarif…
zeitlinger Feb 26, 2026
13eae9f
Regenerate schema-docs.md
zeitlinger Feb 26, 2026
7107683
Merge branch 'main' of https://github.com/open-telemetry/opentelemetr…
jack-berg Feb 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions examples/otel-sdk-migration-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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}
50 changes: 40 additions & 10 deletions language-support-status.md

Large diffs are not rendered by default.

109 changes: 109 additions & 0 deletions opentelemetry_configuration.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -659,13 +669,60 @@
],
"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,
"properties": {
"http": {
"$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"
},
"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"
}
}
},
Expand Down Expand Up @@ -710,6 +767,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"
Expand Down Expand Up @@ -909,6 +970,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"
Expand Down Expand Up @@ -1134,6 +1205,44 @@
}
}
},
"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"
}
}
},
"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",
Expand Down
Loading
Loading