Skip to content

Releases: open-telemetry/opentelemetry-js

v2.5.0

21 Jan 19:23
e5f2d42

Choose a tag to compare

2.5.0

🐛 Bug Fixes

🏠 Internal

experimental/v0.211.0

21 Jan 19:23
e5f2d42

Choose a tag to compare

0.211.0

💥 Breaking Changes

  • fix(otlp-exporter-base)!: remove xhr transport #6317 @cjihrig
    • (user-facing) The deprecated XHR-based transport has been removed and replaced with fetch(). This change affects users who relied on XmlHttpRequest instead of fetch() for sending headers with OTLP exports. To maintain compatibility on browsers without a fetch() implementation, include a fetch() polyfill.
  • chore(api-logs)!: remove ProxyLoggerProvider export #6322 @david-luna

🚀 Features

  • feat(sdk-logs): export event name from ConsoleLogRecordExporter #6310 @aicest

🐛 Bug Fixes

🏠 Internal

  • fix(build): update @types/node to 18.19.130, remove DOM types from base tsconfig #6280 @overbalance
  • refactor(sdk-logs): simplify _export() #6318 @cjihrig

semconv/v1.39.0

16 Jan 18:00
4cba019

Choose a tag to compare

1.39.0

🚀 Features

  • feat: update semantic conventions to v1.39.0 #6301 @trentm
    • Semantic Conventions v1.39.0: changelog | latest docs
    • @opentelemetry/semantic-conventions (stable) changes: none
    • @opentelemetry/semantic-conventions/incubating (unstable) changes: 19 newly deprecated exports, 70 added exports

Unstable changes in v1.39.0

19 newly deprecated exports
METRIC_PROCESS_OPEN_FILE_DESCRIPTOR_COUNT // process.open_file_descriptor.count: Replaced by `process.unix.file_descriptor.count`.
METRIC_RPC_CLIENT_DURATION                // rpc.client.duration: Replaced by `rpc.client.call.duration` with unit `s`.
METRIC_RPC_SERVER_DURATION                // rpc.server.duration: Replaced by `rpc.server.call.duration` with unit `s`.
METRIC_SYSTEM_LINUX_MEMORY_AVAILABLE      // system.linux.memory.available: Replaced by `system.memory.linux.available`.
METRIC_SYSTEM_LINUX_MEMORY_SLAB_USAGE     // system.linux.memory.slab.usage: Replaced by `system.memory.linux.slab.usage`.
ATTR_LINUX_MEMORY_SLAB_STATE              // linux.memory.slab.state: Replaced by `system.memory.linux.slab.state`.
ATTR_PEER_SERVICE                         // peer.service: Replaced by `service.peer.name`.
ATTR_RPC_CONNECT_RPC_ERROR_CODE           // rpc.connect_rpc.error_code: Replaced by `rpc.response.status_code`.
ATTR_RPC_CONNECT_RPC_REQUEST_METADATA     // (key) => `rpc.connect_rpc.request.metadata.${key}`: Replaced by `rpc.request.metadata`.
ATTR_RPC_CONNECT_RPC_RESPONSE_METADATA    // (key) => `rpc.connect_rpc.response.metadata.${key}`: Replaced by `rpc.response.metadata`.
ATTR_RPC_GRPC_REQUEST_METADATA            // (key) => `rpc.grpc.request.metadata.${key}`: Replaced by `rpc.request.metadata`.
ATTR_RPC_GRPC_RESPONSE_METADATA           // (key) => `rpc.grpc.response.metadata.${key}`: Replaced by `rpc.response.metadata`.
ATTR_RPC_GRPC_STATUS_CODE                 // rpc.grpc.status_code: Use string representation of the gRPC status code on the `rpc.response.status_code` attribute.
ATTR_RPC_JSONRPC_ERROR_CODE               // rpc.jsonrpc.error_code: Use string representation of the error code on the `rpc.response.status_code` attribute.
ATTR_RPC_JSONRPC_ERROR_MESSAGE            // rpc.jsonrpc.error_message: Use the span status description or `error.message` attribute on other signals.
ATTR_RPC_JSONRPC_REQUEST_ID               // rpc.jsonrpc.request_id: Replaced by `jsonrpc.request.id`.
ATTR_RPC_JSONRPC_VERSION                  // rpc.jsonrpc.version: Replaced by `jsonrpc.protocol.version`.
ATTR_RPC_SERVICE                          // rpc.service: Value should be included in `rpc.method` which is expected to be a fully-qualified name.
ATTR_RPC_SYSTEM                           // rpc.system: Replaced by `rpc.system.name`.
70 added exports
METRIC_MCP_CLIENT_OPERATION_DURATION                       // mcp.client.operation.duration
METRIC_MCP_CLIENT_SESSION_DURATION                         // mcp.client.session.duration
METRIC_MCP_SERVER_OPERATION_DURATION                       // mcp.server.operation.duration
METRIC_MCP_SERVER_SESSION_DURATION                         // mcp.server.session.duration

