Releases: open-telemetry/opentelemetry-js
Releases · open-telemetry/opentelemetry-js
Release list
v2.10.0
2.10.0
🚀 Features
- feat(sdk-logs): implement log processor metrics #6554 @anuraaga
- feat(otlp-exporter): implement exporter metrics #6480 @anuraaga
- feat(propagator-jaeger): Notice: The
@opentelemetry/propagator-jaegerpackage will be removed in SDK 3.x, planned for approximately September 2026. @pichlermarc- The Jaeger propagator has been deprecated by the OpenTelemetry specification in favor of
W3CTraceContextPropagator. This package will be removed in a future release.
- The Jaeger propagator has been deprecated by the OpenTelemetry specification in favor of
🐛 Bug Fixes
- fix(sdk-trace): reject
SimpleSpanProcessor.forceFlush()when a pending export fails #6771 @LarryHu0217 - fix(sdk-trace): include trace IDs at the ratio 1 upper bound in
TraceIdRatioBasedSampler#6890 @LarryHu0217
🏠 Internal
- chore: build on Node 26 in CI #6887 @overbalance
- chore: bump to typescript@5.2.2 @pichlermarc
experimental/v0.221.0
0.221.0
💥 Breaking Changes
- feat(sdk-logs)!: configure the force flush timeout per call #6931 @LarryHu0217
- (user-facing):
LoggerProviderOptions.forceFlushTimeoutMillishas been removed; passtimeoutMillistoLoggerProvider.forceFlush()instead.
- (user-facing):
- feat(instrumentation-http)!: emit only stable HTTP semantic conventions. The
OTEL_SEMCONV_STABILITY_OPT_INenvironment variable no longer changes HTTP attribute or metric emission — old (v1.7.0) and duplicate (http/http/dup) semconv outputs have been removed. #6819 @maryliag - feat(instrumentation-fetch)!: emit only stable HTTP semantic conventions. The
semconvStabilityOptIninstrumentation config option has been removed; old (v1.7.0) and duplicate semconv outputs are no longer emitted. #6819 @maryliag - feat(instrumentation-xml-http-request)!: emit only stable HTTP semantic conventions. The
semconvStabilityOptIninstrumentation config option has been removed; old (v1.7.0) and duplicate semconv outputs are no longer emitted. #6819 @maryliag - feat(instrumentation-grpc)!: emit only stable network semantic conventions. The
OTEL_SEMCONV_STABILITY_OPT_INenvironment variable no longer changes attribute emission —net.peer.nameandnet.peer.port(old) are no longer set; onlyserver.addressandserver.port(stable). #6819 @maryliag
🚀 Features
- feat(sdk-logs): allow modifying ReadWriteLogRecord properties (including hrTime, hrTimeObserved, and spanContext) in accordance with the OpenTelemetry Logs specification #6923 @Babul422
- feat(sdk-node): emit a deprecation warning when the
JaegerPropagatoris selected viaOTEL_PROPAGATORSor declarative config; usetracecontextinstead. @pichlermarc - feat(instrumentation-http): set
error.typeto status code in metrics for error requests. #6919 @raphael-theriault-swi
semconv/v1.43.0
1.43.0
🚀 Features
- feat: update semantic conventions to v1.43.0 #6883
- Semantic Conventions v1.43.0: changelog | latest docs
@opentelemetry/semantic-conventions(stable) changes: 1 added export@opentelemetry/semantic-conventions/incubating(unstable) changes: 1 added export
Stable changes in v1.43.0
1 added export
TELEMETRY_SDK_LANGUAGE_VALUE_KOTLIN // "kotlin"Unstable changes in v1.43.0
1 added export
ATTR_AZURE_RESOURCE_GROUP_NAME // azure.resource_group.namesemconv/v1.42.0
1.42.0
🚀 Features
- feat: update semantic conventions to v1.42.0 #6871 @trentm
- Semantic Conventions v1.42.0: changelog | latest docs
@opentelemetry/semantic-conventions(stable) changes: 46 added exports@opentelemetry/semantic-conventions/incubating(unstable) changes: 74 newly deprecated exports, 16 added exports- Notably: This deprecates a number of GenAI-related exports. GenAI Semantic Conventions have been federated to a new semantic-conventions-genai repository. The eventual plan is to publish a separate
@opentelemetry/semantic-conventions-genaipackage with these exports.
- Notably: This deprecates a number of GenAI-related exports. GenAI Semantic Conventions have been federated to a new semantic-conventions-genai repository. The eventual plan is to publish a separate
Stable changes in v1.42.0
46 added exports
ATTR_CONTAINER_ID // container.id
ATTR_CONTAINER_IMAGE_NAME // container.image.name
ATTR_CONTAINER_IMAGE_REPO_DIGESTS // container.image.repo_digests
ATTR_CONTAINER_IMAGE_TAGS // container.image.tags
ATTR_K8S_CLUSTER_NAME // k8s.cluster.name
ATTR_K8S_CLUSTER_UID // k8s.cluster.uid
ATTR_K8S_CONTAINER_NAME // k8s.container.name
ATTR_K8S_CONTAINER_RESTART_COUNT // k8s.container.restart_count
ATTR_K8S_CRONJOB_ANNOTATION // (key) => `k8s.cronjob.annotation.${key}`
ATTR_K8S_CRONJOB_LABEL // (key) => `k8s.cronjob.label.${key}`
ATTR_K8S_CRONJOB_NAME // k8s.cronjob.name
ATTR_K8S_CRONJOB_UID // k8s.cronjob.uid
ATTR_K8S_DAEMONSET_ANNOTATION // (key) => `k8s.daemonset.annotation.${key}`
ATTR_K8S_DAEMONSET_LABEL // (key) => `k8s.daemonset.label.${key}`
ATTR_K8S_DAEMONSET_NAME // k8s.daemonset.name
ATTR_K8S_DAEMONSET_UID // k8s.daemonset.uid
ATTR_K8S_DEPLOYMENT_ANNOTATION // (key) => `k8s.deployment.annotation.${key}`
ATTR_K8S_DEPLOYMENT_LABEL // (key) => `k8s.deployment.label.${key}`
ATTR_K8S_DEPLOYMENT_NAME // k8s.deployment.name
ATTR_K8S_DEPLOYMENT_UID // k8s.deployment.uid
ATTR_K8S_JOB_ANNOTATION // (key) => `k8s.job.annotation.${key}`
ATTR_K8S_JOB_LABEL // (key) => `k8s.job.label.${key}`
ATTR_K8S_JOB_NAME // k8s.job.name
ATTR_K8S_JOB_UID // k8s.job.uid
ATTR_K8S_NAMESPACE_ANNOTATION // (key) => `k8s.namespace.annotation.${key}`
ATTR_K8S_NAMESPACE_LABEL // (key) => `k8s.namespace.label.${key}`
ATTR_K8S_NAMESPACE_NAME // k8s.namespace.name
ATTR_K8S_NODE_ANNOTATION // (key) => `k8s.node.annotation.${key}`
ATTR_K8S_NODE_LABEL // (key) => `k8s.node.label.${key}`
ATTR_K8S_NODE_NAME // k8s.node.name
ATTR_K8S_NODE_UID // k8s.node.uid
ATTR_K8S_POD_ANNOTATION // (key) => `k8s.pod.annotation.${key}`
ATTR_K8S_POD_HOSTNAME // k8s.pod.hostname
ATTR_K8S_POD_IP // k8s.pod.ip
ATTR_K8S_POD_LABEL // (key) => `k8s.pod.label.${key}`
ATTR_K8S_POD_NAME // k8s.pod.name
ATTR_K8S_POD_START_TIME // k8s.pod.start_time
ATTR_K8S_POD_UID // k8s.pod.uid
ATTR_K8S_REPLICASET_ANNOTATION // (key) => `k8s.replicaset.annotation.${key}`
ATTR_K8S_REPLICASET_LABEL // (key) => `k8s.replicaset.label.${key}`
ATTR_K8S_REPLICASET_NAME // k8s.replicaset.name
ATTR_K8S_REPLICASET_UID // k8s.replicaset.uid
ATTR_K8S_STATEFULSET_ANNOTATION // (key) => `k8s.statefulset.annotation.${key}`
ATTR_K8S_STATEFULSET_LABEL // (key) => `k8s.statefulset.label.${key}`
ATTR_K8S_STATEFULSET_NAME // k8s.statefulset.name
ATTR_K8S_STATEFULSET_UID // k8s.statefulset.uidUnstable changes in v1.42.0
74 newly deprecated exports
METRIC_GEN_AI_CLIENT_OPERATION_DURATION // gen_ai.client.operation.duration: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
METRIC_GEN_AI_CLIENT_OPERATION_TIME_PER_OUTPUT_CHUNK // gen_ai.client.operation.time_per_output_chunk: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
METRIC_GEN_AI_CLIENT_OPERATION_TIME_TO_FIRST_CHUNK // gen_ai.client.operation.time_to_first_chunk: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
METRIC_GEN_AI_CLIENT_TOKEN_USAGE // gen_ai.client.token.usage: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
METRIC_GEN_AI_SERVER_REQUEST_DURATION // gen_ai.server.request.duration: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
METRIC_GEN_AI_SERVER_TIME_PER_OUTPUT_TOKEN // gen_ai.server.time_per_output_token: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
METRIC_GEN_AI_SERVER_TIME_TO_FIRST_TOKEN // gen_ai.server.time_to_first_token: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
METRIC_MCP_CLIENT_OPERATION_DURATION // mcp.client.operation.duration: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
METRIC_MCP_CLIENT_SESSION_DURATION // mcp.client.session.duration: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
METRIC_MCP_SERVER_OPERATION_DURATION // mcp.server.operation.duration: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
METRIC_MCP_SERVER_SESSION_DURATION // mcp.server.session.duration: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
METRIC_V8JS_MEMORY_HEAP_LIMIT // v8js.memory.heap.limit: Replaced by `v8js.memory.heap.space.size`.
EVENT_GEN_AI_CLIENT_INFERENCE_OPERATION_DETAILS // gen_ai.client.inference.operation.details: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
EVENT_GEN_AI_CLIENT_OPERATION_EXCEPTION // gen_ai.client.operation.exception: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
EVENT_GEN_AI_EVALUATION_RESULT // gen_ai.evaluation.result: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
CPU_MODE_VALUE_KERNEL // kernel: Replaced by `system`.
ATTR_GEN_AI_AGENT_DESCRIPTION // gen_ai.agent.description: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
ATTR_GEN_AI_AGENT_ID // gen_ai.agent.id: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
ATTR_GEN_AI_AGENT_NAME // gen_ai.agent.name: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
ATTR_GEN_AI_AGENT_VERSION // gen_ai.agent.version: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
ATTR_GEN_AI_CONVERSATION_ID // gen_ai.conversation.id: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
ATTR_GEN_AI_DATA_SOURCE_ID // gen_ai.data_source.id: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
ATTR_GEN_AI_EMBEDDINGS_DIMENSION_COUNT // gen_ai.embeddings.dimension.count: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
ATTR_GEN_AI_EVALUATION_EXPLANATION // gen_ai.evaluation.explanation: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
ATTR_GEN_AI_EVALUATION_NAME // gen_ai.evaluation.name: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
ATTR_GEN_AI_EVALUATION_SCORE_LABEL // gen_ai.evaluation.score.label: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
ATTR_GEN_AI_EVALUATION_SCORE_VALUE // gen_ai.evaluation.score.value: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
ATTR_GEN_AI_INPUT_MESSAGES // gen_ai.input.messages: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).
AT...v2.9.0
2.9.0
💥 Breaking Changes
- docs(shim-opentracing): Notice: The
@opentelemetry/shim-opentracingpackage will be removed in SDK 3.x, planned for approximately September 2026.- The OpenCensus and OpenTracing compatibility requirements in the OpenTelemetry specification have been deprecated.
🚀 Features
- feat(sdk-metrics): add maxExportBatchSize option to PeriodicExportingMetricReader #6655 @psx95
- Optimized
PeriodicExportingMetricReader.forceFlushto prevent redundant concurrent export cycles. Concurrent calls to forceFlush will now await any ongoing export and reuse a fresh export cycle if one is started concurrently by another caller. This ensures the latest metrics are always exported efficiently without triggering duplicate collection and export cycles.
- Optimized
- feat(sdk-trace): implement span processor metrics #6504 @anuraaga
- feat(sdk-trace): add a new "sdk-trace" package to hold the Trace SDK, without environment variable configuration handling that belongs elsewhere #6775 @trentm
- "sdk-trace" will eventually replace all of "sdk-trace-base", "sdk-trace-node", and "sdk-trace-web".
- The
BatchSpanProcessorconstructor call signature has changed in "sdk-trace". For example, beforenew BatchSpanProcessor(exporter, { maxQueueSize: 1000 }), afternew BatchSpanProcessor({ exporter, maxQueueSize: 1000 }). #6817 - The
SimpleSpanProcessorconstructor call signature has changed in "sdk-trace". For example, beforenew SimpleSpanProcessor(exporter), afternew SimpleSpanProcessor({ exporter, selfObsMeterProvider: ... }). #6504
- feat(sdk-trace): add AlwaysRecordSampler #6188 @majanjua-amzn
🐛 Bug Fixes
- fix(propagator-jaeger): do not throw on malformed percent-encoded
uber-trace-id/uberctx-*headers during extract @pichlermarc
🏠 Internal
- perf(sdk-metrics): defer allocation of HrTime to accumulation creation #6839 @legendecas
- chore(*): migrate use of sdk-trace-base and sdk-trace-node to sdk-trace #6851 @trentm
- perf(sdk-metrics): optionally capture active context for sync instruments #6848 @legendecas
experimental/v0.220.0
0.220.0
💥 Breaking Changes
- refactor(sdk-logs)!: refactor BatchLogRecordProcessor constructor signature #6817 @trentm
- (user-facing):
BatchLogRecordProcessornow takes a singleoptionsobject with all possible properties, instead of two separate arguments. For example, beforenew BatchLogRecordProcessor(exporter, { maxQueueSize: 1000 }), afternew BatchLogRecordProcessor({ exporter, maxQueueSize: 1000 }). interface BufferConfig->interface BatchLogRecordProcessorOptions, and now includes theexporterpropertyinterface BatchLogRecordProcessorBrowserConfig->interface BatchLogRecordProcessorBrowserOptions- (user-facing):
SimpleLogRecordProcessornow takes a singleoptionsobject with all possible properties. For example, beforenew SimpleLogRecordProcessor(exporter), afternew SimpleLogRecordProcessor({ exporter }). #6836
- (user-facing):
- refactor(configuration)!: change config file parsing to not add default values, nor merge
*_listfields #6765 @trentm- Responsibility for handling declarative config "nullBehavior" and "defaultBehavior" belongs in the "create" handling, currently in the "sdk-node" package.
- docs(shim-opencensus): Notice: The
@opentracing/shim-opencensuspackage will be removed in SDK 3.x, planned for approximately September 2026.- The OpenCensus and OpenTracing compatibility requirements in the OpenTelemetry specification have been deprecated.
- chore(sdk-node)!: Drop support for deprecated OpenCensusMetricProducer from declarative config
🚀 Features
- feat(configuration): bump config schema to v1.1.0; rename
without_scope_info→scope_info_enabledandwithout_target_info/development→target_info_enabled/developmenton the Prometheus pull exporter (semantics inverted), renamewith_resource_constant_labels→resource_constant_labels. Validatefile_formatper the configuration versioning spec: accept any minor version of major1(e.g.1.0,1.1), warn when the minor version is newer than supported, and reject other major versions. #6781 @MikeGoldsmith - feat(sdk-node): wire up
id_generatorfrom declarative config #6782 @MikeGoldsmith - feat(sdk-node): wire up
tracer_provider.samplerfrom declarative config (always_on, always_off, trace_id_ratio_based, parent_based); unrecognized variants warn and fall back to ParentBased(AlwaysOn) #6506 @MikeGoldsmith - feat(propagator-env-carrier): empty name normalization #6827 @pellared
- feat(propagator-env-carrier): make
EnvironmentGetterread the currentprocess.env#6853 @pellared
🐛 Bug Fixes
- fix(sdk-logs): stop
Logger.emit()doing work (record construction, metrics, processoronEmit) after theLoggerProviderhas shut down #6826 @anneheartrecord - fix(sdk-node): pass all config properties (endpoint, headers, timeout, TLS, compression, temporality preference, default histogram aggregation) to OTLP metric exporters in declarative config #6814 @MikeGoldsmith
- fix(sdk-logs): default BatchLogRecordProcessor
scheduleDelayMillisis 1000 #6796 @trentm - fix(configuration): percent-decode keys and values in
resource.attributes_listper spec #6787 @MikeGoldsmith - fix(configuration): default
log_leveltoinfoin env-based config initialization for consistency with file-based config #6788 @MikeGoldsmith - fix(sdk-node): fail-fast on LoggerProvider creation with startNodeSDK() and declarative config #6785 @trentm
📚 Documentation
- docs(configuration): link the configuration README to the cross-SDK declarative config language support status doc #6809 @MikeGoldsmith
🏠 Internal
- chore(sdk-node): migrate to use the new sdk-trace package #6828 @trentm
- The
nodere-export of@opentelemetry/sdk-trace-nodeandtracingre-export of@opentelemetry/sdk-trace-basehave been deprecated. (Historically the@opentelemetry/sdk-nodepackage has re-exported from a number of core packages. It is now recommended that users directly import from those other packages.)
- The
- chore(*): migrate use of sdk-trace-base and sdk-trace-node to sdk-trace #6851 @trentm
- fix(instrumentation,instrumentation-http): fix codecov coverage under-reporting by merging coverage across CJS/ESM test runs #6867 @mwear
v2.8.0
2.8.0
🚀 Features
- feat(sdk-trace-base): pretty-print
SpanImpl,Tracer, andBasicTracerProviderviautil.inspectso they render throughdiagandconsole.log#6690 @mcollina - feat(sdk-metrics): implement metric reader self-observability metrics #6449 @anuraaga
- feat(core): add
hrTimeToSeconds#6449 @anuraaga
🐛 Bug Fixes
- fix(core): limit processing of incoming "baggage" header to 8192 bytes @pichlermarc
experimental/v0.219.0
0.219.0
💥 Breaking Changes
- fix(configuration)!: stop removing
nullvalues from parsed config object #6679 @trentm- It is now the responsibility of the user of a parsed declarative config object, typically just the
sdk-nodepackage, to handlenullvalues.
- It is now the responsibility of the user of a parsed declarative config object, typically just the
- fix(api-logs)!: Removed
NOOP_LOGGERandNoopLoggerexports from@opentelemetry/api-logs. UsecreateNoopLogger(): Loggerinstead. #6713 @dyladan - feat(api-logs)!: rename scopeAttributes to attributes in LoggerOptions #6573 @pichlermarc
- fix(sdk-node)!: remove
buildSamplerFromConfigexport #6784 @trentm
🚀 Features
- feat(sdk-node): wire up metric producers from declarative config #6712 @MikeGoldsmith
- feat(sdk-logs)!: add support for attributes in LoggerOptions #6573 @pichlermarc
🐛 Bug Fixes
- fix(sdk-node): pass all config properties to log record exporters in declarative config #6708 @MikeGoldsmith
- fix(sdk-node): warn and ignore zero exporter timeout in declarative config #6711 @MikeGoldsmith
- fix(sdk-node): pass gRPC credentials and headers to span exporter in declarative config #6705 @MikeGoldsmith
- fix(otlp-transformer): do not attempt to skip groups #6704 @pichlermarc
- fix(otlp-grpc-exporter-base): recreate client after 5 consecutive
DEADLINE_EXCEEDEDto recover from connection dropped deadlock #6296 @afharo - fix(browser-detector): use the right semantic convention for user agent resource attribute #6729 @david-luna
- fix(browser-detector): user agent resource attribute always #6754 @david-luna
- fix(opentelemetry-exporter-prometheus): handle additional edge cases in metric name conversion #6727 @cjihrig
- fix(sdk-logs): avoid null dereference in
BatchLogRecordProcessor._flushAllwhen an in-flight export completes between awaits #6763 @Janealter - fix(configuration): improve environment variable substitution to handle all the cases shown in the spec #6757 @trentm
📚 Documentation
- docs(otlp-exporter-base): index the package's public API in generated docs so types like
OTLPExporterNodeConfigBaseresolve and link from consumer exporter pages #6725 @devareddy05
🏠 Internal
- refactor(configuration): remove redundant env var parsing in EnvironmentConfigFactory #6710 @MikeGoldsmith
experimental/v0.218.0
0.218.0
🚀 Features
- feat(otlp-transformer): replace protobufjs metrics serialization with custom implementation #6625 @pichlermarc
- feat(configuration): show all config validation errors, if there are multiple #6683 @trentm
- feat(sdk-node): allow startNodeSDK() without an arg #6688 @trentm
🏠 Internal
- refactor(sdk-logs): alias
LoggerProviderConfigtoLoggerProviderOptions#6691 @david-luna - refactor(sdk-logs): use
Logger.enabled()withinLogger.emit()implementation #6680 @david-luna
semconv/v1.41.1
1.41.1
🚀 Features
Note: Semantic Conventions v1.41.0 included an issue that prevented publishing a "1.41.0" version of this package.
- feat: update semantic conventions to v1.41.1 #6695 @trentm
- Semantic Conventions v1.41.1: changelog v1.41.0 | changelog v1.41.1 | latest docs
@opentelemetry/semantic-conventions(stable) changes: 8 added exports@opentelemetry/semantic-conventions/incubating(unstable) changes: 2 exported values changed, 4 newly deprecated exports, 80 added exports
Stable changes in v1.41.1
8 added exports
ATTR_DEPLOYMENT_ENVIRONMENT_NAME // deployment.environment.name
DEPLOYMENT_ENVIRONMENT_NAME_VALUE_DEVELOPMENT // "development"
DEPLOYMENT_ENVIRONMENT_NAME_VALUE_PRODUCTION // "production"
DEPLOYMENT_ENVIRONMENT_NAME_VALUE_STAGING // "staging"
DEPLOYMENT_ENVIRONMENT_NAME_VALUE_TEST // "test"
ATTR_OTEL_EVENT_NAME // otel.event.name
ATTR_TELEMETRY_DISTRO_NAME // telemetry.distro.name
ATTR_TELEMETRY_DISTRO_VERSION // telemetry.distro.versionUnstable changes in v1.41.1
2 exported values changed
METRIC_K8S_CONTAINER_CPU_LIMIT_UTILIZATION // k8s.container.cpu.limit_utilization -> k8s.container.cpu.limit.utilization
METRIC_K8S_CONTAINER_CPU_REQUEST_UTILIZATION // k8s.container.cpu.request_utilization -> k8s.container.cpu.request.utilization4 newly deprecated exports
METRIC_K8S_CONTAINER_CPU_LIMIT // k8s.container.cpu.limit: Replaced by `k8s.container.cpu.limit.desired`.
METRIC_K8S_CONTAINER_CPU_REQUEST // k8s.container.cpu.request: Replaced by `k8s.container.cpu.request.desired`.
METRIC_K8S_CONTAINER_MEMORY_LIMIT // k8s.container.memory.limit: Replaced by `k8s.container.memory.limit.desired`.
METRIC_K8S_CONTAINER_MEMORY_REQUEST // k8s.container.memory.request: Replaced by `k8s.container.memory.request.desired`.80 added exports
METRIC_GEN_AI_CLIENT_OPERATION_TIME_PER_OUTPUT_CHUNK // gen_ai.client.operation.time_per_output_chunk
METRIC_GEN_AI_CLIENT_OPERATION_TIME_TO_FIRST_CHUNK // gen_ai.client.operation.time_to_first_chunk
METRIC_GO_CPU_TIME // go.cpu.time
METRIC_GO_MEMORY_GC_CYCLES // go.memory.gc.cycles
METRIC_GO_MEMORY_GC_PAUSE_DURATION // go.memory.gc.pause.duration
METRIC_K8S_CONTAINER_CPU_LIMIT_CURRENT // k8s.container.cpu.limit.current
METRIC_K8S_CONTAINER_CPU_LIMIT_DESIRED // k8s.container.cpu.limit.desired
METRIC_K8S_CONTAINER_CPU_REQUEST_CURRENT // k8s.container.cpu.request.current
METRIC_K8S_CONTAINER_CPU_REQUEST_DESIRED // k8s.container.cpu.request.desired
METRIC_K8S_CONTAINER_MEMORY_LIMIT_CURRENT // k8s.container.memory.limit.current
METRIC_K8S_CONTAINER_MEMORY_LIMIT_DESIRED // k8s.container.memory.limit.desired
METRIC_K8S_CONTAINER_MEMORY_REQUEST_CURRENT // k8s.container.memory.request.current
METRIC_K8S_CONTAINER_MEMORY_REQUEST_DESIRED // k8s.container.memory.request.desired
METRIC_K8S_NODE_SYSTEM_CONTAINER_CPU_TIME // k8s.node.system_container.cpu.time
METRIC_K8S_NODE_SYSTEM_CONTAINER_CPU_USAGE // k8s.node.system_container.cpu.usage
METRIC_K8S_NODE_SYSTEM_CONTAINER_MEMORY_USAGE // k8s.node.system_container.memory.usage
METRIC_K8S_NODE_SYSTEM_CONTAINER_MEMORY_WORKING_SET // k8s.node.system_container.memory.working_set
METRIC_K8S_PERSISTENTVOLUME_STATUS_PHASE // k8s.persistentvolume.status.phase
METRIC_K8S_PERSISTENTVOLUME_STORAGE_CAPACITY // k8s.persistentvolume.storage.capacity
METRIC_K8S_PERSISTENTVOLUMECLAIM_STATUS_PHASE // k8s.persistentvolumeclaim.status.phase
METRIC_K8S_PERSISTENTVOLUMECLAIM_STORAGE_CAPACITY // k8s.persistentvolumeclaim.storage.capacity
METRIC_K8S_PERSISTENTVOLUMECLAIM_STORAGE_REQUEST // k8s.persistentvolumeclaim.storage.request
METRIC_SYSTEM_MEMORY_LINUX_HUGEPAGES_LIMIT // system.memory.linux.hugepages.limit
METRIC_SYSTEM_MEMORY_LINUX_HUGEPAGES_PAGE_SIZE // system.memory.linux.hugepages.page_size
METRIC_SYSTEM_MEMORY_LINUX_HUGEPAGES_RESERVED // system.memory.linux.hugepages.reserved
METRIC_SYSTEM_MEMORY_LINUX_HUGEPAGES_SURPLUS // system.memory.linux.hugepages.surplus
METRIC_SYSTEM_MEMORY_LINUX_HUGEPAGES_USAGE // system.memory.linux.hugepages.usage
METRIC_SYSTEM_MEMORY_LINUX_HUGEPAGES_UTILIZATION // system.memory.linux.hugepages.utilization
METRIC_V8JS_RESOURCE_ACTIVE // v8js.resource.active
EVENT_FAAS_INVOCATION_EXCEPTION // faas.invocation.exception
EVENT_GEN_AI_CLIENT_OPERATION_EXCEPTION // gen_ai.client.operation.exception
EVENT_MESSAGING_CREATE_EXCEPTION // messaging.create.exception
EVENT_MESSAGING_PROCESS_EXCEPTION // messaging.process.exception
EVENT_MESSAGING_RECEIVE_EXCEPTION // messaging.receive.exception
EVENT_MESSAGING_SEND_EXCEPTION // messaging.send.exception
EVENT_MESSAGING_SETTLE_EXCEPTION // messaging.settle.exception
GEN_AI_OPERATION_NAME_VALUE_INVOKE_WORKFLOW // "invoke_workflow"
ATTR_GEN_AI_REQUEST_STREAM // gen_ai.request.stream
ATTR_GEN_AI_RESPONSE_TIME_TO_FIRST_CHUNK // gen_ai.response.time_to_first_chunk
ATTR_GEN_AI_USAGE_REASONING_OUTPUT_TOKENS // gen_ai.usage.reasoning.output_tokens
ATTR_GEN_AI_WORKFLOW_NAME // gen_ai.workflow.name
ATTR_GO_CPU_DETAILED_STATE // go.cpu.detailed_state
ATTR_GO_CPU_STATE // go.cpu.state
GO_CPU_STATE_VALUE_GC // "gc"
GO_CPU_STATE_VALUE_IDLE // "idle"
GO_CPU_STATE_VALUE_SCAVENGE // "scavenge"
GO_CPU_STATE_VALUE_USER // "user"
ATTR_GO_MEMORY_DETAILED_TYPE // go.memory.detailed_type
ATTR_K8S_NODE_SYSTEM_CONTAINER_NAME // k8s.node.system_container.name
ATTR_K8S_PERSISTENTVOLUME_ANNOTATION // (key) => `k8s.persistentvolume.annotation.${key}`
ATTR_K8S_PERSISTENTVOLUME_LABEL // (key) => `k8s.persistentvolume.label.${key}`
ATTR_K8S_PERSISTENTVOLUME_NAME // k8s.persistentvolume.name
ATTR_K8S_PERSISTENTVOLUME_RECLAIM_POLICY // k8s.persistentvolume.reclaim_policy
K8S_PERSISTENTVOLUME_RECLAIM_POLICY_VALUE_DELETE // "Delete"
K8S_PERSISTENTVOLUME_RECLAIM_POLICY_VALUE_RECYCLE // "Recycle"
K8S_PERSISTENTVOLUME_RECLAIM_POLICY_VALUE_RETAIN // "Retain"
ATTR_K8S_PERSISTENTVOLUME_STATUS_PHASE // k8s.persistentvolume.status.phase
K8S_PERSISTENTVOLUME_STATUS_PHASE_VALUE_AVAILABLE // "Available"
K8S_PERSISTENTVOLUME_STATUS_PHASE_VALUE_BOUND // "Bound"
K8S_PERSISTENTVOLUME_STATUS_PHASE_VALUE_FAILED // "Failed"
K8S_PERSISTENTVOLUME_STATUS_PHASE_VALUE_PENDING // "Pending"
K8S_PERSISTENTVOLUME_STATUS_PHASE_VALUE_RELEASED // "Released"
ATTR_K8S_PERSISTENTVOLUME_UID // k8s.persistentvolume.uid
ATTR_K8S_PERSISTENTVOLUMECLAIM_ANNOTATION // (key) => `k8s.persistentvolumeclaim.annotation.${key}`
ATTR_K8S_PERSISTENTVOLUMECLAIM_LABEL // (key) => `k8s.persistentvolumeclaim.label.${key}`
ATTR_K8S_PERSISTENTVOLUMECLAIM_NAME // k8s.persistentvolumeclaim.name
ATTR_K8S_PERSISTENTVOLUMECLAIM_STATUS_PHASE // k8s.persistentvolumeclaim.status.phase
K8S_PERSISTENTVOLUMECLAIM_STATUS_PHASE_VALUE_BOUND // "Bound"
K8S_PERSISTENTVOLUMECLAIM_STATUS_PHASE_VALUE_LOST // "Lost"
K8S_PERSISTENTVOLUMECLAIM_STATUS_PHASE_VALUE_PENDING // "Pending"
ATTR_K8S_PERSISTENTVOLUMECLAIM_UID // k8s.persistentvolumeclaim.uid
ATTR_SYSTEM_MEMORY_LINUX_HUGEPAGES_STATE // system.memory.linux.hugepages.state
SYSTEM_MEMORY_LINUX_HUGEPAGES_STATE_VALUE_FREE // "free"
SYSTEM_MEMORY_LINUX_HUGEPAGES_STATE_VALUE_USED // "used"
ATTR_V8JS_RESOURCE_TYPE // v8js.resource.type
V8JS_RESOURCE_TYPE_VALUE_IMMEDIATE // "Immediate"
V8JS_RESOURCE_TYPE_VALUE_TCPSERVERWRAP // "TCPServerWrap"
V8JS_RESOURCE_TYPE_VALUE_TCPWRAP // "TCPWrap"
V8JS_RESOURCE_TYPE_VALUE_TIMEOUT // "Timeout"
V8JS_RESOURCE_TYPE_VALUE_TTYWRAP // "TTYWrap"