ResourceAttributes
in
Table of Contents
Constants
- ANDROID_OS_API_LEVEL = 'android.os.api_level'
- Uniquely identifies the framework API revision offered by a version (`os.version`) of the android operating system. More information can be found [here](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels).
- AWS_ECS_CLUSTER_ARN = 'aws.ecs.cluster.arn'
- The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).
- AWS_ECS_CONTAINER_ARN = 'aws.ecs.container.arn'
- The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).
- AWS_ECS_LAUNCHTYPE = 'aws.ecs.launchtype'
- The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.
- AWS_ECS_TASK_ARN = 'aws.ecs.task.arn'
- The ARN of a running [ECS task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids).
- AWS_ECS_TASK_FAMILY = 'aws.ecs.task.family'
- The family name of the [ECS task definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) used to create the ECS task.
- AWS_ECS_TASK_ID = 'aws.ecs.task.id'
- The ID of a running ECS task. The ID MUST be extracted from `task.arn`.
- AWS_ECS_TASK_REVISION = 'aws.ecs.task.revision'
- The revision for the task definition used to create the ECS task.
- AWS_EKS_CLUSTER_ARN = 'aws.eks.cluster.arn'
- The ARN of an EKS cluster.
- AWS_LOG_GROUP_ARNS = 'aws.log.group.arns'
- The Amazon Resource Name(s) (ARN) of the AWS log group(s).
- AWS_LOG_GROUP_NAMES = 'aws.log.group.names'
- The name(s) of the AWS log group(s) an application is writing to.
- AWS_LOG_STREAM_ARNS = 'aws.log.stream.arns'
- The ARN(s) of the AWS log stream(s).
- AWS_LOG_STREAM_NAMES = 'aws.log.stream.names'
- The name(s) of the AWS log stream(s) an application is writing to.
- BROWSER_BRANDS = 'browser.brands'
- Array of brand name and version separated by a space This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.brands`).
- BROWSER_LANGUAGE = 'browser.language'
- Preferred language of the user using the browser This value is intended to be taken from the Navigator API `navigator.language`.
- BROWSER_MOBILE = 'browser.mobile'
- A boolean that is true if the browser is running on a mobile device This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.mobile`). If unavailable, this attribute SHOULD be left unset.
- BROWSER_PLATFORM = 'browser.platform'
- The platform on which the browser is running This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.platform`). If unavailable, the legacy `navigator.platform` API SHOULD NOT be used instead and this attribute SHOULD be left unset in order for the values to be consistent.
- CLOUD_ACCOUNT_ID = 'cloud.account.id'
- The cloud account ID the resource is assigned to.
- CLOUD_AVAILABILITY_ZONE = 'cloud.availability_zone'
- Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.
- CLOUD_PLATFORM = 'cloud.platform'
- The cloud platform in use.
- CLOUD_PROVIDER = 'cloud.provider'
- Name of the cloud provider.
- CLOUD_REGION = 'cloud.region'
- The geographical region the resource is running.
- CLOUD_RESOURCE_ID = 'cloud.resource_id'
- Cloud provider-specific native identifier of the monitored cloud resource (e.g. an [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) on AWS, a [fully qualified resource ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id) on Azure, a [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name) on GCP)
- CLOUDFOUNDRY_APP_ID = 'cloudfoundry.app.id'
- The guid of the application.
- CLOUDFOUNDRY_APP_NAME = 'cloudfoundry.app.name'
- The name of the application.
- CLOUDFOUNDRY_ORG_ID = 'cloudfoundry.org.id'
- The guid of the CloudFoundry org the application is running in.
- CLOUDFOUNDRY_ORG_NAME = 'cloudfoundry.org.name'
- The name of the CloudFoundry organization the app is running in.
- CLOUDFOUNDRY_PROCESS_ID = 'cloudfoundry.process.id'
- The UID identifying the process.
- CLOUDFOUNDRY_PROCESS_TYPE = 'cloudfoundry.process.type'
- The type of process.
- CLOUDFOUNDRY_SPACE_ID = 'cloudfoundry.space.id'
- The guid of the CloudFoundry space the application is running in.
- CLOUDFOUNDRY_SPACE_NAME = 'cloudfoundry.space.name'
- The name of the CloudFoundry space the application is running in.
- CLOUDFOUNDRY_SYSTEM_ID = 'cloudfoundry.system.id'
- A guid or another name describing the event source.
- CLOUDFOUNDRY_SYSTEM_INSTANCE_ID = 'cloudfoundry.system.instance.id'
- A guid describing the concrete instance of the event source.
- CONTAINER_COMMAND = 'container.command'
- The command used to run the container (i.e. the command name).
- CONTAINER_COMMAND_ARGS = 'container.command_args'
- All the command arguments (including the command/executable itself) run by the container.
- CONTAINER_COMMAND_LINE = 'container.command_line'
- The full command run by the container as a single string representing the full command.
- CONTAINER_ID = 'container.id'
- Container ID. Usually a UUID, as for example used to [identify Docker containers](https://docs.docker.com/engine/containers/run/#container-identification). The UUID might be abbreviated.
- CONTAINER_IMAGE_ID = 'container.image.id'
- Runtime specific image identifier. Usually a hash algorithm followed by a UUID.
- CONTAINER_IMAGE_NAME = 'container.image.name'
- Name of the image the container was built on.
- CONTAINER_IMAGE_REPO_DIGESTS = 'container.image.repo_digests'
- Repo digests of the container image as provided by the container runtime.
- CONTAINER_IMAGE_TAGS = 'container.image.tags'
- Container image tags. An example can be found in [Docker Image Inspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect). Should be only the `<tag>` section of the full name for example from `registry.example.com/my-org/my-image:<tag>`.
- CONTAINER_LABEL = 'container.label'
- Container labels, `<key>` being the label name, the value being the label value.
- CONTAINER_NAME = 'container.name'
- Container name used by container runtime.
- CONTAINER_RUNTIME = 'container.runtime'
- The container runtime managing this container.
- DEPLOYMENT_ENVIRONMENT_NAME = 'deployment.environment.name'
- Name of the [deployment environment](https://wikipedia.org/wiki/Deployment_environment) (aka deployment tier).
- DEVICE_ID = 'device.id'
- A unique identifier representing the device
- DEVICE_MANUFACTURER = 'device.manufacturer'
- The name of the device manufacturer
- DEVICE_MODEL_IDENTIFIER = 'device.model.identifier'
- The model identifier for the device
- DEVICE_MODEL_NAME = 'device.model.name'
- The marketing name for the device model
- FAAS_INSTANCE = 'faas.instance'
- The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.
- FAAS_MAX_MEMORY = 'faas.max_memory'
- The amount of memory available to the serverless function converted to Bytes.
- FAAS_NAME = 'faas.name'
- The name of the single function that this runtime instance executes.
- FAAS_VERSION = 'faas.version'
- The immutable version of the function being executed.
- GCP_CLOUD_RUN_JOB_EXECUTION = 'gcp.cloud_run.job.execution'
- The name of the Cloud Run [execution](https://cloud.google.com/run/docs/managing/job-executions) being run for the Job, as set by the [`CLOUD_RUN_EXECUTION`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) environment variable.
- GCP_CLOUD_RUN_JOB_TASK_INDEX = 'gcp.cloud_run.job.task_index'
- The index for a task within an execution as provided by the [`CLOUD_RUN_TASK_INDEX`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) environment variable.
- GCP_GCE_INSTANCE_HOSTNAME = 'gcp.gce.instance.hostname'
- The hostname of a GCE instance. This is the full value of the default or [custom hostname](https://cloud.google.com/compute/docs/instances/custom-hostname-vm).
- GCP_GCE_INSTANCE_NAME = 'gcp.gce.instance.name'
- The instance name of a GCE instance. This is the value provided by `host.name`, the visible name of the instance in the Cloud Console UI, and the prefix for the default hostname of the instance as defined by the [default internal DNS name](https://cloud.google.com/compute/docs/internal-dns#instance-fully-qualified-domain-names).
- HEROKU_APP_ID = 'heroku.app.id'
- Unique identifier for the application
- HEROKU_RELEASE_COMMIT = 'heroku.release.commit'
- Commit hash for the current release
- HEROKU_RELEASE_CREATION_TIMESTAMP = 'heroku.release.creation_timestamp'
- Time and date the release was created
- HOST_ARCH = 'host.arch'
- The CPU architecture the host system is running on.
- HOST_CPU_CACHE_L2_SIZE = 'host.cpu.cache.l2.size'
- The amount of level 2 memory cache available to the processor (in Bytes).
- HOST_CPU_FAMILY = 'host.cpu.family'
- Family or generation of the CPU.
- HOST_CPU_MODEL_ID = 'host.cpu.model.id'
- Model identifier. It provides more granular information about the CPU, distinguishing it from other CPUs within the same family.
- HOST_CPU_MODEL_NAME = 'host.cpu.model.name'
- Model designation of the processor.
- HOST_CPU_STEPPING = 'host.cpu.stepping'
- Stepping or core revisions.
- HOST_CPU_VENDOR_ID = 'host.cpu.vendor.id'
- Processor manufacturer identifier. A maximum 12-character string.
- HOST_ID = 'host.id'
- Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider. For non-containerized systems, this should be the `machine-id`. See the table below for the sources to use to determine the `machine-id` based on operating system.
- HOST_IMAGE_ID = 'host.image.id'
- VM image ID or host OS image ID. For Cloud, this value is from the provider.
- HOST_IMAGE_NAME = 'host.image.name'
- Name of the VM image or OS install the host was instantiated from.
- HOST_IMAGE_VERSION = 'host.image.version'
- The version string of the VM image or host OS as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
- HOST_IP = 'host.ip'
- Available IP addresses of the host, excluding loopback interfaces.
- HOST_MAC = 'host.mac'
- Available MAC addresses of the host, excluding loopback interfaces.
- HOST_NAME = 'host.name'
- Name of the host. On Unix systems, it may contain what the hostname command returns, or the fully qualified hostname, or another name specified by the user.
- HOST_TYPE = 'host.type'
- Type of host. For Cloud, this must be the machine type.
- K8S_CLUSTER_NAME = 'k8s.cluster.name'
- The name of the cluster.
- K8S_CLUSTER_UID = 'k8s.cluster.uid'
- A pseudo-ID for the cluster, set to the UID of the `kube-system` namespace.
- K8S_CONTAINER_NAME = 'k8s.container.name'
- The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (`container.name`).
- K8S_CONTAINER_RESTART_COUNT = 'k8s.container.restart_count'
- Number of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec.
- K8S_CONTAINER_STATUS_LAST_TERMINATED_REASON = 'k8s.container.status.last_terminated_reason'
- Last terminated reason of the Container.
- K8S_CRONJOB_NAME = 'k8s.cronjob.name'
- The name of the CronJob.
- K8S_CRONJOB_UID = 'k8s.cronjob.uid'
- The UID of the CronJob.
- K8S_DAEMONSET_NAME = 'k8s.daemonset.name'
- The name of the DaemonSet.
- K8S_DAEMONSET_UID = 'k8s.daemonset.uid'
- The UID of the DaemonSet.
- K8S_DEPLOYMENT_NAME = 'k8s.deployment.name'
- The name of the Deployment.
- K8S_DEPLOYMENT_UID = 'k8s.deployment.uid'
- The UID of the Deployment.
- K8S_JOB_NAME = 'k8s.job.name'
- The name of the Job.
- K8S_JOB_UID = 'k8s.job.uid'
- The UID of the Job.
- K8S_NAMESPACE_NAME = 'k8s.namespace.name'
- The name of the namespace that the pod is running in.
- K8S_NODE_NAME = 'k8s.node.name'
- The name of the Node.
- K8S_NODE_UID = 'k8s.node.uid'
- The UID of the Node.
- K8S_POD_ANNOTATION = 'k8s.pod.annotation'
- The annotation key-value pairs placed on the Pod, the `<key>` being the annotation name, the value being the annotation value.
- K8S_POD_LABEL = 'k8s.pod.label'
- The label key-value pairs placed on the Pod, the `<key>` being the label name, the value being the label value.
- K8S_POD_NAME = 'k8s.pod.name'
- The name of the Pod.
- K8S_POD_UID = 'k8s.pod.uid'
- The UID of the Pod.
- K8S_REPLICASET_NAME = 'k8s.replicaset.name'
- The name of the ReplicaSet.
- K8S_REPLICASET_UID = 'k8s.replicaset.uid'
- The UID of the ReplicaSet.
- K8S_STATEFULSET_NAME = 'k8s.statefulset.name'
- The name of the StatefulSet.
- K8S_STATEFULSET_UID = 'k8s.statefulset.uid'
- The UID of the StatefulSet.
- OCI_MANIFEST_DIGEST = 'oci.manifest.digest'
- The digest of the OCI image manifest. For container images specifically is the digest by which the container image is known.
- OS_BUILD_ID = 'os.build_id'
- Unique identifier for a particular build or compilation of the operating system.
- OS_DESCRIPTION = 'os.description'
- Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands.
- OS_NAME = 'os.name'
- Human readable operating system name.
- OS_TYPE = 'os.type'
- The operating system type.
- OS_VERSION = 'os.version'
- The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
- OTEL_SCOPE_NAME = 'otel.scope.name'
- The name of the instrumentation scope - (`InstrumentationScope.Name` in OTLP).
- OTEL_SCOPE_VERSION = 'otel.scope.version'
- The version of the instrumentation scope - (`InstrumentationScope.Version` in OTLP).
- PROCESS_COMMAND = 'process.command'
- The command used to launch the process (i.e. the command name). On Linux based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to the first parameter extracted from `GetCommandLineW`.
- PROCESS_COMMAND_ARGS = 'process.command_args'
- All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`.
- PROCESS_COMMAND_LINE = 'process.command_line'
- The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead.
- PROCESS_EXECUTABLE_NAME = 'process.executable.name'
- The name of the process executable. On Linux based systems, can be set to the `Name` in `proc/[pid]/status`. On Windows, can be set to the base name of `GetProcessImageFileNameW`.
- PROCESS_EXECUTABLE_PATH = 'process.executable.path'
- The full path to the process executable. On Linux based systems, can be set to the target of `proc/[pid]/exe`. On Windows, can be set to the result of `GetProcessImageFileNameW`.
- PROCESS_OWNER = 'process.owner'
- The username of the user that owns the process.
- PROCESS_PARENT_PID = 'process.parent_pid'
- Parent Process identifier (PPID).
- PROCESS_PID = 'process.pid'
- Process identifier (PID).
- PROCESS_RUNTIME_DESCRIPTION = 'process.runtime.description'
- An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.
- PROCESS_RUNTIME_NAME = 'process.runtime.name'
- The name of the runtime of this process.
- PROCESS_RUNTIME_VERSION = 'process.runtime.version'
- The version of the runtime of this process, as returned by the runtime without modification.
- SCHEMA_URL = 'https://opentelemetry.io/schemas/1.27.0'
- The URL of the OpenTelemetry schema for these keys and values.
- SERVICE_INSTANCE_ID = 'service.instance.id'
- The string ID of the service instance.
- SERVICE_NAME = 'service.name'
- Logical name of the service.
- SERVICE_NAMESPACE = 'service.namespace'
- A namespace for `service.name`.
- SERVICE_VERSION = 'service.version'
- The version string of the service API or implementation. The format is not defined by these conventions.
- TELEMETRY_DISTRO_NAME = 'telemetry.distro.name'
- The name of the auto instrumentation agent or distribution, if used.
- TELEMETRY_DISTRO_VERSION = 'telemetry.distro.version'
- The version string of the auto instrumentation agent or distribution, if used.
- TELEMETRY_SDK_LANGUAGE = 'telemetry.sdk.language'
- The language of the telemetry SDK.
- TELEMETRY_SDK_NAME = 'telemetry.sdk.name'
- The name of the telemetry SDK as defined above.
- TELEMETRY_SDK_VERSION = 'telemetry.sdk.version'
- The version string of the telemetry SDK.
- USER_AGENT_ORIGINAL = 'user_agent.original'
- Full user-agent string provided by the browser The user-agent value SHOULD be provided only from browsers that do not have a mechanism to retrieve brands and platform individually from the User-Agent Client Hints API. To retrieve the value, the legacy `navigator.userAgent` API can be used.
- WEBENGINE_DESCRIPTION = 'webengine.description'
- Additional description of the web engine (e.g. detailed version and edition information).
- WEBENGINE_NAME = 'webengine.name'
- The name of the web engine.
- WEBENGINE_VERSION = 'webengine.version'
- The version of the web engine.
Constants
ANDROID_OS_API_LEVEL
Uniquely identifies the framework API revision offered by a version (`os.version`) of the android operating system. More information can be found [here](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels).
public
mixed
ANDROID_OS_API_LEVEL
= 'android.os.api_level'
AWS_ECS_CLUSTER_ARN
The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).
public
mixed
AWS_ECS_CLUSTER_ARN
= 'aws.ecs.cluster.arn'
AWS_ECS_CONTAINER_ARN
The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).
public
mixed
AWS_ECS_CONTAINER_ARN
= 'aws.ecs.container.arn'
AWS_ECS_LAUNCHTYPE
The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.
public
mixed
AWS_ECS_LAUNCHTYPE
= 'aws.ecs.launchtype'
AWS_ECS_TASK_ARN
The ARN of a running [ECS task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids).
public
mixed
AWS_ECS_TASK_ARN
= 'aws.ecs.task.arn'
AWS_ECS_TASK_FAMILY
The family name of the [ECS task definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) used to create the ECS task.
public
mixed
AWS_ECS_TASK_FAMILY
= 'aws.ecs.task.family'
AWS_ECS_TASK_ID
The ID of a running ECS task. The ID MUST be extracted from `task.arn`.
public
mixed
AWS_ECS_TASK_ID
= 'aws.ecs.task.id'
AWS_ECS_TASK_REVISION
The revision for the task definition used to create the ECS task.
public
mixed
AWS_ECS_TASK_REVISION
= 'aws.ecs.task.revision'
AWS_EKS_CLUSTER_ARN
The ARN of an EKS cluster.
public
mixed
AWS_EKS_CLUSTER_ARN
= 'aws.eks.cluster.arn'
AWS_LOG_GROUP_ARNS
The Amazon Resource Name(s) (ARN) of the AWS log group(s).
public
mixed
AWS_LOG_GROUP_ARNS
= 'aws.log.group.arns'
See the log group ARN format documentation.
AWS_LOG_GROUP_NAMES
The name(s) of the AWS log group(s) an application is writing to.
public
mixed
AWS_LOG_GROUP_NAMES
= 'aws.log.group.names'
Multiple log groups must be supported for cases like multi-container applications, where a single application has sidecar containers, and each write to their own log group.
AWS_LOG_STREAM_ARNS
The ARN(s) of the AWS log stream(s).
public
mixed
AWS_LOG_STREAM_ARNS
= 'aws.log.stream.arns'
See the log stream ARN format documentation. One log group can contain several log streams, so these ARNs necessarily identify both a log group and a log stream.
AWS_LOG_STREAM_NAMES
The name(s) of the AWS log stream(s) an application is writing to.
public
mixed
AWS_LOG_STREAM_NAMES
= 'aws.log.stream.names'
BROWSER_BRANDS
Array of brand name and version separated by a space This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.brands`).
public
mixed
BROWSER_BRANDS
= 'browser.brands'
BROWSER_LANGUAGE
Preferred language of the user using the browser This value is intended to be taken from the Navigator API `navigator.language`.
public
mixed
BROWSER_LANGUAGE
= 'browser.language'
BROWSER_MOBILE
A boolean that is true if the browser is running on a mobile device This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.mobile`). If unavailable, this attribute SHOULD be left unset.
public
mixed
BROWSER_MOBILE
= 'browser.mobile'
BROWSER_PLATFORM
The platform on which the browser is running This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.platform`). If unavailable, the legacy `navigator.platform` API SHOULD NOT be used instead and this attribute SHOULD be left unset in order for the values to be consistent.
public
mixed
BROWSER_PLATFORM
= 'browser.platform'
The list of possible values is defined in the W3C User-Agent Client Hints specification. Note that some (but not all) of these values can overlap with values in the os.type
and os.name
attributes. However, for consistency, the values in the browser.platform
attribute should capture the exact value that the user agent provides.
CLOUD_ACCOUNT_ID
The cloud account ID the resource is assigned to.
public
mixed
CLOUD_ACCOUNT_ID
= 'cloud.account.id'
CLOUD_AVAILABILITY_ZONE
Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.
public
mixed
CLOUD_AVAILABILITY_ZONE
= 'cloud.availability_zone'
Availability zones are called "zones" on Alibaba Cloud and Google Cloud.
CLOUD_PLATFORM
The cloud platform in use.
public
mixed
CLOUD_PLATFORM
= 'cloud.platform'
The prefix of the service SHOULD match the one specified in cloud.provider
.
CLOUD_PROVIDER
Name of the cloud provider.
public
mixed
CLOUD_PROVIDER
= 'cloud.provider'
CLOUD_REGION
The geographical region the resource is running.
public
mixed
CLOUD_REGION
= 'cloud.region'
Refer to your provider's docs to see the available regions, for example Alibaba Cloud regions, AWS regions, Azure regions, Google Cloud regions, or Tencent Cloud regions.
CLOUD_RESOURCE_ID
Cloud provider-specific native identifier of the monitored cloud resource (e.g. an [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) on AWS, a [fully qualified resource ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id) on Azure, a [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name) on GCP)
public
mixed
CLOUD_RESOURCE_ID
= 'cloud.resource_id'
On some cloud providers, it may not be possible to determine the full ID at startup,
so it may be necessary to set cloud.resource_id
as a span attribute instead.
The exact value to use for cloud.resource_id
depends on the cloud provider.
The following well-known definitions MUST be used if you set this attribute and they apply:
- AWS Lambda: The function ARN. Take care not to use the "invoked ARN" directly but replace any alias suffix with the resolved function version, as the same runtime instance may be invocable with multiple different aliases.
- GCP: The URI of the resource
-
Azure: The Fully Qualified Resource ID of the invoked function,
not the function app, having the form
/subscriptions/<SUBSCRIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>
. This means that a span attribute MUST be used, as an Azure function app can host multiple functions that would usually share a TracerProvider.
CLOUDFOUNDRY_APP_ID
The guid of the application.
public
mixed
CLOUDFOUNDRY_APP_ID
= 'cloudfoundry.app.id'
Application instrumentation should use the value from environment
variable VCAP_APPLICATION.application_id
. This is the same value as
reported by cf app <app-name> --guid
.
CLOUDFOUNDRY_APP_NAME
The name of the application.
public
mixed
CLOUDFOUNDRY_APP_NAME
= 'cloudfoundry.app.name'
Application instrumentation should use the value from environment
variable VCAP_APPLICATION.application_name
. This is the same value
as reported by cf apps
.
CLOUDFOUNDRY_ORG_ID
The guid of the CloudFoundry org the application is running in.
public
mixed
CLOUDFOUNDRY_ORG_ID
= 'cloudfoundry.org.id'
Application instrumentation should use the value from environment
variable VCAP_APPLICATION.org_id
. This is the same value as
reported by cf org <org-name> --guid
.
CLOUDFOUNDRY_ORG_NAME
The name of the CloudFoundry organization the app is running in.
public
mixed
CLOUDFOUNDRY_ORG_NAME
= 'cloudfoundry.org.name'
Application instrumentation should use the value from environment
variable VCAP_APPLICATION.org_name
. This is the same value as
reported by cf orgs
.
CLOUDFOUNDRY_PROCESS_ID
The UID identifying the process.
public
mixed
CLOUDFOUNDRY_PROCESS_ID
= 'cloudfoundry.process.id'
Application instrumentation should use the value from environment
variable VCAP_APPLICATION.process_id
. It is supposed to be equal to
VCAP_APPLICATION.app_id
for applications deployed to the runtime.
For system components, this could be the actual PID.
CLOUDFOUNDRY_PROCESS_TYPE
The type of process.
public
mixed
CLOUDFOUNDRY_PROCESS_TYPE
= 'cloudfoundry.process.type'
CloudFoundry applications can consist of multiple jobs. Usually the
main process will be of type web
. There can be additional background
tasks or side-cars with different process types.
CLOUDFOUNDRY_SPACE_ID
The guid of the CloudFoundry space the application is running in.
public
mixed
CLOUDFOUNDRY_SPACE_ID
= 'cloudfoundry.space.id'
Application instrumentation should use the value from environment
variable VCAP_APPLICATION.space_id
. This is the same value as
reported by cf space <space-name> --guid
.
CLOUDFOUNDRY_SPACE_NAME
The name of the CloudFoundry space the application is running in.
public
mixed
CLOUDFOUNDRY_SPACE_NAME
= 'cloudfoundry.space.name'
Application instrumentation should use the value from environment
variable VCAP_APPLICATION.space_name
. This is the same value as
reported by cf spaces
.
CLOUDFOUNDRY_SYSTEM_ID
A guid or another name describing the event source.
public
mixed
CLOUDFOUNDRY_SYSTEM_ID
= 'cloudfoundry.system.id'
CloudFoundry defines the source_id
in the Loggregator v2 envelope.
It is used for logs and metrics emitted by CloudFoundry. It is
supposed to contain the component name, e.g. "gorouter", for
CloudFoundry components.
When system components are instrumented, values from the
Bosh spec
should be used. The system.id
should be set to
spec.deployment/spec.name
.
CLOUDFOUNDRY_SYSTEM_INSTANCE_ID
A guid describing the concrete instance of the event source.
public
mixed
CLOUDFOUNDRY_SYSTEM_INSTANCE_ID
= 'cloudfoundry.system.instance.id'
CloudFoundry defines the instance_id
in the Loggregator v2 envelope.
It is used for logs and metrics emitted by CloudFoundry. It is
supposed to contain the vm id for CloudFoundry components.
When system components are instrumented, values from the
Bosh spec
should be used. The system.instance.id
should be set to spec.id
.
CONTAINER_COMMAND
The command used to run the container (i.e. the command name).
public
mixed
CONTAINER_COMMAND
= 'container.command'
If using embedded credentials or sensitive data, it is recommended to remove them to prevent potential leakage.
CONTAINER_COMMAND_ARGS
All the command arguments (including the command/executable itself) run by the container.
public
mixed
CONTAINER_COMMAND_ARGS
= 'container.command_args'
CONTAINER_COMMAND_LINE
The full command run by the container as a single string representing the full command.
public
mixed
CONTAINER_COMMAND_LINE
= 'container.command_line'
CONTAINER_ID
Container ID. Usually a UUID, as for example used to [identify Docker containers](https://docs.docker.com/engine/containers/run/#container-identification). The UUID might be abbreviated.
public
mixed
CONTAINER_ID
= 'container.id'
CONTAINER_IMAGE_ID
Runtime specific image identifier. Usually a hash algorithm followed by a UUID.
public
mixed
CONTAINER_IMAGE_ID
= 'container.image.id'
Docker defines a sha256 of the image id; container.image.id
corresponds to the Image
field from the Docker container inspect API endpoint.
K8s defines a link to the container registry repository with digest "imageID": "registry.azurecr.io /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"
.
The ID is assigned by the container runtime and can vary in different environments. Consider using oci.manifest.digest
if it is important to identify the same image in different environments/runtimes.
CONTAINER_IMAGE_NAME
Name of the image the container was built on.
public
mixed
CONTAINER_IMAGE_NAME
= 'container.image.name'
CONTAINER_IMAGE_REPO_DIGESTS
Repo digests of the container image as provided by the container runtime.
public
mixed
CONTAINER_IMAGE_REPO_DIGESTS
= 'container.image.repo_digests'
CONTAINER_IMAGE_TAGS
Container image tags. An example can be found in [Docker Image Inspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect). Should be only the `<tag>` section of the full name for example from `registry.example.com/my-org/my-image:<tag>`.
public
mixed
CONTAINER_IMAGE_TAGS
= 'container.image.tags'
CONTAINER_LABEL
Container labels, `<key>` being the label name, the value being the label value.
public
mixed
CONTAINER_LABEL
= 'container.label'
CONTAINER_NAME
Container name used by container runtime.
public
mixed
CONTAINER_NAME
= 'container.name'
CONTAINER_RUNTIME
The container runtime managing this container.
public
mixed
CONTAINER_RUNTIME
= 'container.runtime'
DEPLOYMENT_ENVIRONMENT_NAME
Name of the [deployment environment](https://wikipedia.org/wiki/Deployment_environment) (aka deployment tier).
public
mixed
DEPLOYMENT_ENVIRONMENT_NAME
= 'deployment.environment.name'
deployment.environment.name
does not affect the uniqueness constraints defined through
the service.namespace
, service.name
and service.instance.id
resource attributes.
This implies that resources carrying the following attribute combinations MUST be
considered to be identifying the same service:
-
service.name=frontend
,deployment.environment.name=production
-
service.name=frontend
,deployment.environment.name=staging
.
DEVICE_ID
A unique identifier representing the device
public
mixed
DEVICE_ID
= 'device.id'
The device identifier MUST only be defined using the values outlined below. This value is not an advertising identifier and MUST NOT be used as such. On iOS (Swift or Objective-C), this value MUST be equal to the vendor identifier. On Android (Java or Kotlin), this value MUST be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. More information can be found here on best practices and exact implementation details. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply, ensure you do your own due diligence.
DEVICE_MANUFACTURER
The name of the device manufacturer
public
mixed
DEVICE_MANUFACTURER
= 'device.manufacturer'
The Android OS provides this field via Build. iOS apps SHOULD hardcode the value Apple
.
DEVICE_MODEL_IDENTIFIER
The model identifier for the device
public
mixed
DEVICE_MODEL_IDENTIFIER
= 'device.model.identifier'
It's recommended this value represents a machine-readable version of the model identifier rather than the market or consumer-friendly name of the device.
DEVICE_MODEL_NAME
The marketing name for the device model
public
mixed
DEVICE_MODEL_NAME
= 'device.model.name'
It's recommended this value represents a human-readable version of the device model rather than a machine-readable alternative.
FAAS_INSTANCE
The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.
public
mixed
FAAS_INSTANCE
= 'faas.instance'
- AWS Lambda: Use the (full) log stream name.
FAAS_MAX_MEMORY
The amount of memory available to the serverless function converted to Bytes.
public
mixed
FAAS_MAX_MEMORY
= 'faas.max_memory'
It's recommended to set this attribute since e.g. too little memory can easily stop a Java AWS Lambda function from working correctly. On AWS Lambda, the environment variable AWS_LAMBDA_FUNCTION_MEMORY_SIZE
provides this information (which must be multiplied by 1,048,576).
FAAS_NAME
The name of the single function that this runtime instance executes.
public
mixed
FAAS_NAME
= 'faas.name'
This is the name of the function as configured/deployed on the FaaS
platform and is usually different from the name of the callback
function (which may be stored in the
code.namespace
/code.function
span attributes).
For some cloud providers, the above definition is ambiguous. The following definition of function name MUST be used for this attribute (and consequently the span name) for the listed cloud providers/products:
-
Azure: The full name
<FUNCAPP>/<FUNC>
, i.e., function app name followed by a forward slash followed by the function name (this form can also be seen in the resource JSON for the function). This means that a span attribute MUST be used, as an Azure function app can host multiple functions that would usually share a TracerProvider (see also thecloud.resource_id
attribute).
FAAS_VERSION
The immutable version of the function being executed.
public
mixed
FAAS_VERSION
= 'faas.version'
Depending on the cloud provider and platform, use:
- AWS Lambda: The function version (an integer represented as a decimal string).
- Google Cloud Run (Services): The revision (i.e., the function name plus the revision suffix).
-
Google Cloud Functions: The value of the
K_REVISION
environment variable. - Azure Functions: Not applicable. Do not set this attribute.
GCP_CLOUD_RUN_JOB_EXECUTION
The name of the Cloud Run [execution](https://cloud.google.com/run/docs/managing/job-executions) being run for the Job, as set by the [`CLOUD_RUN_EXECUTION`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) environment variable.
public
mixed
GCP_CLOUD_RUN_JOB_EXECUTION
= 'gcp.cloud_run.job.execution'
GCP_CLOUD_RUN_JOB_TASK_INDEX
The index for a task within an execution as provided by the [`CLOUD_RUN_TASK_INDEX`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) environment variable.
public
mixed
GCP_CLOUD_RUN_JOB_TASK_INDEX
= 'gcp.cloud_run.job.task_index'
GCP_GCE_INSTANCE_HOSTNAME
The hostname of a GCE instance. This is the full value of the default or [custom hostname](https://cloud.google.com/compute/docs/instances/custom-hostname-vm).
public
mixed
GCP_GCE_INSTANCE_HOSTNAME
= 'gcp.gce.instance.hostname'
GCP_GCE_INSTANCE_NAME
The instance name of a GCE instance. This is the value provided by `host.name`, the visible name of the instance in the Cloud Console UI, and the prefix for the default hostname of the instance as defined by the [default internal DNS name](https://cloud.google.com/compute/docs/internal-dns#instance-fully-qualified-domain-names).
public
mixed
GCP_GCE_INSTANCE_NAME
= 'gcp.gce.instance.name'
HEROKU_APP_ID
Unique identifier for the application
public
mixed
HEROKU_APP_ID
= 'heroku.app.id'
HEROKU_RELEASE_COMMIT
Commit hash for the current release
public
mixed
HEROKU_RELEASE_COMMIT
= 'heroku.release.commit'
HEROKU_RELEASE_CREATION_TIMESTAMP
Time and date the release was created
public
mixed
HEROKU_RELEASE_CREATION_TIMESTAMP
= 'heroku.release.creation_timestamp'
HOST_ARCH
The CPU architecture the host system is running on.
public
mixed
HOST_ARCH
= 'host.arch'
HOST_CPU_CACHE_L2_SIZE
The amount of level 2 memory cache available to the processor (in Bytes).
public
mixed
HOST_CPU_CACHE_L2_SIZE
= 'host.cpu.cache.l2.size'
HOST_CPU_FAMILY
Family or generation of the CPU.
public
mixed
HOST_CPU_FAMILY
= 'host.cpu.family'
HOST_CPU_MODEL_ID
Model identifier. It provides more granular information about the CPU, distinguishing it from other CPUs within the same family.
public
mixed
HOST_CPU_MODEL_ID
= 'host.cpu.model.id'
HOST_CPU_MODEL_NAME
Model designation of the processor.
public
mixed
HOST_CPU_MODEL_NAME
= 'host.cpu.model.name'
HOST_CPU_STEPPING
Stepping or core revisions.
public
mixed
HOST_CPU_STEPPING
= 'host.cpu.stepping'
HOST_CPU_VENDOR_ID
Processor manufacturer identifier. A maximum 12-character string.
public
mixed
HOST_CPU_VENDOR_ID
= 'host.cpu.vendor.id'
CPUID command returns the vendor ID string in EBX, EDX and ECX registers. Writing these to memory in this order results in a 12-character string.
HOST_ID
Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider. For non-containerized systems, this should be the `machine-id`. See the table below for the sources to use to determine the `machine-id` based on operating system.
public
mixed
HOST_ID
= 'host.id'
Collecting host.id
from non-containerized systems
Non-privileged Machine ID Lookup
When collecting host.id
for non-containerized systems non-privileged lookups
of the machine id are preferred. SDK detector implementations MUST use the
sources listed below to obtain the machine id.
OS | Primary | Fallback |
---|---|---|
Linux | contents of /etc/machine-id |
contents of /var/lib/dbus/machine-id |
BSD | contents of /etc/hostid |
output of kenv -q smbios.system.uuid |
MacOS | IOPlatformUUID line from the output of ioreg -rd1 -c "IOPlatformExpertDevice" |
- |
Windows | MachineGuid from registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography |
- |
Privileged Machine ID Lookup
The host.id
can be looked up using privileged sources. For example, Linux
systems can use the output of dmidecode -t system
, dmidecode -t baseboard
,
dmidecode -t chassis
, or read the corresponding data from the filesystem
(e.g. cat /sys/devices/virtual/dmi/id/product_id
,
cat /sys/devices/virtual/dmi/id/product_uuid
, etc), however, SDK resource
detector implementations MUST not collect host.id
from privileged sources. If
privileged lookup of host.id
is required, the value should be injected via the
OTEL_RESOURCE_ATTRIBUTES
environment variable.
HOST_IMAGE_ID
VM image ID or host OS image ID. For Cloud, this value is from the provider.
public
mixed
HOST_IMAGE_ID
= 'host.image.id'
HOST_IMAGE_NAME
Name of the VM image or OS install the host was instantiated from.
public
mixed
HOST_IMAGE_NAME
= 'host.image.name'
HOST_IMAGE_VERSION
The version string of the VM image or host OS as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
public
mixed
HOST_IMAGE_VERSION
= 'host.image.version'
HOST_IP
Available IP addresses of the host, excluding loopback interfaces.
public
mixed
HOST_IP
= 'host.ip'
IPv4 Addresses MUST be specified in dotted-quad notation. IPv6 addresses MUST be specified in the RFC 5952 format.
HOST_MAC
Available MAC addresses of the host, excluding loopback interfaces.
public
mixed
HOST_MAC
= 'host.mac'
MAC Addresses MUST be represented in IEEE RA hexadecimal form: as hyphen-separated octets in uppercase hexadecimal form from most to least significant.
HOST_NAME
Name of the host. On Unix systems, it may contain what the hostname command returns, or the fully qualified hostname, or another name specified by the user.
public
mixed
HOST_NAME
= 'host.name'
HOST_TYPE
Type of host. For Cloud, this must be the machine type.
public
mixed
HOST_TYPE
= 'host.type'
K8S_CLUSTER_NAME
The name of the cluster.
public
mixed
K8S_CLUSTER_NAME
= 'k8s.cluster.name'
K8S_CLUSTER_UID
A pseudo-ID for the cluster, set to the UID of the `kube-system` namespace.
public
mixed
K8S_CLUSTER_UID
= 'k8s.cluster.uid'
K8s doesn't have support for obtaining a cluster ID. If this is ever
added, we will recommend collecting the k8s.cluster.uid
through the
official APIs. In the meantime, we are able to use the uid
of the
kube-system
namespace as a proxy for cluster ID. Read on for the
rationale.
Every object created in a K8s cluster is assigned a distinct UID. The
kube-system
namespace is used by Kubernetes itself and will exist
for the lifetime of the cluster. Using the uid
of the kube-system
namespace is a reasonable proxy for the K8s ClusterID as it will only
change if the cluster is rebuilt. Furthermore, Kubernetes UIDs are
UUIDs as standardized by
ISO/IEC 9834-8 and ITU-T X.667.
Which states:
If generated according to one of the mechanisms defined in Rec. ITU-T X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be different from all other UUIDs generated before 3603 A.D., or is extremely likely to be different (depending on the mechanism chosen).
Therefore, UIDs between clusters should be extremely unlikely to conflict.
K8S_CONTAINER_NAME
The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (`container.name`).
public
mixed
K8S_CONTAINER_NAME
= 'k8s.container.name'
K8S_CONTAINER_RESTART_COUNT
Number of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec.
public
mixed
K8S_CONTAINER_RESTART_COUNT
= 'k8s.container.restart_count'
K8S_CONTAINER_STATUS_LAST_TERMINATED_REASON
Last terminated reason of the Container.
public
mixed
K8S_CONTAINER_STATUS_LAST_TERMINATED_REASON
= 'k8s.container.status.last_terminated_reason'
K8S_CRONJOB_NAME
The name of the CronJob.
public
mixed
K8S_CRONJOB_NAME
= 'k8s.cronjob.name'
K8S_CRONJOB_UID
The UID of the CronJob.
public
mixed
K8S_CRONJOB_UID
= 'k8s.cronjob.uid'
K8S_DAEMONSET_NAME
The name of the DaemonSet.
public
mixed
K8S_DAEMONSET_NAME
= 'k8s.daemonset.name'
K8S_DAEMONSET_UID
The UID of the DaemonSet.
public
mixed
K8S_DAEMONSET_UID
= 'k8s.daemonset.uid'
K8S_DEPLOYMENT_NAME
The name of the Deployment.
public
mixed
K8S_DEPLOYMENT_NAME
= 'k8s.deployment.name'
K8S_DEPLOYMENT_UID
The UID of the Deployment.
public
mixed
K8S_DEPLOYMENT_UID
= 'k8s.deployment.uid'
K8S_JOB_NAME
The name of the Job.
public
mixed
K8S_JOB_NAME
= 'k8s.job.name'
K8S_JOB_UID
The UID of the Job.
public
mixed
K8S_JOB_UID
= 'k8s.job.uid'
K8S_NAMESPACE_NAME
The name of the namespace that the pod is running in.
public
mixed
K8S_NAMESPACE_NAME
= 'k8s.namespace.name'
K8S_NODE_NAME
The name of the Node.
public
mixed
K8S_NODE_NAME
= 'k8s.node.name'
K8S_NODE_UID
The UID of the Node.
public
mixed
K8S_NODE_UID
= 'k8s.node.uid'
K8S_POD_ANNOTATION
The annotation key-value pairs placed on the Pod, the `<key>` being the annotation name, the value being the annotation value.
public
mixed
K8S_POD_ANNOTATION
= 'k8s.pod.annotation'
K8S_POD_LABEL
The label key-value pairs placed on the Pod, the `<key>` being the label name, the value being the label value.
public
mixed
K8S_POD_LABEL
= 'k8s.pod.label'
K8S_POD_NAME
The name of the Pod.
public
mixed
K8S_POD_NAME
= 'k8s.pod.name'
K8S_POD_UID
The UID of the Pod.
public
mixed
K8S_POD_UID
= 'k8s.pod.uid'
K8S_REPLICASET_NAME
The name of the ReplicaSet.
public
mixed
K8S_REPLICASET_NAME
= 'k8s.replicaset.name'
K8S_REPLICASET_UID
The UID of the ReplicaSet.
public
mixed
K8S_REPLICASET_UID
= 'k8s.replicaset.uid'
K8S_STATEFULSET_NAME
The name of the StatefulSet.
public
mixed
K8S_STATEFULSET_NAME
= 'k8s.statefulset.name'
K8S_STATEFULSET_UID
The UID of the StatefulSet.
public
mixed
K8S_STATEFULSET_UID
= 'k8s.statefulset.uid'
OCI_MANIFEST_DIGEST
The digest of the OCI image manifest. For container images specifically is the digest by which the container image is known.
public
mixed
OCI_MANIFEST_DIGEST
= 'oci.manifest.digest'
Follows OCI Image Manifest Specification, and specifically the Digest property. An example can be found in Example Image Manifest.
OS_BUILD_ID
Unique identifier for a particular build or compilation of the operating system.
public
mixed
OS_BUILD_ID
= 'os.build_id'
build_id
values SHOULD be obtained from the following sources:
OS | Primary | Fallback |
---|---|---|
Windows | CurrentBuildNumber from registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion |
- |
MacOS | ProductBuildVersion from /System/Library/CoreServices/SystemVersion.plist |
ProductBuildVersion from /System/Library/CoreServices/ServerVersion.plist |
Linux | BUILD_ID from /etc/os-release |
BUILD_ID from /usr/lib/os-release ; contents of /proc/sys/kernel/osrelease |
OS_DESCRIPTION
Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands.
public
mixed
OS_DESCRIPTION
= 'os.description'
OS_NAME
Human readable operating system name.
public
mixed
OS_NAME
= 'os.name'
OS_TYPE
The operating system type.
public
mixed
OS_TYPE
= 'os.type'
OS_VERSION
The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
public
mixed
OS_VERSION
= 'os.version'
OTEL_SCOPE_NAME
The name of the instrumentation scope - (`InstrumentationScope.Name` in OTLP).
public
mixed
OTEL_SCOPE_NAME
= 'otel.scope.name'
OTEL_SCOPE_VERSION
The version of the instrumentation scope - (`InstrumentationScope.Version` in OTLP).
public
mixed
OTEL_SCOPE_VERSION
= 'otel.scope.version'
PROCESS_COMMAND
The command used to launch the process (i.e. the command name). On Linux based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to the first parameter extracted from `GetCommandLineW`.
public
mixed
PROCESS_COMMAND
= 'process.command'
PROCESS_COMMAND_ARGS
All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`.
public
mixed
PROCESS_COMMAND_ARGS
= 'process.command_args'
PROCESS_COMMAND_LINE
The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead.
public
mixed
PROCESS_COMMAND_LINE
= 'process.command_line'
PROCESS_EXECUTABLE_NAME
The name of the process executable. On Linux based systems, can be set to the `Name` in `proc/[pid]/status`. On Windows, can be set to the base name of `GetProcessImageFileNameW`.
public
mixed
PROCESS_EXECUTABLE_NAME
= 'process.executable.name'
PROCESS_EXECUTABLE_PATH
The full path to the process executable. On Linux based systems, can be set to the target of `proc/[pid]/exe`. On Windows, can be set to the result of `GetProcessImageFileNameW`.
public
mixed
PROCESS_EXECUTABLE_PATH
= 'process.executable.path'
PROCESS_OWNER
The username of the user that owns the process.
public
mixed
PROCESS_OWNER
= 'process.owner'
PROCESS_PARENT_PID
Parent Process identifier (PPID).
public
mixed
PROCESS_PARENT_PID
= 'process.parent_pid'
PROCESS_PID
Process identifier (PID).
public
mixed
PROCESS_PID
= 'process.pid'
PROCESS_RUNTIME_DESCRIPTION
An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.
public
mixed
PROCESS_RUNTIME_DESCRIPTION
= 'process.runtime.description'
PROCESS_RUNTIME_NAME
The name of the runtime of this process.
public
mixed
PROCESS_RUNTIME_NAME
= 'process.runtime.name'
PROCESS_RUNTIME_VERSION
The version of the runtime of this process, as returned by the runtime without modification.
public
mixed
PROCESS_RUNTIME_VERSION
= 'process.runtime.version'
SCHEMA_URL
The URL of the OpenTelemetry schema for these keys and values.
public
mixed
SCHEMA_URL
= 'https://opentelemetry.io/schemas/1.27.0'
SERVICE_INSTANCE_ID
The string ID of the service instance.
public
mixed
SERVICE_INSTANCE_ID
= 'service.instance.id'
MUST be unique for each instance of the same service.namespace,service.name
pair (in other words
service.namespace,service.name,service.instance.id
triplet MUST be globally unique). The ID helps to
distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled
service).
Implementations, such as SDKs, are recommended to generate a random Version 1 or Version 4 RFC
4122 UUID, but are free to use an inherent unique ID as the source of
this value if stability is desirable. In that case, the ID SHOULD be used as source of a UUID Version 5 and
SHOULD use the following UUID as the namespace: 4d63009a-8d0f-11ee-aad7-4c796ed8e320
.
UUIDs are typically recommended, as only an opaque value for the purposes of identifying a service instance is
needed. Similar to what can be seen in the man page for the
/etc/machine-id
file, the underlying
data, such as pod name and namespace should be treated as confidential, being the user's choice to expose it
or not via another resource attribute.
For applications running behind an application server (like unicorn), we do not recommend using one identifier for all processes participating in the application. Instead, it's recommended each division (e.g. a worker thread in unicorn) to have its own instance.id.
It's not recommended for a Collector to set service.instance.id
if it can't unambiguously determine the
service instance that is generating that telemetry. For instance, creating an UUID based on pod.name
will
likely be wrong, as the Collector might not know from which container within that pod the telemetry originated.
However, Collectors can set the service.instance.id
if they can unambiguously determine the service instance
for that telemetry. This is typically the case for scraping receivers, as they know the target address and
port.
SERVICE_NAME
Logical name of the service.
public
mixed
SERVICE_NAME
= 'service.name'
MUST be the same for all instances of horizontally scaled services. If the value was not specified, SDKs MUST fallback to unknown_service:
concatenated with process.executable.name
, e.g. unknown_service:bash
. If process.executable.name
is not available, the value MUST be set to unknown_service
.
SERVICE_NAMESPACE
A namespace for `service.name`.
public
mixed
SERVICE_NAMESPACE
= 'service.namespace'
A string value having a meaning that helps to distinguish a group of services, for example the team name that owns a group of services. service.name
is expected to be unique within the same namespace. If service.namespace
is not specified in the Resource then service.name
is expected to be unique for all services that have no explicit namespace defined (so the empty/unspecified namespace is simply one more valid namespace). Zero-length namespace string is assumed equal to unspecified namespace.
SERVICE_VERSION
The version string of the service API or implementation. The format is not defined by these conventions.
public
mixed
SERVICE_VERSION
= 'service.version'
TELEMETRY_DISTRO_NAME
The name of the auto instrumentation agent or distribution, if used.
public
mixed
TELEMETRY_DISTRO_NAME
= 'telemetry.distro.name'
Official auto instrumentation agents and distributions SHOULD set the telemetry.distro.name
attribute to
a string starting with opentelemetry-
, e.g. opentelemetry-java-instrumentation
.
TELEMETRY_DISTRO_VERSION
The version string of the auto instrumentation agent or distribution, if used.
public
mixed
TELEMETRY_DISTRO_VERSION
= 'telemetry.distro.version'
TELEMETRY_SDK_LANGUAGE
The language of the telemetry SDK.
public
mixed
TELEMETRY_SDK_LANGUAGE
= 'telemetry.sdk.language'
TELEMETRY_SDK_NAME
The name of the telemetry SDK as defined above.
public
mixed
TELEMETRY_SDK_NAME
= 'telemetry.sdk.name'
The OpenTelemetry SDK MUST set the telemetry.sdk.name
attribute to opentelemetry
.
If another SDK, like a fork or a vendor-provided implementation, is used, this SDK MUST set the
telemetry.sdk.name
attribute to the fully-qualified class or module name of this SDK's main entry point
or another suitable identifier depending on the language.
The identifier opentelemetry
is reserved and MUST NOT be used in this case.
All custom identifiers SHOULD be stable across different versions of an implementation.
TELEMETRY_SDK_VERSION
The version string of the telemetry SDK.
public
mixed
TELEMETRY_SDK_VERSION
= 'telemetry.sdk.version'
USER_AGENT_ORIGINAL
Full user-agent string provided by the browser The user-agent value SHOULD be provided only from browsers that do not have a mechanism to retrieve brands and platform individually from the User-Agent Client Hints API. To retrieve the value, the legacy `navigator.userAgent` API can be used.
public
mixed
USER_AGENT_ORIGINAL
= 'user_agent.original'
WEBENGINE_DESCRIPTION
Additional description of the web engine (e.g. detailed version and edition information).
public
mixed
WEBENGINE_DESCRIPTION
= 'webengine.description'
WEBENGINE_NAME
The name of the web engine.
public
mixed
WEBENGINE_NAME
= 'webengine.name'
WEBENGINE_VERSION
The version of the web engine.
public
mixed
WEBENGINE_VERSION
= 'webengine.version'