METRIC_PROCESS_UNIX_FILE_DESCRIPTOR_COUNT                  // process.unix.file_descriptor.count
METRIC_PROCESS_WINDOWS_HANDLE_COUNT                        // process.windows.handle.count

METRIC_RPC_CLIENT_CALL_DURATION                            // rpc.client.call.duration
METRIC_RPC_SERVER_CALL_DURATION                            // rpc.server.call.duration

METRIC_SYSTEM_MEMORY_LINUX_AVAILABLE                       // system.memory.linux.available
METRIC_SYSTEM_MEMORY_LINUX_SLAB_USAGE                      // system.memory.linux.slab.usage

CLOUD_PLATFORM_VALUE_AKAMAI_CLOUD_COMPUTE                  // "akamai_cloud.compute"
CLOUD_PLATFORM_VALUE_GCP_AGENT_ENGINE                      // "gcp.agent_engine"
CLOUD_PLATFORM_VALUE_HETZNER_CLOUD_SERVER                  // "hetzner.cloud_server"
CLOUD_PLATFORM_VALUE_VULTR_CLOUD_COMPUTE                   // "vultr.cloud_compute"
CLOUD_PROVIDER_VALUE_AKAMAI_CLOUD                          // "akamai_cloud"
CLOUD_PROVIDER_VALUE_HETZNER                               // "hetzner"
CLOUD_PROVIDER_VALUE_VULTR                                 // "vultr"

ATTR_GEN_AI_PROMPT_NAME                                    // gen_ai.prompt.name

ATTR_JSONRPC_PROTOCOL_VERSION                              // jsonrpc.protocol.version
ATTR_JSONRPC_REQUEST_ID                                    // jsonrpc.request.id

ATTR_K8S_POD_HOSTNAME                                      // k8s.pod.hostname
ATTR_K8S_POD_IP                                            // k8s.pod.ip
ATTR_K8S_POD_START_TIME                                    // k8s.pod.start_time

