Skip to content

Releases: open-telemetry/opentelemetry-js

v2.10.0

Choose a tag to compare

@trentm trentm released this 21 Jul 20:13
76fa6b5

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-jaeger package 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.

🐛 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

experimental/v0.221.0

Choose a tag to compare

@trentm trentm released this 21 Jul 20:13
76fa6b5

0.221.0

💥 Breaking Changes

  • feat(sdk-logs)!: configure the force flush timeout per call #6931 @LarryHu0217
    • (user-facing): LoggerProviderOptions.forceFlushTimeoutMillis has been removed; pass timeoutMillis to LoggerProvider.forceFlush() instead.
  • feat(instrumentation-http)!: emit only stable HTTP semantic conventions. The OTEL_SEMCONV_STABILITY_OPT_IN environment 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 semconvStabilityOptIn instrumentation 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 semconvStabilityOptIn instrumentation 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_IN environment variable no longer changes attribute emission — net.peer.name and net.peer.port (old) are no longer set; only server.address and server.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 JaegerPropagator is selected via OTEL_PROPAGATORS or declarative config; use tracecontext instead. @pichlermarc
  • feat(instrumentation-http): set error.type to status code in metrics for error requests. #6919 @raphael-theriault-swi

semconv/v1.43.0

Choose a tag to compare

@trentm trentm released this 09 Jul 20:10
9b05f66

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.name

semconv/v1.42.0

Choose a tag to compare

@trentm trentm released this 06 Jul 19:27
f7c090c

1.42.0

🚀 Features

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.uid

Unstable 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...
Read more

v2.9.0

Choose a tag to compare

@trentm trentm released this 02 Jul 22:26
40d67b7

2.9.0

💥 Breaking Changes

  • docs(shim-opentracing): Notice: The @opentelemetry/shim-opentracing package 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.forceFlush to 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.
  • 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 BatchSpanProcessor constructor call signature has changed in "sdk-trace". For example, before new BatchSpanProcessor(exporter, { maxQueueSize: 1000 }), after new BatchSpanProcessor({ exporter, maxQueueSize: 1000 }). #6817
    • The SimpleSpanProcessor constructor call signature has changed in "sdk-trace". For example, before new SimpleSpanProcessor(exporter), after new 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

Choose a tag to compare

@trentm trentm released this 02 Jul 22:25
40d67b7

0.220.0

💥 Breaking Changes

  • refactor(sdk-logs)!: refactor BatchLogRecordProcessor constructor signature #6817 @trentm
    • (user-facing): BatchLogRecordProcessor now takes a single options object with all possible properties, instead of two separate arguments. For example, before new BatchLogRecordProcessor(exporter, { maxQueueSize: 1000 }), after new BatchLogRecordProcessor({ exporter, maxQueueSize: 1000 }).
    • interface BufferConfig -> interface BatchLogRecordProcessorOptions, and now includes the exporter property
    • interface BatchLogRecordProcessorBrowserConfig -> interface BatchLogRecordProcessorBrowserOptions
    • (user-facing): SimpleLogRecordProcessor now takes a single options object with all possible properties. For example, before new SimpleLogRecordProcessor(exporter), after new SimpleLogRecordProcessor({ exporter }). #6836
  • refactor(configuration)!: change config file parsing to not add default values, nor merge *_list fields #6765 @trentm
  • docs(shim-opencensus): Notice: The @opentracing/shim-opencensus package 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_infoscope_info_enabled and without_target_info/developmenttarget_info_enabled/development on the Prometheus pull exporter (semantics inverted), rename with_resource_constant_labelsresource_constant_labels. Validate file_format per the configuration versioning spec: accept any minor version of major 1 (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_generator from declarative config #6782 @MikeGoldsmith
  • feat(sdk-node): wire up tracer_provider.sampler from 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 EnvironmentGetter read the current process.env #6853 @pellared

🐛 Bug Fixes

  • fix(sdk-logs): stop Logger.emit() doing work (record construction, metrics, processor onEmit) after the LoggerProvider has 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 scheduleDelayMillis is 1000 #6796 @trentm
  • fix(configuration): percent-decode keys and values in resource.attributes_list per spec #6787 @MikeGoldsmith
  • fix(configuration): default log_level to info in 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 node re-export of @opentelemetry/sdk-trace-node and tracing re-export of @opentelemetry/sdk-trace-base have been deprecated. (Historically the @opentelemetry/sdk-node package has re-exported from a number of core packages. It is now recommended that users directly import from those other packages.)
  • 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

Choose a tag to compare

@pichlermarc pichlermarc released this 11 Jun 12:35
13a035b

2.8.0

🚀 Features

  • feat(sdk-trace-base): pretty-print SpanImpl, Tracer, and BasicTracerProvider via util.inspect so they render through diag and console.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

Choose a tag to compare

@pichlermarc pichlermarc released this 11 Jun 12:35
13a035b

0.219.0

💥 Breaking Changes

  • fix(configuration)!: stop removing null values from parsed config object #6679 @trentm
    • It is now the responsibility of the user of a parsed declarative config object, typically just the sdk-node package, to handle null values.
  • fix(api-logs)!: Removed NOOP_LOGGER and NoopLogger exports from @opentelemetry/api-logs. Use createNoopLogger(): Logger instead. #6713 @dyladan
  • feat(api-logs)!: rename scopeAttributes to attributes in LoggerOptions #6573 @pichlermarc
  • fix(sdk-node)!: remove buildSamplerFromConfig export #6784 @trentm

🚀 Features

🐛 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_EXCEEDED to 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._flushAll when 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 OTLPExporterNodeConfigBase resolve and link from consumer exporter pages #6725 @devareddy05

🏠 Internal

  • refactor(configuration): remove redundant env var parsing in EnvironmentConfigFactory #6710 @MikeGoldsmith

experimental/v0.218.0

Choose a tag to compare

@pichlermarc pichlermarc released this 13 May 08:55
06ad0ea

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 LoggerProviderConfig to LoggerProviderOptions #6691 @david-luna
  • refactor(sdk-logs): use Logger.enabled() within Logger.emit() implementation #6680 @david-luna

semconv/v1.41.1

Choose a tag to compare

@trentm trentm released this 12 May 17:50
013c600

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.version

Unstable 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.utilization
4 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"