Releases: open-telemetry/opentelemetry-js
Releases · open-telemetry/opentelemetry-js
semconv/v1.34.0
1.34.0
🚀 Features
- feat: update semantic conventions to v1.34.0 #5703 @trentm
- Semantic Conventions v1.34.0: changelog | latest docs
@opentelemetry/semantic-conventions(stable) changes: none@opentelemetry/semantic-conventions/incubating(unstable) changes: 12 added exports
Unstable changes in v1.34.0
12 added exports
ATTR_AWS_BEDROCK_GUARDRAIL_ID // aws.bedrock.guardrail.id
ATTR_AWS_BEDROCK_KNOWLEDGE_BASE_ID // aws.bedrock.knowledge_base.id
ATTR_AWS_KINESIS_STREAM_NAME // aws.kinesis.stream_name
ATTR_AWS_LAMBDA_RESOURCE_MAPPING_ID // aws.lambda.resource_mapping.id
ATTR_AWS_SECRETSMANAGER_SECRET_ARN // aws.secretsmanager.secret.arn
ATTR_AWS_SNS_TOPIC_ARN // aws.sns.topic.arn
ATTR_AWS_SQS_QUEUE_URL // aws.sqs.queue.url
ATTR_AWS_STEP_FUNCTIONS_ACTIVITY_ARN // aws.step_functions.activity.arn
ATTR_AWS_STEP_FUNCTIONS_STATE_MACHINE_ARN // aws.step_functions.state_machine.arn
ATTR_FEATURE_FLAG_RESULT_VALUE // feature_flag.result.value
ATTR_GEN_AI_CONVERSATION_ID // gen_ai.conversation.id
ATTR_GEN_AI_DATA_SOURCE_ID // gen_ai.data_source.idsemconv/v1.33.1
1.33.1
💥 Breaking Changes
- fix: Remove the subset of
DB_SYSTEM_NAME_VALUE_*exports that are unstable from the@opentelemetry/semantic-conventionsentry point. #5690- Version 1.33.0 erroneously included all
DB_SYSTEM_NAME_VALUE_*constants in the stable entry point. Some of those enum values are not yet stable. They have been moved back to the unstable@opentelemetry/semantic-conventions/incubatingentry point. See the PR description for a full list.
- Version 1.33.0 erroneously included all
experimental/v0.201.1
v2.0.1
2.0.1
🐛 Bug Fixes
- fix(resources): guard asynchronous resource attribute rejections from causing unhandled promise rejection #5544 @dyladan
- fix(resource): do not trigger
Accessing resource attributes before async attributes settledwarning when detecting resources #5546 @dyladan- verbose logging of detected resource removed
- fix(resource): use dynamic import over require to improve ESM compliance #5298 @xiaoxiangmoe
📚 Documentation
- refactor(metrics): Updated metrics samples to no longer treat
sdk.start()as async #5617 @JacksonWeber
🏠 Internal
- refactor(sdk-trace-base): update semconv usage to ATTR_ exports #5669 @trentm
- refactor(sdk-trace-web): update semconv usage to ATTR_ exports #5672 @trentm
- refactor(resources): update semconv usage to ATTR_ exports #5666 @trentm
- test(sdk-metrics): fix multiple problematic assertRejects() calls #5611 @cjihrig
- refactor: replace assertRejects() with assert.rejects() #5614 @cjihrig
- refactor(core): migrate from deprecated semconv constants #5575 @alumni55748
- refactor(opentelemetry-core): simplify
parseKeyPairsIntoRecord()#5610 @cjihrig
experimental/v0.201.0
0.201.0
🚀 Features
- feat(instrumentation-xml-http-request): support migration to stable HTTP semconv, v1.23.1 #5662 @trentm
- Configure the instrumentation with
semconvStabilityOptIn: 'http'to use the new, stable semconv v1.23.1 semantics or'http/dup'for both old (v1.7.0) and stable semantics. WhensemconvStabilityOptInis not specified (or does not contain these values), it uses the old semconv v1.7.0. I.e. the default behavior is unchanged.
- Configure the instrumentation with
- feat(instrumentation-fetch): support migration to stable HTTP semconv, v1.23.1 #5651 @trentm
- Configure the instrumentation with
semconvStabilityOptIn: 'http'to use the new, stable semconv v1.23.1 semantics or'http/dup'for both old (v1.7.0) and stable semantics. WhensemconvStabilityOptInis not specified (or does not contain these values), it uses the old semconv v1.7.0. I.e. the default behavior is unchanged.
- Configure the instrumentation with
- feat(instrumentation): New
semconvStabilityFromStr()utility for semconv stability migration in instrumentations. #5684 @trentm- See the utility comment.
- feat(instrumentation-grpc): support migration to stable HTTP semconv #5653 @JamieDanielson
- feat(instrumentation-http): capture synthetic source type on requests #5488 @JacksonWeber
🐛 Bug Fixes
- fix(otlp-transformer): do not throw when deserializing empty JSON response #5551 @pichlermarc
- fix(instrumentation-http): report stable client metrics response code #9586 @jtescher
- fix(sdk-node): instantiate baggage processor when env var is set #5634 @pichlermarc
🏠 Internal
- refactor(instrumentation-http): Remove legacy http span attributes and metrics #5552 @svetlanabrennan
- refactor(instrumentation-http): Add back support for http semconv #5665 @JamieDanielson
- Note: We initially removed support for legacy http attributes and metrics, but then added back for an additional 6 months to ensure all instrumentations could be updated and kept consistent. There should be no net new change in this instrumentation related to these semantic conventions. See #5646 for details.
- refactor(sdk-node): update semconv usage to
ATTR_exports #5668 @trentm - chore(sdk-node): Refactored using
get*FromEnvutility function instead ofprocess.envfor NodeSDK's resource detector setup. #5582 @beeme1mr - chore(sdk-node): Refactored using
get*FromEnvutility function instead ofprocess.envfor NodeSDK's logging setup. #5563 @weyert - test: test Node.js 24 in CI #5661 @cjihrig
semconv/v1.33.0
1.33.0
🚀 Features
- feat: update semantic conventions to v1.33.0 #5654 @trentm
- Semantic Conventions v1.33.0: changelog | latest docs
@opentelemetry/semantic-conventions(stable) changes: 56 added exports@opentelemetry/semantic-conventions/incubating(unstable) changes: 1 exported value changed, 6 newly deprecated exports, 1 newly undeprecated export, 57 added exports
Stable changes in v1.33.0
56 added exports
METRIC_DB_CLIENT_OPERATION_DURATION // db.client.operation.duration
ATTR_CODE_COLUMN_NUMBER // code.column.number
ATTR_CODE_FILE_PATH // code.file.path
ATTR_CODE_FUNCTION_NAME // code.function.name
ATTR_CODE_LINE_NUMBER // code.line.number
ATTR_CODE_STACKTRACE // code.stacktrace
ATTR_DB_COLLECTION_NAME // db.collection.name
ATTR_DB_NAMESPACE // db.namespace
ATTR_DB_OPERATION_BATCH_SIZE // db.operation.batch.size
ATTR_DB_OPERATION_NAME // db.operation.name
ATTR_DB_QUERY_SUMMARY // db.query.summary
ATTR_DB_QUERY_TEXT // db.query.text
ATTR_DB_RESPONSE_STATUS_CODE // db.response.status_code
ATTR_DB_STORED_PROCEDURE_NAME // db.stored_procedure.name
ATTR_DB_SYSTEM_NAME // db.system.name
DB_SYSTEM_NAME_VALUE_ACTIAN_INGRES // "actian.ingres"
DB_SYSTEM_NAME_VALUE_AWS_DYNAMODB // "aws.dynamodb"
DB_SYSTEM_NAME_VALUE_AWS_REDSHIFT // "aws.redshift"
DB_SYSTEM_NAME_VALUE_AZURE_COSMOSDB // "azure.cosmosdb"
DB_SYSTEM_NAME_VALUE_CASSANDRA // "cassandra"
DB_SYSTEM_NAME_VALUE_CLICKHOUSE // "clickhouse"
DB_SYSTEM_NAME_VALUE_COCKROACHDB // "cockroachdb"
DB_SYSTEM_NAME_VALUE_COUCHBASE // "couchbase"
DB_SYSTEM_NAME_VALUE_COUCHDB // "couchdb"
DB_SYSTEM_NAME_VALUE_DERBY // "derby"
DB_SYSTEM_NAME_VALUE_ELASTICSEARCH // "elasticsearch"
DB_SYSTEM_NAME_VALUE_FIREBIRDSQL // "firebirdsql"
DB_SYSTEM_NAME_VALUE_GCP_SPANNER // "gcp.spanner"
DB_SYSTEM_NAME_VALUE_GEODE // "geode"
DB_SYSTEM_NAME_VALUE_H2DATABASE // "h2database"
DB_SYSTEM_NAME_VALUE_HBASE // "hbase"
DB_SYSTEM_NAME_VALUE_HIVE // "hive"
DB_SYSTEM_NAME_VALUE_HSQLDB // "hsqldb"
DB_SYSTEM_NAME_VALUE_IBM_DB2 // "ibm.db2"
DB_SYSTEM_NAME_VALUE_IBM_INFORMIX // "ibm.informix"
DB_SYSTEM_NAME_VALUE_IBM_NETEZZA // "ibm.netezza"
DB_SYSTEM_NAME_VALUE_INFLUXDB // "influxdb"
DB_SYSTEM_NAME_VALUE_INSTANTDB // "instantdb"
DB_SYSTEM_NAME_VALUE_INTERSYSTEMS_CACHE // "intersystems.cache"
DB_SYSTEM_NAME_VALUE_MARIADB // "mariadb"
DB_SYSTEM_NAME_VALUE_MEMCACHED // "memcached"
DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER // "microsoft.sql_server"
DB_SYSTEM_NAME_VALUE_MONGODB // "mongodb"
DB_SYSTEM_NAME_VALUE_MYSQL // "mysql"
DB_SYSTEM_NAME_VALUE_NEO4J // "neo4j"
DB_SYSTEM_NAME_VALUE_OPENSEARCH // "opensearch"
DB_SYSTEM_NAME_VALUE_ORACLE_DB // "oracle.db"
DB_SYSTEM_NAME_VALUE_OTHER_SQL // "other_sql"
DB_SYSTEM_NAME_VALUE_POSTGRESQL // "postgresql"
DB_SYSTEM_NAME_VALUE_REDIS // "redis"
DB_SYSTEM_NAME_VALUE_SAP_HANA // "sap.hana"
DB_SYSTEM_NAME_VALUE_SAP_MAXDB // "sap.maxdb"
DB_SYSTEM_NAME_VALUE_SOFTWAREAG_ADABAS // "softwareag.adabas"
DB_SYSTEM_NAME_VALUE_SQLITE // "sqlite"
DB_SYSTEM_NAME_VALUE_TERADATA // "teradata"
DB_SYSTEM_NAME_VALUE_TRINO // "trino"Unstable changes in v1.33.0
1 exported value changed
ATTR_FEATURE_FLAG_PROVIDER_NAME // feature_flag.provider_name -> feature_flag.provider.name6 newly deprecated exports
METRIC_OTEL_SDK_EXPORTER_SPAN_EXPORTED_COUNT // otel.sdk.exporter.span.exported.count: Renamed to `otel.sdk.exporter.span.exported`.
METRIC_OTEL_SDK_EXPORTER_SPAN_INFLIGHT_COUNT // otel.sdk.exporter.span.inflight.count: Renamed to `otel.sdk.exporter.span.inflight`.
METRIC_OTEL_SDK_PROCESSOR_SPAN_PROCESSED_COUNT // otel.sdk.processor.span.processed.count: Renamed to `otel.sdk.processor.span.processed`.
METRIC_OTEL_SDK_SPAN_ENDED_COUNT // otel.sdk.span.ended.count: Renamed to `otel.sdk.span.ended`.
METRIC_OTEL_SDK_SPAN_LIVE_COUNT // otel.sdk.span.live.count: Renamed to `otel.sdk.span.live`.
ATTR_FEATURE_FLAG_EVALUATION_ERROR_MESSAGE // feature_flag.evaluation.error.message: Replaced by `error.message`.1 newly undeprecated export
ATTR_DB_QUERY_PARAMETER // (key) => `db.query.parameter.${key}`57 added exports
METRIC_JVM_FILE_DESCRIPTOR_COUNT // jvm.file_descriptor.count
METRIC_OTEL_SDK_EXPORTER_METRIC_DATA_POINT_EXPORTED // otel.sdk.exporter.metric_data_point.exported
METRIC_OTEL_SDK_EXPORTER_METRIC_DATA_POINT_INFLIGHT // otel.sdk.exporter.metric_data_point.inflight
METRIC_OTEL_SDK_EXPORTER_OPERATION_DURATION // otel.sdk.exporter.operation.duration
METRIC_OTEL_SDK_EXPORTER_SPAN_EXPORTED // otel.sdk.exporter.span.exported
METRIC_OTEL_SDK_EXPORTER_SPAN_INFLIGHT // otel.sdk.exporter.span.inflight
METRIC_OTEL_SDK_METRIC_READER_COLLECTION_DURATION // otel.sdk.metric_reader.collection.duration
METRIC_OTEL_SDK_PROCESSOR_SPAN_PROCESSED // otel.sdk.processor.span.processed
METRIC_OTEL_SDK_SPAN_ENDED // otel.sdk.span.ended
METRIC_OTEL_SDK_SPAN_LIVE // otel.sdk.span.live
ATTR_APP_SCREEN_COORDINATE_X // app.screen.coordinate.x
ATTR_APP_SCREEN_COORDINATE_Y // app.screen.coordinate.y
ATTR_APP_WIDGET_ID // app.widget.id
ATTR_APP_WIDGET_NAME // app.widget.name
ATTR_CICD_PIPELINE_ACTION_NAME // cicd.pipeline.action.name
CICD_PIPELINE_ACTION_NAME_VALUE_BUILD // "BUILD"
CICD_PIPELINE_ACTION_NAME_VALUE_RUN // "RUN"
CICD_PIPELINE_ACTION_NAME_VALUE_SYNC // "SYNC"
ATTR_CICD_PIPELINE_TASK_RUN_RESULT // cicd.pipeline.task.run.result
CICD_PIPELINE_TASK_RUN_RESULT_VALUE_CANCELLATION // "cancellation"
CICD_PIPELINE_TASK_RUN_RESULT_VALUE_ERROR // "error"
CICD_PIPELINE_TASK_RUN_RESULT_VALUE_FAILURE // "failure"
CICD_PIPELINE_TASK_RUN_RESULT_VALUE_SKIP // "skip"
CICD_PIPELINE_TASK_RUN_RESULT_VALUE_SUCCESS // "success"
CICD_PIPELINE_TASK_RUN_RESULT_VALUE_TIMEOUT // "timeout"
ATTR_CICD_WORKER_ID // cicd.worker.id
ATTR_CICD_WORKER_NAME // cicd.worker.name
ATTR_CICD_WORKER_URL_FULL // cicd.worker.url.full
GEN_AI_OPERATION_NAME_VALUE_GENERATE_CONTENT // "generate_content"
GEN_AI_OPERATION_NAME_VALUE_INVOKE_AGENT // "invoke_agent"
GEN_AI_SYSTEM_VALUE_GCP_GEMINI // "gcp.gemini"
GEN_AI_SYSTEM_VALUE_GCP_GEN_AI // "gcp.gen_ai"
GEN_AI_SYSTEM_VALUE_GCP_VERTEX_AI // "gcp.vertex_ai"
ATTR_GEN_AI_TOOL_DESCRIPTION // gen_ai.tool.description
ATTR_JVM_GC_CAUSE // jvm.gc.cause
ATTR_K8S_CRONJOB_ANNOTATION // (key) => `k8s.cronjob.annotation.${key}`
ATTR_K8S_CRONJOB_LABEL // (key) => `k8s.cronjob.label.${key}`
ATTR_K8S_DAEMONSET_ANNOTATION // (key) => `k8s.daemonset.annotation.${key}`
ATTR_K8S_DAEMONSET_LABEL // (key) => `k8s.daemonset.label.${key}`
ATTR_K8S_DEPLOYMENT_ANNOTATION // (key) => `k8s.deployment.annotation.${key}`
ATTR_K8S_DEPLOYMENT_LABEL // (key) => `k8s.deployment.label.${key}`
ATTR_K8S_JOB_ANNOTATION // (key) => `k8s.job.annotation.${key}`
ATTR_K8S_JOB_LABEL // (key) => `k8s.job.label.${key}`
ATTR_K8S_NAMESPACE_ANNOTATION // (key) => `k8s.namespace.annotation.${key}`
ATTR_K8S_NAMESPACE_LABEL // (key) => `k8s.namespace.label.${key}`
ATTR_K8S_NODE_ANNOTATION // (key) => `k8s.node.annotation.${key}`
ATTR_K8S_NODE_LABEL // (key) => `k8s.node.label.${key}`
ATTR_K8S_REPLICASET_ANNOTATION // (key) => `k8s.replicaset.annotation.${key}`
ATTR_K8S_REPLICASET_LABEL // (key) => `k8s.replicaset.label.${key}`
ATTR_K8S_STATEFULSET_ANNOTATION // (key) => `k8s.statefulset.annotation.${key}`
ATTR_K8S_STATEFULSET_LABEL // (key) => `k8s.statefulset.label.${key}`
OTEL_COMPONENT_TYPE_VALUE_OTLP_GRPC_METRIC_EXPORTER // ...semconv/v1.32.0
1.32.0
🚀 Features
- feat: update semantic conventions to v1.32.0 #5603 @trentm
- Semantic Conventions v1.32.0: changelog | latest docs
@opentelemetry/semantic-conventions(stable) changes: none@opentelemetry/semantic-conventions/incubating(unstable) changes: 2 newly deprecated exports, 65 added exports
Unstable changes in v1.32.0
2 newly deprecated exports
ATTR_FEATURE_FLAG_EVALUATION_REASON // feature_flag.evaluation.reason: Replaced by `feature_flag.result.reason`.
ATTR_FEATURE_FLAG_VARIANT // feature_flag.variant: Replaced by `feature_flag.result.variant`.65 added exports
METRIC_CPYTHON_GC_COLLECTED_OBJECTS // cpython.gc.collected_objects
METRIC_CPYTHON_GC_COLLECTIONS // cpython.gc.collections
METRIC_CPYTHON_GC_UNCOLLECTABLE_OBJECTS // cpython.gc.uncollectable_objects
METRIC_OTEL_SDK_EXPORTER_LOG_EXPORTED // otel.sdk.exporter.log.exported
METRIC_OTEL_SDK_EXPORTER_LOG_INFLIGHT // otel.sdk.exporter.log.inflight
METRIC_OTEL_SDK_LOG_CREATED // otel.sdk.log.created
METRIC_OTEL_SDK_PROCESSOR_LOG_PROCESSED // otel.sdk.processor.log.processed
METRIC_OTEL_SDK_PROCESSOR_LOG_QUEUE_CAPACITY // otel.sdk.processor.log.queue.capacity
METRIC_OTEL_SDK_PROCESSOR_LOG_QUEUE_SIZE // otel.sdk.processor.log.queue.size
ATTR_APP_INSTALLATION_ID // app.installation.id
ATTR_CPYTHON_GC_GENERATION // cpython.gc.generation
CPYTHON_GC_GENERATION_VALUE_GENERATION_0 // 0
CPYTHON_GC_GENERATION_VALUE_GENERATION_1 // 1
CPYTHON_GC_GENERATION_VALUE_GENERATION_2 // 2
ATTR_DB_STORED_PROCEDURE_NAME // db.stored_procedure.name
ATTR_ERROR_MESSAGE // error.message
ATTR_FEATURE_FLAG_RESULT_REASON // feature_flag.result.reason
FEATURE_FLAG_RESULT_REASON_VALUE_CACHED // "cached"
FEATURE_FLAG_RESULT_REASON_VALUE_DEFAULT // "default"
FEATURE_FLAG_RESULT_REASON_VALUE_DISABLED // "disabled"
FEATURE_FLAG_RESULT_REASON_VALUE_ERROR // "error"
FEATURE_FLAG_RESULT_REASON_VALUE_SPLIT // "split"
FEATURE_FLAG_RESULT_REASON_VALUE_STALE // "stale"
FEATURE_FLAG_RESULT_REASON_VALUE_STATIC // "static"
FEATURE_FLAG_RESULT_REASON_VALUE_TARGETING_MATCH // "targeting_match"
FEATURE_FLAG_RESULT_REASON_VALUE_UNKNOWN // "unknown"
ATTR_FEATURE_FLAG_RESULT_VARIANT // feature_flag.result.variant
ATTR_GCP_APPHUB_APPLICATION_CONTAINER // gcp.apphub.application.container
ATTR_GCP_APPHUB_APPLICATION_ID // gcp.apphub.application.id
ATTR_GCP_APPHUB_APPLICATION_LOCATION // gcp.apphub.application.location
ATTR_GCP_APPHUB_SERVICE_CRITICALITY_TYPE // gcp.apphub.service.criticality_type
GCP_APPHUB_SERVICE_CRITICALITY_TYPE_VALUE_HIGH // "HIGH"
GCP_APPHUB_SERVICE_CRITICALITY_TYPE_VALUE_LOW // "LOW"
GCP_APPHUB_SERVICE_CRITICALITY_TYPE_VALUE_MEDIUM // "MEDIUM"
GCP_APPHUB_SERVICE_CRITICALITY_TYPE_VALUE_MISSION_CRITICAL // "MISSION_CRITICAL"
ATTR_GCP_APPHUB_SERVICE_ENVIRONMENT_TYPE // gcp.apphub.service.environment_type
GCP_APPHUB_SERVICE_ENVIRONMENT_TYPE_VALUE_DEVELOPMENT // "DEVELOPMENT"
GCP_APPHUB_SERVICE_ENVIRONMENT_TYPE_VALUE_PRODUCTION // "PRODUCTION"
GCP_APPHUB_SERVICE_ENVIRONMENT_TYPE_VALUE_STAGING // "STAGING"
GCP_APPHUB_SERVICE_ENVIRONMENT_TYPE_VALUE_TEST // "TEST"
ATTR_GCP_APPHUB_SERVICE_ID // gcp.apphub.service.id
ATTR_GCP_APPHUB_WORKLOAD_CRITICALITY_TYPE // gcp.apphub.workload.criticality_type
GCP_APPHUB_WORKLOAD_CRITICALITY_TYPE_VALUE_HIGH // "HIGH"
GCP_APPHUB_WORKLOAD_CRITICALITY_TYPE_VALUE_LOW // "LOW"
GCP_APPHUB_WORKLOAD_CRITICALITY_TYPE_VALUE_MEDIUM // "MEDIUM"
GCP_APPHUB_WORKLOAD_CRITICALITY_TYPE_VALUE_MISSION_CRITICAL // "MISSION_CRITICAL"
ATTR_GCP_APPHUB_WORKLOAD_ENVIRONMENT_TYPE // gcp.apphub.workload.environment_type
GCP_APPHUB_WORKLOAD_ENVIRONMENT_TYPE_VALUE_DEVELOPMENT // "DEVELOPMENT"
GCP_APPHUB_WORKLOAD_ENVIRONMENT_TYPE_VALUE_PRODUCTION // "PRODUCTION"
GCP_APPHUB_WORKLOAD_ENVIRONMENT_TYPE_VALUE_STAGING // "STAGING"
GCP_APPHUB_WORKLOAD_ENVIRONMENT_TYPE_VALUE_TEST // "TEST"
ATTR_GCP_APPHUB_WORKLOAD_ID // gcp.apphub.workload.id
OTEL_COMPONENT_TYPE_VALUE_BATCHING_LOG_PROCESSOR // "batching_log_processor"
OTEL_COMPONENT_TYPE_VALUE_OTLP_GRPC_LOG_EXPORTER // "otlp_grpc_log_exporter"
OTEL_COMPONENT_TYPE_VALUE_OTLP_HTTP_JSON_LOG_EXPORTER // "otlp_http_json_log_exporter"
OTEL_COMPONENT_TYPE_VALUE_OTLP_HTTP_LOG_EXPORTER // "otlp_http_log_exporter"
OTEL_COMPONENT_TYPE_VALUE_SIMPLE_LOG_PROCESSOR // "simple_log_processor"
PROFILE_FRAME_TYPE_VALUE_GO // "go"
PROFILE_FRAME_TYPE_VALUE_RUST // "rust"
ATTR_VCS_OWNER_NAME // vcs.owner.name
ATTR_VCS_PROVIDER_NAME // vcs.provider.name
VCS_PROVIDER_NAME_VALUE_BITBUCKET // "bitbucket"
VCS_PROVIDER_NAME_VALUE_GITHUB // "github"
VCS_PROVIDER_NAME_VALUE_GITLAB // "gitlab"
VCS_PROVIDER_NAME_VALUE_GITTEA // "gittea"semconv/v1.31.0
1.31.0
🚀 Features
- feat: update semantic conventions to v1.31.0
- Semantic Conventions v1.31.0: changelog | latest docs
@opentelemetry/semantic-conventions(stable) changes: none@opentelemetry/semantic-conventions/incubating(unstable) changes: 8 newly deprecated exports, 1 newly undeprecated export, 63 added exports
Unstable changes in v1.31.0
8 newly deprecated exports
METRIC_K8S_REPLICATION_CONTROLLER_AVAILABLE_PODS // k8s.replication_controller.available_pods: Replaced by `k8s.replicationcontroller.available_pods`.
METRIC_K8S_REPLICATION_CONTROLLER_DESIRED_PODS // k8s.replication_controller.desired_pods: Replaced by `k8s.replicationcontroller.desired_pods`.
METRIC_SYSTEM_CPU_FREQUENCY // system.cpu.frequency: Replaced by `cpu.frequency`.
METRIC_SYSTEM_CPU_TIME // system.cpu.time: Replaced by `cpu.time`.
METRIC_SYSTEM_CPU_UTILIZATION // system.cpu.utilization: Replaced by `cpu.utilization`.
ATTR_CODE_FILEPATH // code.filepath: Replaced by `code.file.path`
ATTR_CODE_NAMESPACE // code.namespace: Value should be included in `code.function.name` which is expected to be a fully-qualified name.
ATTR_GEN_AI_OPENAI_REQUEST_RESPONSE_FORMAT // gen_ai.openai.request.response_format: Replaced by `gen_ai.output.type`.1 newly undeprecated export
ATTR_ENDUSER_ID // enduser.id63 added exports
METRIC_CPU_FREQUENCY // cpu.frequency
METRIC_CPU_TIME // cpu.time
METRIC_CPU_UTILIZATION // cpu.utilization
METRIC_HW_HOST_AMBIENT_TEMPERATURE // hw.host.ambient_temperature
METRIC_HW_HOST_ENERGY // hw.host.energy
METRIC_HW_HOST_HEATING_MARGIN // hw.host.heating_margin
METRIC_HW_HOST_POWER // hw.host.power
METRIC_K8S_REPLICATIONCONTROLLER_AVAILABLE_PODS // k8s.replicationcontroller.available_pods
METRIC_K8S_REPLICATIONCONTROLLER_DESIRED_PODS // k8s.replicationcontroller.desired_pods
METRIC_OTEL_SDK_EXPORTER_SPAN_EXPORTED_COUNT // otel.sdk.exporter.span.exported.count
METRIC_OTEL_SDK_EXPORTER_SPAN_INFLIGHT_COUNT // otel.sdk.exporter.span.inflight.count
METRIC_OTEL_SDK_PROCESSOR_SPAN_PROCESSED_COUNT // otel.sdk.processor.span.processed.count
METRIC_OTEL_SDK_PROCESSOR_SPAN_QUEUE_CAPACITY // otel.sdk.processor.span.queue.capacity
METRIC_OTEL_SDK_PROCESSOR_SPAN_QUEUE_SIZE // otel.sdk.processor.span.queue.size
METRIC_OTEL_SDK_SPAN_ENDED_COUNT // otel.sdk.span.ended.count
METRIC_OTEL_SDK_SPAN_LIVE_COUNT // otel.sdk.span.live.count
ATTR_ANDROID_APP_STATE // android.app.state
ANDROID_APP_STATE_VALUE_BACKGROUND // "background"
ANDROID_APP_STATE_VALUE_CREATED // "created"
ANDROID_APP_STATE_VALUE_FOREGROUND // "foreground"
ATTR_CICD_PIPELINE_RUN_URL_FULL // cicd.pipeline.run.url.full
ATTR_CPU_LOGICAL_NUMBER // cpu.logical_number
ATTR_ENDUSER_PSEUDO_ID // enduser.pseudo.id
ATTR_GEN_AI_AGENT_DESCRIPTION // gen_ai.agent.description
ATTR_GEN_AI_AGENT_ID // gen_ai.agent.id
ATTR_GEN_AI_AGENT_NAME // gen_ai.agent.name
GEN_AI_OPERATION_NAME_VALUE_CREATE_AGENT // "create_agent"
GEN_AI_OPERATION_NAME_VALUE_EXECUTE_TOOL // "execute_tool"
ATTR_GEN_AI_OUTPUT_TYPE // gen_ai.output.type
GEN_AI_OUTPUT_TYPE_VALUE_IMAGE // "image"
GEN_AI_OUTPUT_TYPE_VALUE_JSON // "json"
GEN_AI_OUTPUT_TYPE_VALUE_SPEECH // "speech"
GEN_AI_OUTPUT_TYPE_VALUE_TEXT // "text"
ATTR_GEN_AI_REQUEST_CHOICE_COUNT // gen_ai.request.choice.count
GEN_AI_TOKEN_TYPE_VALUE_OUTPUT // "output"
ATTR_GEN_AI_TOOL_CALL_ID // gen_ai.tool.call.id
ATTR_GEN_AI_TOOL_NAME // gen_ai.tool.name
ATTR_GEN_AI_TOOL_TYPE // gen_ai.tool.type
ATTR_IOS_APP_STATE // ios.app.state
IOS_APP_STATE_VALUE_ACTIVE // "active"
IOS_APP_STATE_VALUE_BACKGROUND // "background"
IOS_APP_STATE_VALUE_FOREGROUND // "foreground"
IOS_APP_STATE_VALUE_INACTIVE // "inactive"
IOS_APP_STATE_VALUE_TERMINATE // "terminate"
ATTR_K8S_HPA_NAME // k8s.hpa.name
ATTR_K8S_HPA_UID // k8s.hpa.uid
ATTR_K8S_REPLICATIONCONTROLLER_NAME // k8s.replicationcontroller.name
ATTR_K8S_REPLICATIONCONTROLLER_UID // k8s.replicationcontroller.uid
ATTR_K8S_RESOURCEQUOTA_NAME // k8s.resourcequota.name
ATTR_K8S_RESOURCEQUOTA_UID // k8s.resourcequota.uid
ATTR_OTEL_COMPONENT_NAME // otel.component.name
ATTR_OTEL_COMPONENT_TYPE // otel.component.type
OTEL_COMPONENT_TYPE_VALUE_BATCHING_SPAN_PROCESSOR // "batching_span_processor"
OTEL_COMPONENT_TYPE_VALUE_OTLP_GRPC_SPAN_EXPORTER // "otlp_grpc_span_exporter"
OTEL_COMPONENT_TYPE_VALUE_OTLP_HTTP_JSON_SPAN_EXPORTER // "otlp_http_json_span_exporter"
OTEL_COMPONENT_TYPE_VALUE_OTLP_HTTP_SPAN_EXPORTER // "otlp_http_span_exporter"
OTEL_COMPONENT_TYPE_VALUE_SIMPLE_SPAN_PROCESSOR // "simple_span_processor"
ATTR_OTEL_SPAN_SAMPLING_RESULT // otel.span.sampling_result
OTEL_SPAN_SAMPLING_RESULT_VALUE_DROP // "DROP"
OTEL_SPAN_SAMPLING_RESULT_VALUE_RECORD_AND_SAMPLE // "RECORD_AND_SAMPLE"
OTEL_SPAN_SAMPLING_RESULT_VALUE_RECORD_ONLY // "RECORD_ONLY"
ATTR_USER_AGENT_OS_NAME // user_agent.os.name
ATTR_USER_AGENT_OS_VERSION // user_agent.os.versionv2.0.0
2.0.0
Summary
- The minimum supported Node.js has been raised to
^18.19.0 || >=20.6.0. This means that support for Node.js 14 and 16 has been dropped. - The minimum supported TypeScript version has been raised to 5.0.4.
- The compilation target for transpiled TypeScript has been raised to ES2022 (from ES2017).
- The public interface has changed
- for notes on migrating to 2.x / 0.200.x see the upgrade guide
- Only experimental versions
0.200.0are compatible with this release
💥 Breaking Change
- feat(sdk-trace-base)!: Add
parentSpanContextand removeparentSpanIdfromSpanandReadableSpan#5450 @JacksonWeber- (user-facing): the SDK's
SpansparentSpanIdwas replaced byparentSpanContext, to migrate to the new property, please replacespan.parentSpanId->span.parentSpanContext?.spanId
- (user-facing): the SDK's
- feat(sdk-metrics)!: drop deprecated
typefield onMetricDescriptor#5291 @chancancode - feat(sdk-metrics)!: drop deprecated
InstrumentDescriptortype; useMetricDescriptorinstead #5277 @chancancode - feat(sdk-metrics)!: bump minimum version of
@opentelemetry/apipeer dependency to 1.9.0 #5254 @chancancode - chore(shim-opentracing): replace deprecated SpanAttributes #4430 @JamieDanielson
- chore(otel-core): replace deprecated SpanAttributes #4408 @JamieDanielson
- feat(sdk-metrics)!: remove MeterProvider.addMetricReader() in favor of constructor option #4419 @pichlermarc
- chore(otel-resources): replace deprecated SpanAttributes #4428 @JamieDanielson
- feat(sdk-metrics)!: remove MeterProvider.addMetricReader() in favor of constructor option #4419 @pichlermarc
- feat(sdk-metrics)!: replace attributeKeys with custom processors option #4532 @pichlermarc
- refactor(sdk-trace-base)!: replace
SpanAttributeswithAttributes#5009 @david-luna - refactor(resources)!: replace
ResourceAttributeswithAttributes#5016 @david-luna - feat(sdk-metrics)!: drop
ViewandAggregationin favor ofViewOptionsandAggregationOption#4931 @pichlermarc - refactor(sdk-trace-base)!: remove
new Spanconstructor in favor ofTracer.startSpanAPI #5048 @david-luna - refactor(sdk-trace-base)!: remove
BasicTracerProvider.addSpanProcessorAPI in favor of constructor options. #5134 @david-luna - refactor(sdk-trace-base)!: make
resourceproperty private inBasicTracerProviderand removegetActiveSpanProcessorAPI. #5192 @david-luna - feat(sdk-metrics)!: extract
IMetricReaderinterface and use it over abstract class #5311- (user-facing):
MeterProviderOptionsnow provides the more generalIMetricReadertype overMetricReader - If you accept
MetricReaderin your public interface, consider accepting the more generalIMetricReaderinstead to avoid unintentional breaking changes
- (user-facing):
- feat(sdk-trace)!: remove ability to have BasicTracerProvider instantiate exporters #5239 @pichlermarc
- When extending
BasicTracerProvider, the class offered multiple methods to facilitate the creation of exporters and auto-pairing withSpanProcessors.- This functionality has been removed - users may now pass
SpanProcessors to the base class constructor when extending - (user-facing):
_registeredExportershas been removed - (user-facing):
_getSpanExporterhas been removed - (user-facing):
_buildExporterFromEnvhas been removed
- This functionality has been removed - users may now pass
- When extending
- feat(core)!: remove deprecated
IdGeneratorandRandomIdGenerator#5309 @pichlermarc - feat(core)!: remove deprecated type
InstrumentationLibrary#5308 @pichlermarc- (user-facing): please use equivalent type
InstrumentationScopeinstead
- (user-facing): please use equivalent type
- feat(sdk-trace-base)!: replace usages fo
InstrumentationLibrarywithInstrumentationScope#5308 @pichlermarc- (user-facing) rename
Tracer.instrumentationLibrary->Tracer.instrumentationScope - (user-facing) rename
ReadableSpan.instrumentationLibrary->ReadableSpan.instrumentationScope- also renames the property in implementations of
ReadableSpan
- also renames the property in implementations of
- (user-facing) rename
- feat(exporter-jaeger): use
ReadableSpan.instrumentationScopeoverReadableSpan.instrumentationLibrary#5308 @pichlermarc - feat(exporter-zipkin): use
ReadableSpan.instrumentationScopeoverReadableSpan.instrumentationLibrary#5308 @pichlermarc - chore!: update typescript to version
5.0.4#5145 @david-luna- (user-facing) dropped support for
typescript@<5.0.4 - (user-facing) all packages published from this repository will from now on drop support for old versions of
typescriptin minor releases. We will only drop support for versions that are older than 2 years.
- (user-facing) dropped support for
- feat(core)!: remove deprecated samplers #5316 @pichlermarc
- (user-facing): deprecated
AlwaysOnSamplerhas moved to@opentelemetry/sdk-trace-base - (user-facing): deprecated
AlwaysOffSamplerhas moved to@opentelemetry/sdk-trace-base - (user-facing): deprecated
ParentBasedSamplerhas moved to@opentelemetry/sdk-trace-base - (user-facing): deprecated
TraceIdRatioSamplerhas moved to@opentelemetry/sdk-trace-base
- (user-facing): deprecated
- feat(resource): Merge sync and async resource interfaces into a single interface #5350 @dyladan
- Resource constructor now takes a single argument which contains an optional
attributesobject - Detected resource attribute values may be a promise or a synchronous value
- Resources are now merged by the order in which their detectors are configured instead of async attributes being last
- Resource detectors now return
DetectedResourceplain objects instead ofnew Resource()
- Resource constructor now takes a single argument which contains an optional
- feat(sdk-trace-base)!: drop ability to instantiate propagators beyond defaults #5355 @pichlermarc
- (user-facing): only a non-env-var based default is now used on
BasicTracerProvider#register().- propagators can now not be configured via
OTEL_PROPAGATORSorwindow.OTEL_PROPAGATORSanymore, please pass the propagator toNodeTracerProvider#register()instead. - if not configured directly via code,
BasicTracerProvider#register()will now fall back to defaults (tracecontextandbaggage)
- propagators can now not be configured via
- (user-facing): only a non-env-var based default is now used on
- feat(sdk-trace-node)!: drop ability to instantiate propagators beyond defaults #5355 @pichlermarc
- (user-facing): only a non-env-var based default is now used on
NodeTracerProvider#register().- propagators can now not be configured via
OTEL_PROPAGATORSanymore, please pass the propagator toNodeTracerProvider#register()instead. - if not configured via code,
NodeTracerProvider#register()will now fall back to the defaults (tracecontextandbaggage) - if autoconfiguration based on enviornment variables is needed, please use
NodeSDKfrom@opentelemetry/sdk-node.
- propagators can now not be configured via
- (user-facing): only a non-env-var based default is now used on
- feat(sdk-trace-web)!: drop ability to instantiate propagators beyond defaults #5355 @pichlermarc
- (user-facing): only a non-env-var based default is now used on
WebTracerProvider#register().- propagators can now not be configured via
window.OTEL_PROPAGATORSanymore, please pass the propagator toWebTracerProvider#register()instead. - if not configured via code,
WebTracerProvider#register()will now fall back to defaults (tracecontextandbaggage)
- propagators can now not be configured via
- (user-facing): only a non-env-var based default is now used on
- feat(sdk-trace)!: drop unnecessary exports #5405 @pichlermarc
- (user-facing):
EXPORTER_FACTORYis not used anymore and has been removed - (user-facing):
PROPAGATOR_FACTORYis not used anymore and has been removed - (user-facing):
ForceFlushStatewas intended for internal use and has been removed - (user-facing): the
Tracerclass was unintentionally exported and has been removed- to obtain a
Tracer, please useBasicTracerProvider#getTracer(),NodeTracerProvider#getTracer()orWebTracerProvider#getTracer() - to reference a
Tracer, please use theTracertype from@opentelemetry/api
- to obtain a
- (user-facing):
- chore!: Raise the minimum supported Node.js version to
^18.19.0 || >=20.6.0. Support for Node.js 14, 16, and early minor versions of 18 and 20 have been dropped. This applies to all ...
experimental/v0.200.0
0.200.0
Summary
- The minimum supported Node.js has been raised to
^18.19.0 || >=20.6.0. This means that support for Node.js 14 and 16 has been dropped. - The minimum supported TypeScript version has been raised to 5.0.4.
- The compilation target for transpiled TypeScript has been raised to ES2022 (from ES2017).
- The public interface has changed
- for notes on migrating to 2.x / 0.200.x see the upgrade guide
- Only stable versions
2.0.0are compatible with this release
💥 Breaking Change
- feat(exporter-prometheus)!: stop the using
typefield to enforce naming conventions #5291 @chancancode- Any non-monotonic sums will now be treated as counters and will therefore include the
_totalsuffix.
- Any non-monotonic sums will now be treated as counters and will therefore include the
- feat(shim-opencenus)!: stop mapping removed Instrument
typeto OpenTelemetry metrics #5291 @chancancode- The internal OpenTelemetry data model dropped the concept of instrument type on exported metrics, therefore mapping it is not necessary anymore.
- feat(instrumentation-fetch)!: passthrough original response to
applyCustomAttributeshook #5281 @chancancode- Previously, the fetch instrumentation code unconditionally clones every
fetch()response in order to preserve the ability for theapplyCustomAttributeshook to consume the response body. This is fundamentally unsound, as it forces the browser to buffer and retain the response body until it is fully received and read, which crates unnecessary memory pressure on large or long-running response streams. In extreme cases, this is effectively a memory leak and can cause the browser tab to crash. If your use case forapplyCustomAttributesrequires access to the response body, please chime in on #5293.
- Previously, the fetch instrumentation code unconditionally clones every
- chore!: Raise the minimum supported Node.js version to
^18.19.0 || >=20.6.0. Support for Node.js 14, 16, and early minor versions of 18 and 20 have been dropped. This applies to all packages except the 'api' and 'semantic-conventions' packages. #5395 @trentm - feat(sdk-node)!: use
IMetricReaderoverMetricReader#5311- (user-facing):
NodeSDKConfigurationnow provides the more generalIMetricReadertype overMetricReader
- (user-facing):
- feat(exporter-metrics-otlp-http)!: do not read environment variables from window in browsers #5473 @pichlermarc
- (user-facing): all configuration previously possible via
window.OTEL_*is now not supported anymore, please pass configuration options to constructors instead. - Note: Node.js environment variable configuration continues to work as-is.
- (user-facing): all configuration previously possible via
- feat(sdk-logs)!: do not read environment variables from window in browsers #5472 @pichlermarc
- (user-facing): all configuration previously possible via
window.OTEL_*is now not supported anymore, please pass configuration options to constructors instead.- Note: Node.js environment variable configuration continues to work as-is.
- (user-facing): all configuration previously possible via
🚀 (Enhancement)
- feat(instrumentation-fetch): add a
requestHookoption #5380 - feat(instrumentation): re-export initialize function from import-in-the-middle #5123
- feat(sdk-node): lower diagnostic level #5360 @cjihrig
- feat(exporter-prometheus): add additional attributes option #5317 @marius-a-mueller
- Add
withResourceConstantLabelsoption toExporterConfig. It can be used to define a regex pattern to choose which resource attributes will be used as static labels on the metrics. The default is to not set any static labels.
- Add
🐛 (Bug Fix)
- fix(instrumentation-grpc): monitor error events with events.errorMonitor #5369 @cjihrig
- fix(exporter-metrics-otlp-http): browser OTLPMetricExporter was not passing config to OTLPMetricExporterBase super class #5331 @trentm
- fix(instrumentation-fetch, instrumentation-xhr): Ignore network events with zero-timings #5332 @chancancode
- fix(exporter-logs/trace-otlp-grpc): fix error for missing dependency otlp-exporter-base #5412 @JamieDanielson
🏠 (Internal)
- chore(instrumentation-grpc): remove unused findIndex() function #5372 @cjihrig
- refactor(otlp-exporter-base): remove unnecessary isNaN() checks #5374 @cjihrig
- refactor(exporter-prometheus): remove unnecessary isNaN() check #5377 @cjihrig
- refactor(sdk-node): move code to auto-instantiate propagators into utils #5355 @pichlermarc
- chore: unpin
@opentelemetry/semantic-conventionsdep to allow better de-duplication in installs #5439 @trentm - refactor(instrumentation-http): migrate away from getEnv() #5469 @pichlermarc
- refactor(sdk-node): migrate away from getEnv() #5475 @pichlermarc