ATTR_MCP_METHOD_NAME                                       // mcp.method.name
  MCP_METHOD_NAME_VALUE_COMPLETION_COMPLETE                  // "completion/complete"
  MCP_METHOD_NAME_VALUE_ELICITATION_CREATE                   // "elicitation/create"
  MCP_METHOD_NAME_VALUE_INITIALIZE                           // "initialize"
  MCP_METHOD_NAME_VALUE_LOGGING_SET_LEVEL                    // "logging/setLevel"
  MCP_METHOD_NAME_VALUE_NOTIFICATIONS_CANCELLED              // "notifications/cancelled"
  MCP_METHOD_NAME_VALUE_NOTIFICATIONS_INITIALIZED            // "notifications/initialized"
  MCP_METHOD_NAME_VALUE_NOTIFICATIONS_MESSAGE                // "notifications/message"
  MCP_METHOD_NAME_VALUE_NOTIFICATIONS_PROGRESS               // "notifications/progress"
  MCP_METHOD_NAME_VALUE_NOTIFICATIONS_PROMPTS_LIST_CHANGED   // "notifications/prompts/list_changed"
  MCP_METHOD_NAME_VALUE_NOTIFICATIONS_RESOURCES_LIST_CHANGED // "notifications/resources/list_changed"
  MCP_METHOD_NAME_VALUE_NOTIFICATIONS_RESOURCES_UPDATED      // "notifications/resources/updated"
  MCP_METHOD_NAME_VALUE_NOTIFICATIONS_ROOTS_LIST_CHANGED     // "notifications/roots/list_changed"
  MCP_METHOD_NAME_VALUE_NOTIFICATIONS_TOOLS_LIST_CHANGED     // "notifications/tools/list_changed"
  MCP_METHOD_NAME_VALUE_PING                                 // "ping"
  MCP_METHOD_NAME_VALUE_PROMPTS_GET                          // "prompts/get"
  MCP_METHOD_NAME_VALUE_PROMPTS_LIST                         // "prompts/list"
  MCP_METHOD_NAME_VALUE_RESOURCES_LIST                       // "resources/list"
  MCP_METHOD_NAME_VALUE_RESOURCES_READ                       // "resources/read"
  MCP_METHOD_NAME_VALUE_RESOURCES_SUBSCRIBE                  // "resources/subscribe"
  MCP_METHOD_NAME_VALUE_RESOURCES_TEMPLATES_LIST             // "resources/templates/list"
  MCP_METHOD_NAME_VALUE_RESOURCES_UNSUBSCRIBE                // "resources/unsubscribe"
  MCP_METHOD_NAME_VALUE_ROOTS_LIST                           // "roots/list"
  MCP_METHOD_NAME_VALUE_SAMPLING_CREATE_MESSAGE              // "sampling/createMessage"
  MCP_METHOD_NAME_VALUE_TOOLS_CALL                           // "tools/call"
  MCP_METHOD_NAME_VALUE_TOOLS_LIST                           // "tools/list"
ATTR_MCP_PROTOCOL_VERSION                                  // mcp.protocol.version
ATTR_MCP_RESOURCE_URI                                      // mcp.resource.uri
ATTR_MCP_SESSION_ID                                        // mcp.session.id

ATTR_OTEL_EVENT_NAME                                       // otel.event.name

ATTR_PPROF_PROFILE_DOC_URL                                 // pprof.profile.doc_url
ATTR_PPROF_PROFILE_DROP_FRAMES                             // pprof.profile.drop_frames
ATTR_PPROF_PROFILE_KEEP_FRAMES                             // pprof.profile.keep_frames

ATTR_RPC_METHOD_ORIGINAL                                   // rpc.method_original
ATTR_RPC_REQUEST_METADATA                                  // (key) => `rpc.request.metadata.${key}`
ATTR_RPC_RESPONSE_METADATA                                 // (key) => `rpc.response.metadata.${key}`
ATTR_RPC_RESPONSE_STATUS_CODE                              // rpc.response.status_code
ATTR_RPC_SYSTEM_NAME                                       // rpc.system.name
  RPC_SYSTEM_NAME_VALUE_CONNECTRPC                           // "connectrpc"
  RPC_SYSTEM_NAME_VALUE_DUBBO                                // "dubbo"
  RPC_SYSTEM_NAME_VALUE_GRPC                                 // "grpc"
  RPC_SYSTEM_NAME_VALUE_JSONRPC                              // "jsonrpc"

ATTR_SERVICE_PEER_NAME                                     // service.peer.name
ATTR_SERVICE_PEER_NAMESPACE                                // service.peer.namespace

ATTR_SYSTEM_MEMORY_LINUX_SLAB_STATE                        // system.memory.linux.slab.state
  SYSTEM_MEMORY_LINUX_SLAB_STATE_VALUE_RECLAIMABLE           // "reclaimable"
  SYSTEM_MEMORY_LINUX_SLAB_STATE_VALUE_UNRECLAIMABLE         // "unreclaimable"

v2.4.0

14 Jan 18:02
5e6504d

Choose a tag to compare

2.4.0

🐛 Bug Fixes

  • fix(sdk-metrics): improve PeriodicExportingMetricReader() constructor input validation #6286 @cjihrig
  • fix(core): Avoid using DOM types for otperformance export #6278 @samchungy

🏠 Internal

  • chore(browser): fix CODEOWNERS paths for browser-related packages
  • refactor(sdk-metrics): remove Promise.allSettled() ponyfill #6277 @cjihrig

experimental/v0.210.0

14 Jan 18:02
5e6504d

Choose a tag to compare

0.210.0

💥 Breaking Changes

  • feat(sdk-node)!: do not add default MetricReader when an empty metricReaders array is provided to NodeSDK constructor #6272 @pichlermarc
    • (user-facing): setting metricsReaders: [] now prevents the NodeSDK from instantiating a Metrics SDK, regardless of settings in OTEL_METRICS_EXPORTER env var.

🐛 Bug Fixes

  • fix(sdk-node): ensure invalid metric reader config does not throw on startup #6295 @pichlermarc

v2.3.0

08 Jan 14:29
228cb92

Choose a tag to compare

2.3.0

🚀 Features

  • feat(sdk-trace-base): implement on ending in span processor #6024 @majanjua-amzn
    • note: this feature is experimental and subject to change

🐛 Bug Fixes

  • fix(sdk-metrics): remove setImmediate usage in ConsoleMetricExporter #6199 @overbalance

🏠 Internal

experimental/v0.209.0

08 Jan 14:28
228cb92

Choose a tag to compare

0.209.0

💥 Breaking Changes

  • fix(opentelemetry-sdk-node): default to otlp if OTEL_METRICS_EXPORTER is empty #6092 @jeengbe
    • (user-facing): NodeSDK now automatically instantiates a Metrics SDK. To disable it, set environment varaible OTEL_METRICS_EXPORTER=none.

🚀 Features

  • feat(exporter-prometheus): support withoutScopeInfo option #5993 @cjihrig
  • refactor(configuration): improvements on package #6101 @maryliag
  • feat(configuration): set logger provider exporter type from env variable #6104 @maryliag
  • feat(configuration): set meter provider exporter type from env variable #6105 @maryliag
  • feat(configuration): set tracer provider exporter type from env variables #6106 @maryliag
  • feat(configuration): set meter provider exporter type from env variable #6105 @maryliag
  • refactor(configuration): throw warning and not error for invalid files #6124 @maryliag
  • refactor(configuration): dont have a default value for node resource detectors #6131 @maryliag
  • feat(configuration): doesnt set meter,tracer,logger provider by default #6130 @maryliag
  • feat(opentelemetry-sdk-node): set instrumentation and propagators for experimental start #6148 @maryliag
  • refactor(configuration): set console exporter as empty object #6164 @maryliag
  • feat(instrumentation-http, instrumentation-fetch, instrumentation-xml-http-request): support "QUERY" as a known HTTP method

🐛 Bug Fixes

  • fix(instrumentation-grpc): attach correct name to diag message #6097 @pichlermarc
  • fix(configuration): merge service name from OTEL_SERVICE_NAME instead of replacing all resource attributes #6162 @maryliag
  • fix(configuration): combine resource attributes and attributes list correctly #6166 @maryliag
  • fix(sdk-node): add missing direct dependency to @opentelemetry/context-async-hooks #6189 @pichlermarc
  • fix(instrumentation-fetch): use feature detection for browser environment #6200 @overbalance
  • fix(otlp-exporter-base): ensure retry on network errors during HTTP export #6147 @jsokol805

📚 Documentation

  • docs(exporter-prometheus): correct @default value for appendTimestamp option in JSDoc #6191 @Slawaq

🏠 Internal

  • refactor(opentelemetry-sdk-node): simplify calculation of traceExportersList #6132 @cjihrig
  • refactor(instrumentation): combine filter() calls in _onRequire #6142 @cjihrig
  • test(instrumentation-http): make timing dependent test more robust #6144 @cjihrig
  • refactor(opentelemetry-sdk-node): simplify calculation of validPropagators #6143 @cjihrig
  • test(instrumentation-http): replace uses of deprecated abort() #6149 @cjihrig
  • refactor(configuration): simplify boolean check #6158 @cjihrig
  • chore: disallow constructor parameter property syntax #6187 @legendecas
  • chore(instrumentation-grpc): use local protobuf-ts plugin instead of buf.build remote #6202 @overbalance
  • test(otlp-transformer): add benchmark for ProtobufTraceSerializer #6226 @overbalance
  • chore(backcompat): fix backcompat tests and tsconfig cleanup #6232 @overbalance
  • refactor(instrumentation-http): refactor getIncomingRequestAttributes() to reduce work #6207 @cjihrig
  • refactor(api-logs,instrumentation-fetch): remove platform-specific globalThis, use globalThis directly #6208 @overbalance
  • test(otlp-transformer): remove obsolete compat code from toBase64() #6242 @cjihrig
  • refactor(otlp-exporter-base): simplify isExportHTTPErrorRetryable() #6249 @cjihrig
  • refactor(sdk-logs): remove wrapper Promise in _flushOneBatch() #6253 @cjihrig

semconv/v1.38.0

06 Nov 18:04
e460f03

Choose a tag to compare

1.38.0

🚀 Features

  • feat: update semantic conventions to v1.38.0 #6090 @trentm
    • Semantic Conventions v1.38.0: changelog | latest docs
    • @opentelemetry/semantic-conventions (stable) changes: none
    • @opentelemetry/semantic-conventions/incubating (unstable) changes: 1 exported value changed, 40 newly deprecated exports, 1 newly undeprecated export, 157 added exports

Unstable changes in v1.38.0

1 exported value changed
ATTR_PROCESS_CONTEXT_SWITCH_TYPE // process.context_switch_type -> process.context_switch.type
40 newly deprecated exports
METRIC_K8S_CRONJOB_ACTIVE_JOBS                  // k8s.cronjob.active_jobs: Replaced by `k8s.cronjob.job.active`.
METRIC_K8S_DAEMONSET_CURRENT_SCHEDULED_NODES    // k8s.daemonset.current_scheduled_nodes: Replaced by `k8s.daemonset.node.current_scheduled`.
METRIC_K8S_DAEMONSET_DESIRED_SCHEDULED_NODES    // k8s.daemonset.desired_scheduled_nodes: Replaced by `k8s.daemonset.node.desired_scheduled`.
METRIC_K8S_DAEMONSET_MISSCHEDULED_NODES         // k8s.daemonset.misscheduled_nodes: Replaced by `k8s.daemonset.node.misscheduled`.
METRIC_K8S_DAEMONSET_READY_NODES                // k8s.daemonset.ready_nodes: Replaced by `k8s.daemonset.node.ready`.
METRIC_K8S_DEPLOYMENT_AVAILABLE_PODS            // k8s.deployment.available_pods: Replaced by `k8s.deployment.pod.available`.
METRIC_K8S_DEPLOYMENT_DESIRED_PODS              // k8s.deployment.desired_pods: Replaced by `k8s.deployment.pod.desired`.
METRIC_K8S_HPA_CURRENT_PODS                     // k8s.hpa.current_pods: Replaced by `k8s.hpa.pod.current`.
METRIC_K8S_HPA_DESIRED_PODS                     // k8s.hpa.desired_pods: Replaced by `k8s.hpa.pod.desired`.
METRIC_K8S_HPA_MAX_PODS                         // k8s.hpa.max_pods: Replaced by `k8s.hpa.pod.max`.
METRIC_K8S_HPA_MIN_PODS                         // k8s.hpa.min_pods: Replaced by `k8s.hpa.pod.min`.
METRIC_K8S_JOB_ACTIVE_PODS                      // k8s.job.active_pods: Replaced by `k8s.job.pod.active`.
METRIC_K8S_JOB_DESIRED_SUCCESSFUL_PODS          // k8s.job.desired_successful_pods: Replaced by `k8s.job.pod.desired_successful`.
METRIC_K8S_JOB_FAILED_PODS                      // k8s.job.failed_pods: Replaced by `k8s.job.pod.failed`.
METRIC_K8S_JOB_MAX_PARALLEL_PODS                // k8s.job.max_parallel_pods: Replaced by `k8s.job.pod.max_parallel`.
METRIC_K8S_JOB_SUCCESSFUL_PODS                  // k8s.job.successful_pods: Replaced by `k8s.job.pod.successful`.
METRIC_K8S_NODE_ALLOCATABLE_CPU                 // k8s.node.allocatable.cpu: Replaced by `k8s.node.cpu.allocatable`.
METRIC_K8S_NODE_ALLOCATABLE_EPHEMERAL_STORAGE   // k8s.node.allocatable.ephemeral_storage: Replaced by `k8s.node.ephemeral_storage.allocatable`.
METRIC_K8S_NODE_ALLOCATABLE_MEMORY              // k8s.node.allocatable.memory: Replaced by `k8s.node.memory.allocatable`.
METRIC_K8S_NODE_ALLOCATABLE_PODS                // k8s.node.allocatable.pods: Replaced by `k8s.node.pod.allocatable`.
METRIC_K8S_REPLICASET_AVAILABLE_PODS            // k8s.replicaset.available_pods: Replaced by `k8s.replicaset.pod.available`.
METRIC_K8S_REPLICASET_DESIRED_PODS              // k8s.replicaset.desired_pods: Replaced by `k8s.replicaset.pod.desired`.
METRIC_K8S_REPLICATIONCONTROLLER_AVAILABLE_PODS // k8s.replicationcontroller.available_pods: Replaced by `k8s.replicationcontroller.pod.available`.
METRIC_K8S_REPLICATIONCONTROLLER_DESIRED_PODS   // k8s.replicationcontroller.desired_pods: Replaced by `k8s.replicationcontroller.pod.desired`.
METRIC_K8S_STATEFULSET_CURRENT_PODS             // k8s.statefulset.current_pods: Replaced by `k8s.statefulset.pod.current`.
METRIC_K8S_STATEFULSET_DESIRED_PODS             // k8s.statefulset.desired_pods: Replaced by `k8s.statefulset.pod.desired`.
METRIC_K8S_STATEFULSET_READY_PODS               // k8s.statefulset.ready_pods: Replaced by `k8s.statefulset.pod.ready`.
METRIC_K8S_STATEFULSET_UPDATED_PODS             // k8s.statefulset.updated_pods: Replaced by `k8s.statefulset.pod.updated`.
METRIC_RPC_CLIENT_REQUESTS_PER_RPC              // rpc.client.requests_per_rpc: Removed, no replacement at this time.
METRIC_RPC_CLIENT_RESPONSES_PER_RPC             // rpc.client.responses_per_rpc: Removed, no replacement at this time.
METRIC_RPC_SERVER_REQUESTS_PER_RPC              // rpc.server.requests_per_rpc: Removed, no replacement at this time.
METRIC_RPC_SERVER_RESPONSES_PER_RPC             // rpc.server.responses_per_rpc: Removed, no replacement at this time.
METRIC_V8JS_HEAP_SPACE_AVAILABLE_SIZE           // v8js.heap.space.available_size: Replaced by `v8js.memory.heap.space.available_size`.
METRIC_V8JS_HEAP_SPACE_PHYSICAL_SIZE            // v8js.heap.space.physical_size: Replaced by `v8js.memory.heap.space.physical_size`.
GEN_AI_SYSTEM_VALUE_AZ_AI_INFERENCE             // az.ai.inference: Replaced by `azure.ai.inference`.
GEN_AI_SYSTEM_VALUE_AZ_AI_OPENAI                // az.ai.openai: Replaced by `azure.ai.openai`.
ATTR_PROCESS_PAGING_FAULT_TYPE                  // process.paging.fault_type: Replaced by `system.paging.fault.type`.
ATTR_SYSTEM_CPU_LOGICAL_NUMBER                  // system.cpu.logical_number: Replaced by `cpu.logical_number`.
ATTR_SYSTEM_PAGING_TYPE                         // system.paging.type: Replaced by `system.paging.fault.type`.
ATTR_SYSTEM_PROCESS_STATUS                      // system.process.status: Replaced by `process.state`.
1 newly undeprecated export
GEN_AI_SYSTEM_VALUE_XAI // xai
157 added exports
METRIC_CONTAINER_MEMORY_AVAILABLE                                       // container.memory.available
METRIC_CONTAINER_MEMORY_PAGING_FAULTS                                   // container.memory.paging.faults
METRIC_CONTAINER_MEMORY_RSS                                             // container.memory.rss
METRIC_CONTAINER_MEMORY_WORKING_SET                                     // container.memory.working_set

METRIC_K8S_CONTAINER_CPU_LIMIT_UTILIZATION                              // k8s.container.cpu.limit_utilization
METRIC_K8S_CONTAINER_CPU_REQUEST_UTILIZATION                            // k8s.container.cpu.request_utilization
METRIC_K8S_CRONJOB_JOB_ACTIVE                                           // k8s.cronjob.job.active
METRIC_K8S_DAEMONSET_NODE_CURRENT_SCHEDULED                             // k8s.daemonset.node.current_scheduled
METRIC_K8S_DAEMONSET_NODE_DESIRED_SCHEDULED                             // k8s.daemonset.node.desired_scheduled
METRIC_K8S_DAEMONSET_NODE_MISSCHEDULED                                  // k8s.daemonset.node.misscheduled
METRIC_K8S_DAEMONSET_NODE_READY                                         // k8s.daemonset.node.ready
METRIC_K8S_DEPLOYMENT_POD_AVAILABLE                                     // k8s.deployment.pod.available
METRIC_K8S_DEPLOYMENT_POD_DESIRED                                       // k8s.deployment.pod.desired
METRIC_K8S_HPA_POD_CURRENT                                              // k8s.hpa.pod.current
METRIC_K8S_HPA_POD_DESIRED                                              // k8s.hpa.pod.desired
METRIC_K8S_HPA_POD_MAX                                                  // k8s.hpa.pod.max
METRIC_K8S_HPA_POD_MIN                                                  // k8s.hpa.pod.min
METRIC_K8S_JOB_POD_ACTIVE                                               // k8s.job.pod.active
METRIC_K8S_JOB_POD_DESIRED_SUCCESSFUL                                   // k8s.job.pod.desired_successful
METRIC_K8S_JOB_POD_FAILED                                               // k8s.job.pod.failed
METRIC_K8S_JOB_POD_MAX_PARALLEL                                         // k8s.job.pod.max_parallel
METRIC_K8S_JOB_POD_SUCCESSFUL                                           // k8s.job.pod.successful
METRIC_K8S_NODE_CPU_ALLOCATABLE                                         // k8s.node.cpu.allocatable
METRIC_K8S_NODE_EPHEMERAL_STORAGE_ALLOCATABLE                           // k8s.node.ephemeral_storage.allocatable
METRIC_K8S_NODE_MEMORY_ALLOCATABLE                                      // k8s.node.memory.allocatable
METRIC_K8S_NODE_MEMORY_AVAILABLE                                        // k8s.node.memory.available
METRIC_K8S_NODE_MEMORY_PAGING_FAULTS                                    // k8s.node.memory.paging.faults
METRIC_K8S_NODE_MEMORY_RSS                                              // k8s.node.memory.rss
METRIC_K8S_NODE_MEMORY_WORKING_SET                                      // k8s.node.memory.working_set
METRIC_K8S_NODE_POD_ALLOCATABLE                                         // k8s.node.pod.allocatable
METRIC_K8S_POD_MEMORY_AVAILABLE                                         // k8s.pod.memory.available
METRIC_K8S_POD_MEMORY_PAGING_FAULTS                                     // k8s.pod.memory.paging.faults
METRIC_K8S_POD_MEMORY_RSS                                               // k8s.pod.memory.rss
METRIC_K8S_POD_MEMORY_WORKING_SET                                       // k8s.pod.memory.working_set
METRIC_K8S_POD_STATUS_PHASE                                             // k8s.pod.status.phase
METRIC_K8S_POD_STATUS_REASON                                            // k8s.pod.status.reason
METRIC_K8S_REPLICASET_POD_AVAILABLE                                     // k8s.replicaset.pod.available
METRIC_K8S_REPLICASET_POD_DESIRED                                       // k8s.replicaset.pod.desired
METRIC_K8S_REPLICATIONCONTROLLER_POD_AVAILABLE                          // k8s.replicationcontroller.pod.available
METRIC_K8S_REPLICATIONCONTROLLER_POD_DESIRED       ...
Read more

experimental/v0.208.0

06 Nov 16:01
5eaa869

Choose a tag to compare

0.208.0

💥 Breaking Changes

  • feat(otlp-exporter-base)!: allow passing an async function to headers option #5994 @pichlermarc
    • In addition to static headers, OTLP exporters now allow passing an async function that returns headers which will be called before each export. See TSDoc for headers in OTLPExporterConfigBase for details.
    • Breaking changes:
      • (user-facing): headers option in all OTLP exporters now accepts a function that returns a Promise<Record<string, string>> in addition to the existing Record<string, string> type.
      • (user-facing): headers in HttpNodeRequestParameters, FetchTransportParameters, and XhrRequestParameters now only accept async functions.
      • (user-facing): headers in OtlpHttpConfiguration now only accepts async functions.
  • feat(sdk-logs): remove NoopLogRecordProcessor from exports #6079 @cjihrig
  • feat(api-logs): remove ProxyLogger from exports #6082 @cjihrig
  • feat(api-logs): remove NOOP_LOGGER_PROVIDER and NoopLoggerProvider from exports #6086 @cjihrig

🚀 Features

  • feat(instrumentation): allow error of safeExecuteInTheMiddleAsync to be async #6032 @JPeer264
  • feat(opentelemetry-configuration): parse logger provider from config file #5995 @maryliag
  • feat(opentelemetry-configuration): parse meter provider from config file #6000 @maryliag
  • feat(opentelemetry-configuration): add backup options for certificates and endpoints #6038 @maryliag
  • feat(opentelemetry-configuration): add backups for compression, timeout, headers #6058 @JamieDanielson
  • feat(opentelemetry-configuration): set attributes from attribute list from env variables #6043 @maryliag

🐛 Bug Fixes

  • fix(instrumentation-fetch): Handling null-body-status responses #6037 @m0sa

📚 Documentation

  • doc(sdk-logs): document that SimpleLogRecordProcessor is not for production use #6080 @cjihrig

🏠 Internal

  • test(otlp-grpc-exporter-base): increase timeout in flaky test #6042 @cjihrig
  • test(sdk-node): use process.env consistently in tests #6052 @cjihrig
  • test(sdk-node): ensure process.env is cleaned up between tests #6066 @cjihrig

v2.2.0

21 Oct 13:24
fb6476d

Choose a tag to compare

2.2.0

🐛 Bug Fixes

  • fix(core): avoid leaking Node.js types via unrefTimer() util #5986 @pichlermarc
  • fix(core): avoid leaking Node.js types via otperformance #5987 @pichlermarc
    • important: this bug fix may be breaking for certain uses of otperformance
      • otperformance.now() and otperformance.timeOrigin are not affected.
      • the previously used type was incorrect and overly broad, leading to unexpected run-time behavior runtimes that are not Node.js.
      • these problems are now caught on compile-time: if you have been using this API and this change is breaking to you, please consider using your target platform's performance implementation instead.

🏠 Internal

  • test(shim-opentracing): add comparison thresholds in flaky assertions #5974 @cjihrig
  • test(exporter-jaeger): clean up OTEL_EXPORTER_JAEGER_AGENT_PORT between tests #6003 @cjihrig
  • test(sdk-trace-base): ensure environment variables are cleaned up between tests #6011 @cjihrig
  • perf(opentelemetry-core): optimize attribute serialization #5866 @43081j
  • test: test Node.js 25 in CI #6019 @cjihrig