Skip to content

Instantly share code, notes, and snippets.

@lmolkova
Last active November 4, 2025 20:40
Show Gist options
  • Select an option

  • Save lmolkova/34dc5c0b0f583ca80681af3c9334238d to your computer and use it in GitHub Desktop.

Select an option

Save lmolkova/34dc5c0b0f583ca80681af3c9334238d to your computer and use it in GitHub Desktop.
semconv_schema_v2.yaml
This file has been truncated, but you can view the full file.
attributes:
- key: android.app.state
type:
members:
- id: created
value: created
brief: |
Any time before Activity.onResume() or, if the app has no Activity, Context.startService() has been called in the app for the first time.
stability: development
- id: background
value: background
brief: |
Any time after Activity.onPause() or, if the app has no Activity, Context.stopService() has been called when the app was in the foreground state.
stability: development
- id: foreground
value: foreground
brief: |
Any time after Activity.onResume() or, if the app has no Activity, Context.startService() has been called when the app was in either the created or background states.
stability: development
examples:
- created
brief: |
This attribute represents the state of the application.
note: |
The Android lifecycle states are defined in [Activity lifecycle callbacks](https://developer.android.com/guide/components/activities/activity-lifecycle#lc), and from which the `OS identifiers` are derived.
stability: development
- key: android.os.api_level
type: string
examples:
- '33'
- '32'
brief: |
Uniquely identifies the framework API revision offered by a version (`os.version`) of the android operating system. More information can be found in the [Android API levels documentation](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels).
stability: development
- key: android.state
type:
members:
- id: created
value: created
brief: |
Any time before Activity.onResume() or, if the app has no Activity, Context.startService() has been called in the app for the first time.
stability: development
- id: background
value: background
brief: |
Any time after Activity.onPause() or, if the app has no Activity, Context.stopService() has been called when the app was in the foreground state.
stability: development
- id: foreground
value: foreground
brief: |
Any time after Activity.onResume() or, if the app has no Activity, Context.startService() has been called when the app was in either the created or background states.
stability: development
brief: Deprecated. Use `android.app.state` attribute instead.
stability: development
deprecated:
reason: renamed
renamed_to: android.app.state
note: Replaced by `android.app.state`.
- key: app.build_id
type: string
examples:
- 6cff0a7e-cefc-4668-96f5-1273d8b334d0
- 9f2b833506aa6973a92fde9733e6271f
- my-app-1.0.0-code-123
brief: Unique identifier for a particular build or compilation of the application.
stability: development
- key: app.installation.id
type: string
examples:
- 2ab2916d-a51f-4ac8-80ee-45ac31a28092
brief: |
A unique identifier representing the installation of an application on a specific device
note: |
Its value SHOULD persist across launches of the same application installation, including through application upgrades.
It SHOULD change if the application is uninstalled or if all applications of the vendor are uninstalled.
Additionally, users might be able to reset this value (e.g. by clearing application data).
If an app is installed multiple times on the same device (e.g. in different accounts on Android), each `app.installation.id` SHOULD have a different value.
If multiple OpenTelemetry SDKs are used within the same application, they SHOULD use the same value for `app.installation.id`.
Hardware IDs (e.g. serial number, IMEI, MAC address) MUST NOT be used as the `app.installation.id`.
For iOS, this value SHOULD be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/identifierforvendor).
For Android, examples of `app.installation.id` implementations include:
- [Firebase Installation ID](https://firebase.google.com/docs/projects/manage-installations).
- A globally unique UUID which is persisted across sessions in your application.
- [App set ID](https://developer.android.com/identity/app-set-id).
- [`Settings.getString(Settings.Secure.ANDROID_ID)`](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID).
More information about Android identifier best practices can be found in the [Android user data IDs guide](https://developer.android.com/training/articles/user-data-ids).
stability: development
- key: app.jank.frame_count
type: int
examples:
- 9
- 42
brief: A number of frame renders that experienced jank.
note: |
Depending on platform limitations, the value provided MAY be approximation.
stability: development
- key: app.jank.period
type: double
examples:
- 1.0
- 5.0
- 10.24
brief: The time period, in seconds, for which this jank is being reported.
stability: development
- key: app.jank.threshold
type: double
examples:
- 0.016
- 0.7
- 1.024
brief: The minimum rendering threshold for this jank, in seconds.
stability: development
- key: app.screen.coordinate.x
type: int
examples:
- 0
- 131
brief: The x (horizontal) coordinate of a screen coordinate, in screen pixels.
stability: development
- key: app.screen.coordinate.y
type: int
examples:
- 12
- 99
brief: |
The y (vertical) component of a screen coordinate, in screen pixels.
stability: development
- key: app.screen.id
type: string
examples:
- f9bc787d-ff05-48ad-90e1-fca1d46130b3
- com.example.app.MainActivity
- com.example.shop.ProductDetailFragment
- MyApp.ProfileView
- MyApp.ProfileViewController
brief: |
An identifier that uniquely differentiates this screen from other screens in the same application.
note: |
A screen represents only the part of the device display drawn by the app. It typically contains multiple widgets or UI components and is larger in scope than individual widgets. Multiple screens can coexist on the same display simultaneously (e.g., split view on tablets).
stability: development
- key: app.screen.name
type: string
examples:
- MainActivity
- ProductDetailFragment
- ProfileView
- ProfileViewController
brief: The name of an application screen.
note: |
A screen represents only the part of the device display drawn by the app. It typically contains multiple widgets or UI components and is larger in scope than individual widgets. Multiple screens can coexist on the same display simultaneously (e.g., split view on tablets).
stability: development
- key: app.widget.id
type: string
examples:
- f9bc787d-ff05-48ad-90e1-fca1d46130b3
- submit_order_1829
brief: |
An identifier that uniquely differentiates this widget from other widgets in the same application.
note: |
A widget is an application component, typically an on-screen visual GUI element.
stability: development
- key: app.widget.name
type: string
examples:
- submit
- attack
- Clear Cart
brief: The name of an application widget.
note: |
A widget is an application component, typically an on-screen visual GUI element.
stability: development
- key: artifact.attestation.filename
type: string
examples:
- golang-binary-amd64-v0.1.0.attestation
- docker-image-amd64-v0.1.0.intoto.json1
- release-1.tar.gz.attestation
- file-name-package.tar.gz.intoto.json1
brief: |
The provenance filename of the built attestation which directly relates to the build artifact filename. This filename SHOULD accompany the artifact at publish time. See the [SLSA Relationship](https://slsa.dev/spec/v1.0/distributing-provenance#relationship-between-artifacts-and-attestations) specification for more information.
stability: development
- key: artifact.attestation.hash
type: string
examples:
- 1b31dfcd5b7f9267bf2ff47651df1cfb9147b9e4df1f335accf65b4cda498408
brief: |
The full [hash value (see glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), of the built attestation. Some envelopes in the [software attestation space](https://github.com/in-toto/attestation/tree/main/spec) also refer to this as the **digest**.
stability: development
- key: artifact.attestation.id
type: string
examples:
- '123'
brief: |
The id of the build [software attestation](https://slsa.dev/attestation-model).
stability: development
- key: artifact.filename
type: string
examples:
- golang-binary-amd64-v0.1.0
- docker-image-amd64-v0.1.0
- release-1.tar.gz
- file-name-package.tar.gz
brief: |
The human readable file name of the artifact, typically generated during build and release processes. Often includes the package name and version in the file name.
note: |
This file name can also act as the [Package Name](https://slsa.dev/spec/v1.0/terminology#package-model)
in cases where the package ecosystem maps accordingly.
Additionally, the artifact [can be published](https://slsa.dev/spec/v1.0/terminology#software-supply-chain)
for others, but that is not a guarantee.
stability: development
- key: artifact.hash
type: string
examples:
- 9ff4c52759e2c4ac70b7d517bc7fcdc1cda631ca0045271ddd1b192544f8a3e9
brief: |
The full [hash value (see glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), often found in checksum.txt on a release of the artifact and used to verify package integrity.
note: |
The specific algorithm used to create the cryptographic hash value is
not defined. In situations where an artifact has multiple
cryptographic hashes, it is up to the implementer to choose which
hash value to set here; this should be the most secure hash algorithm
that is suitable for the situation and consistent with the
corresponding attestation. The implementer can then provide the other
hash values through an additional set of attribute extensions as they
deem necessary.
stability: development
- key: artifact.purl
type: string
examples:
- pkg:github/package-url/purl-spec@1209109710924
- pkg:npm/[email protected]
brief: |
The [Package URL](https://github.com/package-url/purl-spec) of the [package artifact](https://slsa.dev/spec/v1.0/terminology#package-model) provides a standard way to identify and locate the packaged artifact.
stability: development
- key: artifact.version
type: string
examples:
- v0.1.0
- 1.2.1
- 122691-build
brief: |
The version of the artifact.
stability: development
- key: aspnetcore.authentication.result
type:
members:
- id: success
value: success
brief: Authentication was successful.
stability: development
- id: failure
value: failure
brief: Authentication failed.
stability: development
- id: none
value: none
brief: No authentication information returned.
stability: development
examples:
- success
- failure
brief: The result of the authentication operation.
stability: development
- key: aspnetcore.authentication.scheme
type: string
examples:
- Cookies
- Bearer
- Identity.Application
brief: The identifier that names a particular authentication handler.
stability: development
- key: aspnetcore.authorization.policy
type: string
examples:
- RequireAdminRole
brief: The name of the authorization policy.
stability: development
- key: aspnetcore.authorization.result
type:
members:
- id: success
value: success
brief: Authorization was successful.
stability: development
- id: failure
value: failure
brief: Authorization failed.
stability: development
examples:
- success
- failure
brief: The result of calling the authorization service.
stability: development
- key: aspnetcore.diagnostics.exception.result
type:
members:
- id: handled
value: handled
brief: Exception was handled by the exception handling middleware.
stability: stable
- id: unhandled
value: unhandled
brief: Exception was not handled by the exception handling middleware.
stability: stable
- id: skipped
value: skipped
brief: Exception handling was skipped because the response had started.
stability: stable
- id: aborted
value: aborted
brief: Exception handling didn't run because the request was aborted.
stability: stable
examples:
- handled
- unhandled
brief: ASP.NET Core exception middleware handling result.
stability: stable
- key: aspnetcore.diagnostics.handler.type
type: string
examples:
- Contoso.MyHandler
brief: Full type name of the [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler) implementation that handled the exception.
stability: stable
- key: aspnetcore.identity.error_code
type: string
examples:
- DefaultError
- PasswordMismatch
brief: The error code for a failed identity operation.
stability: development
- key: aspnetcore.identity.password_check_result
type:
members:
- id: success
value: success
brief: Password check was successful.
stability: development
- id: success_rehash_needed
value: success_rehash_needed
brief: Password check was successful however the password was encoded using a deprecated algorithm and should be rehashed and updated.
stability: development
- id: failure
value: failure
brief: Password check failed.
stability: development
- id: password_missing
value: password_missing
brief: Password check couldn't proceed because the password was missing from the user.
stability: development
- id: user_missing
value: user_missing
brief: Password check couldn't proceed because the user was missing.
stability: development
examples:
- success
- failure
brief: The result from checking the password.
stability: development
- key: aspnetcore.identity.result
type:
members:
- id: success
value: success
brief: Identity operation was successful.
stability: development
- id: failure
value: failure
brief: Identity operation failed.
stability: development
examples:
- success
- failure
brief: The result of the identity operation.
stability: development
- key: aspnetcore.identity.sign_in.result
type:
members:
- id: success
value: success
brief: Sign in was successful.
stability: development
- id: locked_out
value: locked_out
brief: User is locked out.
stability: development
- id: not_allowed
value: not_allowed
brief: User is not allowed to sign in.
stability: development
- id: requires_two_factor
value: requires_two_factor
brief: User requires two factory authentication to sign in.
stability: development
- id: failure
value: failure
brief: Sign in failed.
stability: development
examples:
- password
- two_factor
brief: Whether the sign in result was success or failure.
stability: development
- key: aspnetcore.identity.sign_in.type
type:
members:
- id: password
value: password
brief: Sign in with password.
stability: development
- id: two_factor_recovery_code
value: two_factor_recovery_code
brief: Sign in with two factory recovery code.
stability: development
- id: two_factor_authenticator
value: two_factor_authenticator
brief: Sign in with two factor authenticator app.
stability: development
- id: two_factor
value: two_factor
brief: Sign in with a two factor provider.
stability: development
- id: external
value: external
brief: Sign in with a previously registered third-party login.
stability: development
- id: passkey
value: passkey
brief: Sign in with passkey.
stability: development
examples:
- password
- two_factor
brief: The authentication type.
stability: development
- key: aspnetcore.identity.token_purpose
type:
members:
- id: reset_password
value: reset_password
brief: The token is for resetting a user password.
stability: development
- id: change_phone_number
value: change_phone_number
brief: The token is for changing a user phone number.
stability: development
- id: email_confirmation
value: email_confirmation
brief: The token is for confirming user email address.
stability: development
- id: change_email
value: change_email
brief: The token is for changing the user email address.
stability: development
- id: two_factor
value: two_factor
brief: The token is for changing user two factor settings.
stability: development
- id: other
value: _OTHER
brief: Any token purpose that the instrumentation has no prior knowledge of.
stability: development
examples:
- success
- failure
brief: What the token will be used for.
stability: development
- key: aspnetcore.identity.token_verified
type:
members:
- id: success
value: success
brief: Token verification was successful.
stability: development
- id: failure
value: failure
brief: Token verification failed.
stability: development
examples:
- success
- failure
brief: The result of token verification.
stability: development
- key: aspnetcore.identity.user.update_type
type:
members:
- id: update
value: update
brief: Identity user updated.
stability: development
- id: user_name
value: user_name
brief: Identity user name updated.
stability: development
- id: add_password
value: add_password
brief: Identity user password added.
stability: development
- id: change_password
value: change_password
brief: Identity user password changed.
stability: development
- id: security_stamp
value: security_stamp
brief: Identity user security stamp updated.
stability: development
- id: reset_password
value: reset_password
brief: Identity user password reset.
stability: development
- id: remove_login
value: remove_login
brief: Identity user login removed.
stability: development
- id: add_login
value: add_login
brief: Identity user login added.
stability: development
- id: add_claims
value: add_claims
brief: Identity user claims added.
stability: development
- id: replace_claim
value: replace_claim
brief: Identity user claim replaced.
stability: development
- id: remove_claims
value: remove_claims
brief: Identity user claims removed.
stability: development
- id: add_to_roles
value: add_to_roles
brief: Identity user added to roles.
stability: development
- id: remove_from_roles
value: remove_from_roles
brief: Identity user removed from roles.
stability: development
- id: set_email
value: set_email
brief: Identity user email set.
stability: development
- id: confirm_email
value: confirm_email
brief: Identity user email confirmed.
stability: development
- id: password_rehash
value: password_rehash
brief: Identity user password rehashed.
stability: development
- id: remove_password
value: remove_password
brief: Identity user password removed.
stability: development
- id: change_email
value: change_email
brief: Identity user email changed.
stability: development
- id: set_phone_number
value: set_phone_number
brief: Identity user phone number set.
stability: development
- id: change_phone_number
value: change_phone_number
brief: Identity user phone number changed.
stability: development
- id: set_two_factor_enabled
value: set_two_factor_enabled
brief: Identity user two-factor authentication enabled or disabled.
stability: development
- id: set_lockout_enabled
value: set_lockout_enabled
brief: Identity user lockout enabled or disabled.
stability: development
- id: set_lockout_end_date
value: set_lockout_end_date
brief: Identity user lockout end date set.
stability: development
- id: access_failed
value: access_failed
brief: Identity user access failure recorded.
stability: development
- id: reset_access_failed_count
value: reset_access_failed_count
brief: Identity user access failure count reset.
stability: development
- id: set_authentication_token
value: set_authentication_token
brief: Identity user authentication token set.
stability: development
- id: remove_authentication_token
value: remove_authentication_token
brief: Identity user authentication token removed.
stability: development
- id: reset_authenticator_key
value: reset_authenticator_key
brief: Identity user authenticator key reset.
stability: development
- id: generate_new_two_factor_recovery_codes
value: generate_new_two_factor_recovery_codes
brief: Identity user new two-factor recovery codes generated.
stability: development
- id: redeem_two_factor_recovery_code
value: redeem_two_factor_recovery_code
brief: Identity user two-factor recovery code redeemed.
stability: development
- id: set_passkey
value: set_passkey
brief: Identity user passkey set.
stability: development
- id: remove_passkey
value: remove_passkey
brief: Identity user passkey removed.
stability: development
- id: other
value: _OTHER
brief: Any update type that the instrumentation has no prior knowledge of.
stability: development
examples:
- update
- user_name
- reset_password
brief: The user update type.
stability: development
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
- key: aspnetcore.memory_pool.owner
type: string
examples:
- kestrel
- iis
brief: The name of the library or subsystem using the memory pool instance.
stability: development
- key: aspnetcore.rate_limiting.policy
type: string
examples:
- fixed
- sliding
- token
brief: Rate limiting policy name.
stability: stable
- key: aspnetcore.rate_limiting.result
type:
members:
- id: acquired
value: acquired
brief: Lease was acquired
stability: stable
- id: endpoint_limiter
value: endpoint_limiter
brief: Lease request was rejected by the endpoint limiter
stability: stable
- id: global_limiter
value: global_limiter
brief: Lease request was rejected by the global limiter
stability: stable
- id: request_canceled
value: request_canceled
brief: Lease request was canceled
stability: stable
examples:
- acquired
- request_canceled
brief: Rate-limiting result, shows whether the lease was acquired or contains a rejection reason
stability: stable
- key: aspnetcore.request.is_unhandled
type: boolean
examples:
- true
brief: Flag indicating if request was handled by the application pipeline.
stability: stable
- key: aspnetcore.routing.is_fallback
type: boolean
examples:
- true
brief: A value that indicates whether the matched route is a fallback route.
stability: stable
- key: aspnetcore.routing.match_status
type:
members:
- id: success
value: success
brief: Match succeeded
stability: stable
- id: failure
value: failure
brief: Match failed
stability: stable
examples:
- success
- failure
brief: Match result - success or failure
stability: stable
- key: aspnetcore.sign_in.is_persistent
type: boolean
brief: A flag indicating whether the sign in is persistent.
stability: development
- key: aspnetcore.user.is_authenticated
type: boolean
examples:
- true
brief: A value that indicates whether the user is authenticated.
stability: stable
- key: aws.bedrock.guardrail.id
type: string
examples:
- sgi5gkybzqak
brief: |
The unique identifier of the AWS Bedrock Guardrail. A [guardrail](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html) helps safeguard and prevent unwanted behavior from model responses or user messages.
stability: development
- key: aws.bedrock.knowledge_base.id
type: string
examples:
- XFWUPB9PAW
brief: |
The unique identifier of the AWS Bedrock Knowledge base. A [knowledge base](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html) is a bank of information that can be queried by models to generate more relevant responses and augment prompts.
stability: development
- key: aws.dynamodb.attribute_definitions
type: string[]
examples:
- - '{ "AttributeName": "string", "AttributeType": "string" }'
brief: The JSON-serialized value of each item in the `AttributeDefinitions` request field.
stability: development
- key: aws.dynamodb.attributes_to_get
type: string[]
examples:
- - lives
- id
brief: The value of the `AttributesToGet` request parameter.
stability: development
- key: aws.dynamodb.consistent_read
type: boolean
brief: The value of the `ConsistentRead` request parameter.
stability: development
- key: aws.dynamodb.consumed_capacity
type: string[]
examples:
- - '{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }'
brief: The JSON-serialized value of each item in the `ConsumedCapacity` response field.
stability: development
- key: aws.dynamodb.count
type: int
examples:
- 10
brief: The value of the `Count` response parameter.
stability: development
- key: aws.dynamodb.exclusive_start_table
type: string
examples:
- Users
- CatsTable
brief: The value of the `ExclusiveStartTableName` request parameter.
stability: development
- key: aws.dynamodb.global_secondary_index_updates
type: string[]
examples:
- - '{ "Create": { "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }'
brief: The JSON-serialized value of each item in the `GlobalSecondaryIndexUpdates` request field.
stability: development
- key: aws.dynamodb.global_secondary_indexes
type: string[]
examples:
- - '{ "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }'
brief: The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field
stability: development
- key: aws.dynamodb.index_name
type: string
examples:
- name_to_group
brief: The value of the `IndexName` request parameter.
stability: development
- key: aws.dynamodb.item_collection_metrics
type: string
examples:
- '{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }'
brief: The JSON-serialized value of the `ItemCollectionMetrics` response field.
stability: development
- key: aws.dynamodb.limit
type: int
examples:
- 10
brief: The value of the `Limit` request parameter.
stability: development
- key: aws.dynamodb.local_secondary_indexes
type: string[]
examples:
- - '{ "IndexArn": "string", "IndexName": "string", "IndexSizeBytes": number, "ItemCount": number, "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" } }'
brief: The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.
stability: development
- key: aws.dynamodb.projection
type: string
examples:
- Title
- Title, Price, Color
- Title, Description, RelatedItems, ProductReviews
brief: The value of the `ProjectionExpression` request parameter.
stability: development
- key: aws.dynamodb.provisioned_read_capacity
type: double
examples:
- 1.0
- 2.0
brief: The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.
stability: development
- key: aws.dynamodb.provisioned_write_capacity
type: double
examples:
- 1.0
- 2.0
brief: The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.
stability: development
- key: aws.dynamodb.scan_forward
type: boolean
brief: The value of the `ScanIndexForward` request parameter.
stability: development
- key: aws.dynamodb.scanned_count
type: int
examples:
- 50
brief: The value of the `ScannedCount` response parameter.
stability: development
- key: aws.dynamodb.segment
type: int
examples:
- 10
brief: The value of the `Segment` request parameter.
stability: development
- key: aws.dynamodb.select
type: string
examples:
- ALL_ATTRIBUTES
- COUNT
brief: The value of the `Select` request parameter.
stability: development
- key: aws.dynamodb.table_count
type: int
examples:
- 20
brief: The number of items in the `TableNames` response parameter.
stability: development
- key: aws.dynamodb.table_names
type: string[]
examples:
- Users
brief: A single-element array with the value of the TableName request parameter.
stability: development
- key: aws.dynamodb.table_names
type: string[]
examples:
- - Users
- Cats
brief: The keys in the `RequestItems` object field.
stability: development
- key: aws.dynamodb.total_segments
type: int
examples:
- 100
brief: The value of the `TotalSegments` request parameter.
stability: development
- key: aws.ecs.cluster.arn
type: string
examples:
- arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster
brief: |
The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).
stability: development
- key: aws.ecs.container.arn
type: string
examples:
- arn:aws:ecs:us-west-1:123456789123:container/32624152-9086-4f0e-acae-1a75b14fe4d9
brief: |
The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).
stability: development
- key: aws.ecs.launchtype
type:
members:
- id: ec2
value: ec2
brief: Amazon EC2
stability: development
- id: fargate
value: fargate
brief: Amazon Fargate
stability: development
brief: |
The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.
stability: development
- key: aws.ecs.task.arn
type: string
examples:
- arn:aws:ecs:us-west-1:123456789123:task/10838bed-421f-43ef-870a-f43feacbbb5b
- arn:aws:ecs:us-west-1:123456789123:task/my-cluster/task-id/23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd
brief: |
The ARN of a running [ECS task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids).
stability: development
- key: aws.ecs.task.family
type: string
examples:
- opentelemetry-family
brief: |
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.
stability: development
- key: aws.ecs.task.id
type: string
examples:
- 10838bed-421f-43ef-870a-f43feacbbb5b
- 23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd
brief: |
The ID of a running ECS task. The ID MUST be extracted from `task.arn`.
stability: development
- key: aws.ecs.task.revision
type: string
examples:
- '8'
- '26'
brief: |
The revision for the task definition used to create the ECS task.
stability: development
- key: aws.eks.cluster.arn
type: string
examples:
- arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster
brief: |
The ARN of an EKS cluster.
stability: development
- key: aws.extended_request_id
type: string
examples:
- wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ=
brief: The AWS extended request ID as returned in the response header `x-amz-id-2`.
stability: development
- key: aws.kinesis.stream_name
type: string
examples:
- some-stream-name
brief: |
The name of the AWS Kinesis [stream](https://docs.aws.amazon.com/streams/latest/dev/introduction.html) the request refers to. Corresponds to the `--stream-name` parameter of the Kinesis [describe-stream](https://docs.aws.amazon.com/cli/latest/reference/kinesis/describe-stream.html) operation.
stability: development
- key: aws.lambda.invoked_arn
type: string
examples:
- arn:aws:lambda:us-east-1:123456:function:myfunction:myalias
brief: |
The full invoked ARN as provided on the `Context` passed to the function (`Lambda-Runtime-Invoked-Function-Arn` header on the `/runtime/invocation/next` applicable).
note: This may be different from `cloud.resource_id` if an alias is involved.
stability: development
- key: aws.lambda.resource_mapping.id
type: string
examples:
- 587ad24b-03b9-4413-8202-bbd56b36e5b7
brief: |
The UUID of the [AWS Lambda EvenSource Mapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html). An event source is mapped to a lambda function. It's contents are read by Lambda and used to trigger a function. This isn't available in the lambda execution context or the lambda runtime environtment. This is going to be populated by the AWS SDK for each language when that UUID is present. Some of these operations are Create/Delete/Get/List/Update EventSourceMapping.
stability: development
- key: aws.log.group.arns
type: string[]
examples:
- - arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:*
brief: |
The Amazon Resource Name(s) (ARN) of the AWS log group(s).
note: |
See the [log group ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).
stability: development
- key: aws.log.group.names
type: string[]
examples:
- - /aws/lambda/my-function
- opentelemetry-service
brief: |
The name(s) of the AWS log group(s) an application is writing to.
note: |
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.
stability: development
- key: aws.log.stream.arns
type: string[]
examples:
- - arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:log-stream:logs/main/10838bed-421f-43ef-870a-f43feacbbb5b
brief: |
The ARN(s) of the AWS log stream(s).
note: |
See the [log stream ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). One log group can contain several log streams, so these ARNs necessarily identify both a log group and a log stream.
stability: development
- key: aws.log.stream.names
type: string[]
examples:
- - logs/main/10838bed-421f-43ef-870a-f43feacbbb5b
brief: |
The name(s) of the AWS log stream(s) an application is writing to.
stability: development
- key: aws.request_id
type: string
examples:
- 79b9da39-b7ae-508a-a6bc-864b2829c622
- C9ER4AJX75574TDJ
brief: The AWS request ID as returned in the response headers `x-amzn-requestid`, `x-amzn-request-id` or `x-amz-request-id`.
stability: development
- key: aws.s3.bucket
type: string
examples:
- some-bucket-name
brief: The S3 bucket name the request refers to. Corresponds to the `--bucket` parameter of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) operations.
note: |
The `bucket` attribute is applicable to all S3 operations that reference a bucket, i.e. that require the bucket name as a mandatory parameter.
This applies to almost all S3 operations except `list-buckets`.
stability: development
- key: aws.s3.copy_source
type: string
examples:
- someFile.yml
brief: The source object (in the form `bucket`/`key`) for the copy operation.
note: |
The `copy_source` attribute applies to S3 copy operations and corresponds to the `--copy-source` parameter
of the [copy-object operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html).
This applies in particular to the following operations:
- [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
- [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
stability: development
- key: aws.s3.delete
type: string
examples:
- Objects=[{Key=string,VersionId=string},{Key=string,VersionId=string}],Quiet=boolean
brief: The delete request container that specifies the objects to be deleted.
note: |
The `delete` attribute is only applicable to the [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html) operation.
The `delete` attribute corresponds to the `--delete` parameter of the
[delete-objects operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-objects.html).
stability: development
- key: aws.s3.key
type: string
examples:
- someFile.yml
brief: The S3 object key the request refers to. Corresponds to the `--key` parameter of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) operations.
note: |
The `key` attribute is applicable to all object-related S3 operations, i.e. that require the object key as a mandatory parameter.
This applies in particular to the following operations:
- [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
- [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)
- [get-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html)
- [head-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html)
- [put-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html)
- [restore-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/restore-object.html)
- [select-object-content](https://docs.aws.amazon.com/cli/latest/reference/s3api/select-object-content.html)
- [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)
- [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)
- [create-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-multipart-upload.html)
- [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)
- [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
- [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
stability: development
- key: aws.s3.part_number
type: int
examples:
- 3456
brief: The part number of the part being uploaded in a multipart-upload operation. This is a positive integer between 1 and 10,000.
note: |
The `part_number` attribute is only applicable to the [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
and [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) operations.
The `part_number` attribute corresponds to the `--part-number` parameter of the
[upload-part operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html).
stability: development
- key: aws.s3.upload_id
type: string
examples:
- dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ
brief: Upload ID that identifies the multipart upload.
note: |
The `upload_id` attribute applies to S3 multipart-upload operations and corresponds to the `--upload-id` parameter
of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) multipart operations.
This applies in particular to the following operations:
- [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)
- [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)
- [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)
- [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
- [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
stability: development
- key: aws.secretsmanager.secret.arn
type: string
examples:
- arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretName-6RandomCharacters
brief: |
The ARN of the Secret stored in the Secrets Mangger
stability: development
- key: aws.sns.topic.arn
type: string
examples:
- arn:aws:sns:us-east-1:123456789012:mystack-mytopic-NZJ5JSMVGFIE
brief: |
The ARN of the AWS SNS Topic. An Amazon SNS [topic](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) is a logical access point that acts as a communication channel.
stability: development
- key: aws.sqs.queue.url
type: string
examples:
- https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue
brief: |
The URL of the AWS SQS Queue. It's a unique identifier for a queue in Amazon Simple Queue Service (SQS) and is used to access the queue and perform actions on it.
stability: development
- key: aws.step_functions.activity.arn
type: string
examples:
- arn:aws:states:us-east-1:123456789012:activity:get-greeting
brief: |
The ARN of the AWS Step Functions Activity.
stability: development
- key: aws.step_functions.state_machine.arn
type: string
examples:
- arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:1
brief: |
The ARN of the AWS Step Functions State Machine.
stability: development
- key: az.namespace
type: string
examples:
- Microsoft.Storage
- Microsoft.KeyVault
- Microsoft.ServiceBus
brief: |
Deprecated, use `azure.resource_provider.namespace` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.resource_provider.namespace
note: Replaced by `azure.resource_provider.namespace`.
- key: az.service_request_id
type: string
examples:
- 00000000-0000-0000-0000-000000000000
brief: Deprecated, use `azure.service.request.id` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.service.request.id
note: Replaced by `azure.service.request.id`.
- key: azure.client.id
type: string
examples:
- 3ba4827d-4422-483f-b59f-85b74211c11d
- storage-client-1
brief: The unique identifier of the client instance.
stability: development
- key: azure.cosmosdb.connection.mode
type:
members:
- id: gateway
value: gateway
brief: Gateway (HTTP) connection.
stability: development
- id: direct
value: direct
brief: Direct connection.
stability: development
brief: Cosmos client connection mode.
stability: development
- key: azure.cosmosdb.consistency.level
type:
members:
- id: strong
value: Strong
brief: Strong
stability: development
- id: bounded_staleness
value: BoundedStaleness
brief: Bounded Staleness
stability: development
- id: session
value: Session
brief: Session
stability: development
- id: eventual
value: Eventual
brief: Eventual
stability: development
- id: consistent_prefix
value: ConsistentPrefix
brief: Consistent Prefix
stability: development
examples:
- Eventual
- ConsistentPrefix
- BoundedStaleness
- Strong
- Session
brief: Account or request [consistency level](https://learn.microsoft.com/azure/cosmos-db/consistency-levels).
stability: development
- key: azure.cosmosdb.operation.contacted_regions
type: string[]
examples:
- - North Central US
- Australia East
- Australia Southeast
brief: |
List of regions contacted during operation in the order that they were contacted. If there is more than one region listed, it indicates that the operation was performed on multiple regions i.e. cross-regional call.
note: |
Region name matches the format of `displayName` in [Azure Location API](https://learn.microsoft.com/rest/api/resources/subscriptions/list-locations)
stability: development
- key: azure.cosmosdb.operation.request_charge
type: double
examples:
- 46.18
- 1.0
brief: |
The number of request units consumed by the operation.
stability: development
- key: azure.cosmosdb.request.body.size
type: int
brief: Request payload size in bytes.
stability: development
- key: azure.cosmosdb.response.sub_status_code
type: int
examples:
- 1000
- 1002
brief: Cosmos DB sub status code.
stability: development
- key: azure.resource_provider.namespace
type: string
examples:
- Microsoft.CognitiveServices
brief: |
[Azure Resource Provider Namespace](https://learn.microsoft.com/azure/azure-resource-manager/management/azure-services-resource-providers) as recognized by the client.
note: |
When `azure.resource_provider.namespace` attribute is populated, it MUST be set to `Microsoft.CognitiveServices` for all operations performed by Azure AI Inference clients.
stability: development
- key: azure.resource_provider.namespace
type: string
examples:
- Microsoft.DocumentDB
brief: |
[Azure Resource Provider Namespace](https://learn.microsoft.com/azure/azure-resource-manager/management/azure-services-resource-providers) as recognized by the client.
note: |
When `azure.resource_provider.namespace` attribute is populated, it MUST be set to `Microsoft.DocumentDB` for all operations performed by Cosmos DB client.
stability: development
- key: azure.resource_provider.namespace
type: string
examples:
- Microsoft.Storage
- Microsoft.KeyVault
- Microsoft.ServiceBus
brief: |
[Azure Resource Provider Namespace](https://learn.microsoft.com/azure/azure-resource-manager/management/azure-services-resource-providers) as recognized by the client.
stability: development
- key: azure.service.request.id
type: string
examples:
- 00000000-0000-0000-0000-000000000000
brief: The unique identifier of the service request. It's generated by the Azure service and returned with the response.
stability: development
- key: browser.brands
type: string[]
examples:
- - ' Not A;Brand 99'
- Chromium 99
- Chrome 99
brief: Array of brand name and version separated by a space
note: |
This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.brands`).
stability: development
- key: browser.language
type: string
examples:
- en
- en-US
- fr
- fr-FR
brief: Preferred language of the user using the browser
note: |
This value is intended to be taken from the Navigator API `navigator.language`.
stability: development
- key: browser.mobile
type: boolean
brief: A boolean that is true if the browser is running on a mobile device
note: |
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.
stability: development
- key: browser.platform
type: string
examples:
- Windows
- macOS
- Android
brief: The platform on which the browser is running
note: |
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.
The list of possible values is defined in the [W3C User-Agent Client Hints specification](https://wicg.github.io/ua-client-hints/#sec-ch-ua-platform). Note that some (but not all) of these values can overlap with values in the [`os.type` and `os.name` attributes](./os.md). However, for consistency, the values in the `browser.platform` attribute should capture the exact value that the user agent provides.
stability: development
- key: cassandra.consistency.level
type:
members:
- id: all
value: all
brief: All
stability: development
- id: each_quorum
value: each_quorum
brief: Each Quorum
stability: development
- id: quorum
value: quorum
brief: Quorum
stability: development
- id: local_quorum
value: local_quorum
brief: Local Quorum
stability: development
- id: one
value: one
brief: One
stability: development
- id: two
value: two
brief: Two
stability: development
- id: three
value: three
brief: Three
stability: development
- id: local_one
value: local_one
brief: Local One
stability: development
- id: any
value: any
brief: Any
stability: development
- id: serial
value: serial
brief: Serial
stability: development
- id: local_serial
value: local_serial
brief: Local Serial
stability: development
brief: |
The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).
stability: development
- key: cassandra.coordinator.dc
type: string
examples: us-west-2
brief: |
The data center of the coordinating node for a query.
stability: development
- key: cassandra.coordinator.id
type: string
examples: be13faa2-8574-4d71-926d-27f16cf8a7af
brief: |
The ID of the coordinating node for a query.
stability: development
- key: cassandra.page.size
type: int
examples:
- 5000
brief: |
The fetch size used for paging, i.e. how many rows will be returned at once.
stability: development
- key: cassandra.query.idempotent
type: boolean
brief: |
Whether or not the query is idempotent.
stability: development
- key: cassandra.speculative_execution.count
type: int
examples:
- 0
- 2
brief: |
The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively.
stability: development
- key: cicd.pipeline.action.name
type:
members:
- id: build
value: BUILD
brief: The pipeline run is executing a build.
stability: development
- id: run
value: RUN
brief: The pipeline run is executing.
stability: development
- id: sync
value: SYNC
brief: The pipeline run is executing a sync.
stability: development
examples:
- BUILD
- RUN
- SYNC
brief: |
The kind of action a pipeline run is performing.
stability: development
- key: cicd.pipeline.name
type: string
examples:
- Build and Test
- Lint
- Deploy Go Project
- deploy_to_environment
brief: |
The human readable name of the pipeline within a CI/CD system.
stability: development
- key: cicd.pipeline.result
type:
members:
- id: success
value: success
brief: The pipeline run finished successfully.
stability: development
- id: failure
value: failure
brief: The pipeline run did not finish successfully, eg. due to a compile error or a failing test. Such failures are usually detected by non-zero exit codes of the tools executed in the pipeline run.
stability: development
- id: error
value: error
brief: The pipeline run failed due to an error in the CICD system, eg. due to the worker being killed.
stability: development
- id: timeout
value: timeout
brief: A timeout caused the pipeline run to be interrupted.
stability: development
- id: cancellation
value: cancellation
brief: The pipeline run was cancelled, eg. by a user manually cancelling the pipeline run.
stability: development
- id: skip
value: skip
brief: The pipeline run was skipped, eg. due to a precondition not being met.
stability: development
examples:
- success
- failure
- timeout
- skipped
brief: |
The result of a pipeline run.
stability: development
- key: cicd.pipeline.run.id
type: string
examples:
- '120912'
brief: |
The unique identifier of a pipeline run within a CI/CD system.
stability: development
- key: cicd.pipeline.run.state
type:
members:
- id: pending
value: pending
brief: |
The run pending state spans from the event triggering the pipeline run until the execution of the run starts (eg. time spent in a queue, provisioning agents, creating run resources).
stability: development
- id: executing
value: executing
brief: The executing state spans the execution of any run tasks (eg. build, test).
stability: development
- id: finalizing
value: finalizing
brief: The finalizing state spans from when the run has finished executing (eg. cleanup of run resources).
stability: development
examples:
- pending
- executing
- finalizing
brief: |
The pipeline run goes through these states during its lifecycle.
stability: development
- key: cicd.pipeline.run.url.full
type: string
examples:
- https://github.com/open-telemetry/semantic-conventions/actions/runs/9753949763?pr=1075
brief: |
The [URL](https://wikipedia.org/wiki/URL) of the pipeline run, providing the complete address in order to locate and identify the pipeline run.
stability: development
- key: cicd.pipeline.task.name
type: string
examples:
- Run GoLang Linter
- Go Build
- go-test
- deploy_binary
brief: |
The human readable name of a task within a pipeline. Task here most closely aligns with a [computing process](https://wikipedia.org/wiki/Pipeline_(computing)) in a pipeline. Other terms for tasks include commands, steps, and procedures.
stability: development
- key: cicd.pipeline.task.run.id
type: string
examples:
- '12097'
brief: |
The unique identifier of a task run within a pipeline.
stability: development
- key: cicd.pipeline.task.run.result
type:
members:
- id: success
value: success
brief: The task run finished successfully.
stability: development
- id: failure
value: failure
brief: The task run did not finish successfully, eg. due to a compile error or a failing test. Such failures are usually detected by non-zero exit codes of the tools executed in the task run.
stability: development
- id: error
value: error
brief: The task run failed due to an error in the CICD system, eg. due to the worker being killed.
stability: development
- id: timeout
value: timeout
brief: A timeout caused the task run to be interrupted.
stability: development
- id: cancellation
value: cancellation
brief: The task run was cancelled, eg. by a user manually cancelling the task run.
stability: development
- id: skip
value: skip
brief: The task run was skipped, eg. due to a precondition not being met.
stability: development
examples:
- success
- failure
- timeout
- skipped
brief: |
The result of a task run.
stability: development
- key: cicd.pipeline.task.run.url.full
type: string
examples:
- https://github.com/open-telemetry/semantic-conventions/actions/runs/9753949763/job/26920038674?pr=1075
brief: |
The [URL](https://wikipedia.org/wiki/URL) of the pipeline task run, providing the complete address in order to locate and identify the pipeline task run.
stability: development
- key: cicd.pipeline.task.type
type:
members:
- id: build
value: build
brief: build
stability: development
- id: test
value: test
brief: test
stability: development
- id: deploy
value: deploy
brief: deploy
stability: development
examples:
- build
- test
- deploy
brief: |
The type of the task within a pipeline.
stability: development
- key: cicd.system.component
type: string
examples:
- controller
- scheduler
- agent
brief: The name of a component of the CICD system.
stability: development
- key: cicd.worker.id
type: string
examples:
- abc123
- 10.0.1.2
- controller
brief: The unique identifier of a worker within a CICD system.
stability: development
- key: cicd.worker.name
type: string
examples:
- agent-abc
- controller
- Ubuntu LTS
brief: The name of a worker within a CICD system.
stability: development
- key: cicd.worker.state
type:
members:
- id: available
value: available
brief: The worker is not performing work for the CICD system. It is available to the CICD system to perform work on (online / idle).
note: Pipelines might have conditions on which workers they are able to run so not every worker might be available to every pipeline.
stability: development
- id: busy
value: busy
brief: The worker is performing work for the CICD system.
stability: development
- id: offline
value: offline
brief: The worker is not available to the CICD system (disconnected / down).
stability: development
examples:
- idle
- busy
- down
brief: |
The state of a CICD worker / agent.
stability: development
- key: cicd.worker.url.full
type: string
examples:
- https://cicd.example.org/worker/abc123
brief: The [URL](https://wikipedia.org/wiki/URL) of the worker, providing the complete address in order to locate and identify the worker.
stability: development
- key: client.address
type: string
examples:
- client.example.com
- 10.1.2.80
- /tmp/my.sock
brief: Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
When observed from the server side, and when communicating through an intermediary, `client.address` SHOULD represent the client address behind any intermediaries, for example proxies, if it's available.
stability: stable
- key: client.address
type: string
examples:
- 83.164.160.102
brief: Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
The IP address of the original client behind all proxies, if known (e.g. from [Forwarded#for](https://developer.mozilla.org/docs/Web/HTTP/Headers/Forwarded#for), [X-Forwarded-For](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Forwarded-For), or a similar header). Otherwise, the immediate client peer address.
stability: stable
- key: client.port
type: int
examples:
- 65123
brief: Client port number.
note: |
When observed from the server side, and when communicating through an intermediary, `client.port` SHOULD represent the client port behind any intermediaries, for example proxies, if it's available.
stability: stable
- key: client.port
type: int
examples:
- 65123
brief: The port of whichever client was captured in `client.address`.
note: |
When observed from the server side, and when communicating through an intermediary, `client.port` SHOULD represent the client port behind any intermediaries, for example proxies, if it's available.
stability: stable
- key: cloud.account.id
type: string
examples:
- '111111111111'
- opentelemetry
brief: |
The cloud account ID the resource is assigned to.
stability: development
- key: cloud.availability_zone
type: string
examples:
- us-east-1c
brief: |
Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.
note: |
Availability zones are called "zones" on Alibaba Cloud and Google Cloud.
stability: development
- key: cloud.platform
type:
members:
- id: akamai_cloud.compute
value: akamai_cloud.compute
brief: Akamai Cloud Compute
stability: development
- id: alibaba_cloud_ecs
value: alibaba_cloud_ecs
brief: Alibaba Cloud Elastic Compute Service
stability: development
- id: alibaba_cloud_fc
value: alibaba_cloud_fc
brief: Alibaba Cloud Function Compute
stability: development
- id: alibaba_cloud_openshift
value: alibaba_cloud_openshift
brief: Red Hat OpenShift on Alibaba Cloud
stability: development
- id: aws_ec2
value: aws_ec2
brief: AWS Elastic Compute Cloud
stability: development
- id: aws_ecs
value: aws_ecs
brief: AWS Elastic Container Service
stability: development
- id: aws_eks
value: aws_eks
brief: AWS Elastic Kubernetes Service
stability: development
- id: aws_lambda
value: aws_lambda
brief: AWS Lambda
stability: development
- id: aws_elastic_beanstalk
value: aws_elastic_beanstalk
brief: AWS Elastic Beanstalk
stability: development
- id: aws_app_runner
value: aws_app_runner
brief: AWS App Runner
stability: development
- id: aws_openshift
value: aws_openshift
brief: Red Hat OpenShift on AWS (ROSA)
stability: development
- id: azure.vm
value: azure.vm
brief: Azure Virtual Machines
stability: development
- id: azure.container_apps
value: azure.container_apps
brief: Azure Container Apps
stability: development
- id: azure.container_instances
value: azure.container_instances
brief: Azure Container Instances
stability: development
- id: azure.aks
value: azure.aks
brief: Azure Kubernetes Service
stability: development
- id: azure.functions
value: azure.functions
brief: Azure Functions
stability: development
- id: azure.app_service
value: azure.app_service
brief: Azure App Service
stability: development
- id: azure.openshift
value: azure.openshift
brief: Azure Red Hat OpenShift
stability: development
- id: azure_vm
value: azure_vm
brief: Azure Virtual Machines
stability: development
deprecated:
reason: renamed
renamed_to: azure.vm
note: Replaced by `azure.vm`.
annotations:
code_generation:
exclude: true
- id: azure_container_apps
value: azure_container_apps
brief: Azure Container Apps
stability: development
deprecated:
reason: renamed
renamed_to: azure.container_apps
note: Replaced by `azure.container_apps`.
annotations:
code_generation:
exclude: true
- id: azure_container_instances
value: azure_container_instances
brief: Azure Container Instances
stability: development
deprecated:
reason: renamed
renamed_to: azure.container_instances
note: Replaced by `azure.container_instances`.
annotations:
code_generation:
exclude: true
- id: azure_aks
value: azure_aks
brief: Azure Kubernetes Service
stability: development
deprecated:
reason: renamed
renamed_to: azure.aks
note: Replaced by `azure.aks`.
annotations:
code_generation:
exclude: true
- id: azure_functions
value: azure_functions
brief: Azure Functions
stability: development
deprecated:
reason: renamed
renamed_to: azure.functions
note: Replaced by `azure.functions`.
annotations:
code_generation:
exclude: true
- id: azure_app_service
value: azure_app_service
brief: Azure App Service
stability: development
deprecated:
reason: renamed
renamed_to: azure.app_service
note: Replaced by `azure.app_service`.
annotations:
code_generation:
exclude: true
- id: azure_openshift
value: azure_openshift
brief: Azure Red Hat OpenShift
stability: development
deprecated:
reason: renamed
renamed_to: azure.openshift
note: Replaced by `azure.openshift`.
annotations:
code_generation:
exclude: true
- id: gcp.agent_engine
value: gcp.agent_engine
brief: Google Vertex AI Agent Engine
stability: development
- id: gcp_bare_metal_solution
value: gcp_bare_metal_solution
brief: Google Bare Metal Solution (BMS)
stability: development
- id: gcp_compute_engine
value: gcp_compute_engine
brief: Google Cloud Compute Engine (GCE)
stability: development
- id: gcp_cloud_run
value: gcp_cloud_run
brief: Google Cloud Run
stability: development
- id: gcp_kubernetes_engine
value: gcp_kubernetes_engine
brief: Google Cloud Kubernetes Engine (GKE)
stability: development
- id: gcp_cloud_functions
value: gcp_cloud_functions
brief: Google Cloud Functions (GCF)
stability: development
- id: gcp_app_engine
value: gcp_app_engine
brief: Google Cloud App Engine (GAE)
stability: development
- id: gcp_openshift
value: gcp_openshift
brief: Red Hat OpenShift on Google Cloud
stability: development
- id: hetzner.cloud_server
value: hetzner.cloud_server
brief: Server on Hetzner Cloud
stability: development
- id: ibm_cloud_openshift
value: ibm_cloud_openshift
brief: Red Hat OpenShift on IBM Cloud
stability: development
- id: oracle_cloud_compute
value: oracle_cloud_compute
brief: Compute on Oracle Cloud Infrastructure (OCI)
stability: development
- id: oracle_cloud_oke
value: oracle_cloud_oke
brief: Kubernetes Engine (OKE) on Oracle Cloud Infrastructure (OCI)
stability: development
- id: tencent_cloud_cvm
value: tencent_cloud_cvm
brief: Tencent Cloud Cloud Virtual Machine (CVM)
stability: development
- id: tencent_cloud_eks
value: tencent_cloud_eks
brief: Tencent Cloud Elastic Kubernetes Service (EKS)
stability: development
- id: tencent_cloud_scf
value: tencent_cloud_scf
brief: Tencent Cloud Serverless Cloud Function (SCF)
stability: development
- id: vultr.cloud_compute
value: vultr.cloud_compute
brief: Vultr Cloud Compute
stability: development
brief: |
The cloud platform in use.
note: |
The prefix of the service SHOULD match the one specified in `cloud.provider`.
stability: development
- key: cloud.provider
type:
members:
- id: akamai_cloud
value: akamai_cloud
brief: Akamai Cloud
stability: development
- id: alibaba_cloud
value: alibaba_cloud
brief: Alibaba Cloud
stability: development
- id: aws
value: aws
brief: Amazon Web Services
stability: development
- id: azure
value: azure
brief: Microsoft Azure
stability: development
- id: gcp
value: gcp
brief: Google Cloud Platform
stability: development
- id: heroku
value: heroku
brief: Heroku Platform as a Service
stability: development
- id: hetzner
value: hetzner
brief: Hetzner
stability: development
- id: ibm_cloud
value: ibm_cloud
brief: IBM Cloud
stability: development
- id: oracle_cloud
value: oracle_cloud
brief: Oracle Cloud Infrastructure (OCI)
stability: development
- id: tencent_cloud
value: tencent_cloud
brief: Tencent Cloud
stability: development
- id: vultr
value: vultr
brief: Vultr
stability: development
brief: |
Name of the cloud provider.
stability: development
- key: cloud.region
type: string
examples:
- us-east-1
- us-west-2
brief: |
The AWS Region where the requested service is being accessed.
note: |
Specifies the AWS Region that the SDK client targets for a given AWS service call. The attribute's value should adhere to the AWS Region codes outlined in the [AWS documentation](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html#available-regions).
stability: development
- key: cloud.region
type: string
examples:
- us-central1
- us-east-1
brief: |
The geographical region within a cloud provider. When associated with a resource, this attribute specifies the region where the resource operates. When calling services or APIs deployed on a cloud, this attribute identifies the region where the called destination is deployed.
note: |
Refer to your provider's docs to see the available regions, for example [Alibaba Cloud regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), [AWS regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/), [Azure regions](https://azure.microsoft.com/global-infrastructure/geographies/), [Google Cloud regions](https://cloud.google.com/about/locations), or [Tencent Cloud regions](https://www.tencentcloud.com/document/product/213/6091).
stability: development
- key: cloud.resource_id
type: string
examples:
- arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function
- //run.googleapis.com/projects/PROJECT_ID/locations/LOCATION_ID/services/SERVICE_ID
- /subscriptions/<SUBSCRIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>
brief: The [Fully Qualified Azure Resource ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id) the log is emitted for.
stability: development
- key: cloud.resource_id
type: string
examples:
- arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function
- //run.googleapis.com/projects/PROJECT_ID/locations/LOCATION_ID/services/SERVICE_ID
- /subscriptions/<SUBSCRIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>
brief: |
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://google.aip.dev/122#full-resource-names) on GCP)
note: |
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](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
Take care not to use the "invoked ARN" directly but replace any
[alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html)
with the resolved function version, as the same runtime instance may be invocable with
multiple different aliases.
- **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names)
- **Azure:** The [Fully Qualified Resource ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-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.
stability: development
- key: cloudevents.event_id
type: string
examples:
- 123e4567-e89b-12d3-a456-426614174000
- '0001'
brief: |
The [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id) uniquely identifies the event.
stability: development
- key: cloudevents.event_source
type: string
examples:
- https://github.com/cloudevents
- /cloudevents/spec/pull/123
- my-service
brief: |
The [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1) identifies the context in which an event happened.
stability: development
- key: cloudevents.event_spec_version
type: string
examples: '1.0'
brief: |
The [version of the CloudEvents specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion) which the event uses.
stability: development
- key: cloudevents.event_subject
type: string
examples: mynewfile.jpg
brief: |
The [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject) of the event in the context of the event producer (identified by source).
stability: development
- key: cloudevents.event_type
type: string
examples:
- com.github.pull_request.opened
- com.example.object.deleted.v2
brief: |
The [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type) contains a value describing the type of event related to the originating occurrence.
stability: development
- key: cloudfoundry.app.id
type: string
examples:
- 218fc5a9-a5f1-4b54-aa05-46717d0ab26d
brief: |
The guid of the application.
note: |
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`.
stability: development
- key: cloudfoundry.app.instance.id
type: string
examples:
- '0'
- '1'
brief: |
The index of the application instance. 0 when just one instance is active.
note: |
CloudFoundry defines the `instance_id` in the [Loggregator v2 envelope](https://github.com/cloudfoundry/loggregator-api#v2-envelope).
It is used for logs and metrics emitted by CloudFoundry. It is
supposed to contain the application instance index for applications
deployed on the runtime.
Application instrumentation should use the value from environment
variable `CF_INSTANCE_INDEX`.
stability: development
- key: cloudfoundry.app.name
type: string
examples:
- my-app-name
brief: |
The name of the application.
note: |
Application instrumentation should use the value from environment
variable `VCAP_APPLICATION.application_name`. This is the same value
as reported by `cf apps`.
stability: development
- key: cloudfoundry.org.id
type: string
examples:
- 218fc5a9-a5f1-4b54-aa05-46717d0ab26d
brief: |
The guid of the CloudFoundry org the application is running in.
note: |
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`.
stability: development
- key: cloudfoundry.org.name
type: string
examples:
- my-org-name
brief: |
The name of the CloudFoundry organization the app is running in.
note: |
Application instrumentation should use the value from environment
variable `VCAP_APPLICATION.org_name`. This is the same value as
reported by `cf orgs`.
stability: development
- key: cloudfoundry.process.id
type: string
examples:
- 218fc5a9-a5f1-4b54-aa05-46717d0ab26d
brief: |
The UID identifying the process.
note: |
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.
stability: development
- key: cloudfoundry.process.type
type: string
examples:
- web
brief: |
The type of process.
note: |
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.
stability: development
- key: cloudfoundry.space.id
type: string
examples:
- 218fc5a9-a5f1-4b54-aa05-46717d0ab26d
brief: |
The guid of the CloudFoundry space the application is running in.
note: |
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`.
stability: development
- key: cloudfoundry.space.name
type: string
examples:
- my-space-name
brief: |
The name of the CloudFoundry space the application is running in.
note: |
Application instrumentation should use the value from environment
variable `VCAP_APPLICATION.space_name`. This is the same value as
reported by `cf spaces`.
stability: development
- key: cloudfoundry.system.id
type: string
examples:
- cf/gorouter
brief: |
A guid or another name describing the event source.
note: |
CloudFoundry defines the `source_id` in the [Loggregator v2 envelope](https://github.com/cloudfoundry/loggregator-api#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](https://bosh.io/docs/jobs/#properties-spec)
should be used. The `system.id` should be set to
`spec.deployment/spec.name`.
stability: development
- key: cloudfoundry.system.instance.id
type: string
examples:
- 218fc5a9-a5f1-4b54-aa05-46717d0ab26d
brief: |
A guid describing the concrete instance of the event source.
note: |
CloudFoundry defines the `instance_id` in the [Loggregator v2 envelope](https://github.com/cloudfoundry/loggregator-api#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](https://bosh.io/docs/jobs/#properties-spec)
should be used. The `system.instance.id` should be set to `spec.id`.
stability: development
- key: code.column
type: int
examples: 16
brief: |
Deprecated, use `code.column.number`
stability: development
deprecated:
reason: renamed
renamed_to: code.column.number
note: Replaced by `code.column.number`.
- key: code.column.number
type: int
examples: 16
brief: |
The column number in `code.file.path` best representing the operation. It SHOULD point within the code unit named in `code.function.name`. This attribute MUST NOT be used on the Profile signal since the data is already captured in 'message Line'. This constraint is imposed to prevent redundancy and maintain data integrity.
stability: stable
- key: code.file.path
type: string
examples: /usr/local/MyApplication/content_root/app/index.php
brief: |
The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path). This attribute MUST NOT be used on the Profile signal since the data is already captured in 'message Function'. This constraint is imposed to prevent redundancy and maintain data integrity.
stability: stable
- key: code.filepath
type: string
examples: /usr/local/MyApplication/content_root/app/index.php
brief: |
Deprecated, use `code.file.path` instead
stability: development
deprecated:
reason: renamed
renamed_to: code.file.path
note: Replaced by `code.file.path`.
- key: code.function
type: string
examples: serveRequest
brief: |
Deprecated, use `code.function.name` instead
stability: development
deprecated:
reason: uncategorized
note: |
Value should be included in `code.function.name` which is expected to be a fully-qualified name.
- key: code.function.name
type: string
examples:
- com.example.MyHttpService.serveRequest
- GuzzleHttp\Client::transfer
- fopen
brief: |
The method or function fully-qualified name without arguments. The value should fit the natural representation of the language runtime, which is also likely the same used within `code.stacktrace` attribute value. This attribute MUST NOT be used on the Profile signal since the data is already captured in 'message Function'. This constraint is imposed to prevent redundancy and maintain data integrity.
note: |
Values and format depends on each language runtime, thus it is impossible to provide an exhaustive list of examples.
The values are usually the same (or prefixes of) the ones found in native stack trace representation stored in
`code.stacktrace` without information on arguments.
Examples:
* Java method: `com.example.MyHttpService.serveRequest`
* Java anonymous class method: `com.mycompany.Main$1.myMethod`
* Java lambda method: `com.mycompany.Main$$Lambda/0x0000748ae4149c00.myMethod`
* PHP function: `GuzzleHttp\Client::transfer`
* Go function: `github.com/my/repo/pkg.foo.func5`
* Elixir: `OpenTelemetry.Ctx.new`
* Erlang: `opentelemetry_ctx:new`
* Rust: `playground::my_module::my_cool_func`
* C function: `fopen`
stability: stable
- key: code.line.number
type: int
examples: 42
brief: |
The line number in `code.file.path` best representing the operation. It SHOULD point within the code unit named in `code.function.name`. This attribute MUST NOT be used on the Profile signal since the data is already captured in 'message Line'. This constraint is imposed to prevent redundancy and maintain data integrity.
stability: stable
- key: code.lineno
type: int
examples: 42
brief: |
Deprecated, use `code.line.number` instead
stability: development
deprecated:
reason: renamed
renamed_to: code.line.number
note: Replaced by `code.line.number`.
- key: code.namespace
type: string
examples: com.example.MyHttpService
brief: |
Deprecated, namespace is now included into `code.function.name`
stability: development
deprecated:
reason: uncategorized
note: |
Value should be included in `code.function.name` which is expected to be a fully-qualified name.
- key: code.stacktrace
type: string
examples: |
at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)
brief: |
A stacktrace as a string in the natural representation for the language runtime. The representation is identical to [`exception.stacktrace`](/docs/exceptions/exceptions-spans.md#stacktrace-representation). This attribute MUST NOT be used on the Profile signal since the data is already captured in 'message Location'. This constraint is imposed to prevent redundancy and maintain data integrity.
stability: stable
- key: container.command
type: string
examples:
- otelcontribcol
brief: |
The command used to run the container (i.e. the command name).
note: |
If using embedded credentials or sensitive data, it is recommended to remove them to prevent potential leakage.
stability: development
- key: container.command_args
type: string[]
examples:
- - otelcontribcol
- --config
- config.yaml
brief: |
All the command arguments (including the command/executable itself) run by the container.
stability: development
- key: container.command_line
type: string
examples:
- otelcontribcol --config config.yaml
brief: |
The full command run by the container as a single string representing the full command.
stability: development
- key: container.cpu.state
type:
members:
- id: user
value: user
brief: When tasks of the cgroup are in user mode (Linux). When all container processes are in user mode (Windows).
stability: development
- id: system
value: system
brief: When CPU is used by the system (host OS)
stability: development
- id: kernel
value: kernel
brief: When tasks of the cgroup are in kernel mode (Linux). When all container processes are in kernel mode (Windows).
stability: development
examples:
- user
- kernel
brief: Deprecated, use `cpu.mode` instead.
stability: development
deprecated:
reason: renamed
renamed_to: cpu.mode
note: Replaced by `cpu.mode`.
- key: container.csi.plugin.name
type: string
examples:
- pd.csi.storage.gke.io
brief: |
The name of the CSI ([Container Storage Interface](https://github.com/container-storage-interface/spec)) plugin used by the volume.
note: |
This can sometimes be referred to as a "driver" in CSI implementations. This should represent the `name` field of the GetPluginInfo RPC.
stability: development
- key: container.csi.volume.id
type: string
examples:
- projects/my-gcp-project/zones/my-gcp-zone/disks/my-gcp-disk
brief: |
The unique volume ID returned by the CSI ([Container Storage Interface](https://github.com/container-storage-interface/spec)) plugin.
note: |
This can sometimes be referred to as a "volume handle" in CSI implementations. This should represent the `Volume.volume_id` field in CSI spec.
stability: development
- key: container.id
type: string
examples:
- a3bf90e006b2
brief: |
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.
stability: development
- key: container.image.id
type: string
examples:
- sha256:19c92d0a00d1b66d897bceaa7319bee0dd38a10a851c60bcec9474aa3f01e50f
brief: |
Runtime specific image identifier. Usually a hash algorithm followed by a UUID.
note: |
Docker defines a sha256 of the image id; `container.image.id` corresponds to the `Image` field from the Docker container inspect [API](https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Container/operation/ContainerInspect) 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.
stability: development
- key: container.image.name
type: string
examples:
- gcr.io/opentelemetry/operator
brief: |
Name of the image the container was built on.
stability: development
- key: container.image.repo_digests
type: string[]
examples:
- - example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb
- internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578
brief: |
Repo digests of the container image as provided by the container runtime.
note: |
[Docker](https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Image/operation/ImageInspect) and [CRI](https://github.com/kubernetes/cri-api/blob/c75ef5b473bbe2d0a4fc92f82235efd665ea8e9f/pkg/apis/runtime/v1/api.proto#L1237-L1238) report those under the `RepoDigests` field.
stability: development
- key: container.image.tags
type: string[]
examples:
- - v1.27.1
- 3.5.7-0
brief: |
Container image tags. An example can be found in [Docker Image Inspect](https://docs.docker.com/reference/api/engine/version/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>`.
stability: development
- key: container.label
type: template[string]
examples:
- nginx
brief: |
Container labels, `<key>` being the label name, the value being the label value.
note: |
For example, a docker container label `app` with value `nginx` SHOULD be recorded as the `container.label.app` attribute with value `"nginx"`.
stability: development
- key: container.labels
type: template[string]
examples:
- nginx
brief: Deprecated, use `container.label` instead.
stability: development
deprecated:
reason: renamed
renamed_to: container.label
note: Replaced by `container.label`.
- key: container.name
type: string
examples:
- opentelemetry-autoconf
brief: |
Container name used by container runtime.
stability: development
- key: container.runtime
type: string
examples:
- docker
- containerd
- rkt
brief: |
The container runtime managing this container.
stability: development
deprecated:
reason: renamed
renamed_to: container.runtime.name
note: Replaced by `container.runtime.name`.
- key: container.runtime.description
type: string
examples:
- 'docker://19.3.1 - CRI: 1.22.0'
brief: |
A description about the runtime which could include, for example details about the CRI/API version being used or other customisations.
stability: development
- key: container.runtime.name
type: string
examples:
- docker
- containerd
- rkt
brief: |
The container runtime managing this container.
stability: development
- key: container.runtime.version
type: string
examples: 1.0.0
brief: |
The version of the runtime of this process, as returned by the runtime without modification.
stability: development
- key: cpu.logical_number
type: int
examples:
- 1
brief: The logical CPU number [0..n-1]
stability: development
- key: cpu.mode
type:
members:
- id: user
value: user
brief: User
stability: development
- id: system
value: system
brief: System
stability: development
- id: nice
value: nice
brief: Nice
stability: development
- id: idle
value: idle
brief: Idle
stability: development
- id: iowait
value: iowait
brief: IO Wait
stability: development
- id: interrupt
value: interrupt
brief: Interrupt
stability: development
- id: steal
value: steal
brief: Steal
stability: development
- id: kernel
value: kernel
brief: Kernel
stability: development
examples:
- user
- system
brief: The mode of the CPU
stability: development
- key: cpu.mode
type:
members:
- id: user
value: user
brief: User
stability: development
- id: system
value: system
brief: System
stability: development
- id: nice
value: nice
brief: Nice
stability: development
- id: idle
value: idle
brief: Idle
stability: development
- id: iowait
value: iowait
brief: IO Wait
stability: development
- id: interrupt
value: interrupt
brief: Interrupt
stability: development
- id: steal
value: steal
brief: Steal
stability: development
- id: kernel
value: kernel
brief: Kernel
stability: development
examples:
- user
- system
brief: The mode of the CPU
note: 'Following modes SHOULD be used: `user`, `system`, `nice`, `idle`, `iowait`, `interrupt`, `steal`'
stability: development
- key: cpu.mode
type:
members:
- id: user
value: user
brief: User
stability: development
- id: system
value: system
brief: System
stability: development
- id: nice
value: nice
brief: Nice
stability: development
- id: idle
value: idle
brief: Idle
stability: development
- id: iowait
value: iowait
brief: IO Wait
stability: development
- id: interrupt
value: interrupt
brief: Interrupt
stability: development
- id: steal
value: steal
brief: Steal
stability: development
- id: kernel
value: kernel
brief: Kernel
stability: development
examples:
- user
- system
brief: The mode of the CPU
note: 'Following states SHOULD be used: `user`, `system`, `nice`, `idle`, `iowait`, `interrupt`, `steal`'
stability: development
- key: cpu.mode
type:
members:
- id: user
value: user
brief: User
stability: development
- id: system
value: system
brief: System
stability: development
- id: nice
value: nice
brief: Nice
stability: development
- id: idle
value: idle
brief: Idle
stability: development
- id: iowait
value: iowait
brief: IO Wait
stability: development
- id: interrupt
value: interrupt
brief: Interrupt
stability: development
- id: steal
value: steal
brief: Steal
stability: development
- id: kernel
value: kernel
brief: Kernel
stability: development
examples:
- user
- system
brief: |
A process SHOULD be characterized _either_ by data points with no `mode` labels, _or only_ data points with `mode` labels.
note: 'Following states SHOULD be used: `user`, `system`, `wait`'
stability: development
- key: cpu.mode
type:
members:
- id: user
value: user
brief: User
stability: development
- id: system
value: system
brief: System
stability: development
- id: nice
value: nice
brief: Nice
stability: development
- id: idle
value: idle
brief: Idle
stability: development
- id: iowait
value: iowait
brief: IO Wait
stability: development
- id: interrupt
value: interrupt
brief: Interrupt
stability: development
- id: steal
value: steal
brief: Steal
stability: development
- id: kernel
value: kernel
brief: Kernel
stability: development
examples:
- user
- system
brief: The CPU mode for this data point. A container's CPU metric SHOULD be characterized _either_ by data points with no `mode` labels, _or only_ data points with `mode` labels.
note: 'Following states SHOULD be used: `user`, `system`, `kernel`'
stability: development
- key: cpython.gc.generation
type:
members:
- id: generation_0
value: 0
brief: Generation 0
stability: development
- id: generation_1
value: 1
brief: Generation 1
stability: development
- id: generation_2
value: 2
brief: Generation 2
stability: development
examples:
- 0
- 1
- 2
brief: Value of the garbage collector collection generation.
stability: development
- key: db.cassandra.consistency_level
type:
members:
- id: all
value: all
stability: development
- id: each_quorum
value: each_quorum
stability: development
- id: quorum
value: quorum
stability: development
- id: local_quorum
value: local_quorum
stability: development
- id: one
value: one
stability: development
- id: two
value: two
stability: development
- id: three
value: three
stability: development
- id: local_one
value: local_one
stability: development
- id: any
value: any
stability: development
- id: serial
value: serial
stability: development
- id: local_serial
value: local_serial
stability: development
brief: Deprecated, use `cassandra.consistency.level` instead.
stability: development
deprecated:
reason: renamed
renamed_to: cassandra.consistency.level
note: Replaced by `cassandra.consistency.level`.
- key: db.cassandra.coordinator.dc
type: string
examples: us-west-2
brief: Deprecated, use `cassandra.coordinator.dc` instead.
stability: development
deprecated:
reason: renamed
renamed_to: cassandra.coordinator.dc
note: Replaced by `cassandra.coordinator.dc`.
- key: db.cassandra.coordinator.id
type: string
examples: be13faa2-8574-4d71-926d-27f16cf8a7af
brief: Deprecated, use `cassandra.coordinator.id` instead.
stability: development
deprecated:
reason: renamed
renamed_to: cassandra.coordinator.id
note: Replaced by `cassandra.coordinator.id`.
- key: db.cassandra.idempotence
type: boolean
brief: Deprecated, use `cassandra.query.idempotent` instead.
stability: development
deprecated:
reason: renamed
renamed_to: cassandra.query.idempotent
note: Replaced by `cassandra.query.idempotent`.
- key: db.cassandra.page_size
type: int
examples:
- 5000
brief: Deprecated, use `cassandra.page.size` instead.
stability: development
deprecated:
reason: renamed
renamed_to: cassandra.page.size
note: Replaced by `cassandra.page.size`.
- key: db.cassandra.speculative_execution_count
type: int
examples:
- 0
- 2
brief: Deprecated, use `cassandra.speculative_execution.count` instead.
stability: development
deprecated:
reason: renamed
renamed_to: cassandra.speculative_execution.count
note: Replaced by `cassandra.speculative_execution.count`.
- key: db.cassandra.table
type: string
examples: mytable
brief: Deprecated, use `db.collection.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.collection.name
note: Replaced by `db.collection.name`.
- key: db.client.connection.pool.name
type: string
examples:
- myDataSource
brief: |
The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation SHOULD use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns SHOULD document it.
stability: development
- key: db.client.connection.state
type:
members:
- id: idle
value: idle
stability: development
- id: used
value: used
stability: development
examples:
- idle
brief: The state of a connection in the pool
stability: development
- key: db.client.connections.pool.name
type: string
examples:
- myDataSource
brief: Deprecated, use `db.client.connection.pool.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.pool.name
note: Replaced by `db.client.connection.pool.name`.
- key: db.client.connections.state
type:
members:
- id: idle
value: idle
stability: development
- id: used
value: used
stability: development
examples:
- idle
brief: Deprecated, use `db.client.connection.state` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.state
note: Replaced by `db.client.connection.state`.
- key: db.collection.name
type: string
examples:
- public.users
- customers
brief: The MongoDB collection being accessed within the database stated in `db.namespace`.
note: |
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
For batch operations, if the individual operations are known to have the same collection name then that collection name SHOULD be used.
stability: stable
- key: db.collection.name
type: string
examples:
- public.users
- customers
brief: The name of the Cassandra table that the operation is acting upon.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
For batch operations, if the individual operations are known to have the same collection name
then that collection name SHOULD be used.
stability: stable
- key: db.collection.name
type: string
examples:
- public.users
- customers
brief: |
Cosmos DB container name.
note: |
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
stability: stable
- key: db.collection.name
type: string
examples:
- mytable
- ns:table
brief: The HBase table name.
note: |
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization. If table name includes the namespace, the `db.collection.name` SHOULD be set to the full table name.
stability: stable
- key: db.collection.name
type: string
examples:
- public.users
- customers
brief: The name of a collection (table, container) within the database.
note: |
The collection name SHOULD NOT be extracted from `db.query.text`.
stability: stable
- key: db.collection.name
type: string
examples:
- public.users
- customers
brief: Cosmos DB container name.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
The collection name SHOULD NOT be extracted from `db.query.text`,
when the database system supports query text with multiple collections
in non-batch operations.
For batch operations, if the individual operations are known to have the same
collection name then that collection name SHOULD be used.
stability: stable
- key: db.collection.name
type: string
examples:
- my_index
- index1, index2
brief: The index or data stream against which the query is executed.
note: |
The query may target multiple indices or data streams, in which case it SHOULD be a comma separated list of those. If the query doesn't target a specific index, this field MUST NOT be set.
stability: stable
- key: db.collection.name
type: string
examples:
- public.users
- customers
brief: The name of a collection (table, container) within the database.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
The collection name SHOULD NOT be extracted from `db.query.text`,
when the database system supports query text with multiple collections
in non-batch operations.
For batch operations, if the individual operations are known to have the same
collection name then that collection name SHOULD be used.
stability: stable
- key: db.connection_string
type: string
examples: Server=(localdb)\v11.0;Integrated Security=true;
brief: Deprecated, use `server.address`, `server.port` attributes instead.
stability: development
deprecated:
reason: uncategorized
note: |
Replaced by `server.address` and `server.port`.
- key: db.cosmosdb.client_id
type: string
examples: 3ba4827d-4422-483f-b59f-85b74211c11d
brief: Deprecated, use `azure.client.id` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.client.id
note: Replaced by `azure.client.id`.
- key: db.cosmosdb.connection_mode
type:
members:
- id: gateway
value: gateway
brief: Gateway (HTTP) connection.
stability: development
- id: direct
value: direct
brief: Direct connection.
stability: development
brief: Deprecated, use `azure.cosmosdb.connection.mode` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.cosmosdb.connection.mode
note: Replaced by `azure.cosmosdb.connection.mode`.
- key: db.cosmosdb.consistency_level
type:
members:
- id: strong
value: Strong
stability: development
- id: bounded_staleness
value: BoundedStaleness
stability: development
- id: session
value: Session
stability: development
- id: eventual
value: Eventual
stability: development
- id: consistent_prefix
value: ConsistentPrefix
stability: development
examples:
- Eventual
- ConsistentPrefix
- BoundedStaleness
- Strong
- Session
brief: Deprecated, use `cosmosdb.consistency.level` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.cosmosdb.consistency.level
note: Replaced by `azure.cosmosdb.consistency.level`.
- key: db.cosmosdb.container
type: string
examples: mytable
brief: Deprecated, use `db.collection.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.collection.name
note: Replaced by `db.collection.name`.
- key: db.cosmosdb.operation_type
type:
members:
- id: batch
value: batch
stability: development
- id: create
value: create
stability: development
- id: delete
value: delete
stability: development
- id: execute
value: execute
stability: development
- id: execute_javascript
value: execute_javascript
stability: development
- id: invalid
value: invalid
stability: development
- id: head
value: head
stability: development
- id: head_feed
value: head_feed
stability: development
- id: patch
value: patch
stability: development
- id: query
value: query
stability: development
- id: query_plan
value: query_plan
stability: development
- id: read
value: read
stability: development
- id: read_feed
value: read_feed
stability: development
- id: replace
value: replace
stability: development
- id: upsert
value: upsert
stability: development
brief: Deprecated, no replacement at this time.
stability: development
deprecated:
reason: obsoleted
note: |
Removed, no replacement at this time.
- key: db.cosmosdb.regions_contacted
type: string[]
examples:
- - North Central US
- Australia East
- Australia Southeast
brief: Deprecated, use `azure.cosmosdb.operation.contacted_regions` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.cosmosdb.operation.contacted_regions
note: Replaced by `azure.cosmosdb.operation.contacted_regions`.
- key: db.cosmosdb.request_charge
type: double
examples:
- 46.18
- 1.0
brief: Deprecated, use `azure.cosmosdb.operation.request_charge` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.cosmosdb.operation.request_charge
note: Replaced by `azure.cosmosdb.operation.request_charge`.
- key: db.cosmosdb.request_content_length
type: int
brief: Deprecated, use `azure.cosmosdb.request.body.size` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.cosmosdb.request.body.size
note: Replaced by `azure.cosmosdb.request.body.size`.
- key: db.cosmosdb.status_code
type: int
examples:
- 200
- 201
brief: Deprecated, use `db.response.status_code` instead.
stability: development
deprecated:
reason: uncategorized
note: Use `db.response.status_code` instead.
- key: db.cosmosdb.sub_status_code
type: int
examples:
- 1000
- 1002
brief: Deprecated, use `azure.cosmosdb.response.sub_status_code` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.cosmosdb.response.sub_status_code
note: Replaced by `azure.cosmosdb.response.sub_status_code`.
- key: db.elasticsearch.cluster.name
type: string
examples:
- e9106fc68e3044f0b1475b04bf4ffd5f
brief: |
Deprecated, use `db.namespace` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.namespace
note: Replaced by `db.namespace`.
- key: db.elasticsearch.node.name
type: string
examples:
- instance-0000000001
brief: |
Deprecated, use `elasticsearch.node.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: elasticsearch.node.name
note: Replaced by `elasticsearch.node.name`.
- key: db.elasticsearch.path_parts
type: template[string]
examples:
- test-index
- '123'
brief: |
Deprecated, use `db.operation.parameter` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.operation.parameter
note: Replaced by `db.operation.parameter`.
- key: db.instance.id
type: string
examples: mysql-e26b99z.example.com
brief: Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead.
stability: development
deprecated:
reason: obsoleted
note: |
Removed, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead.
- key: db.jdbc.driver_classname
type: string
examples:
- org.postgresql.Driver
- com.microsoft.sqlserver.jdbc.SQLServerDriver
brief: Removed, no replacement at this time.
stability: development
deprecated:
reason: obsoleted
note: |
Removed, no replacement at this time.
- key: db.mongodb.collection
type: string
examples: mytable
brief: Deprecated, use `db.collection.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.collection.name
note: Replaced by `db.collection.name`.
- key: db.mssql.instance_name
type: string
examples: MSSQLSERVER
brief: Deprecated, SQL Server instance is now populated as a part of `db.namespace` attribute.
stability: development
deprecated:
reason: obsoleted
note: Removed, no replacement at this time.
- key: db.name
type: string
examples:
- customers
- main
brief: Deprecated, use `db.namespace` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.namespace
note: Replaced by `db.namespace`.
- key: db.namespace
type: string
examples:
- '0'
- '1'
- '15'
brief: |
The [database index] associated with the connection, represented as a string.
note: |
A connection's currently associated database index may change during its lifetime, e.g. from executing `SELECT <index>`.
If instrumentation is unable to capture the connection's currently associated database index on each query
without triggering an additional query to be executed,
then it is RECOMMENDED to fallback and use the database index provided when the connection was established.
Instrumentation SHOULD document if `db.namespace` reflects the database index provided when the connection was established.
stability: stable
- key: db.namespace
type: string
examples:
- customers
- test.users
brief: The MongoDB database name.
stability: stable
- key: db.namespace
type: string
examples:
- customers
- test.users
brief: |
The name of the database, fully qualified within the server address and port.
note: |
If a database system has multiple namespace components, they SHOULD be concatenated from the most general to the most specific namespace component, using `|` as a separator between the components. Any missing components (and their associated separators) SHOULD be omitted.
Semantic conventions for individual database systems SHOULD document what `db.namespace` means in the context of that system.
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
stability: stable
- key: db.namespace
type: string
examples:
- instance1\|products
- customers
brief: |
The database associated with the connection, qualified by the instance name.
note: |
When connected to a default instance, `db.namespace` SHOULD be set to the name of
the database. When connected to a [named instance](https://learn.microsoft.com/sql/connect/jdbc/building-the-connection-url#named-and-multiple-sql-server-instances),
`db.namespace` SHOULD be set to the combination of instance and database name following the `{instance_name}|{database_name}` pattern.
A connection's currently associated database may change during its lifetime, e.g. from executing `USE <database>`.
If instrumentation is unable to capture the connection's currently associated database on each query
without triggering an additional query to be executed (e.g. `SELECT DB_NAME()`),
then it is RECOMMENDED to fallback and use the database provided when the connection was established.
Instrumentation SHOULD document if `db.namespace` reflects the database provided when the connection was established.
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
stability: stable
- key: db.namespace
type: string
examples:
- mykeyspace
brief: The keyspace associated with the session.
note: |
If a database system has multiple namespace components, they SHOULD be concatenated from the most general to the most specific namespace component, using `|` as a separator between the components. Any missing components (and their associated separators) SHOULD be omitted.
Semantic conventions for individual database systems SHOULD document what `db.namespace` means in the context of that system.
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
stability: stable
- key: db.namespace
type: string
examples:
- ORCL1\|PDB1\|db_high.adb.oraclecloud.com
- ORCL1\|DB1\|db_low.adb.oraclecloud.com
- ORCL1\|DB1\|order-processing-service
brief: |
The database associated with the connection, qualified by the instance name, database name and service name.
note: |
`db.namespace` SHOULD be set to the combination of instance name, database name and
service name following the `{service_name}|{database_name}|{instance_name}` pattern.
Any missing components (and their associated separators) SHOULD be omitted.
For CDB architecture, database name would be pdb name. For Non-CDB, it would be
`DB_NAME` parameter.
stability: stable
- key: db.namespace
type: string
examples:
- mynamespace
brief: The HBase namespace.
note: |
If a database system has multiple namespace components, they SHOULD be concatenated from the most general to the most specific namespace component, using `|` as a separator between the components. Any missing components (and their associated separators) SHOULD be omitted.
Semantic conventions for individual database systems SHOULD document what `db.namespace` means in the context of that system.
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
stability: stable
- key: db.namespace
type: string
examples:
- mydatabase.products
- mydatabase.customers
brief: |
The schema associated with the connection, qualified by the database name.
note: |
`db.namespace` SHOULD be set to the combination of database and schema name following the `{database}|{schema}` pattern.
If either `{database}` or `{schema}` is unavailable, `db.namespace` SHOULD be set to the other (without any `|` separator).
A connection's currently associated database may change during its lifetime, e.g. from executing `SET search_path TO <schema>`.
If the search path has multiple schemas, the first schema in the search path SHOULD be used.
If instrumentation is unable to capture the connection's currently associated schema on each query
without triggering an additional query to be executed (e.g. `SELECT current_schema()`),
then it is RECOMMENDED to fallback and use the schema provided when the connection was established.
Instrumentation SHOULD document if `db.namespace` reflects the schema provided when the connection was established.
Instrumentation MAY use the user name when the connection was established as a stand-in for the schema name.
Instrumentation SHOULD document if `db.namespace` reflects the user provided when the connection was established.
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
stability: stable
- key: db.namespace
type: string
examples:
- customers
- test.users
brief: |
The database associated with the connection, fully qualified within the server address and port.
note: |
If a database system has multiple namespace components (e.g. schema name and database name), they SHOULD be concatenated
from the most general to the most specific namespace component,
using `|` as a separator between the components.
Any missing components (and their associated separators) SHOULD be omitted.
Semantic conventions for individual database systems SHOULD document what `db.namespace`
means in the context of that system.
A connection's currently associated database may change during its lifetime, e.g. from executing `USE <database>`.
If instrumentation is unable to capture the connection's currently associated database on each query
without triggering an additional query to be executed (e.g. `SELECT DATABASE()`),
then it is RECOMMENDED to fallback and use the database provided when the connection was established.
Instrumentation SHOULD document if `db.namespace` reflects the database provided when the connection was established.
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
stability: stable
- key: db.namespace
type: string
examples:
- customers
- test.users
brief: |
The name of the database, fully qualified within the server address and port.
stability: stable
- key: db.namespace
type: string
examples:
- products
- customers
brief: The database associated with the connection.
note: |
A connection's currently associated database may change during its lifetime, e.g. from executing `USE <database>`.
If instrumentation is unable to capture the connection's currently associated database on each query
without triggering an additional query to be executed (e.g. `SELECT DATABASE()`),
then it is RECOMMENDED to fallback and use the database provided when the connection was established.
Instrumentation SHOULD document if `db.namespace` reflects the database provided when the connection was established.
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
stability: stable
- key: db.namespace
type: string
examples:
- customers
- test.users
brief: The name of the Elasticsearch cluster which the client connects to.
note: |
When communicating with an Elastic Cloud deployment, this should be collected from the "X-Found-Handling-Cluster" HTTP response header.
stability: stable
- key: db.operation
type: string
examples:
- findAndModify
- HMSET
- SELECT
brief: Deprecated, use `db.operation.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.operation.name
note: Replaced by `db.operation.name`.
- key: db.operation.batch.size
type: int
examples:
- 2
- 3
- 4
brief: The number of queries included in a batch operation.
note: |
Operations are only considered batches when they contain two or more operations, and so `db.operation.batch.size` SHOULD never be `1`.
stability: stable
- key: db.operation.name
type: string
examples:
- EXECUTE
- INSERT
brief: |
The name of the operation or command being executed.
note: |
The operation name SHOULD NOT be extracted from `db.query.text`.
stability: stable
- key: db.operation.name
type: string
examples:
- HMSET
- GET
- SET
brief: |
The Redis command name.
note: |
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
For [transactions and pipelined calls](https://redis.io/docs/latest/develop/clients/redis-py/transpipe/), if the individual operations are known to have the same command then that command SHOULD be used prepended by `MULTI ` or `PIPELINE `. Otherwise `db.operation.name` SHOULD be `MULTI` or `PIPELINE`.
stability: stable
- key: db.operation.name
type: string
examples:
- findAndModify
- getMore
- insertMany
- bulkWrite
brief: |
The name of the [MongoDB command](https://www.mongodb.com/docs/manual/reference/command/) being executed.
stability: stable
- key: db.operation.name
type: string
examples:
- create_item
- query_items
- read_item
brief: |
The name of the operation or command being executed.
note: |
The `db.operation.name` has the following list of well-known values.
If one of them applies, then the respective value MUST be used.
Batch operations:
- `execute_batch`
Bulk operations:
- `execute_bulk` SHOULD be used on spans reported for methods like
[`executeBulkOperations`](https://javadoc.io/doc/com.azure/azure-cosmos/latest/com/azure/cosmos/CosmosAsyncContainer.html#executeBulkOperations(reactor.core.publisher.Flux)),
which represents a bulk execution of multiple operations.
- `bulk_{operation name}` (`bulk_create_item`, `bulk_upsert_item`, etc) SHOULD be used on spans describing individual operations (when they are reported)
within the bulk. This pattern SHOULD be used when instrumentation creates span per each operation, but operations are buffered and then performed in bulk.
For example, this applies when [`AllowBulkExecution`](https://learn.microsoft.com/dotnet/api/microsoft.azure.cosmos.cosmosclientoptions.allowbulkexecution)
property is configured on the `Microsoft.Azure.Cosmos` client.
Change feed operations:
- `query_change_feed`
Conflicts operations:
- `delete_conflict`
- `query_conflicts`
- `read_all_conflicts`
- `read_conflict`
Container operations:
- `create_container`
- `create_container_if_not_exists`
- `delete_container`
- `query_containers`
- `read_all_containers`
- `read_container`
- `read_container_throughput`
- `replace_container`
- `replace_container_throughput`
Database operations:
- `create_database`
- `create_database_if_not_exists`
- `delete_database`
- `query_databases`
- `read_all_databases`
- `read_database`
- `read_database_throughput`
- `replace_database_throughput`
Encryption key operations:
- `create_client_encryption_key`
- `query_client_encryption_keys`
- `read_all_client_encryption_keys`
- `read_client_encryption_key`
- `replace_client_encryption_key`
Item operations:
- `create_item`
- `delete_all_items_by_partition_key`
- `delete_item`
- `patch_item`
- `query_items`
- `read_all_items`
- `read_all_items_of_logical_partition`
- `read_many_items`
- `read_item`
- `replace_item`
- `upsert_item`
Permission operations:
- `create_permission`
- `delete_permission`
- `query_permissions`
- `read_all_permissions`
- `read_permission`
- `replace_permission`
- `upsert_permission`
Stored procedure operations:
- `create_stored_procedure`
- `delete_stored_procedure`
- `execute_stored_procedure`
- `query_stored_procedures`
- `read_all_stored_procedures`
- `read_stored_procedure`
- `replace_stored_procedure`
Trigger operations:
- `create_trigger`
- `delete_trigger`
- `query_triggers`
- `read_all_triggers`
- `read_trigger`
- `replace_trigger`
User operations:
- `create_user`
- `delete_user`
- `query_users`
- `read_all_users`
- `read_user`
- `replace_user`
- `upsert_user`
User-defined function operations:
- `create_user_defined_function`
- `delete_user_defined_function`
- `query_user_defined_functions`
- `read_all_user_defined_functions`
- `read_user_defined_function`
If none of them applies, it's RECOMMENDED to use language-agnostic representation of
client method name in snake_case. Instrumentations SHOULD document
additional values when introducing new operations.
stability: stable
- key: db.operation.name
type: string
examples:
- findAndModify
- HMSET
- SELECT
brief: |
The name of the operation or command being executed.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
For batch operations, if the individual operations are known to have the same operation name
then that operation name SHOULD be used prepended by `BATCH `,
otherwise `db.operation.name` SHOULD be `BATCH`.
stability: stable
- key: db.operation.name
type: string
examples:
- findAndModify
- HMSET
- SELECT
brief: |
The name of the operation or command being executed.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
The operation name SHOULD NOT be extracted from `db.query.text`,
when the database system supports query text with multiple operations
in non-batch operations.
If spaces can occur in the operation name, multiple consecutive spaces
SHOULD be normalized to a single space.
For batch operations, if the individual operations are known to have the same operation name
then that operation name SHOULD be used prepended by `BATCH `,
otherwise `db.operation.name` SHOULD be `BATCH` or some other database
system specific term if more applicable.
stability: stable
- key: db.operation.name
type: string
examples:
- search
- ml.close_job
- cat.aliases
brief: |
The name of the operation or command being executed.
note: |
The `db.operation.name` SHOULD match the endpoint identifier provided in the request (see the [Elasticsearch schema](https://raw.githubusercontent.com/elastic/elasticsearch-specification/main/output/schema/schema.json)).
For batch operations, if the individual operations are known to have the same operation name then that operation name SHOULD be used prepended by `bulk `, otherwise `db.operation.name` SHOULD be `bulk`.
stability: stable
- key: db.operation.name
type: string
examples:
- GET /{db}/{docid}
brief: |
The HTTP method + the target REST route.
note: |
In **CouchDB**, `db.operation.name` should be set to the HTTP method + the target REST route according to the API reference documentation. For example, when retrieving a document, `db.operation.name` would be set to (literally, i.e., without replacing the placeholders with concrete values): [`GET /{db}/{docid}`](https://docs.couchdb.org/en/stable/api/document/common.html#get--db-docid).
stability: stable
- key: db.operation.parameter
type: template[string]
examples:
- someval
- '55'
brief: |
A database operation parameter, with `<key>` being the parameter name, and the attribute value being a string representation of the parameter value.
note: |
For example, a client-side maximum number of rows to read from the database
MAY be recorded as the `db.operation.parameter.max_rows` attribute.
`db.query.text` parameters SHOULD be captured using `db.query.parameter.<key>`
instead of `db.operation.parameter.<key>`.
stability: development
- key: db.operation.parameter
type: template[string]
examples:
- db.operation.parameter.index="test-index"
- db.operation.parameter="123"
brief: |
A dynamic value in the url path.
note: |
Many Elasticsearch url paths allow dynamic values. These SHOULD be recorded in span attributes in the format `db.operation.parameter.<key>`, where `<key>` is the path parameter name. The implementation SHOULD reference the [elasticsearch schema](https://raw.githubusercontent.com/elastic/elasticsearch-specification/main/output/schema/schema.json) in order to map the path parameter values to their names.
stability: development
- key: db.query.parameter
type: template[string]
examples:
- someval
- '55'
brief: |
A database query parameter, with `<key>` being the parameter name, and the attribute value being a string representation of the parameter value.
note: |
If a query parameter has no name and instead is referenced only by index,
then `<key>` SHOULD be the 0-based index.
`db.query.parameter.<key>` SHOULD match
up with the parameterized placeholders present in `db.query.text`.
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
`db.query.parameter.<key>` SHOULD NOT be captured on batch operations.
Examples:
- For a query `SELECT * FROM users where username = %s` with the parameter `"jdoe"`,
the attribute `db.query.parameter.0` SHOULD be set to `"jdoe"`.
- For a query `"SELECT * FROM users WHERE username = %(userName)s;` with parameter
`userName = "jdoe"`, the attribute `db.query.parameter.userName` SHOULD be set to `"jdoe"`.
stability: development
- key: db.query.summary
type: string
examples:
- SELECT wuser_table
- INSERT shipping_details SELECT orders
- get user by id
brief: |
Low cardinality summary of a database query.
note: |
The query summary describes a class of database queries and is useful
as a grouping key, especially when analyzing telemetry for database
calls involving complex queries.
Summary may be available to the instrumentation through
instrumentation hooks or other means. If it is not available, instrumentations
that support query parsing SHOULD generate a summary following
[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query)
section.
stability: stable
- key: db.query.text
type: string
examples:
- SELECT * FROM wuser_table where username = ?
- SET mykey ?
brief: |
The database query being executed.
note: |
For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext).
For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable.
Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk.
stability: stable
- key: db.query.text
type: string
examples:
- '"{\"query\":{\"term\":{\"user.id\":\"kimchy\"}}}"'
brief: The request body for a [search-type query](https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html), as a json string.
note: |
For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext).
For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable.
Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk.
stability: stable
- key: db.query.text
type: string
examples:
- HMSET myhash field1 ? field2 ?
brief: |
The full syntax of the Redis CLI command.
note: |
Query text SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data, e.g. by redacting all literal values present in the query text.
See [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext).
The value provided for `db.query.text` SHOULD correspond to the syntax of the Redis CLI. If, for example, the [`HMSET` command](https://redis.io/docs/latest/commands/hmset) is invoked, `"HMSET myhash field1 ? field2 ?"` would be a suitable value for `db.query.text`.
stability: stable
- key: db.query.text
type: string
examples:
- SELECT * FROM wuser_table where username = :mykey
brief: |
The database query being executed.
note: |
For sanitization see [Sanitization of `db.query.text`](../database/database-spans.md#sanitization-of-dbquerytext). For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable.
stability: stable
- key: db.redis.database_index
type: int
examples:
- 0
- 1
- 15
brief: Deprecated, use `db.namespace` instead.
stability: development
deprecated:
reason: uncategorized
note: Uncategorized.
- key: db.response.returned_rows
type: int
examples:
- 10
- 20
brief: |
Cosmos DB row count in result set.
stability: development
- key: db.response.returned_rows
type: int
examples:
- 10
- 30
- 1000
brief: Number of rows returned by the operation.
stability: development
- key: db.response.status_code
type: string
examples:
- '102'
- '40020'
brief: |
[Cassandra protocol error code](https://github.com/apache/cassandra/blob/cassandra-5.0/doc/native_protocol_v5.spec) represented as a string.
note: |
All Cassandra protocol error codes SHOULD be considered errors.
stability: stable
- key: db.response.status_code
type: string
examples:
- '1008'
- '3058'
brief: |
[Maria DB error code](https://mariadb.com/kb/en/mariadb-error-code-reference/) represented as a string.
note: |
MariaDB uses vendor-specific error codes on all errors and reports [SQLSTATE](https://mariadb.com/kb/en/sqlstate/) in some cases.
MariaDB error codes are more granular than SQLSTATE, so MariaDB instrumentations SHOULD set the `db.response.status_code` to this known error code.
When SQLSTATE is available, SQLSTATE of "Class 02" or higher SHOULD be considered errors. When SQLSTATE is not available, all MariaDB error codes SHOULD be considered errors.
stability: stable
- key: db.response.status_code
type: string
examples:
- '36'
- '11602'
brief: |
[MongoDB error code](https://www.mongodb.com/docs/manual/reference/error-codes/) represented as a string.
note: |
All MongoDB error codes SHOULD be considered errors.
stability: stable
- key: db.response.status_code
type: string
examples:
- '102'
- '40020'
brief: |
[Microsoft SQL Server error](https://learn.microsoft.com/sql/relational-databases/errors-events/database-engine-events-and-errors) number represented as a string.
note: |
Microsoft SQL Server does not report SQLSTATE.
Instrumentations SHOULD use [error severity](https://learn.microsoft.com/sql/relational-databases/errors-events/database-engine-error-severities) returned along with the status code to determine the status of the span. Response codes with severity 11 or higher SHOULD be considered errors.
stability: stable
- key: db.response.status_code
type: string
examples:
- ERR
- WRONGTYPE
- CLUSTERDOWN
brief: |
The Redis [simple error](https://redis.io/docs/latest/develop/reference/protocol-spec/#simple-errors) prefix.
note: |
All Redis error prefixes SHOULD be considered errors.
stability: stable
- key: db.response.status_code
type: string
examples:
- '102'
- ORA-17002
- 08P01
- '404'
brief: Database response status code.
note: |
The status code returned by the database. Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes.
Semantic conventions for individual database systems SHOULD document what `db.response.status_code` means in the context of that system.
stability: stable
- key: db.response.status_code
type: string
examples:
- '200'
- '201'
brief: |
Cosmos DB status code.
note: |
Response codes in the 4xx and 5xx range SHOULD be considered errors.
stability: stable
- key: db.response.status_code
type: string
examples:
- '200'
- '409'
- '14'
brief: |
Protocol-specific response code recorded as a string.
note: |
The status code returned by the database. Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes.
Semantic conventions for individual database systems SHOULD document what `db.response.status_code` means in the context of that system.
stability: stable
- key: db.response.status_code
type: string
examples:
- '1005'
- MY-010016
brief: |
[MySQL error number](https://dev.mysql.com/doc/mysql-errors/9.0/en/error-reference-introduction.html) recorded as a string.
note: |
MySQL error codes are vendor specific error codes and don't follow [SQLSTATE](https://wikipedia.org/wiki/SQLSTATE) conventions. All MySQL error codes SHOULD be considered errors.
stability: stable
- key: db.response.status_code
type: string
examples:
- ORA-17027
- '1052'
- 2201B
brief: |
Database response code recorded as a string.
note: |
SQL defines [SQLSTATE](https://wikipedia.org/wiki/SQLSTATE) as a database
return code which is adopted by some database systems like PostgreSQL.
See [PostgreSQL error codes](https://www.postgresql.org/docs/current/errcodes-appendix.html)
for the details.
Other systems like MySQL, Oracle, or MS SQL Server define vendor-specific
error codes. Database SQL drivers usually provide access to both properties.
For example, in Java, the [`SQLException`](https://docs.oracle.com/javase/8/docs/api/java/sql/SQLException.html)
class reports them with `getSQLState()` and `getErrorCode()` methods.
Instrumentations SHOULD populate the `db.response.status_code` with the
the most specific code available to them.
Here's a non-exhaustive list of databases that report vendor-specific
codes with granularity higher than SQLSTATE (or don't report SQLSTATE
at all):
- [DB2 SQL codes](https://www.ibm.com/docs/db2-for-zos/12?topic=codes-sql).
- [Maria DB error codes](https://mariadb.com/kb/en/mariadb-error-code-reference/)
- [Microsoft SQL Server errors](https://docs.microsoft.com/sql/relational-databases/errors-events/database-engine-events-and-errors)
- [MySQL error codes](https://dev.mysql.com/doc/mysql-errors/9.0/en/error-reference-introduction.html)
- [Oracle error codes](https://docs.oracle.com/cd/B28359_01/server.111/b28278/toc.htm)
- [SQLite result codes](https://www.sqlite.org/rescode.html)
These systems SHOULD set the `db.response.status_code` to a
known vendor-specific error code. If only SQLSTATE is available,
it SHOULD be used.
When multiple error codes are available and specificity is unclear,
instrumentation SHOULD set the `db.response.status_code` to the
concatenated string of all codes with '/' used as a separator.
For example, generic DB instrumentation that detected an error and has
SQLSTATE `"42000"` and vendor-specific `1071` should set
`db.response.status_code` to `"42000/1071"`."
stability: stable
- key: db.response.status_code
type: string
examples:
- '200'
- '201'
- '429'
brief: |
The HTTP response code returned by the Couch DB recorded as a string.
note: |
HTTP response codes in the 4xx and 5xx range SHOULD be considered errors.
stability: stable
- key: db.response.status_code
type: string
examples:
- '08000'
- 08P01
brief: |
[PostgreSQL error code](https://www.postgresql.org/docs/current/errcodes-appendix.html).
note: |
PostgreSQL follows SQL standard conventions for [SQLSTATE](https://wikipedia.org/wiki/SQLSTATE). Response codes of "Class 02" or higher SHOULD be considered errors.
stability: stable
- key: db.response.status_code
type: string
examples:
- '200'
- '201'
- '429'
brief: |
The HTTP response code returned by the Elasticsearch cluster.
note: |
HTTP response codes in the 4xx and 5xx range SHOULD be considered errors.
stability: stable
- key: db.response.status_code
type: string
examples:
- ORA-02813
- ORA-02613
brief: |
[Oracle Database error number](https://docs.oracle.com/en/error-help/db/) recorded as a string.
note: |
Oracle Database error codes are vendor specific error codes and don't follow [SQLSTATE](https://wikipedia.org/wiki/SQLSTATE) conventions. All Oracle Database error codes SHOULD be considered errors.
stability: stable
- key: db.sql.table
type: string
examples: mytable
brief: Deprecated, use `db.collection.name` instead.
stability: development
deprecated:
reason: uncategorized
note: Replaced by `db.collection.name`, but only if not extracting the value from `db.query.text`.
- key: db.statement
type: string
examples:
- SELECT * FROM wuser_table
- SET mykey "WuValue"
brief: The database statement being executed.
stability: development
deprecated:
reason: renamed
renamed_to: db.query.text
note: Replaced by `db.query.text`.
- key: db.stored_procedure.name
type: string
examples:
- GetCustomer
brief: The name of a stored procedure within the database.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
For batch operations, if the individual operations are known to have the same
stored procedure name then that stored procedure name SHOULD be used.
stability: stable
- key: db.stored_procedure.name
type: string
examples:
- GetCustomer
brief: |
The name or sha1 digest of a Lua script in the database.
note: |
See [FCALL](https://redis.io/docs/latest/commands/fcall/) and [EVALSHA](https://redis.io/docs/latest/commands/evalsha/).
stability: stable
- key: db.system
type:
members:
- id: other_sql
value: other_sql
brief: Some other SQL database. Fallback only. See notes.
stability: development
- id: adabas
value: adabas
brief: Adabas (Adaptable Database System)
stability: development
- id: cache
value: cache
brief: Deprecated, use `intersystems_cache` instead.
stability: development
deprecated:
reason: renamed
renamed_to: intersystems_cache
note: Replaced by `intersystems_cache`.
- id: intersystems_cache
value: intersystems_cache
brief: InterSystems Caché
stability: development
- id: cassandra
value: cassandra
brief: Apache Cassandra
stability: development
- id: clickhouse
value: clickhouse
brief: ClickHouse
stability: development
- id: cloudscape
value: cloudscape
brief: Deprecated, use `other_sql` instead.
stability: development
deprecated:
reason: renamed
renamed_to: other_sql
note: Replaced by `other_sql`.
- id: cockroachdb
value: cockroachdb
brief: CockroachDB
stability: development
- id: coldfusion
value: coldfusion
brief: Deprecated, no replacement at this time.
stability: development
deprecated:
reason: obsoleted
note: Obsoleted.
- id: cosmosdb
value: cosmosdb
brief: Microsoft Azure Cosmos DB
stability: development
- id: couchbase
value: couchbase
brief: Couchbase
stability: development
- id: couchdb
value: couchdb
brief: CouchDB
stability: development
- id: db2
value: db2
brief: IBM Db2
stability: development
- id: derby
value: derby
brief: Apache Derby
stability: development
- id: dynamodb
value: dynamodb
brief: Amazon DynamoDB
stability: development
- id: edb
value: edb
brief: EnterpriseDB
stability: development
- id: elasticsearch
value: elasticsearch
brief: Elasticsearch
stability: development
- id: filemaker
value: filemaker
brief: FileMaker
stability: development
- id: firebird
value: firebird
brief: Firebird
stability: development
- id: firstsql
value: firstsql
brief: Deprecated, use `other_sql` instead.
stability: development
deprecated:
reason: renamed
renamed_to: other_sql
note: Replaced by `other_sql`.
- id: geode
value: geode
brief: Apache Geode
stability: development
- id: h2
value: h2
brief: H2
stability: development
- id: hanadb
value: hanadb
brief: SAP HANA
stability: development
- id: hbase
value: hbase
brief: Apache HBase
stability: development
- id: hive
value: hive
brief: Apache Hive
stability: development
- id: hsqldb
value: hsqldb
brief: HyperSQL DataBase
stability: development
- id: influxdb
value: influxdb
brief: InfluxDB
stability: development
- id: informix
value: informix
brief: Informix
stability: development
- id: ingres
value: ingres
brief: Ingres
stability: development
- id: instantdb
value: instantdb
brief: InstantDB
stability: development
- id: interbase
value: interbase
brief: InterBase
stability: development
- id: mariadb
value: mariadb
brief: MariaDB
stability: development
- id: maxdb
value: maxdb
brief: SAP MaxDB
stability: development
- id: memcached
value: memcached
brief: Memcached
stability: development
- id: mongodb
value: mongodb
brief: MongoDB
stability: development
- id: mssql
value: mssql
brief: Microsoft SQL Server
stability: development
- id: mssqlcompact
value: mssqlcompact
brief: Deprecated, Microsoft SQL Server Compact is discontinued.
stability: development
deprecated:
reason: renamed
renamed_to: other_sql
note: Replaced by `other_sql`.
- id: mysql
value: mysql
brief: MySQL
stability: development
- id: neo4j
value: neo4j
brief: Neo4j
stability: development
- id: netezza
value: netezza
brief: Netezza
stability: development
- id: opensearch
value: opensearch
brief: OpenSearch
stability: development
- id: oracle
value: oracle
brief: Oracle Database
stability: development
- id: pervasive
value: pervasive
brief: Pervasive PSQL
stability: development
- id: pointbase
value: pointbase
brief: PointBase
stability: development
- id: postgresql
value: postgresql
brief: PostgreSQL
stability: development
- id: progress
value: progress
brief: Progress Database
stability: development
- id: redis
value: redis
brief: Redis
stability: development
- id: redshift
value: redshift
brief: Amazon Redshift
stability: development
- id: spanner
value: spanner
brief: Cloud Spanner
stability: development
- id: sqlite
value: sqlite
brief: SQLite
stability: development
- id: sybase
value: sybase
brief: Sybase
stability: development
- id: teradata
value: teradata
brief: Teradata
stability: development
- id: trino
value: trino
brief: Trino
stability: development
- id: vertica
value: vertica
brief: Vertica
stability: development
brief: Deprecated, use `db.system.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.system.name
note: Replaced by `db.system.name`.
- key: db.system.name
type:
members:
- id: other_sql
value: other_sql
brief: Some other SQL database. Fallback only.
stability: development
- id: softwareag.adabas
value: softwareag.adabas
brief: '[Adabas (Adaptable Database System)](https://documentation.softwareag.com/?pf=adabas)'
stability: development
- id: actian.ingres
value: actian.ingres
brief: '[Actian Ingres](https://www.actian.com/databases/ingres/)'
stability: development
- id: aws.dynamodb
value: aws.dynamodb
brief: '[Amazon DynamoDB](https://aws.amazon.com/pm/dynamodb/)'
stability: development
- id: aws.redshift
value: aws.redshift
brief: '[Amazon Redshift](https://aws.amazon.com/redshift/)'
stability: development
- id: azure.cosmosdb
value: azure.cosmosdb
brief: '[Azure Cosmos DB](https://learn.microsoft.com/azure/cosmos-db)'
stability: development
- id: intersystems.cache
value: intersystems.cache
brief: '[InterSystems Caché](https://www.intersystems.com/products/cache/)'
stability: development
- id: cassandra
value: cassandra
brief: '[Apache Cassandra](https://cassandra.apache.org/)'
stability: development
- id: clickhouse
value: clickhouse
brief: '[ClickHouse](https://clickhouse.com/)'
stability: development
- id: cockroachdb
value: cockroachdb
brief: '[CockroachDB](https://www.cockroachlabs.com/)'
stability: development
- id: couchbase
value: couchbase
brief: '[Couchbase](https://www.couchbase.com/)'
stability: development
- id: couchdb
value: couchdb
brief: '[Apache CouchDB](https://couchdb.apache.org/)'
stability: development
- id: derby
value: derby
brief: '[Apache Derby](https://db.apache.org/derby/)'
stability: development
- id: elasticsearch
value: elasticsearch
brief: '[Elasticsearch](https://www.elastic.co/elasticsearch)'
stability: development
- id: firebirdsql
value: firebirdsql
brief: '[Firebird](https://www.firebirdsql.org/)'
stability: development
- id: gcp.spanner
value: gcp.spanner
brief: '[Google Cloud Spanner](https://cloud.google.com/spanner)'
stability: development
- id: geode
value: geode
brief: '[Apache Geode](https://geode.apache.org/)'
stability: development
- id: h2database
value: h2database
brief: '[H2 Database](https://h2database.com/)'
stability: development
- id: hbase
value: hbase
brief: '[Apache HBase](https://hbase.apache.org/)'
stability: development
- id: hive
value: hive
brief: '[Apache Hive](https://hive.apache.org/)'
stability: development
- id: hsqldb
value: hsqldb
brief: '[HyperSQL Database](https://hsqldb.org/)'
stability: development
- id: ibm.db2
value: ibm.db2
brief: '[IBM Db2](https://www.ibm.com/db2)'
stability: development
- id: ibm.informix
value: ibm.informix
brief: '[IBM Informix](https://www.ibm.com/products/informix)'
stability: development
- id: ibm.netezza
value: ibm.netezza
brief: '[IBM Netezza](https://www.ibm.com/products/netezza)'
stability: development
- id: influxdb
value: influxdb
brief: '[InfluxDB](https://www.influxdata.com/)'
stability: development
- id: instantdb
value: instantdb
brief: '[Instant](https://www.instantdb.com/)'
stability: development
- id: mariadb
value: mariadb
brief: '[MariaDB](https://mariadb.org/)'
stability: stable
- id: memcached
value: memcached
brief: '[Memcached](https://memcached.org/)'
stability: development
- id: mongodb
value: mongodb
brief: '[MongoDB](https://www.mongodb.com/)'
stability: development
- id: microsoft.sql_server
value: microsoft.sql_server
brief: '[Microsoft SQL Server](https://www.microsoft.com/sql-server)'
stability: stable
- id: mysql
value: mysql
brief: '[MySQL](https://www.mysql.com/)'
stability: stable
- id: neo4j
value: neo4j
brief: '[Neo4j](https://neo4j.com/)'
stability: development
- id: opensearch
value: opensearch
brief: '[OpenSearch](https://opensearch.org/)'
stability: development
- id: oracle.db
value: oracle.db
brief: '[Oracle Database](https://www.oracle.com/database/)'
stability: development
- id: postgresql
value: postgresql
brief: '[PostgreSQL](https://www.postgresql.org/)'
stability: stable
- id: redis
value: redis
brief: '[Redis](https://redis.io/)'
stability: development
- id: sap.hana
value: sap.hana
brief: '[SAP HANA](https://www.sap.com/products/technology-platform/hana/what-is-sap-hana.html)'
stability: development
- id: sap.maxdb
value: sap.maxdb
brief: '[SAP MaxDB](https://maxdb.sap.com/)'
stability: development
- id: sqlite
value: sqlite
brief: '[SQLite](https://www.sqlite.org/)'
stability: development
- id: teradata
value: teradata
brief: '[Teradata](https://www.teradata.com/)'
stability: development
- id: trino
value: trino
brief: '[Trino](https://trino.io/)'
stability: development
brief: The database management system (DBMS) product as identified by the client instrumentation.
note: |
The actual DBMS may differ from the one identified by the client. For example, when using PostgreSQL client libraries to connect to a CockroachDB, the `db.system.name` is set to `postgresql` based on the instrumentation's best knowledge.
stability: stable
- key: db.user
type: string
examples:
- readonly_user
- reporting_user
brief: Deprecated, no replacement at this time.
stability: development
deprecated:
reason: obsoleted
note: Removed, no replacement at this time.
- key: deployment.environment
type: string
examples:
- staging
- production
brief: |
Deprecated, use `deployment.environment.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: deployment.environment.name
note: Replaced by `deployment.environment.name`.
- key: deployment.environment.name
type: string
examples:
- staging
- production
brief: |
Name of the [deployment environment](https://wikipedia.org/wiki/Deployment_environment) (aka deployment tier).
note: |
`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`.
stability: development
- key: deployment.id
type: string
examples:
- '1208'
brief: |
The id of the deployment.
stability: development
- key: deployment.name
type: string
examples:
- deploy my app
- deploy-frontend
brief: |
The name of the deployment.
stability: development
- key: deployment.status
type:
members:
- id: failed
value: failed
brief: failed
stability: development
- id: succeeded
value: succeeded
brief: succeeded
stability: development
brief: |
The status of the deployment.
stability: development
- key: destination.address
type: string
examples:
- destination.example.com
- 10.1.2.80
- /tmp/my.sock
brief: Destination address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
When observed from the source side, and when communicating through an intermediary, `destination.address` SHOULD represent the destination address behind any intermediaries, for example proxies, if it's available.
stability: development
- key: destination.port
type: int
examples:
- 3389
- 2888
brief: Destination port number
stability: development
- key: device.id
type: string
examples:
- '123456789012345'
- 01:23:45:67:89:AB
brief: |
A unique identifier representing the device
note: |
Its value SHOULD be identical for all apps on a device and it SHOULD NOT change if an app is uninstalled and re-installed.
However, it might be resettable by the user for all apps on a device.
Hardware IDs (e.g. vendor-specific serial number, IMEI or MAC address) MAY be used as values.
More information about Android identifier best practices can be found in the [Android user data IDs guide](https://developer.android.com/training/articles/user-data-ids).
> [!WARNING]
>
> This attribute may contain sensitive (PII) information. 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.
>
> Due to these reasons, this identifier is not recommended for consumer applications and will likely result in rejection from both Google Play and App Store.
> However, it may be appropriate for specific enterprise scenarios, such as kiosk devices or enterprise-managed devices, with appropriate compliance clearance.
> Any instrumentation providing this identifier MUST implement it as an opt-in feature.
>
> See [`app.installation.id`](/docs/registry/attributes/app.md#app-installation-id) for a more privacy-preserving alternative.
stability: development
- key: device.manufacturer
type: string
examples:
- Apple
- Samsung
brief: |
The name of the device manufacturer
note: |
The Android OS provides this field via [Build](https://developer.android.com/reference/android/os/Build#MANUFACTURER). iOS apps SHOULD hardcode the value `Apple`.
stability: development
- key: device.model.identifier
type: string
examples:
- iPhone3,4
- SM-G920F
brief: |
The model identifier for the device
note: |
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.
stability: development
- key: device.model.name
type: string
examples:
- iPhone 6s Plus
- Samsung Galaxy S6
brief: |
The marketing name for the device model
note: |
It's recommended this value represents a human-readable version of the device model rather than a machine-readable alternative.
stability: development
- key: disk.io.direction
type:
members:
- id: read
value: read
stability: development
- id: write
value: write
stability: development
examples:
- read
brief: The disk IO operation direction.
stability: development
- key: dns.answers
type: string[]
examples:
- - 10.0.0.1
- 2001:0db8:85a3:0000:0000:8a2e:0370:7334
brief: List of resolved IP addresses (for DNS lookup) or a single element containing domain name (for reverse lookup).
stability: development
- key: dns.answers
type: string[]
examples:
- - 10.0.0.1
- 2001:0db8:85a3:0000:0000:8a2e:0370:7334
brief: The list of IPv4 or IPv6 addresses resolved during DNS lookup.
stability: development
- key: dns.question.name
type: string
examples:
- www.example.com
- dot.net
brief: The name being queried.
note: |
The name represents the queried domain name as it appears in the DNS query without any additional normalization.
stability: development
- key: dns.question.name
type: string
examples:
- www.example.com
- opentelemetry.io
brief: The name being queried.
note: |
The name represents the queried domain name as it appears in the DNS query without any additional normalization.
stability: development
- key: dns.question.name
type: string
examples:
- www.example.com
- opentelemetry.io
brief: The domain name or an IP address being queried.
stability: development
- key: dotnet.gc.heap.generation
type:
members:
- id: gen0
value: gen0
brief: Generation 0
stability: stable
- id: gen1
value: gen1
brief: Generation 1
stability: stable
- id: gen2
value: gen2
brief: Generation 2
stability: stable
- id: loh
value: loh
brief: Large Object Heap
stability: stable
- id: poh
value: poh
brief: Pinned Object Heap
stability: stable
examples:
- gen0
- gen1
- gen2
brief: Name of the garbage collector managed heap generation.
stability: stable
- key: elasticsearch.node.name
type: string
examples:
- instance-0000000001
brief: |
Represents the human-readable identifier of the node/instance to which a request was routed.
stability: development
- key: elasticsearch.node.name
type: string
examples:
- instance-0000000001
brief: |
Represents the human-readable identifier of the node/instance to which a request was routed.
note: |
When communicating with an Elastic Cloud deployment, this should be collected from the "X-Found-Handling-Instance" HTTP response header.
stability: development
- key: enduser.id
type: string
examples:
- username
brief: Unique identifier of an end user in the system. It maybe a username, email address, or other identifier.
note: |
Unique identifier of an end user in the system.
> [!Warning]
> This field contains sensitive (PII) information.
stability: development
- key: enduser.pseudo.id
type: string
examples:
- QdH5CAWJgqVT4rOr0qtumf
brief: |
Pseudonymous identifier of an end user. This identifier should be a random value that is not directly linked or associated with the end user's actual identity.
note: |
Pseudonymous identifier of an end user.
> [!Warning]
> This field contains sensitive (linkable PII) information.
stability: development
- key: enduser.role
type: string
examples: admin
brief: Deprecated, use `user.roles` instead.
stability: development
deprecated:
reason: uncategorized
note: Use `user.roles` instead.
- key: enduser.scope
type: string
examples: read:message, write:files
brief: Deprecated, no replacement at this time.
stability: development
deprecated:
reason: obsoleted
note: Removed, no replacement at this time.
- key: error.message
type: string
examples:
- 'Unexpected input type: string'
- The user has exceeded their storage quota
brief: A message providing more detail about an error in human-readable form.
note: |
Should not simply duplicate the value of `error.type`, but should provide more context. For example, if `error.type` is `invalid_context` the `error.message` may enumerate which context keys are missing or invalid.
stability: development
- key: error.message
type: string
examples:
- 'Unexpected input type: string'
- The user has exceeded their storage quota
brief: A message providing more detail about an error in human-readable form.
note: |
`error.message` should provide additional context and detail about an error.
It is NOT RECOMMENDED to duplicate the value of `error.type` in `error.message`.
It is also NOT RECOMMENDED to duplicate the value of `exception.message` in `error.message`.
`error.message` is NOT RECOMMENDED for metrics or spans due to its unbounded cardinality and overlap with span status.
stability: development
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD match the error code returned by the Generative AI provider or the client library,
the canonical name of exception that occurred, or another low-cardinality error identifier.
Instrumentations SHOULD document the list of errors they report.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- version_negotiation_error
- System.OperationCanceledException
brief: |
One of the [HTTP Request errors](https://learn.microsoft.com/dotnet/api/system.net.http.httprequesterror) in snake_case, or a full exception type.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD match the error code returned by the Generative AI service,
the canonical name of exception that occurred, or another low-cardinality error identifier.
Instrumentations SHOULD document the list of errors they report.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
- Contoso.MyException
brief: |
Describes a class of error the operation ended with.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- name_resolution_error
- System.OperationCanceledException
brief: |
One of the [HTTP Request errors](https://learn.microsoft.com/dotnet/api/system.net.http.httprequesterror) in snake_case, or a full exception type.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD match the error code returned by the Generative AI Evaluation provider or the client library,
the canonical name of exception that occurred, or another low-cardinality error identifier.
Instrumentations SHOULD document the list of errors they report.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
- PasswordMismatch
brief: The full name of exception type or the identity error code.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
If the request fails with an error before response status code was sent or received,
`error.type` SHOULD be set to exception type (its fully-qualified class name, if applicable)
or a component-specific low cardinality error identifier.
If response status code was sent or received and status indicates an error according to [HTTP span status definition](/docs/http/http-spans.md),
`error.type` SHOULD be set to the status code number (represented as a string), an exception type (if thrown) or a component-specific error identifier.
The `error.type` value SHOULD be predictable and SHOULD have low cardinality.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low, but
telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time, when no
additional filters are applied.
If the request has completed successfully, instrumentations SHOULD NOT set `error.type`.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.Net.Security.Authentication.AuthenticationException
- System.OperationCanceledException
brief: |
Describes a class of error the operation ended with.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- queue_full
brief: |
A low-cardinality description of the failure reason. SDK Batching Log Record Processors MUST use `queue_full` for log records dropped due to a full queue.
note: |
The `error.type` SHOULD be predictable, and SHOULD have low cardinality.
When `error.type` is set to a type (e.g., an exception type), its
canonical class name identifying the type within the artifact SHOULD be used.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low.
Telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time when no
additional filters are applied.
If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`.
If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes),
it's RECOMMENDED to:
- Use a domain-specific attribute
- Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- host_not_found
- try_again
brief: The error code or exception name returned by [System.Net.Dns](https://learn.microsoft.com/dotnet/api/system.net.dns).
note: |
The following errors are reported:
- `host_not_found`
- `try_again`
- `no_recovery`
- `address_family_not_supported`
- the full exception type name
See [SocketError](https://learn.microsoft.com/dotnet/api/system.net.sockets.socketerror) for more details.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
- Contoso.MyException
brief: The full name of exception type.
note: Captures the exception type when a TLS handshake fails.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- amqp:decode-error
- KAFKA_STORAGE_ERROR
- channel-error
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD be predictable, and SHOULD have low cardinality.
When `error.type` is set to a type (e.g., an exception type), its
canonical class name identifying the type within the artifact SHOULD be used.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low.
Telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time when no
additional filters are applied.
If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`.
If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes),
it's RECOMMENDED to:
- Use a domain-specific attribute
- Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- provider_not_ready
- targeting_key_missing
- provider_fatal
- general
brief: |
Describes a class of error the operation ended with.
note: |
If one of these values applies, then it MUST be used; otherwise, a custom value MAY be used.
| Value | Description | Stability |
|---|---|---|
| `flag_not_found` | The flag could not be found. | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) |
| `invalid_context` | The evaluation context does not meet provider requirements. | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) |
| `parse_error` | An error was encountered parsing data, such as a flag configuration. | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) |
| `provider_fatal` | The provider has entered an irrecoverable error state. | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) |
| `provider_not_ready` | The value was resolved before the provider was initialized. | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) |
| `targeting_key_missing` | The provider requires a targeting key and one was not provided in the evaluation context. | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) |
| `type_mismatch` | The type of the flag value does not match the expected type. | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) |
| `general` | The error was for a reason not enumerated above. | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) |
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- connection_reset
- invalid_handshake
brief: The full name of exception type.
note: |
Starting from .NET 9, Kestrel `kestrel.connection.duration` metric reports
the following errors types when a corresponding error occurs:
| Value | Description | Stability |
|---|---|---|
| `aborted_by_app` | The HTTP/1.1 connection was aborted when app code aborted an HTTP request with `HttpContext.Abort()`. |
| `app_shutdown_timeout` | The connection was aborted during app shutdown. During shutdown, the server stops accepting new connections and HTTP requests, and it is given time for active requests to complete. If the app shutdown timeout is exceeded, all remaining connections are aborted. |
| `closed_critical_stream` | A critical control stream for an HTTP/3 connection was closed. |
| `connection_reset` | The connection was reset while there were active HTTP/2 or HTTP/3 streams on the connection. |
| `error_after_starting_response` | An error such as an unhandled application exception or invalid request body occurred after the response was started, causing an abort of the HTTP/1.1 connection. |
| `error_reading_headers` | An error occurred when decoding HPACK headers in an HTTP/2 `HEADERS` frame. |
| `error_writing_headers` | An error occurred when encoding HPACK headers in an HTTP/2 `HEADERS` frame. |
| `flow_control_queue_size_exceeded` | The connection exceeded the outgoing flow control maximum queue size and was closed with `INTERNAL_ERROR`. This can be caused by an excessive number of HTTP/2 stream resets. For more information, see [Microsoft Security Advisory CVE-2023-44487](https://github.com/dotnet/runtime/issues/93303). |
| `flow_control_window_exceeded` | The client sent more data than allowed by the current flow-control window. |
| `frame_after_stream_close` | An HTTP/2 frame was received on a closed stream. |
| `insufficient_tls_version` | The connection doesn't have TLS 1.2 or greater, as required by HTTP/2. |
| `invalid_body_reader_state` | An error occurred when draining the request body, aborting the HTTP/1.1 connection. This could be caused by app code reading the request body and missing a call to `PipeReader.AdvanceTo` in a finally block. |
| `invalid_data_padding` | An HTTP/2 `HEADER` or `DATA` frame has an invalid amount of padding. |
| `invalid_frame_length` | An HTTP/2 frame was received with an invalid frame payload length. The frame could contain a payload that is not valid for the type, or a `DATA` frame payload does not match the length specified in the frame header. |
| `invalid_handshake` | An invalid HTTP/2 handshake was received. |
| `invalid_http_version` | The connection received an HTTP request with the wrong version. For example, a browser sends an HTTP/1.1 request to a plain-text HTTP/2 connection. |
| `invalid_request_headers` | The HTTP request contains invalid headers. This error can occur in a number of scenarios: a header might not be allowed by the HTTP protocol, such as a pseudo-header in the `HEADERS` frame of an HTTP/2 request. A header could also have an invalid value, such as a non-integer `content-length`, or a header name or value might contain invalid characters. |
| `invalid_request_line` | The first line of an HTTP/1.1 request was invalid, potentially due to invalid content or exceeding the allowed limit. Configured by `KestrelServerLimits.MaxRequestLineSize`. |
| `invalid_settings` | The connection received an HTTP/2 or HTTP/3 `SETTINGS` frame with invalid settings. |
| `invalid_stream_id` | An HTTP/2 stream with an invalid stream ID was received. |
| `invalid_window_update_size` | The server received an HTTP/2 `WINDOW_UPDATE` frame with a zero increment, or an increment that caused a flow-control window to exceed the maximum size. |
| `io_error` | An `IOException` occurred while reading or writing HTTP/2 or HTTP/3 connection data. |
| `keep_alive_timeout` | There was no activity on the connection, and the keep-alive timeout configured by `KestrelServerLimits.KeepAliveTimeout` was exceeded. |
| `max_concurrent_connections_exceeded` | The connection exceeded the maximum concurrent connection limit. Configured by `KestrelServerLimits.MaxConcurrentConnections`. |
| `max_frame_length_exceeded` | The connection received an HTTP/2 frame that exceeded the size limit specified by `Http2Limits.MaxFrameSize`. |
| `max_request_body_size_exceeded` | The HTTP request body exceeded the maximum request body size limit. Configured by `KestrelServerLimits.MaxRequestBodySize`. |
| `max_request_header_count_exceeded` | The HTTP request headers exceeded the maximum count limit. Configured by `KestrelServerLimits.MaxRequestHeaderCount`. |
| `max_request_headers_total_size_exceeded` | The HTTP request headers exceeded the maximum total size limit. Configured by `KestrelServerLimits.MaxRequestHeadersTotalSize`. |
| `min_request_body_data_rate` | Reading the request body timed out due to data arriving too slowly. Configured by `KestrelServerLimits.MinRequestBodyDataRate`. |
| `min_response_data_rate` | Writing the response timed out because the client did not read it at the specified minimum data rate. Configured by `KestrelServerLimits.MinResponseDataRate`. |
| `missing_stream_end` | The connection received an HTTP/2 `HEADERS` frame for trailers without a stream end flag. |
| `output_queue_size_exceeded` | The connection exceeded the output queue size and was closed with `INTERNAL_ERROR`. This can be caused by an excessive number of HTTP/2 stream resets. For more information, see [Microsoft Security Advisory CVE-2023-44487](https://github.com/dotnet/runtime/issues/93303). |
| `request_headers_timeout` | Request headers timed out while waiting for headers to be received after the request started. Configured by `KestrelServerLimits.RequestHeadersTimeout`. |
| `response_content_length_mismatch` | The HTTP response body sent data that didn't match the response's `content-length` header. |
| `server_timeout` | The connection timed out with the `IConnectionTimeoutFeature`. |
| `stream_creation_error` | The HTTP/3 connection received a stream that it wouldn't accept. For example, the client created duplicate control streams. |
| `stream_reset_limit_exceeded` | The connection received an excessive number of HTTP/2 stream resets and was closed with `ENHANCE_YOUR_CALM`. For more information, see [Microsoft Security Advisory CVE-2023-44487](https://github.com/dotnet/runtime/issues/93303). |
| `stream_self_dependency` | The connection received an HTTP/2 frame that caused a frame to depend on itself. |
| `tls_handshake_failed` | An error occurred during the TLS handshake for a connection. Only reported for HTTP/1.1 and HTTP/2 connections. The TLS handshake for HTTP/3 is internal to QUIC transport. ![Development](https://img.shields.io/badge/-development-blue) |
| `tls_not_supported` | A TLS handshake was received by an endpoint that isn't configured to support TLS. |
| `unexpected_end_of_request_content` | The HTTP/1.1 request body ended before the data specified by the `content-length` header or chunked transfer encoding mechanism was received. |
| `unexpected_frame` | An unexpected HTTP/2 or HTTP/3 frame type was received. The frame type is either unknown, unsupported, or invalid for the current stream state. |
| `unknown_stream` | An HTTP/2 frame was received on an unknown stream. |
| `write_canceled` | The cancellation of a response body write aborted the HTTP/1.1 connection. |
In other cases, `error.type` contains the fully qualified type name of the exception.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD be predictable, and SHOULD have low cardinality.
When `error.type` is set to a type (e.g., an exception type), its
canonical class name identifying the type within the artifact SHOULD be used.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low.
Telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time when no
additional filters are applied.
If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`.
If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes),
it's RECOMMENDED to:
- Use a domain-specific attribute
- Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- uncorrected
- zero_buffer_credit
- crc
- bad_sector
brief: The type of error encountered by the component.
note: |
The `error.type` SHOULD match the error code reported by the component, the canonical name of the error, or another low-cardinality error identifier. Instrumentations SHOULD document the list of errors they report.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- rejected
- timeout
- '500'
- java.net.UnknownHostException
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD be predictable, and SHOULD have low cardinality.
When `error.type` is set to a type (e.g., an exception type), its
canonical class name identifying the type within the artifact SHOULD be used.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low.
Telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time when no
additional filters are applied.
If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`.
If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes),
it's RECOMMENDED to:
- Use a domain-specific attribute
- Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- host_not_found
- no_recovery
- java.net.UnknownHostException
brief: Describes the error the DNS lookup failed with.
note: |
Instrumentations SHOULD use error code such as one of errors reported by `getaddrinfo`([Linux or other POSIX systems](https://man7.org/linux/man-pages/man3/getaddrinfo.3.html) / [Windows](https://learn.microsoft.com/windows/win32/api/ws2tcpip/nf-ws2tcpip-getaddrinfo)) or one reported by the runtime or client library. If error code is not available, the full name of exception type SHOULD be used.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- connection_refused
- address_not_available
brief: Socket error code.
note: |
The following errors codes are reported:
- `network_down`
- `address_already_in_use`
- `interrupted`
- `in_progress`
- `already_in_progress`
- `address_not_available`
- `address_family_not_supported`
- `connection_refused`
- `fault`
- `invalid_argument`
- `is_connected`
- `network_unreachable`
- `host_unreachable`
- `no_buffer_space_available`
- `timed_out`
- `access_denied`
- `protocol_type`
See socket errors on [Windows](https://learn.microsoft.com/windows/win32/api/winsock2/nf-winsock2-connect#return-value) and
[Linux](https://man7.org/linux/man-pages/man2/connect.2.html) for more details.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- queue_full
brief: |
A low-cardinality description of the failure reason. SDK Batching Span Processors MUST use `queue_full` for spans dropped due to a full queue.
note: |
The `error.type` SHOULD be predictable, and SHOULD have low cardinality.
When `error.type` is set to a type (e.g., an exception type), its
canonical class name identifying the type within the artifact SHOULD be used.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low.
Telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time when no
additional filters are applied.
If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`.
If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes),
it's RECOMMENDED to:
- Use a domain-specific attribute
- Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD match the `db.response.status_code` returned by the database or the client library, or the canonical name of exception that occurred.
When using canonical exception type name, instrumentation SHOULD do the best effort to report the most relevant type. For example, if the original exception is wrapped into a generic one, the original exception SHOULD be preferred.
Instrumentations SHOULD document how `error.type` is populated.
stability: stable
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
- Contoso.MyException
brief: The full name of exception type.
stability: stable
- key: event.name
type: string
examples:
- browser.mouse.click
- device.app.lifecycle
brief: |
Identifies the class / type of event.
stability: development
deprecated:
reason: uncategorized
note: |
The value of this attribute MUST now be set as the value of the EventName field on the LogRecord to indicate that the LogRecord represents an Event.
- key: exception.escaped
type: boolean
brief: |
Indicates that the exception is escaping the scope of the span.
stability: stable
deprecated:
reason: obsoleted
note: |
It's no longer recommended to record exceptions that are handled and do not escape the scope of a span.
- key: exception.message
type: string
examples:
- Division by zero
- Can't convert 'int' object to str implicitly
brief: The exception message.
stability: stable
- key: exception.stacktrace
type: string
examples: |
Exception in thread "main" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)
brief: |
A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.
stability: stable
- key: exception.type
type: string
examples:
- java.net.ConnectException
- OSError
brief: |
The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.
stability: stable
- key: faas.coldstart
type: boolean
brief: |
A boolean that is true if the serverless function is executed for the first time (aka cold-start).
stability: development
- key: faas.cron
type: string
examples: 0/5 * * * ? *
brief: |
A string containing the schedule period as [Cron Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).
stability: development
- key: faas.document.collection
type: string
examples:
- myBucketName
- myDbName
brief: |
The name of the source on which the triggering operation was performed. For example, in Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the database name.
stability: development
- key: faas.document.name
type: string
examples:
- myFile.txt
- myTableName
brief: |
The document name/table subjected to the operation. For example, in Cloud Storage or S3 is the name of the file, and in Cosmos DB the table name.
stability: development
- key: faas.document.operation
type:
members:
- id: insert
value: insert
brief: When a new object is created.
stability: development
- id: edit
value: edit
brief: When an object is modified.
stability: development
- id: delete
value: delete
brief: When an object is deleted.
stability: development
brief: Describes the type of the operation that was performed on the data.
stability: development
- key: faas.document.time
type: string
examples: 2020-01-23T13:47:06Z
brief: |
A string containing the time when the data was accessed in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).
stability: development
- key: faas.instance
type: string
examples:
- 2021/06/28/[$LATEST]2f399eb14537447da05ab2a2e39309de
brief: |
The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.
note: |
- **AWS Lambda:** Use the (full) log stream name.
stability: development
- key: faas.invocation_id
type: string
examples: af9d5aa4-a685-4c5f-a22b-444f80b3cc28
brief: |
The invocation ID of the current function invocation.
stability: development
- key: faas.invoked_name
type: string
examples: my-function
brief: |
The name of the invoked function.
note: |
SHOULD be equal to the `faas.name` resource attribute of the invoked function.
stability: development
- key: faas.invoked_provider
type:
members:
- id: alibaba_cloud
value: alibaba_cloud
brief: Alibaba Cloud
stability: development
- id: aws
value: aws
brief: Amazon Web Services
stability: development
- id: azure
value: azure
brief: Microsoft Azure
stability: development
- id: gcp
value: gcp
brief: Google Cloud Platform
stability: development
- id: tencent_cloud
value: tencent_cloud
brief: Tencent Cloud
stability: development
brief: |
The cloud provider of the invoked function.
note: |
SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.
stability: development
- key: faas.invoked_region
type: string
examples: eu-central-1
brief: |
The cloud region of the invoked function.
note: |
SHOULD be equal to the `cloud.region` resource attribute of the invoked function.
stability: development
- key: faas.max_memory
type: int
examples: 134217728
brief: |
The amount of memory available to the serverless function converted to Bytes.
note: |
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).
stability: development
- key: faas.name
type: string
examples:
- my-function
- myazurefunctionapp/some-function-name
brief: |
The name of the single function that this runtime instance executes.
note: |
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.name`](/docs/general/attributes.md#source-code-attributes)
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 the `cloud.resource_id` attribute).
stability: development
- key: faas.time
type: string
examples: 2020-01-23T13:47:06Z
brief: |
A string containing the function invocation time in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).
stability: development
- key: faas.trigger
type:
members:
- id: datasource
value: datasource
brief: A response to some data source operation such as a database or filesystem read/write
stability: development
- id: http
value: http
brief: To provide an answer to an inbound HTTP request
stability: development
- id: pubsub
value: pubsub
brief: A function is set to be executed when messages are sent to a messaging system
stability: development
- id: timer
value: timer
brief: A function is scheduled to be executed regularly
stability: development
- id: other
value: other
brief: If none of the others apply
stability: development
brief: |
Type of the trigger which caused this function invocation.
stability: development
- key: faas.trigger
type:
members:
- id: datasource
value: datasource
brief: A response to some data source operation such as a database or filesystem read/write
stability: development
- id: http
value: http
brief: To provide an answer to an inbound HTTP request
stability: development
- id: pubsub
value: pubsub
brief: A function is set to be executed when messages are sent to a messaging system
stability: development
- id: timer
value: timer
brief: A function is scheduled to be executed regularly
stability: development
- id: other
value: other
brief: If none of the others apply
stability: development
brief: |
Type of the trigger which caused this function invocation.
note: |
For the server/consumer span on the incoming side,
`faas.trigger` MUST be set.
Clients invoking FaaS instances usually cannot set `faas.trigger`,
since they would typically need to look in the payload to determine
the event type. If clients set it, it should be the same as the
trigger that corresponding incoming would have (i.e., this has
nothing to do with the underlying transport used to make the API
call to invoke the lambda, which is often HTTP).
stability: development
- key: faas.version
type: string
examples:
- '26'
- pinkfroid-00002
brief: The immutable version of the function being executed.
note: |
Depending on the cloud provider and platform, use:
- **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)
(an integer represented as a decimal string).
- **Google Cloud Run (Services):** The [revision](https://cloud.google.com/run/docs/managing/revisions)
(i.e., the function name plus the revision suffix).
- **Google Cloud Functions:** The value of the
[`K_REVISION` environment variable](https://cloud.google.com/run/docs/container-contract#services-env-vars).
- **Azure Functions:** Not applicable. Do not set this attribute.
stability: development
- key: feature_flag.context.id
type: string
examples:
- 5157782b-2203-4c80-a857-dbbd5e7761db
brief: |
The unique identifier for the flag evaluation context. For example, the targeting key.
stability: release_candidate
- key: feature_flag.evaluation.error.message
type: string
examples:
- Flag `header-color` expected type `string` but found type `number`
brief: Deprecated, use `error.message` instead.
stability: development
deprecated:
reason: renamed
renamed_to: error.message
note: Replaced by `error.message`.
- key: feature_flag.evaluation.reason
type:
members:
- id: static
value: static
brief: The resolved value is static (no dynamic evaluation).
stability: development
- id: default
value: default
brief: The resolved value fell back to a pre-configured value (no dynamic evaluation occurred or dynamic evaluation yielded no result).
stability: development
- id: targeting_match
value: targeting_match
brief: The resolved value was the result of a dynamic evaluation, such as a rule or specific user-targeting.
stability: development
- id: split
value: split
brief: The resolved value was the result of pseudorandom assignment.
stability: development
- id: cached
value: cached
brief: The resolved value was retrieved from cache.
stability: development
- id: disabled
value: disabled
brief: The resolved value was the result of the flag being disabled in the management system.
stability: development
- id: unknown
value: unknown
brief: The reason for the resolved value could not be determined.
stability: development
- id: stale
value: stale
brief: The resolved value is non-authoritative or possibly out of date
stability: development
- id: error
value: error
brief: The resolved value was the result of an error.
stability: development
examples:
- static
- targeting_match
- error
- default
brief: Deprecated, use `feature_flag.result.reason` instead.
stability: development
deprecated:
reason: renamed
renamed_to: feature_flag.result.reason
note: Replaced by `feature_flag.result.reason`.
- key: feature_flag.key
type: string
examples:
- logo-color
brief: The lookup key of the feature flag.
stability: release_candidate
- key: feature_flag.provider.name
type: string
examples:
- Flag Manager
brief: Identifies the feature flag provider.
stability: release_candidate
- key: feature_flag.provider_name
type: string
examples:
- Flag Manager
brief: Deprecated, use `feature_flag.provider.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: feature_flag.provider.name
note: Replaced by `feature_flag.provider.name`.
annotations:
code_generation:
exclude: true
- key: feature_flag.result.reason
type:
members:
- id: static
value: static
brief: The resolved value is static (no dynamic evaluation).
stability: release_candidate
- id: default
value: default
brief: The resolved value fell back to a pre-configured value (no dynamic evaluation occurred or dynamic evaluation yielded no result).
stability: release_candidate
- id: targeting_match
value: targeting_match
brief: The resolved value was the result of a dynamic evaluation, such as a rule or specific user-targeting.
stability: release_candidate
- id: split
value: split
brief: The resolved value was the result of pseudorandom assignment.
stability: release_candidate
- id: cached
value: cached
brief: The resolved value was retrieved from cache.
stability: release_candidate
- id: disabled
value: disabled
brief: The resolved value was the result of the flag being disabled in the management system.
stability: release_candidate
- id: unknown
value: unknown
brief: The reason for the resolved value could not be determined.
stability: release_candidate
- id: stale
value: stale
brief: The resolved value is non-authoritative or possibly out of date
stability: release_candidate
- id: error
value: error
brief: The resolved value was the result of an error.
stability: release_candidate
examples:
- static
- targeting_match
- error
- default
brief: |
The reason code which shows how a feature flag value was determined.
stability: release_candidate
- key: feature_flag.result.value
type: any
examples:
- '#ff0000'
- true
- 3
brief: The evaluated value of the feature flag.
note: |
With some feature flag providers, feature flag results can be quite large or contain private or sensitive details.
Because of this, `feature_flag.result.variant` is often the preferred attribute if it is available.
It may be desirable to redact or otherwise limit the size and scope of `feature_flag.result.value` if possible.
Because the evaluated flag value is unstructured and may be any type, it is left to the instrumentation author to determine how best to achieve this.
stability: release_candidate
- key: feature_flag.result.variant
type: string
examples:
- red
- 'true'
- on
brief: |
A semantic identifier for an evaluated flag value.
note: |-
A semantic identifier, commonly referred to as a variant, provides a means
for referring to a value without including the value itself. This can
provide additional context for understanding the meaning behind a value.
For example, the variant `red` maybe be used for the value `#c05543`.
stability: release_candidate
- key: feature_flag.set.id
type: string
examples:
- proj-1
- ab98sgs
- service1/dev
brief: |
The identifier of the [flag set](https://openfeature.dev/specification/glossary/#flag-set) to which the feature flag belongs.
stability: release_candidate
- key: feature_flag.variant
type: string
examples:
- red
- 'true'
- on
brief: Deprecated, use `feature_flag.result.variant` instead.
stability: development
deprecated:
reason: renamed
renamed_to: feature_flag.result.variant
note: Replaced by `feature_flag.result.variant`.
- key: feature_flag.version
type: string
examples:
- '1'
- 01ABCDEF
brief: |
The version of the ruleset used during the evaluation. This may be any stable value which uniquely identifies the ruleset.
stability: release_candidate
- key: file.accessed
type: string
examples:
- 2021-01-01T12:00:00Z
brief: |
Time when the file was last accessed, in ISO 8601 format.
note: |
This attribute might not be supported by some file systems — NFS, FAT32, in embedded OS, etc.
stability: development
- key: file.attributes
type: string[]
examples:
- - readonly
- hidden
brief: |
Array of file attributes.
note: |
Attributes names depend on the OS or file system. Here’s a non-exhaustive list of values expected for this attribute: `archive`, `compressed`, `directory`, `encrypted`, `execute`, `hidden`, `immutable`, `journaled`, `read`, `readonly`, `symbolic link`, `system`, `temporary`, `write`.
stability: development
- key: file.changed
type: string
examples:
- 2021-01-01T12:00:00Z
brief: |
Time when the file attributes or metadata was last changed, in ISO 8601 format.
note: |
`file.changed` captures the time when any of the file's properties or attributes (including the content) are changed, while `file.modified` captures the timestamp when the file content is modified.
stability: development
- key: file.created
type: string
examples:
- 2021-01-01T12:00:00Z
brief: |
Time when the file was created, in ISO 8601 format.
note: |
This attribute might not be supported by some file systems — NFS, FAT32, in embedded OS, etc.
stability: development
- key: file.directory
type: string
examples:
- /home/user
- C:\Program Files\MyApp
brief: |
Directory where the file is located. It should include the drive letter, when appropriate.
stability: development
- key: file.extension
type: string
examples:
- png
- gz
brief: |
File extension, excluding the leading dot.
note: |
When the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz").
stability: development
- key: file.fork_name
type: string
examples:
- Zone.Identifier
brief: |
Name of the fork. A fork is additional data associated with a filesystem object.
note: |
On Linux, a resource fork is used to store additional data with a filesystem object. A file always has at least one fork for the data portion, and additional forks may exist.
On NTFS, this is analogous to an Alternate Data Stream (ADS), and the default data stream for a file is just called $DATA. Zone.Identifier is commonly used by Windows to track contents downloaded from the Internet. An ADS is typically of the form: C:\path\to\filename.extension:some_fork_name, and some_fork_name is the value that should populate `fork_name`. `filename.extension` should populate `file.name`, and `extension` should populate `file.extension`. The full path, `file.path`, will include the fork name.
stability: development
- key: file.group.id
type: string
examples:
- '1000'
brief: |
Primary Group ID (GID) of the file.
stability: development
- key: file.group.name
type: string
examples:
- users
brief: |
Primary group name of the file.
stability: development
- key: file.inode
type: string
examples:
- '256383'
brief: |
Inode representing the file in the filesystem.
stability: development
- key: file.mode
type: string
examples:
- '0640'
brief: |
Mode of the file in octal representation.
stability: development
- key: file.modified
type: string
examples:
- 2021-01-01T12:00:00Z
brief: |
Time when the file content was last modified, in ISO 8601 format.
stability: development
- key: file.name
type: string
examples:
- example.png
brief: |
Name of the file including the extension, without the directory.
stability: development
- key: file.owner.id
type: string
examples:
- '1000'
brief: |
The user ID (UID) or security identifier (SID) of the file owner.
stability: development
- key: file.owner.name
type: string
examples:
- root
brief: |
Username of the file owner.
stability: development
- key: file.path
type: string
examples:
- /home/alice/example.png
- C:\Program Files\MyApp\myapp.exe
brief: |
Full path to the file, including the file name. It should include the drive letter, when appropriate.
stability: development
- key: file.size
type: int
brief: |
File size in bytes.
stability: development
- key: file.symbolic_link.target_path
type: string
examples:
- /usr/bin/python3
brief: |
Path to the target of a symbolic link.
note: |
This attribute is only applicable to symbolic links.
stability: development
- key: gcp.apphub.application.container
type: string
examples:
- projects/my-container-project
brief: |
The container within GCP where the AppHub application is defined.
stability: development
- key: gcp.apphub.application.id
type: string
examples:
- my-application
brief: |
The name of the application as configured in AppHub.
stability: development
- key: gcp.apphub.application.location
type: string
examples:
- us-central1
brief: |
The GCP zone or region where the application is defined.
stability: development
- key: gcp.apphub.service.criticality_type
type:
members:
- id: mission_critical
value: MISSION_CRITICAL
brief: Mission critical service.
stability: development
- id: high
value: HIGH
brief: High impact.
stability: development
- id: medium
value: MEDIUM
brief: Medium impact.
stability: development
- id: low
value: LOW
brief: Low impact.
stability: development
brief: |
Criticality of a service indicates its importance to the business.
note: |
[See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type)
stability: development
- key: gcp.apphub.service.environment_type
type:
members:
- id: production
value: PRODUCTION
brief: Production environment.
stability: development
- id: staging
value: STAGING
brief: Staging environment.
stability: development
- id: test
value: TEST
brief: Test environment.
stability: development
- id: development
value: DEVELOPMENT
brief: Development environment.
stability: development
brief: |
Environment of a service is the stage of a software lifecycle.
note: |
[See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type_1)
stability: development
- key: gcp.apphub.service.id
type: string
examples:
- my-service
brief: |
The name of the service as configured in AppHub.
stability: development
- key: gcp.apphub.workload.criticality_type
type:
members:
- id: mission_critical
value: MISSION_CRITICAL
brief: Mission critical service.
stability: development
- id: high
value: HIGH
brief: High impact.
stability: development
- id: medium
value: MEDIUM
brief: Medium impact.
stability: development
- id: low
value: LOW
brief: Low impact.
stability: development
brief: |
Criticality of a workload indicates its importance to the business.
note: |
[See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type)
stability: development
- key: gcp.apphub.workload.environment_type
type:
members:
- id: production
value: PRODUCTION
brief: Production environment.
stability: development
- id: staging
value: STAGING
brief: Staging environment.
stability: development
- id: test
value: TEST
brief: Test environment.
stability: development
- id: development
value: DEVELOPMENT
brief: Development environment.
stability: development
brief: |
Environment of a workload is the stage of a software lifecycle.
note: |
[See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type_1)
stability: development
- key: gcp.apphub.workload.id
type: string
examples:
- my-workload
brief: |
The name of the workload as configured in AppHub.
stability: development
- key: gcp.apphub_destination.application.container
type: string
examples:
- projects/my-container-project
brief: |
The container within GCP where the AppHub destination application is defined.
stability: development
- key: gcp.apphub_destination.application.id
type: string
examples:
- my-application
brief: |
The name of the destination application as configured in AppHub.
stability: development
- key: gcp.apphub_destination.application.location
type: string
examples:
- us-central1
brief: |
The GCP zone or region where the destination application is defined.
stability: development
- key: gcp.apphub_destination.service.criticality_type
type:
members:
- id: mission_critical
value: MISSION_CRITICAL
brief: Mission critical service.
stability: development
- id: high
value: HIGH
brief: High impact.
stability: development
- id: medium
value: MEDIUM
brief: Medium impact.
stability: development
- id: low
value: LOW
brief: Low impact.
stability: development
brief: |
Criticality of a destination workload indicates its importance to the business as specified in [AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type)
stability: development
- key: gcp.apphub_destination.service.environment_type
type:
members:
- id: production
value: PRODUCTION
brief: Production environment.
stability: development
- id: staging
value: STAGING
brief: Staging environment.
stability: development
- id: test
value: TEST
brief: Test environment.
stability: development
- id: development
value: DEVELOPMENT
brief: Development environment.
stability: development
brief: |
Software lifecycle stage of a destination service as defined [AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type_1)
stability: development
- key: gcp.apphub_destination.service.id
type: string
examples:
- my-service
brief: |
The name of the destination service as configured in AppHub.
stability: development
- key: gcp.apphub_destination.workload.criticality_type
type:
members:
- id: mission_critical
value: MISSION_CRITICAL
brief: Mission critical service.
stability: development
- id: high
value: HIGH
brief: High impact.
stability: development
- id: medium
value: MEDIUM
brief: Medium impact.
stability: development
- id: low
value: LOW
brief: Low impact.
stability: development
brief: |
Criticality of a destination workload indicates its importance to the business as specified in [AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type)
stability: development
- key: gcp.apphub_destination.workload.environment_type
type:
members:
- id: production
value: PRODUCTION
brief: Production environment.
stability: development
- id: staging
value: STAGING
brief: Staging environment.
stability: development
- id: test
value: TEST
brief: Test environment.
stability: development
- id: development
value: DEVELOPMENT
brief: Development environment.
stability: development
brief: |
Environment of a destination workload is the stage of a software lifecycle as provided in the [AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type_1)
stability: development
- key: gcp.apphub_destination.workload.id
type: string
examples:
- my-workload
brief: |
The name of the destination workload as configured in AppHub.
stability: development
- key: gcp.client.service
type: string
examples:
- appengine
- run
- firestore
- alloydb
- spanner
brief: Identifies the Google Cloud service for which the official client library is intended.
note: |
Intended to be a stable identifier for Google Cloud client libraries that is uniform across implementation languages. The value should be derived from the canonical service domain for the service; for example, 'foo.googleapis.com' should result in a value of 'foo'.
stability: development
- key: gcp.cloud_run.job.execution
type: string
examples:
- job-name-xxxx
- sample-job-mdw84
brief: |
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.
stability: development
- key: gcp.cloud_run.job.task_index
type: int
examples:
- 0
- 1
brief: |
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.
stability: development
- key: gcp.gce.instance.hostname
type: string
examples:
- my-host1234.example.com
- sample-vm.us-west1-b.c.my-project.internal
brief: |
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).
stability: development
- key: gcp.gce.instance.name
type: string
examples:
- instance-1
- my-vm-name
brief: |
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).
stability: development
- key: gen_ai.agent.description
type: string
examples:
- Helps with math problems
- Generates fiction stories
brief: Free-form description of the GenAI agent provided by the application.
stability: development
- key: gen_ai.agent.id
type: string
examples:
- asst_5j66UpCpwteGg4YSxUnt7lPY
brief: The unique identifier of the GenAI agent.
stability: development
- key: gen_ai.agent.name
type: string
examples:
- Math Tutor
- Fiction Writer
brief: Human-readable name of the GenAI agent provided by the application.
stability: development
- key: gen_ai.completion
type: string
examples:
- '[{''role'': ''assistant'', ''content'': ''The capital of France is Paris.''}]'
brief: Deprecated, use Event API to report completions contents.
stability: development
deprecated:
reason: obsoleted
note: Removed, no replacement at this time.
- key: gen_ai.conversation.id
type: string
examples:
- conv_5j66UpCpwteGg4YSxUnt7lPY
brief: The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation.
note: |
Instrumentations SHOULD populate conversation id when they have it readily available
for a given operation, for example:
- when client framework being instrumented manages conversation history
(see [LlamaIndex chat store](https://docs.llamaindex.ai/en/stable/module_guides/storing/chat_stores/))
- when instrumenting GenAI client libraries that maintain conversation on the backend side
(see [AWS Bedrock agent sessions](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-session-state.html),
[OpenAI Assistant threads](https://platform.openai.com/docs/api-reference/threads))
Application developers that manage conversation history MAY add conversation id to GenAI and other
spans or logs using custom span or log record processors or hooks provided by instrumentation
libraries.
stability: development
- key: gen_ai.conversation.id
type: string
examples:
- conv_5j66UpCpwteGg4YSxUnt7lPY
brief: The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation.
stability: development
- key: gen_ai.data_source.id
type: string
examples:
- H7STPQYOND
brief: The data source identifier.
note: |
Data sources are used by AI agents and RAG applications to store grounding data. A data source may be an external database, object store, document collection, website, or any other storage system used by the GenAI agent or application. The `gen_ai.data_source.id` SHOULD match the identifier used by the GenAI system rather than a name specific to the external storage, such as a database or object store. Semantic conventions referencing `gen_ai.data_source.id` MAY also leverage additional attributes, such as `db.*`, to further identify and describe the data source.
stability: development
- key: gen_ai.embeddings.dimension.count
type: int
examples:
- 512
- 1024
brief: The number of dimensions the resulting output embeddings should have.
stability: development
- key: gen_ai.evaluation.explanation
type: string
examples:
- The response is factually accurate but lacks sufficient detail to fully address the question.
brief: A free-form explanation for the assigned score provided by the evaluator.
stability: development
- key: gen_ai.evaluation.name
type: string
examples:
- Relevance
- IntentResolution
brief: The name of the evaluation metric used for the GenAI response.
stability: development
- key: gen_ai.evaluation.score.label
type: string
examples:
- relevant
- not_relevant
- correct
- incorrect
- pass
- fail
brief: Human readable label for evaluation.
note: |
This attribute provides a human-readable interpretation of the evaluation score produced by an evaluator. For example, a score value of 1 could mean "relevant" in one evaluation system and "not relevant" in another, depending on the scoring range and evaluator. The label SHOULD have low cardinality. Possible values depend on the evaluation metric and evaluator used; implementations SHOULD document the possible values.
stability: development
- key: gen_ai.evaluation.score.value
type: double
examples:
- 4.0
brief: The evaluation score returned by the evaluator.
stability: development
- key: gen_ai.input.messages
type: any
examples:
- |
[
{
"role": "user",
"parts": [
{
"type": "text",
"content": "Weather in Paris?"
}
]
},
{
"role": "assistant",
"parts": [
{
"type": "tool_call",
"id": "call_VSPygqKTWdrhaFErNvMV18Yl",
"name": "get_weather",
"arguments": {
"location": "Paris"
}
}
]
},
{
"role": "tool",
"parts": [
{
"type": "tool_call_response",
"id": " call_VSPygqKTWdrhaFErNvMV18Yl",
"result": "rainy, 57°F"
}
]
}
]
brief: |
The chat history provided to the model as an input.
note: |
Instrumentations MUST follow [Input messages JSON schema](/docs/gen-ai/gen-ai-input-messages.json).
When the attribute is recorded on events, it MUST be recorded in structured
form. When recorded on spans, it MAY be recorded as a JSON string if structured
format is not supported and SHOULD be recorded in structured form otherwise.
Messages MUST be provided in the order they were sent to the model.
Instrumentations MAY provide a way for users to filter or truncate
input messages.
> [!Warning]
> This attribute is likely to contain sensitive information including user/PII data.
See [Recording content on attributes](/docs/gen-ai/gen-ai-spans.md#recording-content-on-attributes)
section for more details.
stability: development
- key: gen_ai.openai.request.response_format
type:
members:
- id: text
value: text
brief: Text response format
stability: development
- id: json_object
value: json_object
brief: JSON object response format
stability: development
- id: json_schema
value: json_schema
brief: JSON schema response format
stability: development
brief: |
Deprecated, use `gen_ai.output.type`.
stability: development
deprecated:
reason: renamed
renamed_to: gen_ai.output.type
note: Replaced by `gen_ai.output.type`.
- key: gen_ai.openai.request.seed
type: int
examples:
- 100
brief: Deprecated, use `gen_ai.request.seed`.
stability: development
deprecated:
reason: renamed
renamed_to: gen_ai.request.seed
note: Replaced by `gen_ai.request.seed`.
- key: gen_ai.openai.request.service_tier
type:
members:
- id: auto
value: auto
brief: The system will utilize scale tier credits until they are exhausted.
stability: development
- id: default
value: default
brief: The system will utilize the default scale tier.
stability: development
brief: Deprecated, use `openai.request.service_tier`.
stability: development
deprecated:
reason: renamed
renamed_to: openai.request.service_tier
note: Replaced by `openai.request.service_tier`.
- key: gen_ai.openai.response.service_tier
type: string
examples:
- scale
- default
brief: Deprecated, use `openai.response.service_tier`.
stability: development
deprecated:
reason: renamed
renamed_to: openai.response.service_tier
note: Replaced by `openai.response.service_tier`.
- key: gen_ai.openai.response.system_fingerprint
type: string
examples:
- fp_44709d6fcb
brief: Deprecated, use `openai.response.system_fingerprint`.
stability: development
deprecated:
reason: renamed
renamed_to: openai.response.system_fingerprint
note: Replaced by `openai.response.system_fingerprint`.
- key: gen_ai.operation.name
type:
members:
- id: chat
value: chat
brief: Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat)
stability: development
- id: generate_content
value: generate_content
brief: Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content)
stability: development
- id: text_completion
value: text_completion
brief: Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions)
stability: development
- id: embeddings
value: embeddings
brief: Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create)
stability: development
- id: create_agent
value: create_agent
brief: Create GenAI agent
stability: development
- id: invoke_agent
value: invoke_agent
brief: Invoke GenAI agent
stability: development
- id: execute_tool
value: execute_tool
brief: Execute a tool
stability: development
brief: The name of the operation being performed.
note: |
If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
stability: development
- key: gen_ai.output.messages
type: any
examples:
- |
[
{
"role": "assistant",
"parts": [
{
"type": "text",
"content": "The weather in Paris is currently rainy with a temperature of 57°F."
}
],
"finish_reason": "stop"
}
]
brief: Messages returned by the model where each message represents a specific model response (choice, candidate).
note: |
Instrumentations MUST follow [Output messages JSON schema](/docs/gen-ai/gen-ai-output-messages.json)
Each message represents a single output choice/candidate generated by
the model. Each message corresponds to exactly one generation
(choice/candidate) and vice versa - one choice cannot be split across
multiple messages or one message cannot contain parts from multiple choices.
When the attribute is recorded on events, it MUST be recorded in structured
form. When recorded on spans, it MAY be recorded as a JSON string if structured
format is not supported and SHOULD be recorded in structured form otherwise.
Instrumentations MAY provide a way for users to filter or truncate
output messages.
> [!Warning]
> This attribute is likely to contain sensitive information including user/PII data.
See [Recording content on attributes](/docs/gen-ai/gen-ai-spans.md#recording-content-on-attributes)
section for more details.
stability: development
- key: gen_ai.output.type
type:
members:
- id: text
value: text
brief: Plain text
stability: development
- id: json
value: json
brief: JSON object with known or unknown schema
stability: development
- id: image
value: image
brief: Image
stability: development
- id: speech
value: speech
brief: Speech
stability: development
brief: Represents the content type requested by the client.
note: |
This attribute SHOULD be set to the output type requested by the client:
- `json` for structured outputs with defined or undefined schema
- `image` for image output
- `speech` for speech output
- `text` for plain text output
The attribute specifies the output modality and not the actual output format.
For example, if an image is requested, the actual output could be a
URL pointing to an image file.
Additional output format details may be recorded in the future in the
`gen_ai.output.{type}.*` attributes.
stability: development
- key: gen_ai.output.type
type:
members:
- id: text
value: text
brief: Plain text
stability: development
- id: json
value: json
brief: JSON object with known or unknown schema
stability: development
- id: image
value: image
brief: Image
stability: development
- id: speech
value: speech
brief: Speech
stability: development
brief: Represents the content type requested by the client.
note: |
This attribute SHOULD be used when the client requests output of a specific type. The model may return zero or more outputs of this type.
This attribute specifies the output modality and not the actual output format. For example, if an image is requested, the actual output could be a URL pointing to an image file.
Additional output format details may be recorded in the future in the `gen_ai.output.{type}.*` attributes.
stability: development
- key: gen_ai.prompt
type: string
examples:
- '[{''role'': ''user'', ''content'': ''What is the capital of France?''}]'
brief: Deprecated, use Event API to report prompt contents.
stability: development
deprecated:
reason: obsoleted
note: Removed, no replacement at this time.
- key: gen_ai.provider.name
type:
members:
- id: openai
value: openai
brief: '[OpenAI](https://openai.com/)'
stability: development
- id: gcp.gen_ai
value: gcp.gen_ai
brief: Any Google generative AI endpoint
note: |
May be used when specific backend is unknown.
stability: development
- id: gcp.vertex_ai
value: gcp.vertex_ai
brief: '[Vertex AI](https://cloud.google.com/vertex-ai)'
note: |
Used when accessing the 'aiplatform.googleapis.com' endpoint.
stability: development
- id: gcp.gemini
value: gcp.gemini
brief: '[Gemini](https://cloud.google.com/products/gemini)'
note: |
Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
stability: development
- id: anthropic
value: anthropic
brief: '[Anthropic](https://www.anthropic.com/)'
stability: development
- id: cohere
value: cohere
brief: '[Cohere](https://cohere.com/)'
stability: development
- id: azure.ai.inference
value: azure.ai.inference
brief: Azure AI Inference
stability: development
- id: azure.ai.openai
value: azure.ai.openai
brief: '[Azure OpenAI](https://azure.microsoft.com/products/ai-services/openai-service/)'
stability: development
- id: ibm.watsonx.ai
value: ibm.watsonx.ai
brief: '[IBM Watsonx AI](https://www.ibm.com/products/watsonx-ai)'
stability: development
- id: aws.bedrock
value: aws.bedrock
brief: '[AWS Bedrock](https://aws.amazon.com/bedrock)'
stability: development
- id: perplexity
value: perplexity
brief: '[Perplexity](https://www.perplexity.ai/)'
stability: development
- id: x_ai
value: x_ai
brief: '[xAI](https://x.ai/)'
stability: development
- id: deepseek
value: deepseek
brief: '[DeepSeek](https://www.deepseek.com/)'
stability: development
- id: groq
value: groq
brief: '[Groq](https://groq.com/)'
stability: development
- id: mistral_ai
value: mistral_ai
brief: '[Mistral AI](https://mistral.ai/)'
stability: development
brief: The Generative AI provider as identified by the client or server instrumentation.
note: |
The attribute SHOULD be set based on the instrumentation's best
knowledge and may differ from the actual model provider.
Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
are accessible using the OpenAI REST API and corresponding client libraries,
but may proxy or host models from different providers.
The `gen_ai.request.model`, `gen_ai.response.model`, and `server.address`
attributes may help identify the actual system in use.
The `gen_ai.provider.name` attribute acts as a discriminator that
identifies the GenAI telemetry format flavor specific to that provider
within GenAI semantic conventions.
It SHOULD be set consistently with provider-specific attributes and signals.
For example, GenAI spans, metrics, and events related to AWS Bedrock
should have the `gen_ai.provider.name` set to `aws.bedrock` and include
applicable `aws.bedrock.*` attributes and are not expected to include
`openai.*` attributes.
stability: development
- key: gen_ai.request.choice.count
type: int
examples:
- 3
brief: The target number of candidate completions to return.
stability: development
- key: gen_ai.request.encoding_formats
type: string[]
examples:
- - base64
- - float
- binary
brief: The encoding formats requested in an embeddings operation, if specified.
note: |
In some GenAI systems the encoding formats are called embedding types. Also, some GenAI systems only accept a single format per request.
stability: development
- key: gen_ai.request.frequency_penalty
type: double
examples:
- 0.1
brief: The frequency penalty setting for the GenAI request.
stability: development
- key: gen_ai.request.max_tokens
type: int
examples:
- 100
brief: The maximum number of tokens the model generates for a request.
stability: development
- key: gen_ai.request.model
type: string
examples: gpt-4
brief: The name of the GenAI model a request is being made to.
stability: development
- key: gen_ai.request.model
type: string
examples: gpt-4
brief: The name of the GenAI model a request is being made to.
note: |
The name of the GenAI model a request is being made to. If the model is supplied by a vendor, then the value must be the exact name of the model requested. If the model is a fine-tuned custom model, the value should have a more specific name than the base model that's been fine-tuned.
stability: development
- key: gen_ai.request.presence_penalty
type: double
examples:
- 0.1
brief: The presence penalty setting for the GenAI request.
stability: development
- key: gen_ai.request.seed
type: int
examples:
- 100
brief: Requests with same seed value more likely to return same result.
stability: development
- key: gen_ai.request.stop_sequences
type: string[]
examples:
- - forest
- lived
brief: List of sequences that the model will use to stop generating further tokens.
stability: development
- key: gen_ai.request.temperature
type: double
examples:
- 0.0
brief: The temperature setting for the GenAI request.
stability: development
- key: gen_ai.request.top_k
type: double
examples:
- 1.0
brief: The top_k sampling setting for the GenAI request.
stability: development
- key: gen_ai.request.top_p
type: double
examples:
- 1.0
brief: The top_p sampling setting for the GenAI request.
stability: development
- key: gen_ai.response.finish_reasons
type: string[]
examples:
- - stop
- - stop
- length
brief: Array of reasons the model stopped generating tokens, corresponding to each generation received.
stability: development
- key: gen_ai.response.id
type: string
examples:
- chatcmpl-123
brief: The unique identifier for the completion.
note: |
The unique identifier assigned to the specific
completion being evaluated. This attribute helps correlate the evaluation
event with the corresponding operation when span id is not available.
stability: development
- key: gen_ai.response.id
type: string
examples:
- chatcmpl-123
brief: The unique identifier for the completion.
stability: development
- key: gen_ai.response.model
type: string
examples:
- gpt-4-0613
brief: The name of the model that generated the response.
stability: development
- key: gen_ai.response.model
type: string
examples:
- gpt-4-0613
brief: The name of the model that generated the response.
note: |
If available. The name of the GenAI model that provided the response. If the model is supplied by a vendor, then the value must be the exact name of the model actually used. If the model is a fine-tuned custom model, the value should have a more specific name than the base model that's been fine-tuned.
stability: development
- key: gen_ai.system
type:
members:
- id: openai
value: openai
brief: OpenAI
stability: development
- id: gcp.gen_ai
value: gcp.gen_ai
brief: Any Google generative AI endpoint
note: |
May be used when specific backend is unknown. May use common attributes prefixed with 'gcp.gen_ai.'.
stability: development
- id: gcp.vertex_ai
value: gcp.vertex_ai
brief: Vertex AI
note: |
This refers to the 'aiplatform.googleapis.com' endpoint. May use common attributes prefixed with 'gcp.gen_ai.'.
stability: development
- id: gcp.gemini
value: gcp.gemini
brief: Gemini
note: |
This refers to the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API. May use common attributes prefixed with 'gcp.gen_ai.'.
stability: development
- id: vertex_ai
value: vertex_ai
brief: Vertex AI
stability: development
deprecated:
reason: renamed
renamed_to: gcp.vertex_ai
note: Replaced by `gcp.vertex_ai`.
- id: gemini
value: gemini
brief: Gemini
stability: development
deprecated:
reason: renamed
renamed_to: gcp.gemini
note: Replaced by `gcp.gemini`.
- id: anthropic
value: anthropic
brief: Anthropic
stability: development
- id: cohere
value: cohere
brief: Cohere
stability: development
- id: az.ai.inference
value: az.ai.inference
brief: Azure AI Inference
stability: development
deprecated:
reason: renamed
renamed_to: azure.ai.inference
note: Replaced by `azure.ai.inference`.
- id: az.ai.openai
value: az.ai.openai
brief: Azure OpenAI
stability: development
deprecated:
reason: renamed
renamed_to: azure.ai.openai
note: Replaced by `azure.ai.openai`.
- id: azure.ai.inference
value: azure.ai.inference
brief: Azure AI Inference
stability: development
- id: azure.ai.openai
value: azure.ai.openai
brief: Azure OpenAI
stability: development
- id: ibm.watsonx.ai
value: ibm.watsonx.ai
brief: IBM Watsonx AI
stability: development
- id: aws.bedrock
value: aws.bedrock
brief: AWS Bedrock
stability: development
- id: perplexity
value: perplexity
brief: Perplexity
stability: development
- id: xai
value: xai
brief: xAI
stability: development
- id: deepseek
value: deepseek
brief: DeepSeek
stability: development
- id: groq
value: groq
brief: Groq
stability: development
- id: mistral_ai
value: mistral_ai
brief: Mistral AI
stability: development
brief: Deprecated, use `gen_ai.provider.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: gen_ai.provider.name
note: Replaced by `gen_ai.provider.name`.
- key: gen_ai.system_instructions
type: any
examples:
- |
[
{
"type": "text",
"content": "You are an Agent that greet users, always use greetings tool to respond"
}
]
- |
[
{
"type": "text",
"content": "You are a language translator."
},
{
"type": "text",
"content": "Your mission is to translate text in English to French."
}
]
brief: The system message or instructions provided to the GenAI model separately from the chat history.
stability: development
- key: gen_ai.system_instructions
type: any
examples:
- |
[
{
"type": "text",
"content": "You are an Agent that greet users, always use greetings tool to respond"
}
]
- |
[
{
"type": "text",
"content": "You are a language translator."
},
{
"type": "text",
"content": "Your mission is to translate text in English to French."
}
]
brief: The system message or instructions provided to the GenAI model separately from the chat history.
note: |
This attribute SHOULD be used when the corresponding provider or API
allows to provide system instructions or messages separately from the
chat history.
Instructions that are part of the chat history SHOULD be recorded in
`gen_ai.input.messages` attribute instead.
Instrumentations MUST follow [System instructions JSON schema](/docs/gen-ai/gen-ai-system-instructions.json).
When recorded on spans, it MAY be recorded as a JSON string if structured
format is not supported and SHOULD be recorded in structured form otherwise.
Instrumentations MAY provide a way for users to filter or truncate
system instructions.
> [!Warning]
> This attribute may contain sensitive information.
See [Recording content on attributes](/docs/gen-ai/gen-ai-spans.md#recording-content-on-attributes)
section for more details.
stability: development
- key: gen_ai.token.type
type:
members:
- id: input
value: input
brief: Input tokens (prompt, input, etc.)
stability: development
- id: completion
value: output
brief: Output tokens (completion, response, etc.)
stability: development
deprecated:
reason: renamed
renamed_to: output
note: Replaced by `output`.
- id: output
value: output
brief: Output tokens (completion, response, etc.)
stability: development
examples:
- input
- output
brief: The type of token being counted.
stability: development
- key: gen_ai.tool.call.arguments
type: any
examples:
- |
{
"location": "San Francisco?",
"date": "2025-10-01"
}
brief: Parameters passed to the tool call.
note: |
> [!WARNING]
> This attribute may contain sensitive information.
It's expected to be an object - in case a serialized string is available
to the instrumentation, the instrumentation SHOULD do the best effort to
deserialize it to an object. When recorded on spans, it MAY be recorded as a JSON string if structured format is not supported and SHOULD be recorded in structured form otherwise.
stability: development
- key: gen_ai.tool.call.id
type: string
examples:
- call_mszuSIzqtI65i1wAUOE8w5H4
brief: The tool call identifier.
stability: development
- key: gen_ai.tool.call.result
type: any
examples:
- |
{
"temperature_range": {
"high": 75,
"low": 60
},
"conditions": "sunny"
}
brief: The result returned by the tool call (if any and if execution was successful).
note: |
> [!WARNING]
> This attribute may contain sensitive information.
It's expected to be an object - in case a serialized string is available
to the instrumentation, the instrumentation SHOULD do the best effort to
deserialize it to an object. When recorded on spans, it MAY be recorded as a JSON string if structured format is not supported and SHOULD be recorded in structured form otherwise.
stability: development
- key: gen_ai.tool.definitions
type: any
examples:
- |
[
{
"type": "function",
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": [
"celsius",
"fahrenheit"
]
}
},
"required": [
"location",
"unit"
]
}
}
]
brief: The list of source system tool definitions available to the GenAI agent or model.
note: |
The value of this attribute matches source system tool definition format.
It's expected to be an array of objects where each object represents a tool definition. In case a serialized string is available
to the instrumentation, the instrumentation SHOULD do the best effort to
deserialize it to an array. When recorded on spans, it MAY be recorded as a JSON string if structured format is not supported and SHOULD be recorded in structured form otherwise.
Since this attribute could be large, it's NOT RECOMMENDED to populate
it by default. Instrumentations MAY provide a way to enable
populating this attribute.
stability: development
- key: gen_ai.tool.description
type: string
examples:
- Multiply two numbers
brief: The tool description.
stability: development
- key: gen_ai.tool.name
type: string
examples:
- Flights
brief: Name of the tool utilized by the agent.
stability: development
- key: gen_ai.tool.type
type: string
examples:
- function
- extension
- datastore
brief: Type of the tool utilized by the agent
note: |
Extension: A tool executed on the agent-side to directly call external APIs, bridging the gap between the agent and real-world systems.
Agent-side operations involve actions that are performed by the agent on the server or within the agent's controlled environment.
Function: A tool executed on the client-side, where the agent generates parameters for a predefined function, and the client executes the logic.
Client-side operations are actions taken on the user's end or within the client application.
Datastore: A tool used by the agent to access and query structured or unstructured external data for retrieval-augmented tasks or knowledge updates.
stability: development
- key: gen_ai.usage.completion_tokens
type: int
examples:
- 42
brief: Deprecated, use `gen_ai.usage.output_tokens` instead.
stability: development
deprecated:
reason: renamed
renamed_to: gen_ai.usage.output_tokens
note: Replaced by `gen_ai.usage.output_tokens`.
- key: gen_ai.usage.input_tokens
type: int
examples:
- 100
brief: The number of tokens used in the GenAI input (prompt).
stability: development
- key: gen_ai.usage.input_tokens
type: int
examples:
- 100
brief: |
The number of prompt tokens as reported in the usage prompt_tokens property of the response.
stability: development
- key: gen_ai.usage.output_tokens
type: int
examples:
- 180
brief: |
The number of completion tokens as reported in the usage completion_tokens property of the response.
stability: development
- key: gen_ai.usage.output_tokens
type: int
examples:
- 180
brief: The number of tokens used in the GenAI response (completion).
stability: development
- key: gen_ai.usage.prompt_tokens
type: int
examples:
- 42
brief: Deprecated, use `gen_ai.usage.input_tokens` instead.
stability: development
deprecated:
reason: renamed
renamed_to: gen_ai.usage.input_tokens
note: Replaced by `gen_ai.usage.input_tokens`.
- key: geo.continent.code
type:
members:
- id: af
value: AF
brief: Africa
stability: development
- id: an
value: AN
brief: Antarctica
stability: development
- id: as
value: AS
brief: Asia
stability: development
- id: eu
value: EU
brief: Europe
stability: development
- id: na
value: NA
brief: North America
stability: development
- id: oc
value: OC
brief: Oceania
stability: development
- id: sa
value: SA
brief: South America
stability: development
brief: |
Two-letter code representing continent’s name.
stability: development
- key: geo.country.iso_code
type: string
examples:
- CA
brief: |
Two-letter ISO Country Code ([ISO 3166-1 alpha2](https://wikipedia.org/wiki/ISO_3166-1#Codes)).
stability: development
- key: geo.locality.name
type: string
examples:
- Montreal
- Berlin
brief: |
Locality name. Represents the name of a city, town, village, or similar populated place.
stability: development
- key: geo.location.lat
type: double
examples:
- 45.505918
brief: |
Latitude of the geo location in [WGS84](https://wikipedia.org/wiki/World_Geodetic_System#WGS84).
stability: development
- key: geo.location.lon
type: double
examples:
- -73.61483
brief: |
Longitude of the geo location in [WGS84](https://wikipedia.org/wiki/World_Geodetic_System#WGS84).
stability: development
- key: geo.postal_code
type: string
examples:
- '94040'
brief: |
Postal code associated with the location. Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country.
stability: development
- key: geo.region.iso_code
type: string
examples:
- CA-QC
brief: |
Region ISO code ([ISO 3166-2](https://wikipedia.org/wiki/ISO_3166-2)).
stability: development
- key: go.memory.type
type:
members:
- id: stack
value: stack
brief: Memory allocated from the heap that is reserved for stack space, whether or not it is currently in-use.
note: |
Computed from `/memory/classes/heap/stacks:bytes`.
stability: development
- id: other
value: other
brief: Memory used by the Go runtime, excluding other categories of memory usage described in this enumeration.
stability: development
examples:
- other
- stack
brief: The type of memory.
stability: development
- key: graphql.document
type: string
examples: 'query findBookById { bookById(id: ?) { name } }'
brief: The GraphQL document being executed.
note: The value may be sanitized to exclude sensitive information.
stability: development
- key: graphql.operation.name
type: string
examples: findBookById
brief: The name of the operation being executed.
stability: development
- key: graphql.operation.type
type:
members:
- id: query
value: query
brief: GraphQL query
stability: development
- id: mutation
value: mutation
brief: GraphQL mutation
stability: development
- id: subscription
value: subscription
brief: GraphQL subscription
stability: development
examples:
- query
- mutation
- subscription
brief: The type of the operation being executed.
stability: development
- key: heroku.app.id
type: string
examples:
- 2daa2797-e42b-4624-9322-ec3f968df4da
brief: |
Unique identifier for the application
stability: development
- key: heroku.release.commit
type: string
examples:
- e6134959463efd8966b20e75b913cafe3f5ec
brief: |
Commit hash for the current release
stability: development
- key: heroku.release.creation_timestamp
type: string
examples:
- 2022-10-23T18:00:42Z
brief: |
Time and date the release was created
stability: development
- key: host.arch
type:
members:
- id: amd64
value: amd64
brief: AMD64
stability: development
- id: arm32
value: arm32
brief: ARM32
stability: development
- id: arm64
value: arm64
brief: ARM64
stability: development
- id: ia64
value: ia64
brief: Itanium
stability: development
- id: ppc32
value: ppc32
brief: 32-bit PowerPC
stability: development
- id: ppc64
value: ppc64
brief: 64-bit PowerPC
stability: development
- id: s390x
value: s390x
brief: IBM z/Architecture
stability: development
- id: x86
value: x86
brief: 32-bit x86
stability: development
examples: s390x
brief: |
The CPU architecture the host system is running on.
stability: development
- key: host.arch
type:
members:
- id: amd64
value: amd64
brief: AMD64
stability: development
- id: arm32
value: arm32
brief: ARM32
stability: development
- id: arm64
value: arm64
brief: ARM64
stability: development
- id: ia64
value: ia64
brief: Itanium
stability: development
- id: ppc32
value: ppc32
brief: 32-bit PowerPC
stability: development
- id: ppc64
value: ppc64
brief: 64-bit PowerPC
stability: development
- id: s390x
value: s390x
brief: IBM z/Architecture
stability: development
- id: x86
value: x86
brief: 32-bit x86
stability: development
brief: |
The CPU architecture the host system is running on.
stability: development
- key: host.cpu.cache.l2.size
type: int
examples:
- 12288000
brief: |
The amount of level 2 memory cache available to the processor (in Bytes).
stability: development
- key: host.cpu.family
type: string
examples:
- '6'
- PA-RISC 1.1e
brief: |
Family or generation of the CPU.
stability: development
- key: host.cpu.model.id
type: string
examples:
- '6'
- 9000/778/B180L
brief: |
Model identifier. It provides more granular information about the CPU, distinguishing it from other CPUs within the same family.
stability: development
- key: host.cpu.model.name
type: string
examples:
- 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz
brief: |
Model designation of the processor.
stability: development
- key: host.cpu.stepping
type: string
examples:
- '1'
- r1p1
brief: |
Stepping or core revisions.
stability: development
- key: host.cpu.vendor.id
type: string
examples:
- GenuineIntel
brief: |
Processor manufacturer identifier. A maximum 12-character string.
note: |
[CPUID](https://wiki.osdev.org/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.
stability: development
- key: host.id
type: string
examples: SYSPLEX1-SYS1
brief: Unique host ID. On z/OS, SHOULD be the concatenation of sysplex name and SMFID, separated by a dash
stability: development
- key: host.id
type: string
examples:
- fdbf79e8af94cb7f9e8df36789187052
brief: |
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.
stability: development
- key: host.id
type: string
examples:
- fdbf79e8af94cb7f9e8df36789187052
brief: |
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.
note: |
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.
stability: development
- key: host.image.id
type: string
examples:
- ami-07b06b442921831e5
brief: |
VM image ID or host OS image ID. For Cloud, this value is from the provider.
stability: development
- key: host.image.name
type: string
examples:
- infra-ami-eks-worker-node-7d4ec78312
- CentOS-8-x86_64-1905
brief: |
Name of the VM image or OS install the host was instantiated from.
stability: development
- key: host.image.version
type: string
examples:
- '0.1'
brief: |
The version string of the VM image or host OS as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
stability: development
- key: host.ip
type: string[]
examples:
- - 192.168.1.140
- fe80::abc2:4a28:737a:609e
brief: |
Available IP addresses of the host, excluding loopback interfaces.
note: |
IPv4 Addresses MUST be specified in dotted-quad notation. IPv6 addresses MUST be specified in the [RFC 5952](https://www.rfc-editor.org/rfc/rfc5952.html) format.
stability: development
- key: host.mac
type: string[]
examples:
- - AC-DE-48-23-45-67
- AC-DE-48-23-45-67-01-9F
brief: |
Available MAC addresses of the host, excluding loopback interfaces.
note: |
MAC Addresses MUST be represented in [IEEE RA hexadecimal form](https://standards.ieee.org/wp-content/uploads/import/documents/tutorials/eui.pdf): as hyphen-separated octets in uppercase hexadecimal form from most to least significant.
stability: development
- key: host.name
type: string
examples: SYS1.DOMAIN.COM
brief: Name of the host. On z/OS, SHOULD be the full qualified hostname used to register the z/OS system in DNS.
stability: development
- key: host.name
type: string
examples:
- opentelemetry-test
brief: |
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.
stability: development
- key: host.type
type: string
examples:
- n1-standard-1
brief: |
Type of host. For Cloud, this must be the machine type.
stability: development
- key: http.client_ip
type: string
examples: 83.164.160.102
brief: Deprecated, use `client.address` instead.
stability: development
deprecated:
reason: renamed
renamed_to: client.address
note: Replaced by `client.address`.
- key: http.connection.state
type:
members:
- id: active
value: active
brief: active state.
stability: development
- id: idle
value: idle
brief: idle state.
stability: development
examples:
- active
- idle
brief: State of the HTTP connection in the HTTP connection pool.
stability: development
- key: http.flavor
type:
members:
- id: http_1_0
value: '1.0'
brief: HTTP/1.0
stability: development
- id: http_1_1
value: '1.1'
brief: HTTP/1.1
stability: development
- id: http_2_0
value: '2.0'
brief: HTTP/2
stability: development
- id: http_3_0
value: '3.0'
brief: HTTP/3
stability: development
- id: spdy
value: SPDY
brief: SPDY protocol.
stability: development
- id: quic
value: QUIC
brief: QUIC protocol.
stability: development
brief: Deprecated, use `network.protocol.name` and `network.protocol.version` instead.
stability: development
deprecated:
reason: uncategorized
note: Split into `network.protocol.name` and `network.protocol.version`
- key: http.host
type: string
examples:
- www.example.org
brief: Deprecated, use one of `server.address`, `client.address` or `http.request.header.host` instead, depending on the usage.
stability: development
deprecated:
reason: uncategorized
note: |
Replaced by one of `server.address`, `client.address` or `http.request.header.host`, depending on the usage.
- key: http.method
type: string
examples:
- GET
- POST
- HEAD
brief: Deprecated, use `http.request.method` instead.
stability: development
deprecated:
reason: renamed
renamed_to: http.request.method
note: Replaced by `http.request.method`.
- key: http.request.body.size
type: int
examples: 3495
brief: |
The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.
stability: development
- key: http.request.header
type: template[string[]]
examples:
- - application/json
- - 1.2.3.4
- 1.2.3.5
brief: |
HTTP request headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values.
note: |
Instrumentations SHOULD require an explicit configuration of which headers are to be captured.
Including all request headers can be a security risk - explicit configuration helps avoid leaking sensitive information.
The `User-Agent` header is already captured in the `user_agent.original` attribute.
Users MAY explicitly configure instrumentations to capture them even though it is not recommended.
The attribute value MUST consist of either multiple header values as an array of strings
or a single-item array containing a possibly comma-concatenated string, depending on the way
the HTTP library provides access to headers.
Examples:
- A header `Content-Type: application/json` SHOULD be recorded as the `http.request.header.content-type`
attribute with value `["application/json"]`.
- A header `X-Forwarded-For: 1.2.3.4, 1.2.3.5` SHOULD be recorded as the `http.request.header.x-forwarded-for`
attribute with value `["1.2.3.4", "1.2.3.5"]` or `["1.2.3.4, 1.2.3.5"]` depending on the HTTP library.
stability: stable
- key: http.request.method
type:
members:
- id: connect
value: CONNECT
brief: CONNECT method.
stability: stable
- id: delete
value: DELETE
brief: DELETE method.
stability: stable
- id: get
value: GET
brief: GET method.
stability: stable
- id: head
value: HEAD
brief: HEAD method.
stability: stable
- id: options
value: OPTIONS
brief: OPTIONS method.
stability: stable
- id: patch
value: PATCH
brief: PATCH method.
stability: stable
- id: post
value: POST
brief: POST method.
stability: stable
- id: put
value: PUT
brief: PUT method.
stability: stable
- id: trace
value: TRACE
brief: TRACE method.
stability: stable
- id: query
value: QUERY
brief: QUERY method.
stability: development
- id: other
value: _OTHER
brief: Any HTTP method that the instrumentation has no prior knowledge of.
stability: stable
examples:
- GET
- POST
- HEAD
brief: HTTP request method.
note: |
HTTP request method value SHOULD be "known" to the instrumentation.
By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).
If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods
(this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults).
HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
Tracing instrumentations that do so, MUST also set `http.request.method_original` to the original value.
stability: stable
- key: http.request.method_original
type: string
examples:
- GeT
- ACL
- foo
brief: Original HTTP method sent by the client in the request line.
stability: stable
- key: http.request.resend_count
type: int
examples: 3
brief: |
The ordinal number of request resending attempt (for any reason, including redirects).
note: |
The resend count SHOULD be updated each time an HTTP request gets resent by the client, regardless of what was the cause of the resending (e.g. redirection, authorization failure, 503 Server Unavailable, network issues, or any other).
stability: stable
- key: http.request.size
type: int
examples: 1437
brief: |
The total size of the request in bytes. This should be the total number of bytes sent over the wire, including the request line (HTTP/1.1), framing (HTTP/2 and HTTP/3), headers, and request body if any.
stability: development
- key: http.request_content_length
type: int
examples: 3495
brief: Deprecated, use `http.request.header.content-length` instead.
stability: development
deprecated:
reason: uncategorized
note: Replaced by `http.request.header.content-length`.
- key: http.request_content_length_uncompressed
type: int
examples: 5493
brief: Deprecated, use `http.request.body.size` instead.
stability: development
deprecated:
reason: renamed
renamed_to: http.request.body.size
note: Replaced by `http.request.body.size`.
- key: http.response.body.size
type: int
examples: 3495
brief: |
The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.
stability: development
- key: http.response.header
type: template[string[]]
examples:
- - application/json
- - abc
- def
brief: |
HTTP response headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values.
note: |
Instrumentations SHOULD require an explicit configuration of which headers are to be captured.
Including all response headers can be a security risk - explicit configuration helps avoid leaking sensitive information.
Users MAY explicitly configure instrumentations to capture them even though it is not recommended.
The attribute value MUST consist of either multiple header values as an array of strings
or a single-item array containing a possibly comma-concatenated string, depending on the way
the HTTP library provides access to headers.
Examples:
- A header `Content-Type: application/json` header SHOULD be recorded as the `http.request.response.content-type`
attribute with value `["application/json"]`.
- A header `My-custom-header: abc, def` header SHOULD be recorded as the `http.response.header.my-custom-header`
attribute with value `["abc", "def"]` or `["abc, def"]` depending on the HTTP library.
stability: stable
- key: http.response.size
type: int
examples: 1437
brief: |
The total size of the response in bytes. This should be the total number of bytes sent over the wire, including the status line (HTTP/1.1), framing (HTTP/2 and HTTP/3), headers, and response body and trailers if any.
stability: development
- key: http.response.status_code
type: int
examples:
- 200
brief: The HTTP status code of the last HTTP request performed in scope of this export call.
stability: stable
- key: http.response.status_code
type: int
examples:
- 200
brief: '[HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).'
stability: stable
- key: http.response_content_length
type: int
examples: 3495
brief: Deprecated, use `http.response.header.content-length` instead.
stability: development
deprecated:
reason: uncategorized
note: Replaced by `http.response.header.content-length`.
- key: http.response_content_length_uncompressed
type: int
examples: 5493
brief: Deprecated, use `http.response.body.size` instead.
stability: development
deprecated:
reason: renamed
renamed_to: http.response.body.size
note: Replaced by `http.response.body.size`.
- key: http.route
type: string
examples:
- /users/:userID?
- my-controller/my-action/{id?}
brief: |
The matched route template for the request. This MUST be low-cardinality and include all static path segments, with dynamic path segments represented with placeholders.
note: |
MUST NOT be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it.
SHOULD include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one.
A static path segment is a part of the route template with a fixed, low-cardinality value. This includes literal strings like `/users/` and placeholders that
are constrained to a finite, predefined set of values, e.g. `{controller}` or `{action}`.
A dynamic path segment is a placeholder for a value that can have high cardinality and is not constrained to a predefined list like static path segments.
Instrumentations SHOULD use routing information provided by the corresponding web framework. They SHOULD pick the most precise source of routing information and MAY
support custom route formatting. Instrumentations SHOULD document the format and the API used to obtain the route string.
stability: stable
- key: http.scheme
type: string
examples:
- http
- https
brief: Deprecated, use `url.scheme` instead.
stability: development
deprecated:
reason: renamed
renamed_to: url.scheme
note: Replaced by `url.scheme`.
- key: http.server_name
type: string
examples:
- example.com
brief: Deprecated, use `server.address` instead.
stability: development
deprecated:
reason: renamed
renamed_to: server.address
note: Replaced by `server.address`.
- key: http.status_code
type: int
examples:
- 200
brief: Deprecated, use `http.response.status_code` instead.
stability: development
deprecated:
reason: renamed
renamed_to: http.response.status_code
note: Replaced by `http.response.status_code`.
- key: http.target
type: string
examples:
- /search?q=OpenTelemetry#SemConv
brief: Deprecated, use `url.path` and `url.query` instead.
stability: development
deprecated:
reason: obsoleted
note: Split to `url.path` and `url.query`.
- key: http.url
type: string
examples:
- https://www.foo.bar/search?q=OpenTelemetry#SemConv
brief: Deprecated, use `url.full` instead.
stability: development
deprecated:
reason: renamed
renamed_to: url.full
note: Replaced by `url.full`.
- key: http.user_agent
type: string
examples:
- CERN-LineMode/2.15 libwww/2.17b3
- Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1
brief: Deprecated, use `user_agent.original` instead.
stability: development
deprecated:
reason: renamed
renamed_to: user_agent.original
note: Replaced by `user_agent.original`.
- key: hw.battery.capacity
type: string
examples:
- 9.3Ah
- 50Wh
brief: |
Design capacity in Watts-hours or Amper-hours
stability: development
- key: hw.battery.chemistry
type: string
examples:
- Li-ion
- NiMH
brief: |
Battery [chemistry](https://schemas.dmtf.org/wbem/cim-html/2.31.0/CIM_Battery.html), e.g. Lithium-Ion, Nickel-Cadmium, etc.
stability: development
- key: hw.battery.state
type:
members:
- id: charging
value: charging
brief: Charging
stability: development
- id: discharging
value: discharging
brief: Discharging
stability: development
brief: |
The current state of the battery
note: |
The `hw.state` attribute should indicate the current state of the battery. It should be one of the predefined states such as "charging" or "discharging".
stability: development
- key: hw.battery.state
type:
members:
- id: charging
value: charging
brief: Charging
stability: development
- id: discharging
value: discharging
brief: Discharging
stability: development
brief: |
The current state of the battery
stability: development
- key: hw.bios_version
type: string
examples:
- 1.2.3
brief: |
BIOS version of the hardware component
stability: development
- key: hw.driver_version
type: string
examples:
- 10.2.1-3
brief: |
Driver version for the hardware component
stability: development
- key: hw.enclosure.type
type: string
examples:
- Computer
- Storage
- Switch
brief: |
Type of the enclosure (useful for modular systems)
stability: development
- key: hw.firmware_version
type: string
examples:
- 2.0.1
brief: |
Firmware version of the hardware component
stability: development
- key: hw.gpu.task
type:
members:
- id: decoder
value: decoder
brief: Decoder
stability: development
- id: encoder
value: encoder
brief: Encoder
stability: development
- id: general
value: general
brief: General
stability: development
brief: |
Type of task the GPU is performing
stability: development
- key: hw.gpu.task
type:
members:
- id: decoder
value: decoder
brief: Decoder
stability: development
- id: encoder
value: encoder
brief: Encoder
stability: development
- id: general
value: general
brief: General
stability: development
examples:
- decoder
- encoder
- general
brief: |
Type of task the GPU is performing
stability: development
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
- key: hw.limit_type
type:
members:
- id: critical
value: critical
brief: Critical
stability: development
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: high_critical
value: high.critical
brief: High Critical
stability: development
- id: high_degraded
value: high.degraded
brief: High Degraded
stability: development
- id: low_critical
value: low.critical
brief: Low Critical
stability: development
- id: low_degraded
value: low.degraded
brief: Low Degraded
stability: development
- id: max
value: max
brief: Maximum
stability: development
- id: throttled
value: throttled
brief: Throttled
stability: development
- id: turbo
value: turbo
brief: Turbo
stability: development
examples:
- throttled
- max
- turbo
brief: |
Type of limit for hardware components
stability: development
- key: hw.limit_type
type:
members:
- id: critical
value: critical
brief: Critical
stability: development
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: high_critical
value: high.critical
brief: High Critical
stability: development
- id: high_degraded
value: high.degraded
brief: High Degraded
stability: development
- id: low_critical
value: low.critical
brief: Low Critical
stability: development
- id: low_degraded
value: low.degraded
brief: Low Degraded
stability: development
- id: max
value: max
brief: Maximum
stability: development
- id: throttled
value: throttled
brief: Throttled
stability: development
- id: turbo
value: turbo
brief: Turbo
stability: development
examples:
- critical
- throttled
- degraded
brief: |
Represents battery charge level thresholds relevant to device operation and health. Each `limit_type` denotes a specific charge limit such as the minimum or maximum optimal charge, the shutdown threshold, or energy-saving thresholds. These values are typically provided by the hardware or firmware to guide safe and efficient battery usage.
stability: development
- key: hw.limit_type
type:
members:
- id: critical
value: critical
brief: Critical
stability: development
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: high_critical
value: high.critical
brief: High Critical
stability: development
- id: high_degraded
value: high.degraded
brief: High Degraded
stability: development
- id: low_critical
value: low.critical
brief: Low Critical
stability: development
- id: low_degraded
value: low.degraded
brief: Low Degraded
stability: development
- id: max
value: max
brief: Maximum
stability: development
- id: throttled
value: throttled
brief: Throttled
stability: development
- id: turbo
value: turbo
brief: Turbo
stability: development
examples:
- low.critical
- low.degraded
- high.degraded
- high.critical
brief: |
Type of limit for hardware components
stability: development
- key: hw.limit_type
type:
members:
- id: critical
value: critical
brief: Critical
stability: development
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: high_critical
value: high.critical
brief: High Critical
stability: development
- id: high_degraded
value: high.degraded
brief: High Degraded
stability: development
- id: low_critical
value: low.critical
brief: Low Critical
stability: development
- id: low_degraded
value: low.degraded
brief: Low Degraded
stability: development
- id: max
value: max
brief: Maximum
stability: development
- id: throttled
value: throttled
brief: Throttled
stability: development
- id: turbo
value: turbo
brief: Turbo
stability: development
examples:
- max
- critical
- throttled
brief: |
Type of limit for hardware components
stability: development
- key: hw.limit_type
type:
members:
- id: critical
value: critical
brief: Critical
stability: development
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: high_critical
value: high.critical
brief: High Critical
stability: development
- id: high_degraded
value: high.degraded
brief: High Degraded
stability: development
- id: low_critical
value: low.critical
brief: Low Critical
stability: development
- id: low_degraded
value: low.degraded
brief: Low Degraded
stability: development
- id: max
value: max
brief: Maximum
stability: development
- id: throttled
value: throttled
brief: Throttled
stability: development
- id: turbo
value: turbo
brief: Turbo
stability: development
brief: |
Type of limit for hardware components
stability: development
- key: hw.limit_type
type:
members:
- id: critical
value: critical
brief: Critical
stability: development
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: high_critical
value: high.critical
brief: High Critical
stability: development
- id: high_degraded
value: high.degraded
brief: High Degraded
stability: development
- id: low_critical
value: low.critical
brief: Low Critical
stability: development
- id: low_degraded
value: low.degraded
brief: Low Degraded
stability: development
- id: max
value: max
brief: Maximum
stability: development
- id: throttled
value: throttled
brief: Throttled
stability: development
- id: turbo
value: turbo
brief: Turbo
stability: development
examples:
- low.critical
- low.degraded
- max
brief: |
Type of limit for hardware components
stability: development
- key: hw.logical_disk.raid_level
type: string
examples:
- RAID0+1
- RAID5
- RAID10
brief: |
RAID Level of the logical disk
stability: development
- key: hw.logical_disk.state
type:
members:
- id: used
value: used
brief: Used
stability: development
- id: free
value: free
brief: Free
stability: development
examples:
- used
- free
brief: |
State of the logical disk space usage
stability: development
- key: hw.logical_disk.state
type:
members:
- id: used
value: used
brief: Used
stability: development
- id: free
value: free
brief: Free
stability: development
brief: |
State of the logical disk space usage
stability: development
- key: hw.memory.type
type: string
examples:
- DDR4
- DDR5
- LPDDR5
brief: |
Type of the memory module
stability: development
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
- key: hw.network.logical_addresses
type: string[]
examples:
- - 172.16.8.21
- 57.11.193.42
brief: |
Logical addresses of the adapter (e.g. IP address, or WWPN)
stability: development
- key: hw.network.physical_address
type: string
examples:
- 00-90-F5-E9-7B-36
brief: |
Physical address of the adapter (e.g. MAC address, or WWNN)
stability: development
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
- key: hw.physical_disk.smart_attribute
type: string
examples:
- Spin Retry Count
- Seek Error Rate
brief: |
[S.M.A.R.T.](https://wikipedia.org/wiki/S.M.A.R.T.) (Self-Monitoring, Analysis, and Reporting Technology) attribute of the physical disk
stability: development
- key: hw.physical_disk.smart_attribute
type: string
examples:
- Spin Retry Count
- Seek Error Rate
- Raw Read Error Rate
brief: |
[S.M.A.R.T.](https://wikipedia.org/wiki/S.M.A.R.T.) (Self-Monitoring, Analysis, and Reporting Technology) attribute of the physical disk
stability: development
- key: hw.physical_disk.state
type:
members:
- id: remaining
value: remaining
brief: Remaining
stability: development
brief: |
State of the physical disk endurance utilization
stability: development
- key: hw.physical_disk.state
type:
members:
- id: remaining
value: remaining
brief: Remaining
stability: development
examples:
- remaining
brief: |
State of the physical disk endurance utilization
stability: development
- key: hw.physical_disk.type
type: string
examples:
- HDD
- SSD
- 10K
brief: |
Type of the physical disk
stability: development
- key: hw.sensor_location
type: string
examples:
- cpu0
- ps1
- INLET
- CPU0_DIE
- AMBIENT
- MOTHERBOARD
- PS0 V3_3
- MAIN_12V
- CPU_VCORE
brief: |
Location of the sensor
stability: development
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
- key: hw.state
type:
members:
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: failed
value: failed
brief: Failed
stability: development
- id: needs_cleaning
value: needs_cleaning
brief: Needs Cleaning
stability: development
- id: ok
value: ok
brief: OK
stability: development
- id: predicted_failure
value: predicted_failure
brief: Predicted Failure
stability: development
brief: |
The current state of the component
stability: development
- key: hw.tape_drive.operation_type
type:
members:
- id: mount
value: mount
brief: Mount
stability: development
- id: unmount
value: unmount
brief: Unmount
stability: development
- id: clean
value: clean
brief: Clean
stability: development
examples:
- mount
- unmount
- clean
brief: |
Type of tape drive operation
stability: development
- key: hw.tape_drive.operation_type
type:
members:
- id: mount
value: mount
brief: Mount
stability: development
- id: unmount
value: unmount
brief: Unmount
stability: development
- id: clean
value: clean
brief: Clean
stability: development
brief: |
Type of tape drive operation
stability: development
- key: hw.type
type:
members:
- id: battery
value: battery
brief: Battery
stability: development
- id: cpu
value: cpu
brief: CPU
stability: development
- id: disk_controller
value: disk_controller
brief: Disk controller
stability: development
- id: enclosure
value: enclosure
brief: Enclosure
stability: development
- id: fan
value: fan
brief: Fan
stability: development
- id: gpu
value: gpu
brief: GPU
stability: development
- id: logical_disk
value: logical_disk
brief: Logical disk
stability: development
- id: memory
value: memory
brief: Memory
stability: development
- id: network
value: network
brief: Network
stability: development
- id: physical_disk
value: physical_disk
brief: Physical disk
stability: development
- id: power_supply
value: power_supply
brief: Power supply
stability: development
- id: tape_drive
value: tape_drive
brief: Tape drive
stability: development
- id: temperature
value: temperature
brief: Temperature
stability: development
- id: voltage
value: voltage
brief: Voltage
stability: development
brief: |
Type of the component
note: |
Describes the category of the hardware component for which `hw.state` is being reported. For example, `hw.type=temperature` along with `hw.state=degraded` would indicate that the temperature of the hardware component has been reported as `degraded`.
stability: development
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
- key: ios.app.state
type:
members:
- id: active
value: active
brief: |
The app has become `active`. Associated with UIKit notification `applicationDidBecomeActive`.
stability: development
- id: inactive
value: inactive
brief: |
The app is now `inactive`. Associated with UIKit notification `applicationWillResignActive`.
stability: development
- id: background
value: background
brief: |
The app is now in the background. This value is associated with UIKit notification `applicationDidEnterBackground`.
stability: development
- id: foreground
value: foreground
brief: |
The app is now in the foreground. This value is associated with UIKit notification `applicationWillEnterForeground`.
stability: development
- id: terminate
value: terminate
brief: |
The app is about to terminate. Associated with UIKit notification `applicationWillTerminate`.
stability: development
brief: |
This attribute represents the state of the application.
note: |
The iOS lifecycle states are defined in the [UIApplicationDelegate documentation](https://developer.apple.com/documentation/uikit/uiapplicationdelegate), and from which the `OS terminology` column values are derived.
stability: development
- key: ios.state
type:
members:
- id: active
value: active
brief: |
The app has become `active`. Associated with UIKit notification `applicationDidBecomeActive`.
stability: development
- id: inactive
value: inactive
brief: |
The app is now `inactive`. Associated with UIKit notification `applicationWillResignActive`.
stability: development
- id: background
value: background
brief: |
The app is now in the background. This value is associated with UIKit notification `applicationDidEnterBackground`.
stability: development
- id: foreground
value: foreground
brief: |
The app is now in the foreground. This value is associated with UIKit notification `applicationWillEnterForeground`.
stability: development
- id: terminate
value: terminate
brief: |
The app is about to terminate. Associated with UIKit notification `applicationWillTerminate`.
stability: development
brief: |
Deprecated. Use the `ios.app.state` attribute.
note: |
The iOS lifecycle states are defined in the [UIApplicationDelegate documentation](https://developer.apple.com/documentation/uikit/uiapplicationdelegate), and from which the `OS terminology` column values are derived.
stability: development
deprecated:
reason: renamed
renamed_to: ios.app.state
note: Replaced by `ios.app.state`.
- key: jvm.buffer.pool.name
type: string
examples:
- mapped
- direct
brief: Name of the buffer pool.
note: |
Pool names are generally obtained via [BufferPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/BufferPoolMXBean.html#getName()).
stability: development
- key: jvm.gc.action
type: string
examples:
- end of minor GC
- end of major GC
brief: Name of the garbage collector action.
note: |
Garbage collector action is generally obtained via [GarbageCollectionNotificationInfo#getGcAction()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcAction()).
stability: stable
- key: jvm.gc.cause
type: string
examples:
- System.gc()
- Allocation Failure
brief: Name of the garbage collector cause.
note: |
Garbage collector cause is generally obtained via [GarbageCollectionNotificationInfo#getGcCause()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcCause()).
stability: development
- key: jvm.gc.name
type: string
examples:
- G1 Young Generation
- G1 Old Generation
brief: Name of the garbage collector.
note: |
Garbage collector name is generally obtained via [GarbageCollectionNotificationInfo#getGcName()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcName()).
stability: stable
- key: jvm.memory.pool.name
type: string
examples:
- G1 Old Gen
- G1 Eden space
- G1 Survivor Space
brief: Name of the memory pool.
note: |
Pool names are generally obtained via [MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()).
stability: stable
- key: jvm.memory.type
type:
members:
- id: heap
value: heap
brief: Heap memory.
stability: stable
- id: non_heap
value: non_heap
brief: Non-heap memory
stability: stable
examples:
- heap
- non_heap
brief: The type of memory.
stability: stable
- key: jvm.thread.daemon
type: boolean
brief: Whether the thread is daemon or not.
stability: stable
- key: jvm.thread.state
type:
members:
- id: new
value: new
brief: A thread that has not yet started is in this state.
stability: stable
- id: runnable
value: runnable
brief: A thread executing in the Java virtual machine is in this state.
stability: stable
- id: blocked
value: blocked
brief: A thread that is blocked waiting for a monitor lock is in this state.
stability: stable
- id: waiting
value: waiting
brief: A thread that is waiting indefinitely for another thread to perform a particular action is in this state.
stability: stable
- id: timed_waiting
value: timed_waiting
brief: A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state.
stability: stable
- id: terminated
value: terminated
brief: A thread that has exited is in this state.
stability: stable
examples:
- runnable
- blocked
brief: State of the thread.
stability: stable
- key: k8s.cluster.name
type: string
examples:
- opentelemetry-cluster
brief: |
The name of the cluster.
stability: development
- key: k8s.cluster.uid
type: string
examples:
- 218fc5a9-a5f1-4b54-aa05-46717d0ab26d
brief: |
A pseudo-ID for the cluster, set to the UID of the `kube-system` namespace.
note: |
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](https://www.itu.int/ITU-T/studygroups/com17/oid.html).
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.
stability: development
- key: k8s.container.name
type: string
examples:
- redis
brief: |
The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (`container.name`).
stability: development
- key: k8s.container.restart_count
type: int
brief: |
Number of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec.
stability: development
- key: k8s.container.status.last_terminated_reason
type: string
examples:
- Evicted
- Error
brief: |
Last terminated reason of the Container.
stability: development
- key: k8s.container.status.reason
type:
members:
- id: container_creating
value: ContainerCreating
brief: The container is being created.
stability: development
- id: crash_loop_back_off
value: CrashLoopBackOff
brief: The container is in a crash loop back off state.
stability: development
- id: create_container_config_error
value: CreateContainerConfigError
brief: There was an error creating the container configuration.
stability: development
- id: err_image_pull
value: ErrImagePull
brief: There was an error pulling the container image.
stability: development
- id: image_pull_back_off
value: ImagePullBackOff
brief: The container image pull is in back off state.
stability: development
- id: oom_killed
value: OOMKilled
brief: The container was killed due to out of memory.
stability: development
- id: completed
value: Completed
brief: The container has completed execution.
stability: development
- id: error
value: Error
brief: There was an error with the container.
stability: development
- id: container_cannot_run
value: ContainerCannotRun
brief: The container cannot run.
stability: development
examples:
- ContainerCreating
- CrashLoopBackOff
- CreateContainerConfigError
- ErrImagePull
- ImagePullBackOff
- OOMKilled
- Completed
- Error
- ContainerCannotRun
brief: |
The reason for the container state. Corresponds to the `reason` field of the: [K8s ContainerStateWaiting](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#containerstatewaiting-v1-core) or [K8s ContainerStateTerminated](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#containerstateterminated-v1-core)
stability: development
- key: k8s.container.status.state
type:
members:
- id: terminated
value: terminated
brief: The container has terminated.
stability: development
- id: running
value: running
brief: The container is running.
stability: development
- id: waiting
value: waiting
brief: The container is waiting.
stability: development
examples:
- terminated
- running
- waiting
brief: |
The state of the container. [K8s ContainerState](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#containerstate-v1-core)
stability: development
- key: k8s.cronjob.annotation
type: template[string]
examples:
- '4'
- ''
brief: |
The cronjob annotation placed on the CronJob, the `<key>` being the annotation name, the value being the annotation value.
note: |
Examples:
- An annotation `retries` with value `4` SHOULD be recorded as the
`k8s.cronjob.annotation.retries` attribute with value `"4"`.
- An annotation `data` with empty string value SHOULD be recorded as
the `k8s.cronjob.annotation.data` attribute with value `""`.
stability: development
- key: k8s.cronjob.label
type: template[string]
examples:
- weekly
- ''
brief: |
The label placed on the CronJob, the `<key>` being the label name, the value being the label value.
note: |
Examples:
- A label `type` with value `weekly` SHOULD be recorded as the
`k8s.cronjob.label.type` attribute with value `"weekly"`.
- A label `automated` with empty string value SHOULD be recorded as
the `k8s.cronjob.label.automated` attribute with value `""`.
stability: development
- key: k8s.cronjob.name
type: string
examples:
- opentelemetry
brief: |
The name of the CronJob.
stability: development
- key: k8s.cronjob.uid
type: string
examples:
- 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
brief: |
The UID of the CronJob.
stability: development
- key: k8s.daemonset.annotation
type: template[string]
examples:
- '1'
- ''
brief: |
The annotation placed on the DaemonSet, the `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
note: |2
Examples:
- A label `replicas` with value `1` SHOULD be recorded
as the `k8s.daemonset.annotation.replicas` attribute with value `"1"`.
- A label `data` with empty string value SHOULD be recorded as
the `k8s.daemonset.annotation.data` attribute with value `""`.
stability: development
- key: k8s.daemonset.label
type: template[string]
examples:
- guestbook
- ''
brief: |
The label placed on the DaemonSet, the `<key>` being the label name, the value being the label value, even if the value is empty.
note: |2
Examples:
- A label `app` with value `guestbook` SHOULD be recorded
as the `k8s.daemonset.label.app` attribute with value `"guestbook"`.
- A label `data` with empty string value SHOULD be recorded as
the `k8s.daemonset.label.injected` attribute with value `""`.
stability: development
- key: k8s.daemonset.name
type: string
examples:
- opentelemetry
brief: |
The name of the DaemonSet.
stability: development
- key: k8s.daemonset.uid
type: string
examples:
- 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
brief: |
The UID of the DaemonSet.
stability: development
- key: k8s.deployment.annotation
type: template[string]
examples:
- '1'
- ''
brief: |
The annotation placed on the Deployment, the `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
note: |2
Examples:
- A label `replicas` with value `1` SHOULD be recorded
as the `k8s.deployment.annotation.replicas` attribute with value `"1"`.
- A label `data` with empty string value SHOULD be recorded as
the `k8s.deployment.annotation.data` attribute with value `""`.
stability: development
- key: k8s.deployment.label
type: template[string]
examples:
- guestbook
- ''
brief: |
The label placed on the Deployment, the `<key>` being the label name, the value being the label value, even if the value is empty.
note: |2
Examples:
- A label `replicas` with value `0` SHOULD be recorded
as the `k8s.deployment.label.app` attribute with value `"guestbook"`.
- A label `injected` with empty string value SHOULD be recorded as
the `k8s.deployment.label.injected` attribute with value `""`.
stability: development
- key: k8s.deployment.name
type: string
examples:
- opentelemetry
brief: |
The name of the Deployment.
stability: development
- key: k8s.deployment.uid
type: string
examples:
- 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
brief: |
The UID of the Deployment.
stability: development
- key: k8s.hpa.metric.type
type: string
examples:
- Resource
- ContainerResource
brief: |
The type of metric source for the horizontal pod autoscaler.
note: |
This attribute reflects the `type` field of spec.metrics[] in the HPA.
stability: development
- key: k8s.hpa.name
type: string
examples:
- opentelemetry
brief: |
The name of the horizontal pod autoscaler.
stability: development
- key: k8s.hpa.scaletargetref.api_version
type: string
examples:
- apps/v1
- autoscaling/v2
brief: |
The API version of the target resource to scale for the HorizontalPodAutoscaler.
note: |
This maps to the `apiVersion` field in the `scaleTargetRef` of the HPA spec.
stability: development
- key: k8s.hpa.scaletargetref.kind
type: string
examples:
- Deployment
- StatefulSet
brief: |
The kind of the target resource to scale for the HorizontalPodAutoscaler.
note: |
This maps to the `kind` field in the `scaleTargetRef` of the HPA spec.
stability: development
- key: k8s.hpa.scaletargetref.name
type: string
examples:
- my-deployment
- my-statefulset
brief: |
The name of the target resource to scale for the HorizontalPodAutoscaler.
note: |
This maps to the `name` field in the `scaleTargetRef` of the HPA spec.
stability: development
- key: k8s.hpa.uid
type: string
examples:
- 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
brief: |
The UID of the horizontal pod autoscaler.
stability: development
- key: k8s.hugepage.size
type: string
examples:
- 2Mi
brief: |
The size (identifier) of the K8s huge page.
stability: development
- key: k8s.job.annotation
type: template[string]
examples:
- '1'
- ''
brief: |
The annotation placed on the Job, the `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
note: |2
Examples:
- A label `number` with value `1` SHOULD be recorded
as the `k8s.job.annotation.number` attribute with value `"1"`.
- A label `data` with empty string value SHOULD be recorded as
the `k8s.job.annotation.data` attribute with value `""`.
stability: development
- key: k8s.job.label
type: template[string]
examples:
- ci
- ''
brief: |
The label placed on the Job, the `<key>` being the label name, the value being the label value, even if the value is empty.
note: |2
Examples:
- A label `jobtype` with value `ci` SHOULD be recorded
as the `k8s.job.label.jobtype` attribute with value `"ci"`.
- A label `data` with empty string value SHOULD be recorded as
the `k8s.job.label.automated` attribute with value `""`.
stability: development
- key: k8s.job.name
type: string
examples:
- opentelemetry
brief: |
The name of the Job.
stability: development
- key: k8s.job.uid
type: string
examples:
- 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
brief: |
The UID of the Job.
stability: development
- key: k8s.namespace.annotation
type: template[string]
examples:
- '0'
- ''
brief: |
The annotation placed on the Namespace, the `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
note: |2
Examples:
- A label `ttl` with value `0` SHOULD be recorded
as the `k8s.namespace.annotation.ttl` attribute with value `"0"`.
- A label `data` with empty string value SHOULD be recorded as
the `k8s.namespace.annotation.data` attribute with value `""`.
stability: development
- key: k8s.namespace.label
type: template[string]
examples:
- default
- ''
brief: |
The label placed on the Namespace, the `<key>` being the label name, the value being the label value, even if the value is empty.
note: |2
Examples:
- A label `kubernetes.io/metadata.name` with value `default` SHOULD be recorded
as the `k8s.namespace.label.kubernetes.io/metadata.name` attribute with value `"default"`.
- A label `data` with empty string value SHOULD be recorded as
the `k8s.namespace.label.data` attribute with value `""`.
stability: development
- key: k8s.namespace.name
type: string
examples:
- default
brief: |
The name of the namespace that the pod is running in.
stability: development
- key: k8s.namespace.phase
type:
members:
- id: active
value: active
brief: Active namespace phase as described by [K8s API](https://pkg.go.dev/k8s.io/[email protected]/core/v1#NamespacePhase)
stability: development
- id: terminating
value: terminating
brief: Terminating namespace phase as described by [K8s API](https://pkg.go.dev/k8s.io/[email protected]/core/v1#NamespacePhase)
stability: development
examples:
- active
- terminating
brief: |
The phase of the K8s namespace.
note: |
This attribute aligns with the `phase` field of the
[K8s NamespaceStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#namespacestatus-v1-core)
stability: development
- key: k8s.node.annotation
type: template[string]
examples:
- '0'
- ''
brief: |
The annotation placed on the Node, the `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
note: |
Examples:
- An annotation `node.alpha.kubernetes.io/ttl` with value `0` SHOULD be recorded as
the `k8s.node.annotation.node.alpha.kubernetes.io/ttl` attribute with value `"0"`.
- An annotation `data` with empty string value SHOULD be recorded as
the `k8s.node.annotation.data` attribute with value `""`.
stability: development
- key: k8s.node.condition.status
type:
members:
- id: condition_true
value: 'true'
stability: development
- id: condition_false
value: 'false'
stability: development
- id: condition_unknown
value: unknown
stability: development
examples:
- 'true'
- 'false'
- unknown
brief: |
The status of the condition, one of True, False, Unknown.
note: |
This attribute aligns with the `status` field of the
[NodeCondition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#nodecondition-v1-core)
stability: development
- key: k8s.node.condition.type
type:
members:
- id: ready
value: Ready
brief: The node is healthy and ready to accept pods
stability: development
- id: disk_pressure
value: DiskPressure
brief: Pressure exists on the disk size—that is, if the disk capacity is low
stability: development
- id: memory_pressure
value: MemoryPressure
brief: Pressure exists on the node memory—that is, if the node memory is low
stability: development
- id: pid_pressure
value: PIDPressure
brief: Pressure exists on the processes—that is, if there are too many processes on the node
stability: development
- id: network_unavailable
value: NetworkUnavailable
brief: The network for the node is not correctly configured
stability: development
examples:
- Ready
- DiskPressure
brief: |
The condition type of a K8s Node.
note: |
K8s Node conditions as described
by [K8s documentation](https://v1-32.docs.kubernetes.io/docs/reference/node/node-status/#condition).
This attribute aligns with the `type` field of the
[NodeCondition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#nodecondition-v1-core)
The set of possible values is not limited to those listed here. Managed Kubernetes environments,
or custom controllers MAY introduce additional node condition types.
When this occurs, the exact value as reported by the Kubernetes API SHOULD be used.
stability: development
- key: k8s.node.label
type: template[string]
examples:
- arm64
- ''
brief: |
The label placed on the Node, the `<key>` being the label name, the value being the label value, even if the value is empty.
note: |
Examples:
- A label `kubernetes.io/arch` with value `arm64` SHOULD be recorded
as the `k8s.node.label.kubernetes.io/arch` attribute with value `"arm64"`.
- A label `data` with empty string value SHOULD be recorded as
the `k8s.node.label.data` attribute with value `""`.
stability: development
- key: k8s.node.name
type: string
examples:
- node-1
brief: |
The name of the Node.
stability: development
- key: k8s.node.uid
type: string
examples:
- 1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2
brief: |
The UID of the Node.
stability: development
- key: k8s.pod.annotation
type: template[string]
examples:
- 'true'
- x64
- ''
brief: |
The annotation placed on the Pod, the `<key>` being the annotation name, the value being the annotation value.
note: |
Examples:
- An annotation `kubernetes.io/enforce-mountable-secrets` with value `true` SHOULD be recorded as
the `k8s.pod.annotation.kubernetes.io/enforce-mountable-secrets` attribute with value `"true"`.
- An annotation `mycompany.io/arch` with value `x64` SHOULD be recorded as
the `k8s.pod.annotation.mycompany.io/arch` attribute with value `"x64"`.
- An annotation `data` with empty string value SHOULD be recorded as
the `k8s.pod.annotation.data` attribute with value `""`.
stability: development
- key: k8s.pod.label
type: template[string]
examples:
- my-app
- x64
- ''
brief: |
The label placed on the Pod, the `<key>` being the label name, the value being the label value.
note: |
Examples:
- A label `app` with value `my-app` SHOULD be recorded as
the `k8s.pod.label.app` attribute with value `"my-app"`.
- A label `mycompany.io/arch` with value `x64` SHOULD be recorded as
the `k8s.pod.label.mycompany.io/arch` attribute with value `"x64"`.
- A label `data` with empty string value SHOULD be recorded as
the `k8s.pod.label.data` attribute with value `""`.
stability: development
- key: k8s.pod.labels
type: template[string]
examples:
- my-app
brief: Deprecated, use `k8s.pod.label` instead.
stability: development
deprecated:
reason: renamed
renamed_to: k8s.pod.label
note: Replaced by `k8s.pod.label`.
- key: k8s.pod.name
type: string
examples:
- opentelemetry-pod-autoconf
brief: |
The name of the Pod.
stability: development
- key: k8s.pod.status.phase
type:
members:
- id: pending
value: Pending
brief: |
The pod has been accepted by the system, but one or more of the containers has not been started. This includes time before being bound to a node, as well as time spent pulling images onto the host.
stability: development
- id: running
value: Running
brief: |
The pod has been bound to a node and all of the containers have been started. At least one container is still running or is in the process of being restarted.
stability: development
- id: succeeded
value: Succeeded
brief: |
All containers in the pod have voluntarily terminated with a container exit code of 0, and the system is not going to restart any of these containers.
stability: development
- id: failed
value: Failed
brief: |
All containers in the pod have terminated, and at least one container has terminated in a failure (exited with a non-zero exit code or was stopped by the system).
stability: development
- id: unknown
value: Unknown
brief: |
For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.
stability: development
examples:
- Pending
- Running
brief: |
The phase for the pod. Corresponds to the `phase` field of the: [K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#podstatus-v1-core)
stability: development
- key: k8s.pod.status.reason
type:
members:
- id: evicted
value: Evicted
brief: The pod is evicted.
stability: development
- id: node_affinity
value: NodeAffinity
brief: The pod is in a status because of its node affinity
stability: development
- id: node_lost
value: NodeLost
brief: |
The reason on a pod when its state cannot be confirmed as kubelet is unresponsive on the node it is (was) running.
stability: development
- id: shutdown
value: Shutdown
brief: The node is shutdown
stability: development
- id: unexpected_admission_error
value: UnexpectedAdmissionError
brief: |
The pod was rejected admission to the node because of an error during admission that could not be categorized.
stability: development
examples:
- Evicted
- NodeAffinity
brief: |
The reason for the pod state. Corresponds to the `reason` field of the: [K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#podstatus-v1-core)
stability: development
- key: k8s.pod.uid
type: string
examples:
- 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
brief: |
The UID of the Pod.
stability: development
- key: k8s.replicaset.annotation
type: template[string]
examples:
- '0'
- ''
brief: |
The annotation placed on the ReplicaSet, the `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
note: |2
Examples:
- A label `replicas` with value `0` SHOULD be recorded
as the `k8s.replicaset.annotation.replicas` attribute with value `"0"`.
- A label `data` with empty string value SHOULD be recorded as
the `k8s.replicaset.annotation.data` attribute with value `""`.
stability: development
- key: k8s.replicaset.label
type: template[string]
examples:
- guestbook
- ''
brief: |
The label placed on the ReplicaSet, the `<key>` being the label name, the value being the label value, even if the value is empty.
note: |2
Examples:
- A label `app` with value `guestbook` SHOULD be recorded
as the `k8s.replicaset.label.app` attribute with value `"guestbook"`.
- A label `injected` with empty string value SHOULD be recorded as
the `k8s.replicaset.label.injected` attribute with value `""`.
stability: development
- key: k8s.replicaset.name
type: string
examples:
- opentelemetry
brief: |
The name of the ReplicaSet.
stability: development
- key: k8s.replicaset.uid
type: string
examples:
- 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
brief: |
The UID of the ReplicaSet.
stability: development
- key: k8s.replicationcontroller.name
type: string
examples:
- opentelemetry
brief: |
The name of the replication controller.
stability: development
- key: k8s.replicationcontroller.uid
type: string
examples:
- 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
brief: |
The UID of the replication controller.
stability: development
- key: k8s.resourcequota.name
type: string
examples:
- opentelemetry
brief: |
The name of the resource quota.
stability: development
- key: k8s.resourcequota.resource_name
type: string
examples:
- count/replicationcontrollers
brief: |
The name of the K8s resource a resource quota defines.
note: |
The value for this attribute can be either the full `count/<resource>[.<group>]` string (e.g., count/deployments.apps, count/pods), or, for certain core Kubernetes resources, just the resource name (e.g., pods, services, configmaps). Both forms are supported by Kubernetes for object count quotas. See [Kubernetes Resource Quotas documentation](https://kubernetes.io/docs/concepts/policy/resource-quotas/#quota-on-object-count) for more details.
stability: development
- key: k8s.resourcequota.uid
type: string
examples:
- 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
brief: |
The UID of the resource quota.
stability: development
- key: k8s.statefulset.annotation
type: template[string]
examples:
- '1'
- ''
brief: |
The annotation placed on the StatefulSet, the `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
note: |2
Examples:
- A label `replicas` with value `1` SHOULD be recorded
as the `k8s.statefulset.annotation.replicas` attribute with value `"1"`.
- A label `data` with empty string value SHOULD be recorded as
the `k8s.statefulset.annotation.data` attribute with value `""`.
stability: development
- key: k8s.statefulset.label
type: template[string]
examples:
- guestbook
- ''
brief: |
The label placed on the StatefulSet, the `<key>` being the label name, the value being the label value, even if the value is empty.
note: |2
Examples:
- A label `replicas` with value `0` SHOULD be recorded
as the `k8s.statefulset.label.app` attribute with value `"guestbook"`.
- A label `injected` with empty string value SHOULD be recorded as
the `k8s.statefulset.label.injected` attribute with value `""`.
stability: development
- key: k8s.statefulset.name
type: string
examples:
- opentelemetry
brief: |
The name of the StatefulSet.
stability: development
- key: k8s.statefulset.uid
type: string
examples:
- 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
brief: |
The UID of the StatefulSet.
stability: development
- key: k8s.storageclass.name
type: string
examples:
- gold.storageclass.storage.k8s.io
brief: |
The name of K8s [StorageClass](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#storageclass-v1-storage-k8s-io) object.
stability: development
- key: k8s.volume.name
type: string
examples:
- volume0
brief: |
The name of the K8s volume.
stability: development
- key: k8s.volume.type
type:
members:
- id: persistent_volume_claim
value: persistentVolumeClaim
brief: A [persistentVolumeClaim](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#persistentvolumeclaim) volume
stability: development
- id: config_map
value: configMap
brief: A [configMap](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#configmap) volume
stability: development
- id: downward_api
value: downwardAPI
brief: A [downwardAPI](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#downwardapi) volume
stability: development
- id: empty_dir
value: emptyDir
brief: An [emptyDir](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#emptydir) volume
stability: development
- id: secret
value: secret
brief: A [secret](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#secret) volume
stability: development
- id: local
value: local
brief: A [local](https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#local) volume
stability: development
examples:
- emptyDir
- persistentVolumeClaim
brief: |
The type of the K8s volume.
stability: development
- key: linux.memory.slab.state
type:
members:
- id: reclaimable
value: reclaimable
stability: development
- id: unreclaimable
value: unreclaimable
stability: development
examples:
- reclaimable
- unreclaimable
brief: The Linux Slab memory state
stability: development
- key: log.file.name
type: string
examples:
- audit.log
brief: |
The basename of the file.
stability: development
- key: log.file.name_resolved
type: string
examples:
- uuid.log
brief: |
The basename of the file, with symlinks resolved.
stability: development
- key: log.file.path
type: string
examples:
- /var/log/mysql/audit.log
brief: |
The full path to the file.
stability: development
- key: log.file.path_resolved
type: string
examples:
- /var/lib/docker/uuid.log
brief: |
The full path to the file, with symlinks resolved.
stability: development
- key: log.iostream
type:
members:
- id: stdout
value: stdout
brief: Logs from stdout stream
stability: development
- id: stderr
value: stderr
brief: Events from stderr stream
stability: development
brief: |
The stream associated with the log. See below for a list of well-known values.
stability: development
- key: log.record.original
type: string
examples:
- 77 <86>1 2015-08-06T21:58:59.694Z 192.168.2.133 inactive - - - Something happened
- '[INFO] 8/3/24 12:34:56 Something happened'
brief: |
The complete original Log Record.
note: |
This value MAY be added when processing a Log Record which was originally transmitted as a string or equivalent data type AND the Body field of the Log Record does not contain the same value. (e.g. a syslog or a log record read from a file.)
stability: development
- key: log.record.uid
type: string
examples:
- 01ARZ3NDEKTSV4RRFFQ69G5FAV
brief: |
A unique identifier for the Log Record.
note: |
If an id is provided, other log records with the same id will be considered duplicates and can be removed safely. This means, that two distinguishable log records MUST have different values.
The id MAY be an [Universally Unique Lexicographically Sortable Identifier (ULID)](https://github.com/ulid/spec), but other identifiers (e.g. UUID) may be used as needed.
stability: development
- key: mainframe.lpar.name
type: string
examples:
- LPAR01
brief: Name of the logical partition that hosts a systems with a mainframe operating system.
stability: development
- key: message.compressed_size
type: int
brief: Deprecated, use `rpc.message.compressed_size` instead.
stability: development
deprecated:
reason: renamed
renamed_to: rpc.message.compressed_size
note: Replaced by `rpc.message.compressed_size`.
- key: message.id
type: int
brief: Deprecated, use `rpc.message.id` instead.
stability: development
deprecated:
reason: renamed
renamed_to: rpc.message.id
note: Replaced by `rpc.message.id`.
- key: message.type
type:
members:
- id: sent
value: SENT
stability: development
- id: received
value: RECEIVED
stability: development
brief: Deprecated, use `rpc.message.type` instead.
stability: development
deprecated:
reason: renamed
renamed_to: rpc.message.type
note: Replaced by `rpc.message.type`.
- key: message.uncompressed_size
type: int
brief: Deprecated, use `rpc.message.uncompressed_size` instead.
stability: development
deprecated:
reason: renamed
renamed_to: rpc.message.uncompressed_size
note: Replaced by `rpc.message.uncompressed_size`.
- key: messaging.batch.message_count
type: int
examples:
- 0
- 1
- 2
brief: The number of messages sent, received, or processed in the scope of the batching operation.
note: |
Instrumentations SHOULD NOT set `messaging.batch.message_count` on spans that operate with a single message. When a messaging client library supports both batch and single-message API for the same operation, instrumentations SHOULD use `messaging.batch.message_count` for batching APIs and SHOULD NOT use it for single-message APIs.
stability: development
- key: messaging.client.id
type: string
examples:
- client-5
- myhost@8742@s8083jm
brief: |
A unique identifier for the client that consumes or produces a message.
stability: development
- key: messaging.client_id
type: string
examples:
- client-5
- myhost@8742@s8083jm
brief: |
Deprecated, use `messaging.client.id` instead.
stability: development
deprecated:
reason: renamed
renamed_to: messaging.client.id
note: Replaced by `messaging.client.id`.
annotations:
code_generation:
exclude: true
- key: messaging.consumer.group.name
type: string
examples:
- my-group
- indexer
brief: Kafka [consumer group id](https://docs.confluent.io/platform/current/clients/consumer.html).
stability: development
- key: messaging.consumer.group.name
type: string
examples:
- my-group
- indexer
brief: Azure Event Hubs [consumer group name](https://learn.microsoft.com/azure/event-hubs/event-hubs-features#consumer-groups).
stability: development
- key: messaging.consumer.group.name
type: string
examples:
- my-group
- indexer
brief: |
The name of the consumer group with which a consumer is associated.
note: |
Semantic conventions for individual messaging systems SHOULD document whether `messaging.consumer.group.name` is applicable and what it means in the context of that system.
stability: development
- key: messaging.consumer.group.name
type: string
examples:
- my-group
- indexer
brief: RocketMQ [consumer group name](https://rocketmq.apache.org/docs/domainModel/07consumergroup).
stability: development
- key: messaging.destination.anonymous
type: boolean
brief: A boolean that is true if the message destination is anonymous (could be unnamed or have auto-generated name).
stability: development
- key: messaging.destination.name
type: string
examples:
- direct_logs:warning
- logs
brief: The message destination name
note: |
In RabbitMQ, the destination is defined by an *exchange*, a *routing key* and for consumers, a *queue*.
`messaging.destination.name` SHOULD be set to:
- **On the producer side**: `{exchange}:{routing key}` when both values are present and non-empty.
When only one is available, only that value SHOULD be used. E.g., `{exchange}` or `{routing key}`.
Otherwise: `amq.default` when the default exchange is used and no routing key is provided
- **On the consumer side**: `{exchange}:{routing key}:{queue}` when all values are present and non-empty.
If any has an empty value (e.g., the default exchange is used) it SHOULD be omitted.
For cases when `{routing key}` and `{queue}` are equal, only one of them SHOULD
be used, e.g., `{exchange}:{routing key}`.
stability: development
- key: messaging.destination.name
type: string
examples:
- MyQueue
- MyTopic
brief: The message destination name
note: |
Destination name SHOULD uniquely identify a specific queue, topic or other entity within the broker. If
the broker doesn't have such notion, the destination name SHOULD uniquely identify the broker.
stability: development
- key: messaging.destination.partition.id
type: string
examples: '1'
brief: |
The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`.
stability: development
- key: messaging.destination.partition.id
type: string
examples: '1'
brief: |
String representation of the partition id the message (or batch) is sent to or received from.
stability: development
- key: messaging.destination.partition.id
type: string
examples: '1'
brief: |
String representation of the partition id messages are sent to or received from, unique within the Event Hub.
stability: development
- key: messaging.destination.subscription.name
type: string
examples:
- subscription-a
brief: Google Pub/Sub [subscription name](https://cloud.google.com/pubsub/docs/subscription-overview).
stability: development
- key: messaging.destination.subscription.name
type: string
examples:
- subscription-a
brief: Azure Service Bus [subscription name](https://learn.microsoft.com/azure/service-bus-messaging/service-bus-queues-topics-subscriptions#topics-and-subscriptions).
stability: development
- key: messaging.destination.subscription.name
type: string
examples:
- subscription-a
brief: The name of the destination subscription from which a message is consumed.
note: |
Semantic conventions for individual messaging systems SHOULD document whether `messaging.destination.subscription.name` is applicable and what it means in the context of that system.
stability: development
- key: messaging.destination.template
type: string
examples:
- /customers/{customerId}
brief: Low cardinality representation of the messaging destination name
note: |
Destination names could be constructed from templates. An example would be a destination name involving a user name or product id. Although the destination name in this case is of high cardinality, the underlying template is of low cardinality and can be effectively used for grouping and aggregation.
stability: development
- key: messaging.destination.temporary
type: boolean
brief: A boolean that is true if the message destination is temporary and might not exist anymore after messages are processed.
stability: development
- key: messaging.destination_publish.anonymous
type: boolean
brief: Deprecated, no replacement at this time.
stability: development
deprecated:
reason: obsoleted
note: Removed. No replacement at this time.
- key: messaging.destination_publish.name
type: string
examples:
- MyQueue
- MyTopic
brief: Deprecated, no replacement at this time.
stability: development
deprecated:
reason: obsoleted
note: Removed. No replacement at this time.
- key: messaging.eventhubs.consumer.group
type: string
examples: $Default
brief: |
Deprecated, use `messaging.consumer.group.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: messaging.consumer.group.name
note: Replaced by `messaging.consumer.group.name`.
- key: messaging.eventhubs.message.enqueued_time
type: int
examples: 1701393730
brief: |
The UTC epoch seconds at which the message has been accepted and stored in the entity.
stability: development
- key: messaging.gcp_pubsub.message.ack_deadline
type: int
examples: 10
brief: |
The ack deadline in seconds set for the modify ack deadline request.
stability: development
- key: messaging.gcp_pubsub.message.ack_id
type: string
examples: ack_id
brief: |
The ack id for a given message.
stability: development
- key: messaging.gcp_pubsub.message.delivery_attempt
type: int
examples: 2
brief: |
The delivery attempt for a given message.
stability: development
- key: messaging.gcp_pubsub.message.ordering_key
type: string
examples: ordering_key
brief: |
The ordering key for a given message. If the attribute is not present, the message does not have an ordering key.
stability: development
- key: messaging.kafka.consumer.group
type: string
examples: my-group
brief: |
Deprecated, use `messaging.consumer.group.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: messaging.consumer.group.name
note: Replaced by `messaging.consumer.group.name`.
- key: messaging.kafka.destination.partition
type: int
examples: 2
brief: |
Deprecated, use `messaging.destination.partition.id` instead.
stability: development
deprecated:
reason: uncategorized
note: Record string representation of the partition id in `messaging.destination.partition.id` attribute.
- key: messaging.kafka.message.key
type: string
examples: myKey
brief: |
Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message.id` in that they're not unique. If the key is `null`, the attribute MUST NOT be set.
note: |
If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value.
stability: development
- key: messaging.kafka.message.offset
type: int
examples: 42
brief: |
Deprecated, use `messaging.kafka.offset` instead.
stability: development
deprecated:
reason: renamed
renamed_to: messaging.kafka.offset
note: Replaced by `messaging.kafka.offset`.
- key: messaging.kafka.message.tombstone
type: boolean
brief: A boolean that is true if the message is a tombstone.
stability: development
- key: messaging.kafka.offset
type: int
examples: 42
brief: |
The offset of a record in the corresponding Kafka partition.
stability: development
- key: messaging.message.body.size
type: int
examples: 1439
brief: |
The size of the message body in bytes.
note: |
This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed
body size should be used.
stability: development
- key: messaging.message.body.size
type: int
examples: 1439
brief: The size of the message body in bytes. Only applicable for spans describing single message operations.
note: |
This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed
body size should be used.
stability: development
- key: messaging.message.conversation_id
type: string
examples: MyConversationId
brief: |
The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".
stability: development
- key: messaging.message.conversation_id
type: string
examples: MyConversationId
brief: Message [correlation Id](https://learn.microsoft.com/azure/service-bus-messaging/service-bus-messages-payloads#message-routing-and-correlation) property.
stability: development
- key: messaging.message.conversation_id
type: string
examples: MyConversationId
brief: |
Message [correlation Id](https://www.rabbitmq.com/tutorials/tutorial-six-java#correlation-id) property.
stability: development
- key: messaging.message.envelope.size
type: int
examples: 2738
brief: |
The size of the message body and metadata in bytes.
note: |
This can refer to both the compressed or uncompressed size. If both sizes are known, the uncompressed
size should be used.
stability: development
- key: messaging.message.id
type: string
examples: 452a7c7c7c7048c2f887f61572b18fc2
brief: A value used by the messaging system as an identifier for the message, represented as a string.
stability: development
- key: messaging.operation
type: string
examples:
- publish
- create
- process
brief: |
Deprecated, use `messaging.operation.type` instead.
stability: development
deprecated:
reason: renamed
renamed_to: messaging.operation.type
note: Replaced by `messaging.operation.type`.
- key: messaging.operation.name
type: string
examples:
- ack
- nack
- send
brief: |
The system-specific name of the messaging operation.
note: |
The `messaging.operation.name` has the following list of well-known values in the context of Google Pub/Sub.
If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
- `ack` and `nack` for settlement operations
- `send` for publishing operations
- `modack` for extending the lease for a single message or batch of messages
- `subscribe` for operations that represent the time from after the message was received to when the message is acknowledged, negatively acknowledged, or expired.
- `create` and `receive` for [common messaging operations](/docs/messaging/messaging-spans.md#operation-types)
stability: development
- key: messaging.operation.name
type: string
examples:
- process
- consume
- handle
brief: |
The system-specific name of the messaging operation.
stability: development
- key: messaging.operation.name
type: string
examples:
- send
- receive
- complete
- process
- peek
brief: Azure Service Bus operation name.
note: |
The operation name SHOULD match one of the following values:
- sender operations: `send`, `schedule`, `cancel_scheduled`
- transaction operations: `create_transaction`, `commit_transaction`, `rollback_transaction`
- receiver operation: `receive`, `peek`, `receive_deferred`, `renew_message_lock`
- settlement operations: `abandon`, `complete`, `defer`, `dead_letter`, `delete`
- session operations: `accept_session`, `get_session_state`, `set_session_state`, `renew_session_lock`
If none of the above operation names apply, the attribute SHOULD be set
to the name of the client method in snake_case.
stability: development
- key: messaging.operation.name
type: string
examples:
- send
- receive
- checkpoint
brief: Azure Event Hubs operation name.
note: |
The operation name SHOULD match one of the following values:
- `send`
- `receive`
- `process`
- `checkpoint`
- `get_partition_properties`
- `get_event_hub_properties`
If none of the above operation names apply, the attribute SHOULD be set
to the name of the client method in snake_case.
stability: development
- key: messaging.operation.name
type: string
examples:
- send
- schedule
- enqueue
brief: |
The system-specific name of the messaging operation.
stability: development
- key: messaging.operation.name
type: string
examples:
- receive
- peek
- poll
- consume
brief: |
The system-specific name of the messaging operation.
stability: development
- key: messaging.operation.name
type: string
examples:
- ack
- nack
- send
brief: |
The system-specific name of the messaging operation.
stability: development
- key: messaging.operation.name
type: string
examples:
- send
- receive
- ack
brief: |
The system-specific name of the messaging operation.
stability: development
- key: messaging.operation.type
type:
members:
- id: create
value: create
brief: |
A message is created. "Create" spans always refer to a single message and are used to provide a unique creation context for messages in batch sending scenarios.
stability: development
- id: send
value: send
brief: |
One or more messages are provided for sending to an intermediary. If a single message is sent, the context of the "Send" span can be used as the creation context and no "Create" span needs to be created.
stability: development
- id: receive
value: receive
brief: |
One or more messages are requested by a consumer. This operation refers to pull-based scenarios, where consumers explicitly call methods of messaging SDKs to receive messages.
stability: development
- id: process
value: process
brief: |
One or more messages are processed by a consumer.
stability: development
- id: settle
value: settle
brief: |
One or more messages are settled.
stability: development
- id: deliver
value: deliver
brief: Deprecated. Use `process` instead.
stability: development
deprecated:
reason: renamed
renamed_to: process
note: Replaced by `process`.
- id: publish
value: publish
brief: Deprecated. Use `send` instead.
stability: development
deprecated:
reason: renamed
renamed_to: send
note: Replaced by `send`.
brief: |
A string identifying the type of the messaging operation.
note: If a custom value is used, it MUST be of low cardinality.
stability: development
- key: messaging.rabbitmq.destination.routing_key
type: string
examples: myKey
brief: |
RabbitMQ message routing key.
stability: development
- key: messaging.rabbitmq.message.delivery_tag
type: int
examples: 123
brief: |
RabbitMQ message delivery tag
stability: development
- key: messaging.rocketmq.client_group
type: string
examples: myConsumerGroup
brief: |
Deprecated, use `messaging.consumer.group.name` instead.
stability: development
deprecated:
reason: uncategorized
note: |
Replaced by `messaging.consumer.group.name` on the consumer spans. No replacement for producer spans.
- key: messaging.rocketmq.consumption_model
type:
members:
- id: clustering
value: clustering
brief: Clustering consumption model
stability: development
- id: broadcasting
value: broadcasting
brief: Broadcasting consumption model
stability: development
brief: |
Model of message consumption. This only applies to consumer spans.
stability: development
- key: messaging.rocketmq.message.delay_time_level
type: int
examples: 3
brief: |
The delay time level for delay message, which determines the message delay time.
stability: development
- key: messaging.rocketmq.message.delivery_timestamp
type: int
examples: 1665987217045
brief: |
The timestamp in milliseconds that the delay message is expected to be delivered to consumer.
stability: development
- key: messaging.rocketmq.message.group
type: string
examples: myMessageGroup
brief: |
It is essential for FIFO message. Messages that belong to the same message group are always processed one by one within the same consumer group.
stability: development
- key: messaging.rocketmq.message.keys
type: string[]
examples:
- - keyA
- keyB
brief: |
Key(s) of message, another way to mark message besides message id.
stability: development
- key: messaging.rocketmq.message.tag
type: string
examples: tagA
brief: |
The secondary classifier of message besides topic.
stability: development
- key: messaging.rocketmq.message.type
type:
members:
- id: normal
value: normal
brief: Normal message
stability: development
- id: fifo
value: fifo
brief: FIFO message
stability: development
- id: delay
value: delay
brief: Delay message
stability: development
- id: transaction
value: transaction
brief: Transaction message
stability: development
brief: |
Type of message.
stability: development
- key: messaging.rocketmq.namespace
type: string
examples: myNamespace
brief: |
Namespace of RocketMQ resources, resources in different namespaces are individual.
stability: development
- key: messaging.servicebus.destination.subscription_name
type: string
examples: subscription-a
brief: |
Deprecated, use `messaging.destination.subscription.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: messaging.destination.subscription.name
note: Replaced by `messaging.destination.subscription.name`.
- key: messaging.servicebus.disposition_status
type:
members:
- id: complete
value: complete
brief: Message is completed
stability: development
- id: abandon
value: abandon
brief: Message is abandoned
stability: development
- id: dead_letter
value: dead_letter
brief: Message is sent to dead letter queue
stability: development
- id: defer
value: defer
brief: Message is deferred
stability: development
brief: |
Describes the [settlement type](https://learn.microsoft.com/azure/service-bus-messaging/message-transfers-locks-settlement#peeklock).
stability: development
- key: messaging.servicebus.message.delivery_count
type: int
examples: 2
brief: |
Number of deliveries that have been attempted for this message.
stability: development
- key: messaging.servicebus.message.enqueued_time
type: int
examples: 1701393730
brief: |
The UTC epoch seconds at which the message has been accepted and stored in the entity.
stability: development
- key: messaging.system
type:
members:
- id: activemq
value: activemq
brief: Apache ActiveMQ
stability: development
- id: aws.sns
value: aws.sns
brief: Amazon Simple Notification Service (SNS)
stability: development
- id: aws_sqs
value: aws_sqs
brief: Amazon Simple Queue Service (SQS)
stability: development
- id: eventgrid
value: eventgrid
brief: Azure Event Grid
stability: development
- id: eventhubs
value: eventhubs
brief: Azure Event Hubs
stability: development
- id: servicebus
value: servicebus
brief: Azure Service Bus
stability: development
- id: gcp_pubsub
value: gcp_pubsub
brief: Google Cloud Pub/Sub
stability: development
- id: jms
value: jms
brief: Java Message Service
stability: development
- id: kafka
value: kafka
brief: Apache Kafka
stability: development
- id: rabbitmq
value: rabbitmq
brief: RabbitMQ
stability: development
- id: rocketmq
value: rocketmq
brief: Apache RocketMQ
stability: development
- id: pulsar
value: pulsar
brief: Apache Pulsar
stability: development
brief: The messaging system as identified by the client instrumentation.
note: |
The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge.
stability: development
- key: net.host.ip
type: string
examples: 192.168.0.1
brief: Deprecated, use `network.local.address`.
stability: development
deprecated:
reason: renamed
renamed_to: network.local.address
note: Replaced by `network.local.address`.
- key: net.host.name
type: string
examples:
- example.com
brief: Deprecated, use `server.address`.
stability: development
deprecated:
reason: renamed
renamed_to: server.address
note: Replaced by `server.address`.
- key: net.host.port
type: int
examples:
- 8080
brief: Deprecated, use `server.port`.
stability: development
deprecated:
reason: renamed
renamed_to: server.port
note: Replaced by `server.port`.
- key: net.peer.ip
type: string
examples: 127.0.0.1
brief: Deprecated, use `network.peer.address`.
stability: development
deprecated:
reason: renamed
renamed_to: network.peer.address
note: Replaced by `network.peer.address`.
- key: net.peer.name
type: string
examples:
- example.com
brief: Deprecated, use `server.address` on client spans and `client.address` on server spans.
stability: development
deprecated:
reason: uncategorized
note: Replaced by `server.address` on client spans and `client.address` on server spans.
- key: net.peer.port
type: int
examples:
- 8080
brief: Deprecated, use `server.port` on client spans and `client.port` on server spans.
stability: development
deprecated:
reason: uncategorized
note: Replaced by `server.port` on client spans and `client.port` on server spans.
- key: net.protocol.name
type: string
examples:
- amqp
- http
- mqtt
brief: Deprecated, use `network.protocol.name`.
stability: development
deprecated:
reason: renamed
renamed_to: network.protocol.name
note: Replaced by `network.protocol.name`.
- key: net.protocol.version
type: string
examples: 3.1.1
brief: Deprecated, use `network.protocol.version`.
stability: development
deprecated:
reason: renamed
renamed_to: network.protocol.version
note: Replaced by `network.protocol.version`.
- key: net.sock.family
type:
members:
- id: inet
value: inet
brief: IPv4 address
stability: development
- id: inet6
value: inet6
brief: IPv6 address
stability: development
- id: unix
value: unix
brief: Unix domain socket path
stability: development
brief: Deprecated, use `network.transport` and `network.type`.
stability: development
deprecated:
reason: uncategorized
note: Split to `network.transport` and `network.type`.
- key: net.sock.host.addr
type: string
examples:
- /var/my.sock
brief: Deprecated, use `network.local.address`.
stability: development
deprecated:
reason: renamed
renamed_to: network.local.address
note: Replaced by `network.local.address`.
- key: net.sock.host.port
type: int
examples:
- 8080
brief: Deprecated, use `network.local.port`.
stability: development
deprecated:
reason: renamed
renamed_to: network.local.port
note: Replaced by `network.local.port`.
- key: net.sock.peer.addr
type: string
examples:
- 192.168.0.1
brief: Deprecated, use `network.peer.address`.
stability: development
deprecated:
reason: renamed
renamed_to: network.peer.address
note: Replaced by `network.peer.address`.
- key: net.sock.peer.name
type: string
examples:
- /var/my.sock
brief: Deprecated, no replacement at this time.
stability: development
deprecated:
reason: obsoleted
note: Removed. No replacement at this time.
- key: net.sock.peer.port
type: int
examples:
- 65531
brief: Deprecated, use `network.peer.port`.
stability: development
deprecated:
reason: renamed
renamed_to: network.peer.port
note: Replaced by `network.peer.port`.
- key: net.transport
type:
members:
- id: ip_tcp
value: ip_tcp
stability: development
- id: ip_udp
value: ip_udp
stability: development
- id: pipe
value: pipe
brief: Named or anonymous pipe.
stability: development
- id: inproc
value: inproc
brief: In-process communication.
note: |
Signals that there is only in-process communication not using a "real" network protocol in cases where network attributes would normally be expected. Usually all other network attributes can be left out in that case.
stability: development
- id: other
value: other
brief: Something else (non IP-based).
stability: development
brief: Deprecated, use `network.transport`.
stability: development
deprecated:
reason: renamed
renamed_to: network.transport
note: Replaced by `network.transport`.
- key: network.carrier.icc
type: string
examples: DE
brief: The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.
stability: development
- key: network.carrier.mcc
type: string
examples: '310'
brief: The mobile carrier country code.
stability: development
- key: network.carrier.mnc
type: string
examples: '001'
brief: The mobile carrier network code.
stability: development
- key: network.carrier.name
type: string
examples: sprint
brief: The name of the mobile carrier.
stability: development
- key: network.connection.state
type:
members:
- id: closed
value: closed
stability: development
- id: close_wait
value: close_wait
stability: development
- id: closing
value: closing
stability: development
- id: established
value: established
stability: development
- id: fin_wait_1
value: fin_wait_1
stability: development
- id: fin_wait_2
value: fin_wait_2
stability: development
- id: last_ack
value: last_ack
stability: development
- id: listen
value: listen
stability: development
- id: syn_received
value: syn_received
stability: development
- id: syn_sent
value: syn_sent
stability: development
- id: time_wait
value: time_wait
stability: development
examples:
- close_wait
brief: The state of network connection
note: Connection states are defined as part of the [rfc9293](https://datatracker.ietf.org/doc/html/rfc9293#section-3.3.2)
stability: development
- key: network.connection.subtype
type:
members:
- id: gprs
value: gprs
brief: GPRS
stability: development
- id: edge
value: edge
brief: EDGE
stability: development
- id: umts
value: umts
brief: UMTS
stability: development
- id: cdma
value: cdma
brief: CDMA
stability: development
- id: evdo_0
value: evdo_0
brief: EVDO Rel. 0
stability: development
- id: evdo_a
value: evdo_a
brief: EVDO Rev. A
stability: development
- id: cdma2000_1xrtt
value: cdma2000_1xrtt
brief: CDMA2000 1XRTT
stability: development
- id: hsdpa
value: hsdpa
brief: HSDPA
stability: development
- id: hsupa
value: hsupa
brief: HSUPA
stability: development
- id: hspa
value: hspa
brief: HSPA
stability: development
- id: iden
value: iden
brief: IDEN
stability: development
- id: evdo_b
value: evdo_b
brief: EVDO Rev. B
stability: development
- id: lte
value: lte
brief: LTE
stability: development
- id: ehrpd
value: ehrpd
brief: EHRPD
stability: development
- id: hspap
value: hspap
brief: HSPAP
stability: development
- id: gsm
value: gsm
brief: GSM
stability: development
- id: td_scdma
value: td_scdma
brief: TD-SCDMA
stability: development
- id: iwlan
value: iwlan
brief: IWLAN
stability: development
- id: nr
value: nr
brief: 5G NR (New Radio)
stability: development
- id: nrnsa
value: nrnsa
brief: 5G NRNSA (New Radio Non-Standalone)
stability: development
- id: lte_ca
value: lte_ca
brief: LTE CA
stability: development
examples: LTE
brief: This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.
stability: development
- key: network.connection.type
type:
members:
- id: wifi
value: wifi
stability: development
- id: wired
value: wired
stability: development
- id: cell
value: cell
stability: development
- id: unavailable
value: unavailable
stability: development
- id: unknown
value: unknown
stability: development
examples: wifi
brief: The internet connection type.
stability: development
- key: network.interface.name
type: string
examples:
- lo
- eth0
brief: The network interface name.
stability: development
- key: network.io.direction
type:
members:
- id: transmit
value: transmit
stability: development
- id: receive
value: receive
stability: development
examples:
- transmit
brief: The network IO operation direction.
stability: development
- key: network.io.direction
type:
members:
- id: transmit
value: transmit
stability: development
- id: receive
value: receive
stability: development
examples:
- receive
- transmit
brief: Direction of network traffic for network errors.
note: |
This attribute SHOULD only be used when `hw.type` is set to `"network"` to indicate the direction of the error.
stability: development
- key: network.io.direction
type:
members:
- id: transmit
value: transmit
stability: development
- id: receive
value: receive
stability: development
examples:
- receive
- transmit
brief: The network IO operation direction.
stability: development
- key: network.local.address
type: string
examples:
- 10.1.2.80
- /tmp/my.sock
brief: Local socket address. Useful in case of a multi-IP host.
stability: stable
- key: network.local.address
type: string
examples:
- 10.1.2.80
- /tmp/my.sock
brief: Local address of the network connection - IP address or Unix domain socket name.
stability: stable
- key: network.local.port
type: int
examples:
- 65123
brief: Local port number of the network connection.
stability: stable
- key: network.local.port
type: int
examples:
- 65123
brief: Local socket port. Useful in case of a multi-port host.
stability: stable
- key: network.peer.address
type: string
examples:
- 10.1.2.80
- /tmp/my.sock
brief: Peer address of the network connection - IP address or Unix domain socket name.
note: |
If an operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used.
stability: stable
- key: network.peer.address
type: string
examples:
- 10.1.2.80
- /tmp/my.sock
brief: Peer IP address of the socket connection.
note: |
The `network.peer.address` attribute is available only if the connection was successfully established and only for IP sockets.
stability: stable
- key: network.peer.address
type: string
examples:
- 10.1.2.80
- /tmp/my.sock
brief: Peer address of the network connection - IP address or Unix domain socket name.
stability: stable
- key: network.peer.address
type: string
examples:
- 10.1.2.80
- /tmp/my.sock
brief: Peer address of the messaging intermediary node where the operation was performed.
note: |
Semantic conventions for individual messaging systems SHOULD document whether `network.peer.*` attributes are applicable.
Network peer address and port are important when the application interacts with individual intermediary nodes directly,
If a messaging operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used.
stability: stable
- key: network.peer.address
type: string
examples:
- 10.1.2.80
- /tmp/my.sock
brief: Peer address of the database node where the operation was performed.
note: |
Semantic conventions for individual database systems SHOULD document whether `network.peer.*` attributes are applicable. Network peer address and port are useful when the application interacts with individual database nodes directly.
If a database operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used.
stability: stable
- key: network.peer.address
type: string
examples:
- 10.1.2.80
- /tmp/my.sock
brief: Peer address of the database node where the operation was performed.
note: |
If a database operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used.
stability: stable
- key: network.peer.port
type: int
examples:
- 65123
brief: Peer port number of the network connection.
stability: stable
- key: network.peer.port
type: int
examples:
- 65123
brief: Peer port of the messaging intermediary node where the operation was performed.
stability: stable
- key: network.protocol.name
type: string
examples:
- http
- spdy
brief: '[OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.'
note: The value SHOULD be normalized to lowercase.
stability: stable
- key: network.protocol.name
type: string
examples:
- http
- web_sockets
brief: '[OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.'
note: The value SHOULD be normalized to lowercase.
stability: stable
- key: network.protocol.name
type: string
examples:
- amqp
- http
- mqtt
brief: '[OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.'
note: The value SHOULD be normalized to lowercase.
stability: stable
- key: network.protocol.name
type: string
examples:
- http
brief: '[OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.'
note: The value SHOULD be normalized to lowercase.
stability: stable
- key: network.protocol.version
type: string
examples:
- '1.0'
- '1.1'
- '2'
- '3'
brief: The actual version of the protocol used for network communication.
note: |
If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute SHOULD be set to the negotiated version. If the actual protocol version is not known, this attribute SHOULD NOT be set.
stability: stable
- key: network.protocol.version
type: string
examples:
- '1.1'
- '2'
brief: The actual version of the protocol used for network communication.
note: |
If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute SHOULD be set to the negotiated version. If the actual protocol version is not known, this attribute SHOULD NOT be set.
stability: stable
- key: network.transport
type:
members:
- id: tcp
value: tcp
brief: TCP
stability: stable
- id: udp
value: udp
brief: UDP
stability: stable
- id: pipe
value: pipe
brief: Named or anonymous pipe.
stability: stable
- id: unix
value: unix
brief: Unix domain socket
stability: stable
- id: quic
value: quic
brief: QUIC
stability: stable
examples:
- tcp
- udp
brief: |
[OSI transport layer](https://wikipedia.org/wiki/Transport_layer) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication).
note: |
The value SHOULD be normalized to lowercase.
Consider always setting the transport when setting a port number, since
a port number is ambiguous without knowing the transport. For example
different processes could be listening on TCP port 12345 and UDP port 12345.
stability: stable
- key: network.transport
type:
members:
- id: tcp
value: tcp
brief: TCP
stability: stable
- id: udp
value: udp
brief: UDP
stability: stable
- id: pipe
value: pipe
brief: Named or anonymous pipe.
stability: stable
- id: unix
value: unix
brief: Unix domain socket
stability: stable
- id: quic
value: quic
brief: QUIC
stability: stable
examples:
- tcp
- udp
brief: |
[OSI transport layer](https://wikipedia.org/wiki/Transport_layer) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication).
note: |
Generally `tcp` for `HTTP/1.0`, `HTTP/1.1`, and `HTTP/2`. Generally `udp` for `HTTP/3`. Other obscure implementations are possible.
stability: stable
- key: network.transport
type:
members:
- id: tcp
value: tcp
brief: TCP
stability: stable
- id: udp
value: udp
brief: UDP
stability: stable
- id: pipe
value: pipe
brief: Named or anonymous pipe.
stability: stable
- id: unix
value: unix
brief: Unix domain socket
stability: stable
- id: quic
value: quic
brief: QUIC
stability: stable
examples:
- tcp
- unix
brief: |
[OSI transport layer](https://wikipedia.org/wiki/Transport_layer) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication).
note: |
The value SHOULD be normalized to lowercase.
Consider always setting the transport when setting a port number, since
a port number is ambiguous without knowing the transport. For example
different processes could be listening on TCP port 12345 and UDP port 12345.
stability: stable
- key: network.transport
type:
members:
- id: tcp
value: tcp
brief: TCP
stability: stable
- id: udp
value: udp
brief: UDP
stability: stable
- id: pipe
value: pipe
brief: Named or anonymous pipe.
stability: stable
- id: unix
value: unix
brief: Unix domain socket
stability: stable
- id: quic
value: quic
brief: QUIC
stability: stable
examples:
- tcp
- udp
- unix
brief: |
[OSI transport layer](https://wikipedia.org/wiki/Transport_layer) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication).
note: |
The value SHOULD be normalized to lowercase.
Consider always setting the transport when setting a port number, since
a port number is ambiguous without knowing the transport. For example
different processes could be listening on TCP port 12345 and UDP port 12345.
stability: stable
- key: network.type
type:
members:
- id: ipv4
value: ipv4
brief: IPv4
stability: stable
- id: ipv6
value: ipv6
brief: IPv6
stability: stable
examples:
- ipv4
- ipv6
brief: '[OSI network layer](https://wikipedia.org/wiki/Network_layer) or non-OSI equivalent.'
note: The value SHOULD be normalized to lowercase.
stability: stable
- key: nfs.operation.name
type: string
examples:
- OPEN
- READ
- GETATTR
brief: NFSv4+ operation name.
stability: development
- key: nfs.server.repcache.status
type: string
examples: hit
brief: |
Linux: one of "hit" (NFSD_STATS_RC_HITS), "miss" (NFSD_STATS_RC_MISSES), or "nocache" (NFSD_STATS_RC_NOCACHE -- uncacheable)
stability: development
- key: nodejs.eventloop.state
type:
members:
- id: active
value: active
brief: Active time.
stability: development
- id: idle
value: idle
brief: Idle time.
stability: development
brief: The state of event loop time.
stability: development
- key: oci.manifest.digest
type: string
examples:
- sha256:e4ca62c0d62f3e886e684806dfe9d4e0cda60d54986898173c1083856cfda0f4
brief: |
The digest of the OCI image manifest. For container images specifically is the digest by which the container image is known.
note: |
Follows [OCI Image Manifest Specification](https://github.com/opencontainers/image-spec/blob/main/manifest.md), and specifically the [Digest property](https://github.com/opencontainers/image-spec/blob/main/descriptor.md#digests).
An example can be found in [Example Image Manifest](https://github.com/opencontainers/image-spec/blob/main/manifest.md#example-image-manifest).
stability: development
- key: onc_rpc.procedure.name
type: string
examples:
- OPEN
- READ
- GETATTR
brief: ONC/Sun RPC procedure name.
stability: development
- key: onc_rpc.procedure.number
type: int
brief: ONC/Sun RPC procedure number.
stability: development
- key: onc_rpc.program.name
type: string
examples:
- portmapper
- nfs
brief: ONC/Sun RPC program name.
stability: development
- key: onc_rpc.version
type: int
brief: ONC/Sun RPC program version.
stability: development
- key: openai.request.service_tier
type:
members:
- id: auto
value: auto
brief: The system will utilize scale tier credits until they are exhausted.
stability: development
- id: default
value: default
brief: The system will utilize the default scale tier.
stability: development
examples:
- auto
- default
brief: The service tier requested. May be a specific tier, default, or auto.
stability: development
- key: openai.response.service_tier
type: string
examples:
- scale
- default
brief: The service tier used for the response.
stability: development
- key: openai.response.system_fingerprint
type: string
examples:
- fp_44709d6fcb
brief: A fingerprint to track any eventual change in the Generative AI environment.
stability: development
- key: openshift.clusterquota.name
type: string
examples:
- opentelemetry
brief: |
The name of the cluster quota.
stability: development
- key: openshift.clusterquota.uid
type: string
examples:
- 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff
brief: |
The UID of the cluster quota.
stability: development
- key: opentracing.ref_type
type:
members:
- id: child_of
value: child_of
brief: The parent Span depends on the child Span in some capacity
stability: development
- id: follows_from
value: follows_from
brief: The parent Span doesn't depend in any way on the result of the child Span
stability: development
brief: Parent-child Reference type
note: |
The causal relationship between a child Span and a parent Span.
stability: development
- key: os.build_id
type: string
examples:
- TQ3C.230805.001.B2
- '20E247'
- '22621'
brief: Unique identifier for a particular build or compilation of the operating system.
note: |
`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`; <br> contents of `/proc/sys/kernel/osrelease`|
stability: development
- key: os.build_id
type: string
examples:
- TQ3C.230805.001.B2
- '20E247'
- '22621'
brief: Unique identifier for a particular build or compilation of the operating system.
stability: development
- key: os.description
type: string
examples: IBM z/OS 3.1
brief: Human readable OS version information, e.g., as reported by command `d iplinfo`.
stability: development
- key: os.description
type: string
examples:
- Microsoft Windows [Version 10.0.18363.778]
- Ubuntu 18.04.1 LTS
brief: |
Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands.
stability: development
- key: os.name
type: string
examples:
- iOS
- Android
- Ubuntu
brief: Human readable operating system name.
stability: development
- key: os.name
type: string
examples: z/OS
brief: Human readable operating system name.
stability: development
- key: os.type
type:
members:
- id: windows
value: windows
brief: Microsoft Windows
stability: development
- id: linux
value: linux
brief: Linux
stability: development
- id: darwin
value: darwin
brief: Apple Darwin
stability: development
- id: freebsd
value: freebsd
brief: FreeBSD
stability: development
- id: netbsd
value: netbsd
brief: NetBSD
stability: development
- id: openbsd
value: openbsd
brief: OpenBSD
stability: development
- id: dragonflybsd
value: dragonflybsd
brief: DragonFly BSD
stability: development
- id: hpux
value: hpux
brief: HP-UX (Hewlett Packard Unix)
stability: development
- id: aix
value: aix
brief: AIX (Advanced Interactive eXecutive)
stability: development
- id: solaris
value: solaris
brief: SunOS, Oracle Solaris
stability: development
- id: z_os
value: z_os
brief: Deprecated. Use `zos` instead.
stability: development
deprecated:
reason: renamed
renamed_to: zos
note: Replaced by `zos`.
- id: zos
value: zos
brief: IBM z/OS
stability: development
brief: |
The operating system type.
stability: development
- key: os.type
type:
members:
- id: windows
value: windows
brief: Microsoft Windows
stability: development
- id: linux
value: linux
brief: Linux
stability: development
- id: darwin
value: darwin
brief: Apple Darwin
stability: development
- id: freebsd
value: freebsd
brief: FreeBSD
stability: development
- id: netbsd
value: netbsd
brief: NetBSD
stability: development
- id: openbsd
value: openbsd
brief: OpenBSD
stability: development
- id: dragonflybsd
value: dragonflybsd
brief: DragonFly BSD
stability: development
- id: hpux
value: hpux
brief: HP-UX (Hewlett Packard Unix)
stability: development
- id: aix
value: aix
brief: AIX (Advanced Interactive eXecutive)
stability: development
- id: solaris
value: solaris
brief: SunOS, Oracle Solaris
stability: development
- id: z_os
value: z_os
brief: Deprecated. Use `zos` instead.
stability: development
deprecated:
reason: renamed
renamed_to: zos
note: Replaced by `zos`.
- id: zos
value: zos
brief: IBM z/OS
stability: development
examples: zos
brief: |
The operating system type.
stability: development
- key: os.version
type: string
examples:
- 14.2.1
- 18.04.1
brief: |
The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
stability: development
- key: os.version
type: string
examples: 3.1.0
brief: The version string of the operating system. On z/OS, SHOULD be the release returned by the command `d iplinfo`.
stability: development
- key: otel.component.name
type: string
examples:
- otlp_grpc_span_exporter/0
- custom-name
brief: |
A name uniquely identifying the instance of the OpenTelemetry component within its containing SDK instance.
note: |
Implementations SHOULD ensure a low cardinality for this attribute, even across application or SDK restarts.
E.g. implementations MUST NOT use UUIDs as values for this attribute.
Implementations MAY achieve these goals by following a `<otel.component.type>/<instance-counter>` pattern, e.g. `batching_span_processor/0`.
Hereby `otel.component.type` refers to the corresponding attribute value of the component.
The value of `instance-counter` MAY be automatically assigned by the component and uniqueness within the enclosing SDK instance MUST be guaranteed.
For example, `<instance-counter>` MAY be implemented by using a monotonically increasing counter (starting with `0`), which is incremented every time an
instance of the given component type is started.
With this implementation, for example the first Batching Span Processor would have `batching_span_processor/0`
as `otel.component.name`, the second one `batching_span_processor/1` and so on.
These values will therefore be reused in the case of an application restart.
stability: development
- key: otel.component.type
type:
members:
- id: batching_span_processor
value: batching_span_processor
brief: |
The builtin SDK batching span processor
stability: development
- id: simple_span_processor
value: simple_span_processor
brief: |
The builtin SDK simple span processor
stability: development
- id: batching_log_processor
value: batching_log_processor
brief: |
The builtin SDK batching log record processor
stability: development
- id: simple_log_processor
value: simple_log_processor
brief: |
The builtin SDK simple log record processor
stability: development
- id: otlp_grpc_span_exporter
value: otlp_grpc_span_exporter
brief: |
OTLP span exporter over gRPC with protobuf serialization
stability: development
- id: otlp_http_span_exporter
value: otlp_http_span_exporter
brief: |
OTLP span exporter over HTTP with protobuf serialization
stability: development
- id: otlp_http_json_span_exporter
value: otlp_http_json_span_exporter
brief: |
OTLP span exporter over HTTP with JSON serialization
stability: development
- id: zipkin_http_span_exporter
value: zipkin_http_span_exporter
brief: |
Zipkin span exporter over HTTP
stability: development
- id: otlp_grpc_log_exporter
value: otlp_grpc_log_exporter
brief: |
OTLP log record exporter over gRPC with protobuf serialization
stability: development
- id: otlp_http_log_exporter
value: otlp_http_log_exporter
brief: |
OTLP log record exporter over HTTP with protobuf serialization
stability: development
- id: otlp_http_json_log_exporter
value: otlp_http_json_log_exporter
brief: |
OTLP log record exporter over HTTP with JSON serialization
stability: development
- id: periodic_metric_reader
value: periodic_metric_reader
brief: |
The builtin SDK periodically exporting metric reader
stability: development
- id: otlp_grpc_metric_exporter
value: otlp_grpc_metric_exporter
brief: |
OTLP metric exporter over gRPC with protobuf serialization
stability: development
- id: otlp_http_metric_exporter
value: otlp_http_metric_exporter
brief: |
OTLP metric exporter over HTTP with protobuf serialization
stability: development
- id: otlp_http_json_metric_exporter
value: otlp_http_json_metric_exporter
brief: |
OTLP metric exporter over HTTP with JSON serialization
stability: development
- id: prometheus_http_text_metric_exporter
value: prometheus_http_text_metric_exporter
brief: |
Prometheus metric exporter over HTTP with the default text-based format
stability: development
examples:
- otlp_grpc_span_exporter
- com.example.MySpanExporter
brief: |
A name identifying the type of the OpenTelemetry component.
note: |
If none of the standardized values apply, implementations SHOULD use the language-defined name of the type.
E.g. for Java the fully qualified classname SHOULD be used in this case.
stability: development
- key: otel.component.type
type:
members:
- id: batching_span_processor
value: batching_span_processor
brief: |
The builtin SDK batching span processor
stability: development
- id: simple_span_processor
value: simple_span_processor
brief: |
The builtin SDK simple span processor
stability: development
- id: batching_log_processor
value: batching_log_processor
brief: |
The builtin SDK batching log record processor
stability: development
- id: simple_log_processor
value: simple_log_processor
brief: |
The builtin SDK simple log record processor
stability: development
- id: otlp_grpc_span_exporter
value: otlp_grpc_span_exporter
brief: |
OTLP span exporter over gRPC with protobuf serialization
stability: development
- id: otlp_http_span_exporter
value: otlp_http_span_exporter
brief: |
OTLP span exporter over HTTP with protobuf serialization
stability: development
- id: otlp_http_json_span_exporter
value: otlp_http_json_span_exporter
brief: |
OTLP span exporter over HTTP with JSON serialization
stability: development
- id: zipkin_http_span_exporter
value: zipkin_http_span_exporter
brief: |
Zipkin span exporter over HTTP
stability: development
- id: otlp_grpc_log_exporter
value: otlp_grpc_log_exporter
brief: |
OTLP log record exporter over gRPC with protobuf serialization
stability: development
- id: otlp_http_log_exporter
value: otlp_http_log_exporter
brief: |
OTLP log record exporter over HTTP with protobuf serialization
stability: development
- id: otlp_http_json_log_exporter
value: otlp_http_json_log_exporter
brief: |
OTLP log record exporter over HTTP with JSON serialization
stability: development
- id: periodic_metric_reader
value: periodic_metric_reader
brief: |
The builtin SDK periodically exporting metric reader
stability: development
- id: otlp_grpc_metric_exporter
value: otlp_grpc_metric_exporter
brief: |
OTLP metric exporter over gRPC with protobuf serialization
stability: development
- id: otlp_http_metric_exporter
value: otlp_http_metric_exporter
brief: |
OTLP metric exporter over HTTP with protobuf serialization
stability: development
- id: otlp_http_json_metric_exporter
value: otlp_http_json_metric_exporter
brief: |
OTLP metric exporter over HTTP with JSON serialization
stability: development
- id: prometheus_http_text_metric_exporter
value: prometheus_http_text_metric_exporter
brief: |
Prometheus metric exporter over HTTP with the default text-based format
stability: development
examples:
- batching_span_processor
- com.example.MySpanExporter
brief: |
A name identifying the type of the OpenTelemetry component.
note: |
If none of the standardized values apply, implementations SHOULD use the language-defined name of the type.
E.g. for Java the fully qualified classname SHOULD be used in this case.
stability: development
- key: otel.library.name
type: string
examples:
- io.opentelemetry.contrib.mongodb
brief: Deprecated. Use the `otel.scope.name` attribute
stability: development
deprecated:
reason: renamed
renamed_to: otel.scope.name
note: Replaced by `otel.scope.name`.
- key: otel.library.version
type: string
examples:
- 1.0.0
brief: Deprecated. Use the `otel.scope.version` attribute.
stability: development
deprecated:
reason: renamed
renamed_to: otel.scope.version
note: Replaced by `otel.scope.version`.
- key: otel.scope.name
type: string
examples:
- io.opentelemetry.contrib.mongodb
brief: The name of the instrumentation scope - (`InstrumentationScope.Name` in OTLP).
stability: stable
- key: otel.scope.schema_url
type: string
examples:
- https://opentelemetry.io/schemas/1.31.0
brief: The schema URL of the instrumentation scope.
stability: development
- key: otel.scope.version
type: string
examples:
- 1.0.0
brief: The version of the instrumentation scope - (`InstrumentationScope.Version` in OTLP).
stability: stable
- key: otel.span.parent.origin
type:
members:
- id: none
value: none
brief: The span does not have a parent, it is a root span
stability: development
- id: local
value: local
brief: The span has a parent and the parent's span context [isRemote()](https://opentelemetry.io/docs/specs/otel/trace/api/#isremote) is false
stability: development
- id: remote
value: remote
brief: The span has a parent and the parent's span context [isRemote()](https://opentelemetry.io/docs/specs/otel/trace/api/#isremote) is true
stability: development
brief: Determines whether the span has a parent span, and if so, [whether it is a remote parent](https://opentelemetry.io/docs/specs/otel/trace/api/#isremote)
stability: development
- key: otel.span.sampling_result
type:
members:
- id: drop
value: DROP
brief: The span is not sampled and not recording
stability: development
- id: record_only
value: RECORD_ONLY
brief: The span is not sampled, but recording
stability: development
- id: record_and_sample
value: RECORD_AND_SAMPLE
brief: The span is sampled and recording
stability: development
brief: The result value of the sampler for this span
stability: development
- key: otel.status_code
type:
members:
- id: ok
value: OK
brief: The operation has been validated by an Application developer or Operator to have completed successfully.
stability: stable
- id: error
value: ERROR
brief: The operation contains an error.
stability: stable
brief: Name of the code, either "OK" or "ERROR". MUST NOT be set if the status code is UNSET.
stability: stable
- key: otel.status_description
type: string
examples:
- resource not found
brief: Description of the Status if it has a value, otherwise not set.
stability: stable
- key: peer.service
type: string
examples: AuthTokenCache
brief: |
The [`service.name`](/docs/resource/README.md#service) of the remote service. SHOULD be equal to the actual `service.name` resource attribute of the remote service if any.
note: |
Examples of `peer.service` that users may specify:
- A Redis cache of auth tokens as `peer.service="AuthTokenCache"`.
- A gRPC service `rpc.service="io.opentelemetry.AuthService"` may be hosted in both a gateway, `peer.service="ExternalApiService"` and a backend, `peer.service="AuthService"`.
stability: development
- key: pool.name
type: string
examples:
- myDataSource
brief: Deprecated, use `db.client.connection.pool.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.pool.name
note: Replaced by `db.client.connection.pool.name`.
- key: pprof.location.is_folded
type: boolean
brief: |
Provides an indication that multiple symbols map to this location's address, for example due to identical code folding by the linker. In that case the line information represents one of the multiple symbols. This field must be recomputed when the symbolization state of the profile changes.
stability: development
- key: pprof.mapping.has_filenames
type: boolean
brief: |
Indicates that there are filenames related to this mapping.
stability: development
- key: pprof.mapping.has_functions
type: boolean
brief: |
Indicates that there are functions related to this mapping.
stability: development
- key: pprof.mapping.has_inline_frames
type: boolean
brief: |
Indicates that there are inline frames related to this mapping.
stability: development
- key: pprof.mapping.has_line_numbers
type: boolean
brief: |
Indicates that there are line numbers related to this mapping.
stability: development
- key: pprof.profile.comment
type: string[]
examples:
- - hello world
- bazinga
brief: |
Free-form text associated with the profile. This field should not be used to store any machine-readable information, it is only for human-friendly content.
stability: development
- key: process.args_count
type: int
examples:
- 4
brief: |
Length of the process.command_args array
note: |
This field can be useful for querying or performing bucket analysis on how many arguments were provided to start a process. More arguments may be an indication of suspicious activity.
stability: development
- key: process.command
type: string
examples:
- cmd/otelcol
brief: |
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`.
stability: development
- key: process.command
type: string
examples: CICSSTRT
brief: The command used to launch the process (i.e. the command name). On z/OS, SHOULD be set to the name of the job used to start the z/OS system software.
stability: development
- key: process.command_args
type: string[]
examples:
- - cmd/otecol
- --config=config.yaml
brief: |
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`. SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data.
stability: development
- key: process.command_line
type: string
examples:
- C:\cmd\otecol --config="my directory\config.yaml"
brief: |
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. SHOULD NOT be collected by default unless there is sanitization that excludes sensitive data.
stability: development
- key: process.context_switch.type
type:
members:
- id: voluntary
value: voluntary
stability: development
- id: involuntary
value: involuntary
stability: development
brief: Specifies whether the context switches for this data point were voluntary or involuntary.
stability: development
- key: process.context_switch_type
type:
members:
- id: voluntary
value: voluntary
stability: development
- id: involuntary
value: involuntary
stability: development
brief: |
"Deprecated, use `process.context_switch.type` instead."
stability: development
deprecated:
reason: renamed
renamed_to: process.context_switch.type
note: Replaced by `process.context_switch.type`.
annotations:
code_generation:
exclude: true
- key: process.cpu.state
type:
members:
- id: system
value: system
stability: development
- id: user
value: user
stability: development
- id: wait
value: wait
stability: development
brief: Deprecated, use `cpu.mode` instead.
stability: development
deprecated:
reason: renamed
renamed_to: cpu.mode
note: Replaced by `cpu.mode`.
- key: process.creation.time
type: string
examples:
- 2023-11-21T09:25:34.853Z
brief: |
The date and time the process was created, in ISO 8601 format.
stability: development
- key: process.environment_variable
type: template[string]
examples:
- ubuntu
- /usr/local/bin:/usr/bin
brief: |
Process environment variables, `<key>` being the environment variable name, the value being the environment variable value.
note: |
Examples:
- an environment variable `USER` with value `"ubuntu"` SHOULD be recorded
as the `process.environment_variable.USER` attribute with value `"ubuntu"`.
- an environment variable `PATH` with value `"/usr/local/bin:/usr/bin"`
SHOULD be recorded as the `process.environment_variable.PATH` attribute
with value `"/usr/local/bin:/usr/bin"`.
stability: development
- key: process.executable.build_id.gnu
type: string
examples:
- c89b11207f6479603b0d49bf291c092c2b719293
brief: |
The GNU build ID as found in the `.note.gnu.build-id` ELF section (hex string).
stability: development
- key: process.executable.build_id.go
type: string
examples:
- foh3mEXu7BLZjsN9pOwG/kATcXlYVCDEFouRMQed_/WwRFB1hPo9LBkekthSPG/x8hMC8emW2cCjXD0_1aY
brief: |
The Go build ID as retrieved by `go tool buildid <go executable>`.
stability: development
- key: process.executable.build_id.htlhash
type: string
examples:
- 600DCAFE4A110000F2BF38C493F5FB92
brief: |
Profiling specific build ID for executables. See the OTel specification for Profiles for more information.
stability: development
- key: process.executable.build_id.profiling
type: string
examples:
- 600DCAFE4A110000F2BF38C493F5FB92
brief: |
"Deprecated, use `process.executable.build_id.htlhash` instead."
stability: development
deprecated:
reason: renamed
renamed_to: process.executable.build_id.htlhash
note: Replaced by `process.executable.build_id.htlhash`.
- key: process.executable.name
type: string
examples:
- otelcol
brief: |
The name of the process executable. On Linux based systems, this SHOULD be set to the base name of the target of `/proc/[pid]/exe`. On Windows, this SHOULD be set to the base name of `GetProcessImageFileNameW`.
stability: development
- key: process.executable.path
type: string
examples:
- /usr/bin/cmd/otelcol
brief: |
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`.
stability: development
- key: process.exit.code
type: int
examples:
- 127
brief: |
The exit code of the process.
stability: development
- key: process.exit.time
type: string
examples:
- 2023-11-21T09:26:12.315Z
brief: |
The date and time the process exited, in ISO 8601 format.
stability: development
- key: process.group_leader.pid
type: int
examples:
- 23
brief: |
The PID of the process's group leader. This is also the process group ID (PGID) of the process.
stability: development
- key: process.interactive
type: boolean
brief: |
Whether the process is connected to an interactive shell.
stability: development
- key: process.linux.cgroup
type: string
examples:
- 1:name=systemd:/user.slice/user-1000.slice/session-3.scope
- 0::/user.slice/user-1000.slice/[email protected]/tmux-spawn-0267755b-4639-4a27-90ed-f19f88e53748.scope
brief: The control group associated with the process.
note: |
Control groups (cgroups) are a kernel feature used to organize and manage process resources. This attribute provides the path(s) to the cgroup(s) associated with the process, which should match the contents of the [/proc/\[PID\]/cgroup](https://man7.org/linux/man-pages/man7/cgroups.7.html) file.
stability: development
- key: process.owner
type: string
examples:
- root
brief: |
The username of the user that owns the process.
stability: development
- key: process.owner
type: string
examples: CICSUSR
brief: |
The username of the user that owns the process.
note: On z/OS, SHOULD be set to the user under which the z/OS system software is executed.
stability: development
- key: process.paging.fault_type
type:
members:
- id: major
value: major
stability: development
- id: minor
value: minor
stability: development
brief: Deprecated, use `system.paging.fault.type` instead.
stability: development
deprecated:
reason: renamed
renamed_to: system.paging.fault.type
note: Replaced by `system.paging.fault.type`.
- key: process.parent_pid
type: int
examples:
- 111
brief: |
Parent Process identifier (PPID).
stability: development
- key: process.pid
type: int
examples: 008A
brief: |
Process identifier (PID).
note: On z/OS, SHOULD be set to the Address Space Identifier.
stability: development
- key: process.pid
type: int
examples:
- 1234
brief: |
Process identifier (PID).
stability: development
- key: process.real_user.id
type: int
examples:
- 1000
brief: |
The real user ID (RUID) of the process.
stability: development
- key: process.real_user.name
type: string
examples:
- operator
brief: |
The username of the real user of the process.
stability: development
- key: process.runtime.description
type: string
examples: Eclipse OpenJ9 Eclipse OpenJ9 VM openj9-0.21.0
brief: |
An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.
stability: development
- key: process.runtime.description
type: string
examples: IBM Customer Information Control System (CICS) Transaction Server for z/OS Version 5.6
brief: |
An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.
stability: development
- key: process.runtime.name
type: string
examples:
- OpenJDK Runtime Environment
brief: |
The name of the runtime of this process.
stability: development
- key: process.runtime.name
type: string
examples: CICS Transaction Server z/OS Version 5.6
brief: |
The name of the runtime of this process.
stability: development
- key: process.runtime.version
type: string
examples: 14.0.2
brief: |
The version of the runtime of this process, as returned by the runtime without modification.
stability: development
- key: process.runtime.version
type: string
examples: '5.6'
brief: |
The version of the runtime of this process, as returned by the runtime without modification.
stability: development
- key: process.saved_user.id
type: int
examples:
- 1002
brief: |
The saved user ID (SUID) of the process.
stability: development
- key: process.saved_user.name
type: string
examples:
- operator
brief: |
The username of the saved user.
stability: development
- key: process.session_leader.pid
type: int
examples:
- 14
brief: |
The PID of the process's session leader. This is also the session ID (SID) of the process.
stability: development
- key: process.state
type:
members:
- id: running
value: running
stability: development
- id: sleeping
value: sleeping
stability: development
- id: stopped
value: stopped
stability: development
- id: defunct
value: defunct
stability: development
examples:
- running
brief: |
The process state, e.g., [Linux Process State Codes](https://man7.org/linux/man-pages/man1/ps.1.html#PROCESS_STATE_CODES)
stability: development
- key: process.title
type: string
examples:
- cat /etc/hostname
- xfce4-session
- bash
brief: |
Process title (proctitle)
note: |
In many Unix-like systems, process title (proctitle), is the string that represents the name or command line of a running process, displayed by system monitoring tools like ps, top, and htop.
stability: development
- key: process.user.id
type: int
examples:
- 1001
brief: |
The effective user ID (EUID) of the process.
stability: development
- key: process.user.name
type: string
examples:
- root
brief: |
The username of the effective user of the process.
stability: development
- key: process.vpid
type: int
examples:
- 12
brief: |
Virtual process identifier.
note: |
The process ID within a PID namespace. This is not necessarily unique across all processes on the host but it is unique within the process namespace that the process exists within.
stability: development
- key: process.working_directory
type: string
examples:
- /root
brief: |
The working directory of the process.
stability: development
- key: profile.frame.type
type:
members:
- id: dotnet
value: dotnet
brief: |
[.NET](https://wikipedia.org/wiki/.NET)
stability: development
- id: jvm
value: jvm
brief: |
[JVM](https://wikipedia.org/wiki/Java_virtual_machine)
stability: development
- id: kernel
value: kernel
brief: |
[Kernel](https://wikipedia.org/wiki/Kernel_(operating_system))
stability: development
- id: native
value: native
brief: |
Can be one of but not limited to [C](https://wikipedia.org/wiki/C_(programming_language)), [C++](https://wikipedia.org/wiki/C%2B%2B), [Go](https://wikipedia.org/wiki/Go_(programming_language)) or [Rust](https://wikipedia.org/wiki/Rust_(programming_language)). If possible, a more precise value MUST be used.
stability: development
- id: perl
value: perl
brief: |
[Perl](https://wikipedia.org/wiki/Perl)
stability: development
- id: php
value: php
brief: |
[PHP](https://wikipedia.org/wiki/PHP)
stability: development
- id: cpython
value: cpython
brief: |
[Python](https://wikipedia.org/wiki/Python_(programming_language))
stability: development
- id: ruby
value: ruby
brief: |
[Ruby](https://wikipedia.org/wiki/Ruby_(programming_language))
stability: development
- id: v8js
value: v8js
brief: |
[V8JS](https://wikipedia.org/wiki/V8_(JavaScript_engine))
stability: development
- id: beam
value: beam
brief: |
[Erlang](https://en.wikipedia.org/wiki/BEAM_(Erlang_virtual_machine))
stability: development
- id: go
value: go
brief: |
[Go](https://wikipedia.org/wiki/Go_(programming_language)),
stability: development
- id: rust
value: rust
brief: |
[Rust](https://wikipedia.org/wiki/Rust_(programming_language))
stability: development
examples:
- cpython
brief: |
Describes the interpreter or compiler of a single frame.
stability: development
- key: rpc.connect_rpc.error_code
type:
members:
- id: cancelled
value: cancelled
stability: development
- id: unknown
value: unknown
stability: development
- id: invalid_argument
value: invalid_argument
stability: development
- id: deadline_exceeded
value: deadline_exceeded
stability: development
- id: not_found
value: not_found
stability: development
- id: already_exists
value: already_exists
stability: development
- id: permission_denied
value: permission_denied
stability: development
- id: resource_exhausted
value: resource_exhausted
stability: development
- id: failed_precondition
value: failed_precondition
stability: development
- id: aborted
value: aborted
stability: development
- id: out_of_range
value: out_of_range
stability: development
- id: unimplemented
value: unimplemented
stability: development
- id: internal
value: internal
stability: development
- id: unavailable
value: unavailable
stability: development
- id: data_loss
value: data_loss
stability: development
- id: unauthenticated
value: unauthenticated
stability: development
brief: The [error codes](https://connectrpc.com//docs/protocol/#error-codes) of the Connect request. Error codes are always string values.
stability: development
- key: rpc.connect_rpc.request.metadata
type: template[string[]]
examples:
- - 1.2.3.4
- 1.2.3.5
brief: |
Connect request metadata, `<key>` being the normalized Connect Metadata key (lowercase), the value being the metadata values.
note: |
Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
Including all request metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
For example, a property `my-custom-key` with value `["1.2.3.4", "1.2.3.5"]` SHOULD be recorded as
the `rpc.connect_rpc.request.metadata.my-custom-key` attribute with value `["1.2.3.4", "1.2.3.5"]`
stability: development
- key: rpc.connect_rpc.response.metadata
type: template[string[]]
examples:
- - attribute_value
brief: |
Connect response metadata, `<key>` being the normalized Connect Metadata key (lowercase), the value being the metadata values.
note: |
Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
Including all response metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
For example, a property `my-custom-key` with value `"attribute_value"` SHOULD be recorded as
the `rpc.connect_rpc.response.metadata.my-custom-key` attribute with value `["attribute_value"]`
stability: development
- key: rpc.grpc.request.metadata
type: template[string[]]
examples:
- - 1.2.3.4
- 1.2.3.5
brief: |
gRPC request metadata, `<key>` being the normalized gRPC Metadata key (lowercase), the value being the metadata values.
note: |
Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
Including all request metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
For example, a property `my-custom-key` with value `["1.2.3.4", "1.2.3.5"]` SHOULD be recorded as
`rpc.grpc.request.metadata.my-custom-key` attribute with value `["1.2.3.4", "1.2.3.5"]`
stability: development
- key: rpc.grpc.response.metadata
type: template[string[]]
examples:
- - attribute_value
brief: |
gRPC response metadata, `<key>` being the normalized gRPC Metadata key (lowercase), the value being the metadata values.
note: |
Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
Including all response metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
For example, a property `my-custom-key` with value `["attribute_value"]` SHOULD be recorded as
the `rpc.grpc.response.metadata.my-custom-key` attribute with value `["attribute_value"]`
stability: development
- key: rpc.grpc.status_code
type:
members:
- id: ok
value: 0
brief: OK
stability: development
- id: cancelled
value: 1
brief: CANCELLED
stability: development
- id: unknown
value: 2
brief: UNKNOWN
stability: development
- id: invalid_argument
value: 3
brief: INVALID_ARGUMENT
stability: development
- id: deadline_exceeded
value: 4
brief: DEADLINE_EXCEEDED
stability: development
- id: not_found
value: 5
brief: NOT_FOUND
stability: development
- id: already_exists
value: 6
brief: ALREADY_EXISTS
stability: development
- id: permission_denied
value: 7
brief: PERMISSION_DENIED
stability: development
- id: resource_exhausted
value: 8
brief: RESOURCE_EXHAUSTED
stability: development
- id: failed_precondition
value: 9
brief: FAILED_PRECONDITION
stability: development
- id: aborted
value: 10
brief: ABORTED
stability: development
- id: out_of_range
value: 11
brief: OUT_OF_RANGE
stability: development
- id: unimplemented
value: 12
brief: UNIMPLEMENTED
stability: development
- id: internal
value: 13
brief: INTERNAL
stability: development
- id: unavailable
value: 14
brief: UNAVAILABLE
stability: development
- id: data_loss
value: 15
brief: DATA_LOSS
stability: development
- id: unauthenticated
value: 16
brief: UNAUTHENTICATED
stability: development
brief: The gRPC status code of the last gRPC requests performed in scope of this export call.
stability: development
- key: rpc.grpc.status_code
type:
members:
- id: ok
value: 0
brief: OK
stability: development
- id: cancelled
value: 1
brief: CANCELLED
stability: development
- id: unknown
value: 2
brief: UNKNOWN
stability: development
- id: invalid_argument
value: 3
brief: INVALID_ARGUMENT
stability: development
- id: deadline_exceeded
value: 4
brief: DEADLINE_EXCEEDED
stability: development
- id: not_found
value: 5
brief: NOT_FOUND
stability: development
- id: already_exists
value: 6
brief: ALREADY_EXISTS
stability: development
- id: permission_denied
value: 7
brief: PERMISSION_DENIED
stability: development
- id: resource_exhausted
value: 8
brief: RESOURCE_EXHAUSTED
stability: development
- id: failed_precondition
value: 9
brief: FAILED_PRECONDITION
stability: development
- id: aborted
value: 10
brief: ABORTED
stability: development
- id: out_of_range
value: 11
brief: OUT_OF_RANGE
stability: development
- id: unimplemented
value: 12
brief: UNIMPLEMENTED
stability: development
- id: internal
value: 13
brief: INTERNAL
stability: development
- id: unavailable
value: 14
brief: UNAVAILABLE
stability: development
- id: data_loss
value: 15
brief: DATA_LOSS
stability: development
- id: unauthenticated
value: 16
brief: UNAUTHENTICATED
stability: development
brief: The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.
stability: development
- key: rpc.jsonrpc.error_code
type: int
examples:
- -32700
- 100
brief: '`error.code` property of response if it is an error response.'
stability: development
- key: rpc.jsonrpc.error_message
type: string
examples:
- Parse error
- User already exists
brief: '`error.message` property of response if it is an error response.'
stability: development
- key: rpc.jsonrpc.request_id
type: string
examples:
- '10'
- request-7
- ''
brief: |
`id` property of request or response. Since protocol allows id to be int, string, `null` or missing (for notifications), value is expected to be cast to string for simplicity. Use empty string in case of `null` value. Omit entirely if this is a notification.
stability: development
- key: rpc.jsonrpc.version
type: string
examples:
- '2.0'
- '1.0'
brief: Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 doesn't specify this, the value can be omitted.
stability: development
- key: rpc.message.compressed_size
type: int
brief: Compressed size of the message in bytes.
stability: development
- key: rpc.message.id
type: int
brief: MUST be calculated as two different counters starting from `1` one for sent messages and one for received message.
note: This way we guarantee that the values will be consistent between different implementations.
stability: development
- key: rpc.message.type
type:
members:
- id: sent
value: SENT
stability: development
- id: received
value: RECEIVED
stability: development
brief: Whether this is a received or sent message.
stability: development
- key: rpc.message.uncompressed_size
type: int
brief: Uncompressed size of the message in bytes.
stability: development
- key: rpc.method
type: string
examples: exampleMethod
brief: This is the logical name of the method from the RPC interface perspective.
stability: development
- key: rpc.method
type: string
examples: exampleMethod
brief: This is the logical name of the method from the RPC interface perspective.
note: |
This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The `code.function.name` attribute may be used to store the latter (e.g., method actually executing the call on the server side, RPC client stub method on the client side).
stability: development
- key: rpc.method
type: string
examples:
- GetItem
- PutItem
brief: The name of the operation corresponding to the request, as returned by the AWS SDK
stability: development
- key: rpc.service
type: string
examples:
- DynamoDB
- S3
brief: The name of the service to which a request is made, as returned by the AWS SDK.
stability: development
- key: rpc.service
type: string
examples: myservice.EchoService
brief: The full (logical) name of the service being called, including its package name, if applicable.
stability: development
- key: rpc.service
type: string
examples: myservice.EchoService
brief: The full (logical) name of the service being called, including its package name, if applicable.
note: |
This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The `code.namespace` attribute may be used to store the latter (despite the attribute name, it may include a class name; e.g., class with method actually executing the call on the server side, RPC client stub class on the client side).
stability: development
- key: rpc.system
type:
members:
- id: grpc
value: grpc
brief: gRPC
stability: development
- id: java_rmi
value: java_rmi
brief: Java RMI
stability: development
- id: dotnet_wcf
value: dotnet_wcf
brief: .NET WCF
stability: development
- id: apache_dubbo
value: apache_dubbo
brief: Apache Dubbo
stability: development
- id: connect_rpc
value: connect_rpc
brief: Connect RPC
stability: development
- id: onc_rpc
value: onc_rpc
brief: '[ONC RPC (Sun RPC)](https://datatracker.ietf.org/doc/html/rfc5531)'
stability: development
- id: jsonrpc
value: jsonrpc
brief: JSON-RPC
stability: development
brief: A string identifying the remoting system. See below for a list of well-known identifiers.
stability: development
- key: rpc.system
type:
members:
- id: grpc
value: grpc
brief: gRPC
stability: development
- id: java_rmi
value: java_rmi
brief: Java RMI
stability: development
- id: dotnet_wcf
value: dotnet_wcf
brief: .NET WCF
stability: development
- id: apache_dubbo
value: apache_dubbo
brief: Apache Dubbo
stability: development
- id: connect_rpc
value: connect_rpc
brief: Connect RPC
stability: development
- id: onc_rpc
value: onc_rpc
brief: '[ONC RPC (Sun RPC)](https://datatracker.ietf.org/doc/html/rfc5531)'
stability: development
- id: jsonrpc
value: jsonrpc
brief: JSON-RPC
stability: development
examples:
- aws-api
brief: The value `aws-api`.
stability: development
- key: security_rule.category
type: string
examples:
- Attempted Information Leak
brief: |
A categorization value keyword used by the entity using the rule for detection of this event
stability: development
- key: security_rule.description
type: string
examples:
- Block requests to public DNS over HTTPS / TLS protocols
brief: |
The description of the rule generating the event.
stability: development
- key: security_rule.license
type: string
examples:
- Apache 2.0
brief: |
Name of the license under which the rule used to generate this event is made available.
stability: development
- key: security_rule.name
type: string
examples:
- BLOCK_DNS_over_TLS
brief: |
The name of the rule or signature generating the event.
stability: development
- key: security_rule.reference
type: string
examples:
- https://en.wikipedia.org/wiki/DNS_over_TLS
brief: |
Reference URL to additional information about the rule used to generate this event.
note: |
The URL can point to the vendor’s documentation about the rule. If that’s not available, it can also be a link to a more general page describing this type of alert.
stability: development
- key: security_rule.ruleset.name
type: string
examples:
- Standard_Protocol_Filters
brief: |
Name of the ruleset, policy, group, or parent category in which the rule used to generate this event is a member.
stability: development
- key: security_rule.uuid
type: string
examples:
- 550e8400-e29b-41d4-a716-446655440000
- '1100110011'
brief: |
A rule ID that is unique within the scope of a set or group of agents, observers, or other entities using the rule for detection of this event.
stability: development
- key: security_rule.version
type: string
examples:
- 1.0.0
brief: |
The version / revision of the rule being used for analysis.
stability: development
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
Name of the local HTTP server that received the request.
note: |
See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes).
stability: stable
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
Name of the database host.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
Name of the local HTTP server that received the request.
note: |
See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes).
> **Warning**
> Since this attribute is based on HTTP headers, opting in to it may allow an attacker
> to trigger cardinality limits, degrading the usefulness of the metric.
stability: stable
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
stability: stable
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: GenAI server address.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
Server domain name of the broker if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
stability: stable
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
RPC server [host name](https://grpc.github.io/grpc/core/md_doc_naming.html).
note: |
May contain server IP address, DNS name, or local socket name. When host component is an IP address, instrumentations SHOULD NOT do a reverse proxy lookup to obtain DNS name and SHOULD set `server.address` to the IP address provided in the host component.
stability: stable
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
In HTTP/1.1, when the [request target](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)
is passed in its [absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2),
the `server.address` SHOULD match the host component of the request target.
In all other cases, `server.address` SHOULD match the host component of the
`Host` header in HTTP/1.1 or the `:authority` pseudo-header in HTTP/2 and HTTP/3.
stability: stable
- key: server.address
type: string
examples:
- opentelemetry.io
- example.com
brief: The [server name indication (SNI)](https://en.wikipedia.org/wiki/Server_Name_Indication) used in the 'Client Hello' message during TLS handshake.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: |
Port of the local HTTP server that received the request.
note: |
See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes).
stability: stable
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: |
Port of the local HTTP server that received the request.
note: |
See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes).
> **Warning**
> Since this attribute is based on HTTP headers, opting in to it may allow an attacker
> to trigger cardinality limits, degrading the usefulness of the metric.
stability: stable
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
stability: stable
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: GenAI server port.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
In the case of HTTP/1.1, when the [request target](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)
is passed in its [absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2),
the `server.port` SHOULD match the port component of the request target.
In all other cases, `server.port` SHOULD match the port component of the
`Host` header in HTTP/1.1 or the `:authority` pseudo-header in HTTP/2 and HTTP/3.
stability: stable
- key: service.instance.id
type: string
examples:
- 627cc493-f310-47de-96bd-71410b7dec09
brief: |
The string ID of the service instance.
note: |
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](https://www.ietf.org/rfc/rfc4122.txt) 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`](https://www.freedesktop.org/software/systemd/man/latest/machine-id.html) 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.
stability: development
- key: service.instance.id
type: string
examples: CICSPROD
brief: |
The string ID of the service instance.
note: For z/OS system software, SHOULD be set to the identifier representing the current instance of the the z/OS system software, e.g., the CICS region APPLID or IMS region IMSID.
stability: development
- key: service.name
type: string
examples:
- CICS TS
- Datacom
- ADABAS
brief: |
Logical name of the service.
note: For z/OS system software, SHOULD be set to an abbreviated name of the z/OS system software.
stability: stable
- key: service.name
type: string
examples:
- shoppingcart
brief: |
Logical name of the service.
note: |
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`](process.md), e.g. `unknown_service:bash`. If `process.executable.name` is not available, the value MUST be set to `unknown_service`.
stability: stable
- key: service.namespace
type: string
examples:
- Shop
brief: |
A namespace for `service.name`.
note: |
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.
stability: development
- key: service.namespace
type: string
examples: CICSPLX2
brief: |
A namespace for `service.name`.
note: For z/OS system software, SHOULD be set to the identifier representing of a grouping of the z/OS system software instances, e.g., the name of the CICSPLEX.
stability: development
- key: service.version
type: string
examples: '5.6'
brief: |
The version string of the service API or implementation. The format is not defined by these conventions.
note: For z/OS system software, SHOULD be set to the version of the z/OS system software.
stability: stable
- key: service.version
type: string
examples:
- 2.0.0
- a01dbef8a
brief: |
The version string of the service API or implementation. The format is not defined by these conventions.
stability: stable
- key: session.id
type: string
examples: 00112233-4455-6677-8899-aabbccddeeff
brief: The ID of the new session being started.
stability: development
- key: session.id
type: string
examples: 00112233-4455-6677-8899-aabbccddeeff
brief: The ID of the session being ended.
stability: development
- key: session.id
type: string
examples: 00112233-4455-6677-8899-aabbccddeeff
brief: A unique id to identify a session.
stability: development
- key: session.previous_id
type: string
examples: 00112233-4455-6677-8899-aabbccddeeff
brief: The previous `session.id` for this user, when known.
stability: development
- key: signalr.connection.status
type:
members:
- id: normal_closure
value: normal_closure
brief: The connection was closed normally.
stability: stable
- id: timeout
value: timeout
brief: The connection was closed due to a timeout.
stability: stable
- id: app_shutdown
value: app_shutdown
brief: The connection was closed because the app is shutting down.
stability: stable
examples:
- app_shutdown
- timeout
brief: SignalR HTTP connection closure status.
stability: stable
- key: signalr.transport
type:
members:
- id: server_sent_events
value: server_sent_events
brief: ServerSentEvents protocol
stability: stable
- id: long_polling
value: long_polling
brief: LongPolling protocol
stability: stable
- id: web_sockets
value: web_sockets
brief: WebSockets protocol
stability: stable
examples:
- web_sockets
- long_polling
brief: '[SignalR transport type](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/TransportProtocols.md)'
stability: stable
- key: source.address
type: string
examples:
- source.example.com
- 10.1.2.80
- /tmp/my.sock
brief: Source address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
When observed from the destination side, and when communicating through an intermediary, `source.address` SHOULD represent the source address behind any intermediaries, for example proxies, if it's available.
stability: development
- key: source.port
type: int
examples:
- 3389
- 2888
brief: Source port number
stability: development
- key: state
type:
members:
- id: idle
value: idle
stability: development
- id: used
value: used
stability: development
examples:
- idle
brief: Deprecated, use `db.client.connection.state` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.state
note: Replaced by `db.client.connection.state`.
- key: system.cpu.logical_number
type: int
examples:
- 1
brief: Deprecated, use `cpu.logical_number` instead.
stability: development
deprecated:
reason: renamed
renamed_to: cpu.logical_number
note: Replaced by `cpu.logical_number`.
- key: system.cpu.state
type:
members:
- id: user
value: user
stability: development
- id: system
value: system
stability: development
- id: nice
value: nice
stability: development
- id: idle
value: idle
stability: development
- id: iowait
value: iowait
stability: development
- id: interrupt
value: interrupt
stability: development
- id: steal
value: steal
stability: development
examples:
- idle
- interrupt
brief: Deprecated, use `cpu.mode` instead.
stability: development
deprecated:
reason: renamed
renamed_to: cpu.mode
note: Replaced by `cpu.mode`.
- key: system.device
type: string
examples:
- /dev/dm-0
brief: Unique identifier for the device responsible for managing paging operations.
stability: development
- key: system.device
type: string
examples:
- /dev/sda
- \network-drive
brief: Identifier for the device where the filesystem resides.
stability: development
- key: system.device
type: string
examples:
- (identifier)
brief: The device identifier
stability: development
- key: system.filesystem.mode
type: string
examples:
- rw, ro
brief: The filesystem mode
stability: development
- key: system.filesystem.mountpoint
type: string
examples:
- /mnt/data
brief: The filesystem mount path
stability: development
- key: system.filesystem.state
type:
members:
- id: used
value: used
stability: development
- id: free
value: free
stability: development
- id: reserved
value: reserved
stability: development
examples:
- used
brief: The filesystem state
stability: development
- key: system.filesystem.type
type:
members:
- id: fat32
value: fat32
stability: development
- id: exfat
value: exfat
stability: development
- id: ntfs
value: ntfs
stability: development
- id: refs
value: refs
stability: development
- id: hfsplus
value: hfsplus
stability: development
- id: ext4
value: ext4
stability: development
examples:
- ext4
brief: The filesystem type
stability: development
- key: system.memory.state
type:
members:
- id: used
value: used
brief: Actual used virtual memory in bytes.
note: |
Calculation based on the operating system metrics. On Linux, this corresponds to "MemTotal - MemAvailable" from /proc/meminfo, which more accurately reflects memory in active use by applications compared to older formulas based on free, cached, and buffers. If MemAvailable is not available, a fallback to those older formulas may be used.
stability: development
- id: free
value: free
stability: development
- id: shared
value: shared
stability: development
deprecated:
reason: uncategorized
note: Removed, report shared memory usage with `metric.system.memory.shared` metric
- id: buffers
value: buffers
stability: development
- id: cached
value: cached
stability: development
examples:
- free
- cached
brief: The memory state
stability: development
- key: system.network.state
type:
members:
- id: close
value: close
stability: development
- id: close_wait
value: close_wait
stability: development
- id: closing
value: closing
stability: development
- id: delete
value: delete
stability: development
- id: established
value: established
stability: development
- id: fin_wait_1
value: fin_wait_1
stability: development
- id: fin_wait_2
value: fin_wait_2
stability: development
- id: last_ack
value: last_ack
stability: development
- id: listen
value: listen
stability: development
- id: syn_recv
value: syn_recv
stability: development
- id: syn_sent
value: syn_sent
stability: development
- id: time_wait
value: time_wait
stability: development
examples:
- close_wait
brief: Deprecated, use `network.connection.state` instead.
stability: development
deprecated:
reason: renamed
renamed_to: network.connection.state
note: Replaced by `network.connection.state`.
- key: system.paging.direction
type:
members:
- id: in
value: in
stability: development
- id: out
value: out
stability: development
examples:
- in
brief: The paging access direction
stability: development
- key: system.paging.fault.type
type:
members:
- id: major
value: major
stability: development
- id: minor
value: minor
stability: development
examples:
- minor
brief: The paging fault type
stability: development
- key: system.paging.state
type:
members:
- id: used
value: used
stability: development
- id: free
value: free
stability: development
examples:
- free
brief: The memory paging state
stability: development
- key: system.paging.type
type:
members:
- id: major
value: major
stability: development
- id: minor
value: minor
stability: development
examples:
- minor
brief: Deprecated, use `system.paging.fault.type` instead.
stability: development
deprecated:
reason: renamed
renamed_to: system.paging.fault.type
note: Replaced by `system.paging.fault.type`.
- key: system.process.status
type:
members:
- id: running
value: running
stability: development
- id: sleeping
value: sleeping
stability: development
- id: stopped
value: stopped
stability: development
- id: defunct
value: defunct
stability: development
examples:
- running
brief: Deprecated, use `process.state` instead.
stability: development
deprecated:
reason: renamed
renamed_to: process.state
note: Replaced by `process.state`.
- key: system.processes.status
type:
members:
- id: running
value: running
stability: development
- id: sleeping
value: sleeping
stability: development
- id: stopped
value: stopped
stability: development
- id: defunct
value: defunct
stability: development
examples:
- running
brief: Deprecated, use `process.state` instead.
stability: development
deprecated:
reason: renamed
renamed_to: process.state
note: Replaced by `process.state`.
- key: telemetry.distro.name
type: string
examples:
- parts-unlimited-java
brief: |
The name of the auto instrumentation agent or distribution, if used.
note: |
Official auto instrumentation agents and distributions SHOULD set the `telemetry.distro.name` attribute to
a string starting with `opentelemetry-`, e.g. `opentelemetry-java-instrumentation`.
stability: development
- key: telemetry.distro.version
type: string
examples:
- 1.2.3
brief: |
The version string of the auto instrumentation agent or distribution, if used.
stability: development
- key: telemetry.sdk.language
type:
members:
- id: cpp
value: cpp
stability: stable
- id: dotnet
value: dotnet
stability: stable
- id: erlang
value: erlang
stability: stable
- id: go
value: go
stability: stable
- id: java
value: java
stability: stable
- id: nodejs
value: nodejs
stability: stable
- id: php
value: php
stability: stable
- id: python
value: python
stability: stable
- id: ruby
value: ruby
stability: stable
- id: rust
value: rust
stability: stable
- id: swift
value: swift
stability: stable
- id: webjs
value: webjs
stability: stable
brief: |
The language of the telemetry SDK.
stability: stable
- key: telemetry.sdk.name
type: string
examples:
- opentelemetry
brief: |
The name of the telemetry SDK as defined above.
note: |
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.
stability: stable
- key: telemetry.sdk.version
type: string
examples:
- 1.2.3
brief: |
The version string of the telemetry SDK.
stability: stable
- key: test.case.name
type: string
examples:
- org.example.TestCase1.test1
- example/tests/TestCase1.test1
- ExampleTestCase1_test1
brief: |
The fully qualified human readable name of the [test case](https://wikipedia.org/wiki/Test_case).
stability: development
- key: test.case.result.status
type:
members:
- id: pass
value: pass
brief: pass
stability: development
- id: fail
value: fail
brief: fail
stability: development
examples:
- pass
- fail
brief: |
The status of the actual test case result from test execution.
stability: development
- key: test.suite.name
type: string
examples:
- TestSuite1
brief: |
The human readable name of a [test suite](https://wikipedia.org/wiki/Test_suite).
stability: development
- key: test.suite.run.status
type:
members:
- id: success
value: success
brief: success
stability: development
- id: failure
value: failure
brief: failure
stability: development
- id: skipped
value: skipped
brief: skipped
stability: development
- id: aborted
value: aborted
brief: aborted
stability: development
- id: timed_out
value: timed_out
brief: timed_out
stability: development
- id: in_progress
value: in_progress
brief: in_progress
stability: development
examples:
- success
- failure
- skipped
- aborted
- timed_out
- in_progress
brief: |
The status of the test suite run.
stability: development
- key: thread.id
type: int
examples: 42
brief: |
Current "managed" thread ID (as opposed to OS thread ID).
note: |2
Examples of where the value can be extracted from:
| Language or platform | Source |
| --- | --- |
| JVM | `Thread.currentThread().threadId()` |
| .NET | `Thread.CurrentThread.ManagedThreadId` |
| Python | `threading.current_thread().ident` |
| Ruby | `Thread.current.object_id` |
| C++ | `std::this_thread::get_id()` |
| Erlang | `erlang:self()` |
stability: development
- key: thread.name
type: string
examples: main
brief: |
Current thread name.
note: |2
Examples of where the value can be extracted from:
| Language or platform | Source |
| --- | --- |
| JVM | `Thread.currentThread().getName()` |
| .NET | `Thread.CurrentThread.Name` |
| Python | `threading.current_thread().name` |
| Ruby | `Thread.current.name` |
| Erlang | `erlang:process_info(self(), registered_name)` |
stability: development
- key: tls.cipher
type: string
examples:
- TLS_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
brief: |
String indicating the [cipher](https://datatracker.ietf.org/doc/html/rfc5246#appendix-A.5) used during the current connection.
note: |
The values allowed for `tls.cipher` MUST be one of the `Descriptions` of the [registered TLS Cipher Suits](https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#table-tls-parameters-4).
stability: development
- key: tls.client.certificate
type: string
examples:
- MII...
brief: |
PEM-encoded stand-alone certificate offered by the client. This is usually mutually-exclusive of `client.certificate_chain` since this value also exists in that list.
stability: development
- key: tls.client.certificate_chain
type: string[]
examples:
- - MII...
- MI...
brief: |
Array of PEM-encoded certificates that make up the certificate chain offered by the client. This is usually mutually-exclusive of `client.certificate` since that value should be the first certificate in the chain.
stability: development
- key: tls.client.hash.md5
type: string
examples:
- 0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC
brief: |
Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash.
stability: development
- key: tls.client.hash.sha1
type: string
examples:
- 9E393D93138888D288266C2D915214D1D1CCEB2A
brief: |
Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash.
stability: development
- key: tls.client.hash.sha256
type: string
examples:
- 0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0
brief: |
Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash.
stability: development
- key: tls.client.issuer
type: string
examples:
- CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com
brief: Distinguished name of [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6) of the issuer of the x.509 certificate presented by the client.
stability: development
- key: tls.client.ja3
type: string
examples:
- d4e5b18d6b55c71272893221c96ba240
brief: A hash that identifies clients based on how they perform an SSL/TLS handshake.
stability: development
- key: tls.client.not_after
type: string
examples:
- 2021-01-01T00:00:00.000Z
brief: Date/Time indicating when client certificate is no longer considered valid.
stability: development
- key: tls.client.not_before
type: string
examples:
- 1970-01-01T00:00:00.000Z
brief: Date/Time indicating when client certificate is first considered valid.
stability: development
- key: tls.client.server_name
type: string
examples:
- opentelemetry.io
brief: Deprecated, use `server.address` instead.
stability: development
deprecated:
reason: renamed
renamed_to: server.address
note: Replaced by `server.address`.
- key: tls.client.subject
type: string
examples:
- CN=myclient, OU=Documentation Team, DC=example, DC=com
brief: Distinguished name of subject of the x.509 certificate presented by the client.
stability: development
- key: tls.client.supported_ciphers
type: string[]
examples:
- - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
brief: Array of ciphers offered by the client during the client hello.
stability: development
- key: tls.curve
type: string
examples:
- secp256r1
brief: String indicating the curve used for the given cipher, when applicable
stability: development
- key: tls.established
type: boolean
examples:
- true
brief: Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel.
stability: development
- key: tls.next_protocol
type: string
examples:
- http/1.1
brief: |
String indicating the protocol being tunneled. Per the values in the [IANA registry](https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids), this string should be lower case.
stability: development
- key: tls.protocol.name
type:
members:
- id: ssl
value: ssl
stability: development
- id: tls
value: tls
stability: development
brief: |
Normalized lowercase protocol name parsed from original string of the negotiated [SSL/TLS protocol version](https://docs.openssl.org/1.1.1/man3/SSL_get_version/#return-values)
stability: development
- key: tls.protocol.version
type: string
examples:
- '1.2'
- '3'
brief: |
Numeric part of the version parsed from the original string of the negotiated [SSL/TLS protocol version](https://docs.openssl.org/1.1.1/man3/SSL_get_version/#return-values)
stability: development
- key: tls.resumed
type: boolean
examples:
- true
brief: Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation.
stability: development
- key: tls.server.certificate
type: string
examples:
- MII...
brief: |
PEM-encoded stand-alone certificate offered by the server. This is usually mutually-exclusive of `server.certificate_chain` since this value also exists in that list.
stability: development
- key: tls.server.certificate_chain
type: string[]
examples:
- - MII...
- MI...
brief: |
Array of PEM-encoded certificates that make up the certificate chain offered by the server. This is usually mutually-exclusive of `server.certificate` since that value should be the first certificate in the chain.
stability: development
- key: tls.server.hash.md5
type: string
examples:
- 0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC
brief: |
Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash.
stability: development
- key: tls.server.hash.sha1
type: string
examples:
- 9E393D93138888D288266C2D915214D1D1CCEB2A
brief: |
Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash.
stability: development
- key: tls.server.hash.sha256
type: string
examples:
- 0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0
brief: |
Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash.
stability: development
- key: tls.server.issuer
type: string
examples:
- CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com
brief: Distinguished name of [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6) of the issuer of the x.509 certificate presented by the client.
stability: development
- key: tls.server.ja3s
type: string
examples:
- d4e5b18d6b55c71272893221c96ba240
brief: A hash that identifies servers based on how they perform an SSL/TLS handshake.
stability: development
- key: tls.server.not_after
type: string
examples:
- 2021-01-01T00:00:00.000Z
brief: Date/Time indicating when server certificate is no longer considered valid.
stability: development
- key: tls.server.not_before
type: string
examples:
- 1970-01-01T00:00:00.000Z
brief: Date/Time indicating when server certificate is first considered valid.
stability: development
- key: tls.server.subject
type: string
examples:
- CN=myserver, OU=Documentation Team, DC=example, DC=com
brief: Distinguished name of subject of the x.509 certificate presented by the server.
stability: development
- key: url.domain
type: string
examples:
- www.foo.bar
- opentelemetry.io
- 3.12.167.2
- '[1080:0:0:0:8:800:200C:417A]'
brief: |
Domain extracted from the `url.full`, such as "opentelemetry.io".
note: |
In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the domain field. If the URL contains a [literal IPv6 address](https://www.rfc-editor.org/rfc/rfc2732#section-2) enclosed by `[` and `]`, the `[` and `]` characters should also be captured in the domain field.
stability: development
- key: url.extension
type: string
examples:
- png
- gz
brief: |
The file extension extracted from the `url.full`, excluding the leading dot.
note: |
The file extension is only set if it exists, as not every url has a file extension. When the file name has multiple extensions `example.tar.gz`, only the last one should be captured `gz`, not `tar.gz`.
stability: development
- key: url.fragment
type: string
examples:
- SemConv
brief: |
The [URI fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component
stability: stable
- key: url.full
type: string
examples:
- https://localhost:9200/index/_search?q=user.id:kimchy
brief: Absolute URL describing a network resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986)
note: |
For network calls, URL usually has `scheme://host[:port][path][?query][#fragment]` format, where the fragment
is not transmitted over HTTP, but if it is known, it SHOULD be included nevertheless.
`url.full` MUST NOT contain credentials passed via URL in form of `https://username:[email protected]/`.
In such case username and password SHOULD be redacted and attribute's value SHOULD be `https://REDACTED:[email protected]/`.
`url.full` SHOULD capture the absolute URL when it is available (or can be reconstructed).
Sensitive content provided in `url.full` SHOULD be scrubbed when instrumentations can identify it.
![Development](https://img.shields.io/badge/-development-blue)
Query string values for the following keys SHOULD be redacted by default and replaced by the
value `REDACTED`:
* [`AWSAccessKeyId`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)
* [`Signature`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)
* [`sig`](https://learn.microsoft.com/azure/storage/common/storage-sas-overview#sas-token)
* [`X-Goog-Signature`](https://cloud.google.com/storage/docs/access-control/signed-urls)
This list is subject to change over time.
When a query string value is redacted, the query string key SHOULD still be preserved, e.g.
`https://www.example.com/path?color=blue&sig=REDACTED`.
stability: stable
- key: url.full
type: string
examples:
- https://www.foo.bar/search?q=OpenTelemetry#SemConv
- //localhost
brief: Absolute URL describing a network resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986)
note: |
For network calls, URL usually has `scheme://host[:port][path][?query][#fragment]` format, where the fragment
is not transmitted over HTTP, but if it is known, it SHOULD be included nevertheless.
`url.full` MUST NOT contain credentials passed via URL in form of `https://username:[email protected]/`.
In such case username and password SHOULD be redacted and attribute's value SHOULD be `https://REDACTED:[email protected]/`.
`url.full` SHOULD capture the absolute URL when it is available (or can be reconstructed).
Sensitive content provided in `url.full` SHOULD be scrubbed when instrumentations can identify it.
![Development](https://img.shields.io/badge/-development-blue)
Query string values for the following keys SHOULD be redacted by default and replaced by the
value `REDACTED`:
* [`AWSAccessKeyId`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)
* [`Signature`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)
* [`sig`](https://learn.microsoft.com/azure/storage/common/storage-sas-overview#sas-token)
* [`X-Goog-Signature`](https://cloud.google.com/storage/docs/access-control/signed-urls)
This list is subject to change over time.
When a query string value is redacted, the query string key SHOULD still be preserved, e.g.
`https://www.example.com/path?color=blue&sig=REDACTED`.
stability: stable
- key: url.original
type: string
examples:
- https://www.foo.bar/search?q=OpenTelemetry#SemConv
- search?q=OpenTelemetry
brief: |
Unmodified original URL as seen in the event source.
note: |
In network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. This field is meant to represent the URL as it was observed, complete or not.
`url.original` might contain credentials passed via URL in form of `https://username:[email protected]/`. In such case password and username SHOULD NOT be redacted and attribute's value SHOULD remain the same.
stability: development
- key: url.path
type: string
examples:
- /search
brief: |
The [URI path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component
note: |
Sensitive content provided in `url.path` SHOULD be scrubbed when instrumentations can identify it.
stability: stable
- key: url.port
type: int
examples:
- 443
brief: |
Port extracted from the `url.full`
stability: development
- key: url.query
type: string
examples:
- q=OpenTelemetry
brief: |
The [URI query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component
note: |
Sensitive content provided in `url.query` SHOULD be scrubbed when instrumentations can identify it.
![Development](https://img.shields.io/badge/-development-blue)
Query string values for the following keys SHOULD be redacted by default and replaced by the value `REDACTED`:
* [`AWSAccessKeyId`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)
* [`Signature`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)
* [`sig`](https://learn.microsoft.com/azure/storage/common/storage-sas-overview#sas-token)
* [`X-Goog-Signature`](https://cloud.google.com/storage/docs/access-control/signed-urls)
This list is subject to change over time.
When a query string value is redacted, the query string key SHOULD still be preserved, e.g.
`q=OpenTelemetry&sig=REDACTED`.
stability: stable
- key: url.registered_domain
type: string
examples:
- example.com
- foo.co.uk
brief: |
The highest registered url domain, stripped of the subdomain.
note: |
This value can be determined precisely with the [public suffix list](https://publicsuffix.org/). For example, the registered domain for `foo.example.com` is `example.com`. Trying to approximate this by simply taking the last two labels will not work well for TLDs such as `co.uk`.
stability: development
- key: url.scheme
type: string
examples:
- https
- ftp
- telnet
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
stability: stable
- key: url.scheme
type: string
examples:
- http
- https
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
note: |
The scheme of the original client request, if known (e.g. from [Forwarded#proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/Forwarded#proto), [X-Forwarded-Proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Forwarded-Proto), or a similar header). Otherwise, the scheme of the immediate peer request.
stability: stable
- key: url.scheme
type: string
examples:
- http
- https
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
stability: stable
- key: url.subdomain
type: string
examples:
- east
- sub2.sub1
brief: |
The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.
note: |
The subdomain portion of `www.east.mydomain.co.uk` is `east`. If the domain has multiple levels of subdomain, such as `sub2.sub1.example.com`, the subdomain field should contain `sub2.sub1`, with no trailing period.
stability: development
- key: url.template
type: string
examples:
- /users/{id}
- /users/:id
- /users?id={id}
brief: |
The low-cardinality template of an [absolute path reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2).
note: |
The `url.template` MUST have low cardinality. It is not usually available on HTTP clients, but may be known by the application or specialized HTTP instrumentation.
stability: development
- key: url.template
type: string
examples:
- /users/{id}
- /users/:id
- /users?id={id}
brief: |
The low-cardinality template of an [absolute path reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2).
stability: development
- key: url.top_level_domain
type: string
examples:
- com
- co.uk
brief: |
The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is `com`.
note: |
This value can be determined precisely with the [public suffix list](https://publicsuffix.org/).
stability: development
- key: user.email
type: string
examples:
- [email protected]
brief: |
User email address.
stability: development
- key: user.full_name
type: string
examples:
- Albert Einstein
brief: |
User's full name
stability: development
- key: user.hash
type: string
examples:
- 364fc68eaf4c8acec74a4e52d7d1feaa
brief: |
Unique user hash to correlate information for a user in anonymized form.
note: |
Useful if `user.id` or `user.name` contain confidential information and cannot be used.
stability: development
- key: user.id
type: string
examples:
- S-1-5-21-202424912787-2692429404-2351956786-1000
brief: |
Unique identifier of the user.
stability: development
- key: user.name
type: string
examples:
- a.einstein
brief: |
Short name or login/username of the user.
stability: development
- key: user.roles
type: string[]
examples:
- - admin
- reporting_user
brief: |
Array of user roles at the time of the event.
stability: development
- key: user_agent.name
type: string
examples:
- Safari
- YourApp
brief: |
Name of the user-agent extracted from original. Usually refers to the browser's name.
note: |
[Example](https://www.whatsmyua.info) of extracting browser's name from original string. In the case of using a user-agent for non-browser products, such as microservices with multiple names/versions inside the `user_agent.original`, the most significant name SHOULD be selected. In such a scenario it should align with `user_agent.version`
stability: development
- key: user_agent.original
type: string
examples:
- CERN-LineMode/2.15 libwww/2.17b3
- Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1
- YourApp/1.0.0 grpc-java-okhttp/1.27.2
brief: |
Value of the [HTTP User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent) header sent by the client.
stability: stable
- key: user_agent.original
type: string
examples:
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36
brief: Full user-agent string provided by the browser
note: |
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.
stability: stable
- key: user_agent.original
type: string
examples:
- cosmos-netstandard-sdk/3.23.0\|3.23.1\|1\|X64\|Linux 5.4.0-1098-azure 104 18\|.NET Core 3.1.32\|S\|
brief: Full user-agent string is generated by Cosmos DB SDK
note: |
The user-agent value is generated by SDK which is a combination of<br> `sdk_version` : Current version of SDK. e.g. 'cosmos-netstandard-sdk/3.23.0'<br> `direct_pkg_version` : Direct package version used by Cosmos DB SDK. e.g. '3.23.1'<br> `number_of_client_instances` : Number of cosmos client instances created by the application. e.g. '1'<br> `type_of_machine_architecture` : Machine architecture. e.g. 'X64'<br> `operating_system` : Operating System. e.g. 'Linux 5.4.0-1098-azure 104 18'<br> `runtime_framework` : Runtime Framework. e.g. '.NET Core 3.1.32'<br> `failover_information` : Generated key to determine if region failover enabled.
Format Reg-{D (Disabled discovery)}-S(application region)|L(List of preferred regions)|N(None, user did not configure it).
Default value is "NS".
stability: stable
- key: user_agent.os.name
type: string
examples:
- iOS
- Android
- Ubuntu
brief: Human readable operating system name.
note: |
For mapping user agent strings to OS names, libraries such as [ua-parser](https://github.com/ua-parser) can be utilized.
stability: development
- key: user_agent.os.version
type: string
examples:
- 14.2.1
- 18.04.1
brief: |
The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
note: |
For mapping user agent strings to OS versions, libraries such as [ua-parser](https://github.com/ua-parser) can be utilized.
stability: development
- key: user_agent.synthetic.type
type:
members:
- id: bot
value: bot
brief: Bot source.
stability: development
- id: test
value: test
brief: Synthetic test source.
stability: development
brief: |
Specifies the category of synthetic traffic, such as tests or bots.
note: |
This attribute MAY be derived from the contents of the `user_agent.original` attribute. Components that populate the attribute are responsible for determining what they consider to be synthetic bot or test traffic. This attribute can either be set for self-identification purposes, or on telemetry detected to be generated as a result of a synthetic request. This attribute is useful for distinguishing between genuine client traffic and synthetic traffic generated by bots or tests.
stability: development
- key: user_agent.version
type: string
examples:
- 14.1.2
- 1.0.0
brief: |
Version of the user-agent extracted from original. Usually refers to the browser's version
note: |
[Example](https://www.whatsmyua.info) of extracting browser's version from original string. In the case of using a user-agent for non-browser products, such as microservices with multiple names/versions inside the `user_agent.original`, the most significant version SHOULD be selected. In such a scenario it should align with `user_agent.name`
stability: development
- key: v8js.gc.type
type:
members:
- id: major
value: major
brief: Major (Mark Sweep Compact).
stability: development
- id: minor
value: minor
brief: Minor (Scavenge).
stability: development
- id: incremental
value: incremental
brief: Incremental (Incremental Marking).
stability: development
- id: weakcb
value: weakcb
brief: Weak Callbacks (Process Weak Callbacks).
stability: development
brief: The type of garbage collection.
stability: development
- key: v8js.heap.space.name
type:
members:
- id: new_space
value: new_space
brief: New memory space.
stability: development
- id: old_space
value: old_space
brief: Old memory space.
stability: development
- id: code_space
value: code_space
brief: Code memory space.
stability: development
- id: map_space
value: map_space
brief: Map memory space.
stability: development
- id: large_object_space
value: large_object_space
brief: Large object memory space.
stability: development
brief: The name of the space type of heap memory.
note: |
Value can be retrieved from value `space_name` of [`v8.getHeapSpaceStatistics()`](https://nodejs.org/api/v8.html#v8getheapspacestatistics)
stability: development
- key: vcs.change.id
type: string
examples:
- '123'
brief: |
The ID of the change (pull request/merge request/changelist) if applicable. This is usually a unique (within repository) identifier generated by the VCS system.
stability: development
- key: vcs.change.state
type:
members:
- id: open
value: open
brief: Open means the change is currently active and under review. It hasn't been merged into the target branch yet, and it's still possible to make changes or add comments.
stability: development
- id: wip
value: wip
brief: WIP (work-in-progress, draft) means the change is still in progress and not yet ready for a full review. It might still undergo significant changes.
stability: development
- id: closed
value: closed
brief: Closed means the merge request has been closed without merging. This can happen for various reasons, such as the changes being deemed unnecessary, the issue being resolved in another way, or the author deciding to withdraw the request.
stability: development
- id: merged
value: merged
brief: Merged indicates that the change has been successfully integrated into the target codebase.
stability: development
examples:
- open
- closed
- merged
brief: |
The state of the change (pull request/merge request/changelist).
stability: development
- key: vcs.change.title
type: string
examples:
- Fixes broken thing
- 'feat: add my new feature'
- '[chore] update dependency'
brief: |
The human readable title of the change (pull request/merge request/changelist). This title is often a brief summary of the change and may get merged in to a ref as the commit summary.
stability: development
- key: vcs.line_change.type
type:
members:
- id: added
value: added
brief: How many lines were added.
stability: development
- id: removed
value: removed
brief: How many lines were removed.
stability: development
examples:
- added
- removed
brief: |
The type of line change being measured on a branch or change.
stability: development
- key: vcs.owner.name
type: string
examples:
- my-org
- myteam
- business-unit
brief: |
The group owner within the version control system.
stability: development
- key: vcs.provider.name
type:
members:
- id: github
value: github
brief: '[GitHub](https://github.com)'
stability: development
- id: gitlab
value: gitlab
brief: '[GitLab](https://gitlab.com)'
stability: development
- id: gittea
value: gittea
brief: Deprecated, use `gitea` instead.
stability: development
deprecated:
reason: renamed
renamed_to: gitea
note: Replaced by `gitea`.
- id: gitea
value: gitea
brief: '[Gitea](https://gitea.io)'
stability: development
- id: bitbucket
value: bitbucket
brief: '[Bitbucket](https://bitbucket.org)'
stability: development
examples:
- github
- gitlab
- gitea
- bitbucket
brief: |
The name of the version control system provider.
stability: development
- key: vcs.ref.base.name
type: string
examples:
- my-feature-branch
- tag-1-test
brief: |
The name of the [reference](https://git-scm.com/docs/gitglossary#def_ref) such as **branch** or **tag** in the repository.
note: |
`base` refers to the starting point of a change. For example, `main`
would be the base reference of type branch if you've created a new
reference of type branch from it and created new commits.
stability: development
- key: vcs.ref.base.revision
type: string
examples:
- 9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc
- main
- '123'
- HEAD
brief: |
The revision, literally [revised version](https://www.merriam-webster.com/dictionary/revision), The revision most often refers to a commit object in Git, or a revision number in SVN.
note: |
`base` refers to the starting point of a change. For example, `main`
would be the base reference of type branch if you've created a new
reference of type branch from it and created new commits. The
revision can be a full [hash value (see
glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf),
of the recorded change to a ref within a repository pointing to a
commit [commit](https://git-scm.com/docs/git-commit) object. It does
not necessarily have to be a hash; it can simply define a [revision
number](https://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html)
which is an integer that is monotonically increasing. In cases where
it is identical to the `ref.base.name`, it SHOULD still be included.
It is up to the implementer to decide which value to set as the
revision based on the VCS system and situational context.
stability: development
- key: vcs.ref.base.type
type:
members:
- id: branch
value: branch
brief: '[branch](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefbranchabranch)'
stability: development
- id: tag
value: tag
brief: '[tag](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddeftagatag)'
stability: development
examples:
- branch
- tag
brief: |
The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository.
note: |
`base` refers to the starting point of a change. For example, `main`
would be the base reference of type branch if you've created a new
reference of type branch from it and created new commits.
stability: development
- key: vcs.ref.head.name
type: string
examples:
- my-feature-branch
- tag-1-test
brief: |
The name of the [reference](https://git-scm.com/docs/gitglossary#def_ref) such as **branch** or **tag** in the repository.
note: |
`head` refers to where you are right now; the current reference at a
given time.
stability: development
- key: vcs.ref.head.revision
type: string
examples:
- 9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc
- main
- '123'
- HEAD
brief: |
The revision, literally [revised version](https://www.merriam-webster.com/dictionary/revision), The revision most often refers to a commit object in Git, or a revision number in SVN.
note: |
`head` refers to where you are right now; the current reference at a
given time.The revision can be a full [hash value (see
glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf),
of the recorded change to a ref within a repository pointing to a
commit [commit](https://git-scm.com/docs/git-commit) object. It does
not necessarily have to be a hash; it can simply define a [revision
number](https://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html)
which is an integer that is monotonically increasing. In cases where
it is identical to the `ref.head.name`, it SHOULD still be included.
It is up to the implementer to decide which value to set as the
revision based on the VCS system and situational context.
stability: development
- key: vcs.ref.head.type
type:
members:
- id: branch
value: branch
brief: '[branch](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefbranchabranch)'
stability: development
- id: tag
value: tag
brief: '[tag](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddeftagatag)'
stability: development
examples:
- branch
- tag
brief: |
The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository.
note: |
`head` refers to where you are right now; the current reference at a
given time.
stability: development
- key: vcs.ref.type
type:
members:
- id: branch
value: branch
brief: '[branch](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefbranchabranch)'
stability: development
- id: tag
value: tag
brief: '[tag](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddeftagatag)'
stability: development
examples:
- branch
- tag
brief: |
The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository.
stability: development
- key: vcs.repository.change.id
type: string
examples:
- '123'
brief: |
Deprecated, use `vcs.change.id` instead.
stability: development
deprecated:
reason: renamed
renamed_to: vcs.change.id
note: Replaced by `vcs.change.id`.
- key: vcs.repository.change.title
type: string
examples:
- Fixes broken thing
- 'feat: add my new feature'
- '[chore] update dependency'
brief: |
Deprecated, use `vcs.change.title` instead.
stability: development
deprecated:
reason: renamed
renamed_to: vcs.change.title
note: Replaced by `vcs.change.title`.
- key: vcs.repository.name
type: string
examples:
- semantic-conventions
- my-cool-repo
brief: |
The human readable name of the repository. It SHOULD NOT include any additional identifier like Group/SubGroup in GitLab or organization in GitHub.
note: |
Due to it only being the name, it can clash with forks of the same
repository if collecting telemetry across multiple orgs or groups in
the same backends.
stability: development
- key: vcs.repository.ref.name
type: string
examples:
- my-feature-branch
- tag-1-test
brief: |
Deprecated, use `vcs.ref.head.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: vcs.ref.head.name
note: Replaced by `vcs.ref.head.name`.
- key: vcs.repository.ref.revision
type: string
examples:
- 9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc
- main
- '123'
- HEAD
brief: |
Deprecated, use `vcs.ref.head.revision` instead.
stability: development
deprecated:
reason: renamed
renamed_to: vcs.ref.head.revision
note: Replaced by `vcs.ref.head.revision`.
- key: vcs.repository.ref.type
type:
members:
- id: branch
value: branch
brief: '[branch](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefbranchabranch)'
stability: development
- id: tag
value: tag
brief: '[tag](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddeftagatag)'
stability: development
examples:
- branch
- tag
brief: |
Deprecated, use `vcs.ref.head.type` instead.
stability: development
deprecated:
reason: renamed
renamed_to: vcs.ref.head.type
note: Replaced by `vcs.ref.head.type`.
- key: vcs.repository.url.full
type: string
examples:
- https://github.com/opentelemetry/open-telemetry-collector-contrib
- https://gitlab.com/my-org/my-project/my-projects-project/repo
brief: |
The [canonical URL](https://support.google.com/webmasters/answer/10347851) of the repository providing the complete HTTP(S) address in order to locate and identify the repository through a browser.
note: |
In Git Version Control Systems, the canonical URL SHOULD NOT include
the `.git` extension.
stability: development
- key: vcs.revision_delta.direction
type:
members:
- id: behind
value: behind
brief: How many revisions the change is behind the target ref.
stability: development
- id: ahead
value: ahead
brief: How many revisions the change is ahead of the target ref.
stability: development
examples:
- ahead
- behind
brief: |
The type of revision comparison.
stability: development
- key: webengine.description
type: string
examples:
- WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) - 2.2.2.Final
brief: |
Additional description of the web engine (e.g. detailed version and edition information).
stability: development
- key: webengine.name
type: string
examples:
- WildFly
brief: |
The name of the web engine.
stability: development
- key: webengine.version
type: string
examples:
- 21.0.0
brief: |
The version of the web engine.
stability: development
- key: zos.smf.id
type: string
examples:
- SYS1
brief: The System Management Facility (SMF) Identifier uniquely identified a z/OS system within a SYSPLEX or mainframe environment and is used for system and performance analysis.
stability: development
- key: zos.sysplex.name
type: string
examples:
- SYSPLEX1
brief: The name of the SYSPLEX to which the z/OS system belongs too.
stability: development
attribute_groups: []
signals:
metrics:
- name: aspnetcore.authentication.authenticate.duration
instrument: histogram
unit: s
attributes:
- key: aspnetcore.authentication.scheme
type: string
examples:
- Cookies
- Bearer
- Identity.Application
brief: The identifier that names a particular authentication handler.
stability: development
requirement_level:
conditionally_required: if a scheme is specified during authentication.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
- key: aspnetcore.authentication.result
type:
members:
- id: success
value: success
brief: Authentication was successful.
stability: development
- id: failure
value: failure
brief: Authentication failed.
stability: development
- id: none
value: none
brief: No authentication information returned.
stability: development
examples:
- success
- failure
brief: The result of the authentication operation.
stability: development
requirement_level: required
brief: The authentication duration for a request.
note: |
Meter name: `Microsoft.AspNetCore.Authentication`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: double
- name: aspnetcore.authentication.challenges
instrument: counter
unit: '{challenge}'
attributes:
- key: aspnetcore.authentication.scheme
type: string
examples:
- Cookies
- Bearer
- Identity.Application
brief: The identifier that names a particular authentication handler.
stability: development
requirement_level:
conditionally_required: if a scheme is specified during authentication.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
brief: The total number of times a scheme is challenged.
note: |
Meter name: `Microsoft.AspNetCore.Authentication`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.authentication.forbids
instrument: counter
unit: '{forbid}'
attributes:
- key: aspnetcore.authentication.scheme
type: string
examples:
- Cookies
- Bearer
- Identity.Application
brief: The identifier that names a particular authentication handler.
stability: development
requirement_level:
conditionally_required: if a scheme is specified during authentication.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
brief: The total number of times an authenticated user attempts to access a resource they are not permitted to access.
note: |
Meter name: `Microsoft.AspNetCore.Authentication`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.authentication.sign_ins
instrument: counter
unit: '{sign_in}'
attributes:
- key: aspnetcore.authentication.scheme
type: string
examples:
- Cookies
- Bearer
- Identity.Application
brief: The identifier that names a particular authentication handler.
stability: development
requirement_level:
conditionally_required: if a scheme is specified during authentication.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
brief: The total number of times a principal is signed in with a scheme.
note: |
Meter name: `Microsoft.AspNetCore.Authentication`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.authentication.sign_outs
instrument: counter
unit: '{sign_out}'
attributes:
- key: aspnetcore.authentication.scheme
type: string
examples:
- Cookies
- Bearer
- Identity.Application
brief: The identifier that names a particular authentication handler.
stability: development
requirement_level:
conditionally_required: if a scheme is specified during authentication.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
brief: The total number of times a principal is signed out with a scheme.
note: |
Meter name: `Microsoft.AspNetCore.Authentication`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.authorization.attempts
instrument: counter
unit: '{attempt}'
attributes:
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
- key: aspnetcore.user.is_authenticated
type: boolean
examples:
- true
brief: A value that indicates whether the user is authenticated.
stability: stable
requirement_level: required
- key: aspnetcore.authorization.policy
type: string
examples:
- RequireAdminRole
brief: The name of the authorization policy.
stability: development
requirement_level:
conditionally_required: if a policy is specified.
- key: aspnetcore.authorization.result
type:
members:
- id: success
value: success
brief: Authorization was successful.
stability: development
- id: failure
value: failure
brief: Authorization failed.
stability: development
examples:
- success
- failure
brief: The result of calling the authorization service.
stability: development
requirement_level:
conditionally_required: if no exception was thrown.
brief: The total number of authorization attempts.
note: |
Meter name: `Microsoft.AspNetCore.Authorization`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.diagnostics.exceptions
instrument: counter
unit: '{exception}'
attributes:
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
- Contoso.MyException
brief: The full name of exception type.
stability: stable
requirement_level: required
- key: aspnetcore.diagnostics.handler.type
type: string
examples:
- Contoso.MyHandler
brief: Full type name of the [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler) implementation that handled the exception.
stability: stable
requirement_level:
conditionally_required: if and only if the exception was handled by this handler.
- key: aspnetcore.diagnostics.exception.result
type:
members:
- id: handled
value: handled
brief: Exception was handled by the exception handling middleware.
stability: stable
- id: unhandled
value: unhandled
brief: Exception was not handled by the exception handling middleware.
stability: stable
- id: skipped
value: skipped
brief: Exception handling was skipped because the response had started.
stability: stable
- id: aborted
value: aborted
brief: Exception handling didn't run because the request was aborted.
stability: stable
examples:
- handled
- unhandled
brief: ASP.NET Core exception middleware handling result.
stability: stable
requirement_level: required
brief: Number of exceptions caught by exception handling middleware.
note: |
Meter name: `Microsoft.AspNetCore.Diagnostics`; Added in: ASP.NET Core 8.0
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.identity.sign_in.authenticate.duration
instrument: histogram
unit: s
attributes:
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
requirement_level: required
- key: aspnetcore.authentication.scheme
type: string
examples:
- Cookies
- Bearer
- Identity.Application
brief: The identifier that names a particular authentication handler.
stability: development
requirement_level: required
- key: aspnetcore.identity.sign_in.result
type:
members:
- id: success
value: success
brief: Sign in was successful.
stability: development
- id: locked_out
value: locked_out
brief: User is locked out.
stability: development
- id: not_allowed
value: not_allowed
brief: User is not allowed to sign in.
stability: development
- id: requires_two_factor
value: requires_two_factor
brief: User requires two factory authentication to sign in.
stability: development
- id: failure
value: failure
brief: Sign in failed.
stability: development
examples:
- password
- two_factor
brief: Whether the sign in result was success or failure.
stability: development
requirement_level:
conditionally_required: if no exception was thrown.
- key: aspnetcore.identity.sign_in.type
type:
members:
- id: password
value: password
brief: Sign in with password.
stability: development
- id: two_factor_recovery_code
value: two_factor_recovery_code
brief: Sign in with two factory recovery code.
stability: development
- id: two_factor_authenticator
value: two_factor_authenticator
brief: Sign in with two factor authenticator app.
stability: development
- id: two_factor
value: two_factor
brief: Sign in with a two factor provider.
stability: development
- id: external
value: external
brief: Sign in with a previously registered third-party login.
stability: development
- id: passkey
value: passkey
brief: Sign in with passkey.
stability: development
examples:
- password
- two_factor
brief: The authentication type.
stability: development
requirement_level: required
- key: aspnetcore.sign_in.is_persistent
type: boolean
brief: A flag indicating whether the sign in is persistent.
stability: development
requirement_level:
conditionally_required: if no exception was thrown.
brief: The duration of authenticate attempts. The authenticate metrics is recorded by sign in methods such as PasswordSignInAsync and TwoFactorSignInAsync.
note: |
Meter name: `Microsoft.AspNetCore.Identity`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.identity.sign_in.check_password_attempts
instrument: counter
unit: '{attempt}'
attributes:
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
requirement_level: required
- key: aspnetcore.identity.sign_in.result
type:
members:
- id: success
value: success
brief: Sign in was successful.
stability: development
- id: locked_out
value: locked_out
brief: User is locked out.
stability: development
- id: not_allowed
value: not_allowed
brief: User is not allowed to sign in.
stability: development
- id: requires_two_factor
value: requires_two_factor
brief: User requires two factory authentication to sign in.
stability: development
- id: failure
value: failure
brief: Sign in failed.
stability: development
examples:
- password
- two_factor
brief: Whether the sign in result was success or failure.
stability: development
requirement_level:
conditionally_required: if no exception was thrown.
brief: The total number of check password attempts. Checks that the account is in a state that can log in and that the password is valid using the UserManager.CheckPasswordAsync method.
note: |
Meter name: `Microsoft.AspNetCore.Identity`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.identity.sign_in.sign_ins
instrument: counter
unit: '{sign_in}'
attributes:
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
requirement_level: required
- key: aspnetcore.authentication.scheme
type: string
examples:
- Cookies
- Bearer
- Identity.Application
brief: The identifier that names a particular authentication handler.
stability: development
requirement_level: required
- key: aspnetcore.sign_in.is_persistent
type: boolean
brief: A flag indicating whether the sign in is persistent.
stability: development
requirement_level:
conditionally_required: if no exception was thrown.
brief: The total number of calls to sign in user principals.
note: |
Meter name: `Microsoft.AspNetCore.Identity`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.identity.sign_in.sign_outs
instrument: counter
unit: '{sign_out}'
attributes:
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
requirement_level: required
- key: aspnetcore.authentication.scheme
type: string
examples:
- Cookies
- Bearer
- Identity.Application
brief: The identifier that names a particular authentication handler.
stability: development
requirement_level: required
brief: The total number of calls to sign out user principals.
note: |
Meter name: `Microsoft.AspNetCore.Identity`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.identity.sign_in.two_factor_clients_forgotten
instrument: counter
unit: '{client}'
attributes:
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
requirement_level: required
- key: aspnetcore.authentication.scheme
type: string
examples:
- Cookies
- Bearer
- Identity.Application
brief: The identifier that names a particular authentication handler.
stability: development
requirement_level: required
brief: The total number of two factor clients forgotten.
note: |
Meter name: `Microsoft.AspNetCore.Identity`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.identity.sign_in.two_factor_clients_remembered
instrument: counter
unit: '{client}'
attributes:
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
requirement_level: required
- key: aspnetcore.authentication.scheme
type: string
examples:
- Cookies
- Bearer
- Identity.Application
brief: The identifier that names a particular authentication handler.
stability: development
requirement_level: required
brief: The total number of two factor clients remembered.
note: |
Meter name: `Microsoft.AspNetCore.Identity`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.identity.user.check_password_attempts
instrument: counter
unit: '{attempt}'
attributes:
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
requirement_level: required
- key: aspnetcore.identity.password_check_result
type:
members:
- id: success
value: success
brief: Password check was successful.
stability: development
- id: success_rehash_needed
value: success_rehash_needed
brief: Password check was successful however the password was encoded using a deprecated algorithm and should be rehashed and updated.
stability: development
- id: failure
value: failure
brief: Password check failed.
stability: development
- id: password_missing
value: password_missing
brief: Password check couldn't proceed because the password was missing from the user.
stability: development
- id: user_missing
value: user_missing
brief: Password check couldn't proceed because the user was missing.
stability: development
examples:
- success
- failure
brief: The result from checking the password.
stability: development
requirement_level:
conditionally_required: if no exception was thrown.
brief: The number of check password attempts. Only checks whether the password is valid and not whether the user account is in a state that can log in.
note: |
Meter name: `Microsoft.AspNetCore.Identity`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.identity.user.create.duration
instrument: histogram
unit: s
attributes:
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
requirement_level: required
- key: aspnetcore.identity.error_code
type: string
examples:
- DefaultError
- PasswordMismatch
brief: The error code for a failed identity operation.
stability: development
requirement_level:
conditionally_required: if an error was set on a failed identity result.
- key: aspnetcore.identity.result
type:
members:
- id: success
value: success
brief: Identity operation was successful.
stability: development
- id: failure
value: failure
brief: Identity operation failed.
stability: development
examples:
- success
- failure
brief: The result of the identity operation.
stability: development
requirement_level:
conditionally_required: if no exception was thrown.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
- PasswordMismatch
brief: The full name of exception type or the identity error code.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
brief: The duration of user creation operations.
note: |
Meter name: `Microsoft.AspNetCore.Identity`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.identity.user.delete.duration
instrument: histogram
unit: s
attributes:
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
requirement_level: required
- key: aspnetcore.identity.error_code
type: string
examples:
- DefaultError
- PasswordMismatch
brief: The error code for a failed identity operation.
stability: development
requirement_level:
conditionally_required: if an error was set on a failed identity result.
- key: aspnetcore.identity.result
type:
members:
- id: success
value: success
brief: Identity operation was successful.
stability: development
- id: failure
value: failure
brief: Identity operation failed.
stability: development
examples:
- success
- failure
brief: The result of the identity operation.
stability: development
requirement_level:
conditionally_required: if no exception was thrown.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
- PasswordMismatch
brief: The full name of exception type or the identity error code.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
brief: The duration of user deletion operations.
note: |
Meter name: `Microsoft.AspNetCore.Identity`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.identity.user.generated_tokens
instrument: counter
unit: '{count}'
attributes:
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
requirement_level: required
- key: aspnetcore.identity.token_purpose
type:
members:
- id: reset_password
value: reset_password
brief: The token is for resetting a user password.
stability: development
- id: change_phone_number
value: change_phone_number
brief: The token is for changing a user phone number.
stability: development
- id: email_confirmation
value: email_confirmation
brief: The token is for confirming user email address.
stability: development
- id: change_email
value: change_email
brief: The token is for changing the user email address.
stability: development
- id: two_factor
value: two_factor
brief: The token is for changing user two factor settings.
stability: development
- id: other
value: _OTHER
brief: Any token purpose that the instrumentation has no prior knowledge of.
stability: development
examples:
- success
- failure
brief: What the token will be used for.
stability: development
requirement_level: required
brief: The total number of token generations.
note: |
Meter name: `Microsoft.AspNetCore.Identity`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.identity.user.update.duration
instrument: histogram
unit: s
attributes:
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
requirement_level: required
- key: aspnetcore.identity.error_code
type: string
examples:
- DefaultError
- PasswordMismatch
brief: The error code for a failed identity operation.
stability: development
requirement_level:
conditionally_required: if an error was set on a failed identity result.
- key: aspnetcore.identity.result
type:
members:
- id: success
value: success
brief: Identity operation was successful.
stability: development
- id: failure
value: failure
brief: Identity operation failed.
stability: development
examples:
- success
- failure
brief: The result of the identity operation.
stability: development
requirement_level:
conditionally_required: if no exception was thrown.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
- PasswordMismatch
brief: The full name of exception type or the identity error code.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
- key: aspnetcore.identity.user.update_type
type:
members:
- id: update
value: update
brief: Identity user updated.
stability: development
- id: user_name
value: user_name
brief: Identity user name updated.
stability: development
- id: add_password
value: add_password
brief: Identity user password added.
stability: development
- id: change_password
value: change_password
brief: Identity user password changed.
stability: development
- id: security_stamp
value: security_stamp
brief: Identity user security stamp updated.
stability: development
- id: reset_password
value: reset_password
brief: Identity user password reset.
stability: development
- id: remove_login
value: remove_login
brief: Identity user login removed.
stability: development
- id: add_login
value: add_login
brief: Identity user login added.
stability: development
- id: add_claims
value: add_claims
brief: Identity user claims added.
stability: development
- id: replace_claim
value: replace_claim
brief: Identity user claim replaced.
stability: development
- id: remove_claims
value: remove_claims
brief: Identity user claims removed.
stability: development
- id: add_to_roles
value: add_to_roles
brief: Identity user added to roles.
stability: development
- id: remove_from_roles
value: remove_from_roles
brief: Identity user removed from roles.
stability: development
- id: set_email
value: set_email
brief: Identity user email set.
stability: development
- id: confirm_email
value: confirm_email
brief: Identity user email confirmed.
stability: development
- id: password_rehash
value: password_rehash
brief: Identity user password rehashed.
stability: development
- id: remove_password
value: remove_password
brief: Identity user password removed.
stability: development
- id: change_email
value: change_email
brief: Identity user email changed.
stability: development
- id: set_phone_number
value: set_phone_number
brief: Identity user phone number set.
stability: development
- id: change_phone_number
value: change_phone_number
brief: Identity user phone number changed.
stability: development
- id: set_two_factor_enabled
value: set_two_factor_enabled
brief: Identity user two-factor authentication enabled or disabled.
stability: development
- id: set_lockout_enabled
value: set_lockout_enabled
brief: Identity user lockout enabled or disabled.
stability: development
- id: set_lockout_end_date
value: set_lockout_end_date
brief: Identity user lockout end date set.
stability: development
- id: access_failed
value: access_failed
brief: Identity user access failure recorded.
stability: development
- id: reset_access_failed_count
value: reset_access_failed_count
brief: Identity user access failure count reset.
stability: development
- id: set_authentication_token
value: set_authentication_token
brief: Identity user authentication token set.
stability: development
- id: remove_authentication_token
value: remove_authentication_token
brief: Identity user authentication token removed.
stability: development
- id: reset_authenticator_key
value: reset_authenticator_key
brief: Identity user authenticator key reset.
stability: development
- id: generate_new_two_factor_recovery_codes
value: generate_new_two_factor_recovery_codes
brief: Identity user new two-factor recovery codes generated.
stability: development
- id: redeem_two_factor_recovery_code
value: redeem_two_factor_recovery_code
brief: Identity user two-factor recovery code redeemed.
stability: development
- id: set_passkey
value: set_passkey
brief: Identity user passkey set.
stability: development
- id: remove_passkey
value: remove_passkey
brief: Identity user passkey removed.
stability: development
- id: other
value: _OTHER
brief: Any update type that the instrumentation has no prior knowledge of.
stability: development
examples:
- update
- user_name
- reset_password
brief: The user update type.
stability: development
requirement_level: required
brief: The duration of user update operations.
note: |
Meter name: `Microsoft.AspNetCore.Identity`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.identity.user.verify_token_attempts
instrument: counter
unit: '{attempt}'
attributes:
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
brief: The full name of exception type.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
- key: aspnetcore.identity.user_type
type: string
examples:
- Contoso.ContosoUser
brief: The full name of the identity user type.
stability: development
requirement_level: required
- key: aspnetcore.identity.token_purpose
type:
members:
- id: reset_password
value: reset_password
brief: The token is for resetting a user password.
stability: development
- id: change_phone_number
value: change_phone_number
brief: The token is for changing a user phone number.
stability: development
- id: email_confirmation
value: email_confirmation
brief: The token is for confirming user email address.
stability: development
- id: change_email
value: change_email
brief: The token is for changing the user email address.
stability: development
- id: two_factor
value: two_factor
brief: The token is for changing user two factor settings.
stability: development
- id: other
value: _OTHER
brief: Any token purpose that the instrumentation has no prior knowledge of.
stability: development
examples:
- success
- failure
brief: What the token will be used for.
stability: development
requirement_level: required
- key: aspnetcore.identity.token_verified
type:
members:
- id: success
value: success
brief: Token verification was successful.
stability: development
- id: failure
value: failure
brief: Token verification failed.
stability: development
examples:
- success
- failure
brief: The result of token verification.
stability: development
requirement_level:
conditionally_required: if no exception was thrown.
brief: The total number of token verification attempts.
note: |
Meter name: `Microsoft.AspNetCore.Identity`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.memory_pool.allocated
instrument: counter
unit: By
attributes:
- key: aspnetcore.memory_pool.owner
type: string
examples:
- kestrel
- iis
brief: The name of the library or subsystem using the memory pool instance.
stability: development
requirement_level:
conditionally_required: if owner is specified when the memory pool is created.
brief: Total number of bytes allocated by the memory pool. Allocation occurs when a memory rental request exceeds the available pooled memory.
note: |
Meter name: `Microsoft.AspNetCore.MemoryPool`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.memory_pool.evicted
instrument: counter
unit: By
attributes:
- key: aspnetcore.memory_pool.owner
type: string
examples:
- kestrel
- iis
brief: The name of the library or subsystem using the memory pool instance.
stability: development
requirement_level:
conditionally_required: if owner is specified when the memory pool is created.
brief: Total number of bytes evicted from the memory pool. Eviction occurs when idle pooled memory is reclaimed.
note: |
Meter name: `Microsoft.AspNetCore.MemoryPool`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.memory_pool.pooled
instrument: updowncounter
unit: By
attributes:
- key: aspnetcore.memory_pool.owner
type: string
examples:
- kestrel
- iis
brief: The name of the library or subsystem using the memory pool instance.
stability: development
requirement_level:
conditionally_required: if owner is specified when the memory pool is created.
brief: Number of bytes currently pooled and available for reuse.
note: |
Meter name: `Microsoft.AspNetCore.MemoryPool`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.memory_pool.rented
instrument: counter
unit: By
attributes:
- key: aspnetcore.memory_pool.owner
type: string
examples:
- kestrel
- iis
brief: The name of the library or subsystem using the memory pool instance.
stability: development
requirement_level:
conditionally_required: if owner is specified when the memory pool is created.
brief: Total number of bytes rented from the memory pool.
note: |
Meter name: `Microsoft.AspNetCore.MemoryPool`; Added in: ASP.NET Core 10.0
stability: development
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.rate_limiting.active_request_leases
instrument: updowncounter
unit: '{request}'
attributes:
- key: aspnetcore.rate_limiting.policy
type: string
examples:
- fixed
- sliding
- token
brief: Rate limiting policy name.
stability: stable
requirement_level:
conditionally_required: if the matched endpoint for the request had a rate-limiting policy.
brief: Number of requests that are currently active on the server that hold a rate limiting lease.
note: |
Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.rate_limiting.queued_requests
instrument: updowncounter
unit: '{request}'
attributes:
- key: aspnetcore.rate_limiting.policy
type: string
examples:
- fixed
- sliding
- token
brief: Rate limiting policy name.
stability: stable
requirement_level:
conditionally_required: if the matched endpoint for the request had a rate-limiting policy.
brief: Number of requests that are currently queued, waiting to acquire a rate limiting lease.
note: |
Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.rate_limiting.request.time_in_queue
instrument: histogram
unit: s
attributes:
- key: aspnetcore.rate_limiting.policy
type: string
examples:
- fixed
- sliding
- token
brief: Rate limiting policy name.
stability: stable
requirement_level:
conditionally_required: if the matched endpoint for the request had a rate-limiting policy.
- key: aspnetcore.rate_limiting.result
type:
members:
- id: acquired
value: acquired
brief: Lease was acquired
stability: stable
- id: endpoint_limiter
value: endpoint_limiter
brief: Lease request was rejected by the endpoint limiter
stability: stable
- id: global_limiter
value: global_limiter
brief: Lease request was rejected by the global limiter
stability: stable
- id: request_canceled
value: request_canceled
brief: Lease request was canceled
stability: stable
examples:
- acquired
- request_canceled
brief: Rate-limiting result, shows whether the lease was acquired or contains a rejection reason
stability: stable
requirement_level: required
brief: The time the request spent in a queue waiting to acquire a rate limiting lease.
note: |
Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0
stability: stable
annotations:
code_generation:
metric_value_type: double
- name: aspnetcore.rate_limiting.request_lease.duration
instrument: histogram
unit: s
attributes:
- key: aspnetcore.rate_limiting.policy
type: string
examples:
- fixed
- sliding
- token
brief: Rate limiting policy name.
stability: stable
requirement_level:
conditionally_required: if the matched endpoint for the request had a rate-limiting policy.
brief: The duration of rate limiting lease held by requests on the server.
note: |
Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0
stability: stable
annotations:
code_generation:
metric_value_type: double
- name: aspnetcore.rate_limiting.requests
instrument: counter
unit: '{request}'
attributes:
- key: aspnetcore.rate_limiting.policy
type: string
examples:
- fixed
- sliding
- token
brief: Rate limiting policy name.
stability: stable
requirement_level:
conditionally_required: if the matched endpoint for the request had a rate-limiting policy.
- key: aspnetcore.rate_limiting.result
type:
members:
- id: acquired
value: acquired
brief: Lease was acquired
stability: stable
- id: endpoint_limiter
value: endpoint_limiter
brief: Lease request was rejected by the endpoint limiter
stability: stable
- id: global_limiter
value: global_limiter
brief: Lease request was rejected by the global limiter
stability: stable
- id: request_canceled
value: request_canceled
brief: Lease request was canceled
stability: stable
examples:
- acquired
- request_canceled
brief: Rate-limiting result, shows whether the lease was acquired or contains a rejection reason
stability: stable
requirement_level: required
brief: Number of requests that tried to acquire a rate limiting lease.
note: |
Requests could be:
* Rejected by global or endpoint rate limiting policies
* Canceled while waiting for the lease.
Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: aspnetcore.routing.match_attempts
instrument: counter
unit: '{match_attempt}'
attributes:
- key: http.route
type: string
examples:
- /users/:userID?
- my-controller/my-action/{id?}
brief: |
The matched route template for the request. This MUST be low-cardinality and include all static path segments, with dynamic path segments represented with placeholders.
note: |
MUST NOT be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it.
SHOULD include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one.
A static path segment is a part of the route template with a fixed, low-cardinality value. This includes literal strings like `/users/` and placeholders that
are constrained to a finite, predefined set of values, e.g. `{controller}` or `{action}`.
A dynamic path segment is a placeholder for a value that can have high cardinality and is not constrained to a predefined list like static path segments.
Instrumentations SHOULD use routing information provided by the corresponding web framework. They SHOULD pick the most precise source of routing information and MAY
support custom route formatting. Instrumentations SHOULD document the format and the API used to obtain the route string.
stability: stable
requirement_level:
conditionally_required: if and only if a route was successfully matched.
- key: aspnetcore.routing.is_fallback
type: boolean
examples:
- true
brief: A value that indicates whether the matched route is a fallback route.
stability: stable
requirement_level:
conditionally_required: if and only if a route was successfully matched.
- key: aspnetcore.routing.match_status
type:
members:
- id: success
value: success
brief: Match succeeded
stability: stable
- id: failure
value: failure
brief: Match failed
stability: stable
examples:
- success
- failure
brief: Match result - success or failure
stability: stable
requirement_level: required
brief: Number of requests that were attempted to be matched to an endpoint.
note: |
Meter name: `Microsoft.AspNetCore.Routing`; Added in: ASP.NET Core 8.0
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: azure.cosmosdb.client.active_instance.count
instrument: updowncounter
unit: '{instance}'
attributes:
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
Name of the database host.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: recommended
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level:
conditionally_required: If using a port other than the default port for this DBMS and if `server.address` is set.
brief: Number of active client instances.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: azure.cosmosdb.client.operation.request_charge
instrument: histogram
unit: '{request_unit}'
attributes:
- key: azure.cosmosdb.consistency.level
type:
members:
- id: strong
value: Strong
brief: Strong
stability: development
- id: bounded_staleness
value: BoundedStaleness
brief: Bounded Staleness
stability: development
- id: session
value: Session
brief: Session
stability: development
- id: eventual
value: Eventual
brief: Eventual
stability: development
- id: consistent_prefix
value: ConsistentPrefix
brief: Consistent Prefix
stability: development
examples:
- Eventual
- ConsistentPrefix
- BoundedStaleness
- Strong
- Session
brief: Account or request [consistency level](https://learn.microsoft.com/azure/cosmos-db/consistency-levels).
stability: development
requirement_level:
conditionally_required: If available.
- key: azure.cosmosdb.response.sub_status_code
type: int
examples:
- 1000
- 1002
brief: Cosmos DB sub status code.
stability: development
requirement_level:
conditionally_required: when response was received and contained sub-code.
- key: azure.cosmosdb.operation.contacted_regions
type: string[]
examples:
- - North Central US
- Australia East
- Australia Southeast
brief: |
List of regions contacted during operation in the order that they were contacted. If there is more than one region listed, it indicates that the operation was performed on multiple regions i.e. cross-regional call.
note: |
Region name matches the format of `displayName` in [Azure Location API](https://learn.microsoft.com/rest/api/resources/subscriptions/list-locations)
stability: development
requirement_level:
recommended: If available
- key: db.collection.name
type: string
examples:
- public.users
- customers
brief: |
Cosmos DB container name.
note: |
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
stability: stable
requirement_level:
conditionally_required: If available.
- key: db.namespace
type: string
examples:
- customers
- test.users
brief: |
The name of the database, fully qualified within the server address and port.
stability: stable
requirement_level:
conditionally_required: If available.
- key: db.operation.name
type: string
examples:
- findAndModify
- HMSET
- SELECT
brief: |
The name of the operation or command being executed.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
The operation name SHOULD NOT be extracted from `db.query.text`,
when the database system supports query text with multiple operations
in non-batch operations.
If spaces can occur in the operation name, multiple consecutive spaces
SHOULD be normalized to a single space.
For batch operations, if the individual operations are known to have the same operation name
then that operation name SHOULD be used prepended by `BATCH `,
otherwise `db.operation.name` SHOULD be `BATCH` or some other database
system specific term if more applicable.
stability: stable
requirement_level: required
- key: db.response.status_code
type: string
examples:
- '102'
- ORA-17002
- 08P01
- '404'
brief: Database response status code.
note: |
The status code returned by the database. Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes.
Semantic conventions for individual database systems SHOULD document what `db.response.status_code` means in the context of that system.
stability: stable
requirement_level:
conditionally_required: If the operation failed and status code is available.
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
Name of the database host.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: recommended
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level:
conditionally_required: If using a port other than the default port for this DBMS and if `server.address` is set.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD match the `db.response.status_code` returned by the database or the client library, or the canonical name of exception that occurred.
When using canonical exception type name, instrumentation SHOULD do the best effort to report the most relevant type. For example, if the original exception is wrapped into a generic one, the original exception SHOULD be preferred.
Instrumentations SHOULD document how `error.type` is populated.
stability: stable
requirement_level:
conditionally_required: If and only if the operation failed.
brief: '[Request units](https://learn.microsoft.com/azure/cosmos-db/request-units) consumed by the operation.'
stability: development
annotations:
code_generation:
metric_value_type: double
- name: cicd.pipeline.run.active
instrument: updowncounter
unit: '{run}'
attributes:
- key: cicd.pipeline.name
type: string
examples:
- Build and Test
- Lint
- Deploy Go Project
- deploy_to_environment
brief: |
The human readable name of the pipeline within a CI/CD system.
stability: development
requirement_level: required
- key: cicd.pipeline.run.state
type:
members:
- id: pending
value: pending
brief: |
The run pending state spans from the event triggering the pipeline run until the execution of the run starts (eg. time spent in a queue, provisioning agents, creating run resources).
stability: development
- id: executing
value: executing
brief: The executing state spans the execution of any run tasks (eg. build, test).
stability: development
- id: finalizing
value: finalizing
brief: The finalizing state spans from when the run has finished executing (eg. cleanup of run resources).
stability: development
examples:
- pending
- executing
- finalizing
brief: |
The pipeline run goes through these states during its lifecycle.
stability: development
requirement_level: required
entity_associations:
- cicd.pipeline
brief: The number of pipeline runs currently active in the system by state.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: cicd.pipeline.run.duration
instrument: histogram
unit: s
attributes:
- key: cicd.pipeline.name
type: string
examples:
- Build and Test
- Lint
- Deploy Go Project
- deploy_to_environment
brief: |
The human readable name of the pipeline within a CI/CD system.
stability: development
requirement_level: required
- key: cicd.pipeline.run.state
type:
members:
- id: pending
value: pending
brief: |
The run pending state spans from the event triggering the pipeline run until the execution of the run starts (eg. time spent in a queue, provisioning agents, creating run resources).
stability: development
- id: executing
value: executing
brief: The executing state spans the execution of any run tasks (eg. build, test).
stability: development
- id: finalizing
value: finalizing
brief: The finalizing state spans from when the run has finished executing (eg. cleanup of run resources).
stability: development
examples:
- pending
- executing
- finalizing
brief: |
The pipeline run goes through these states during its lifecycle.
stability: development
requirement_level: required
- key: cicd.pipeline.result
type:
members:
- id: success
value: success
brief: The pipeline run finished successfully.
stability: development
- id: failure
value: failure
brief: The pipeline run did not finish successfully, eg. due to a compile error or a failing test. Such failures are usually detected by non-zero exit codes of the tools executed in the pipeline run.
stability: development
- id: error
value: error
brief: The pipeline run failed due to an error in the CICD system, eg. due to the worker being killed.
stability: development
- id: timeout
value: timeout
brief: A timeout caused the pipeline run to be interrupted.
stability: development
- id: cancellation
value: cancellation
brief: The pipeline run was cancelled, eg. by a user manually cancelling the pipeline run.
stability: development
- id: skip
value: skip
brief: The pipeline run was skipped, eg. due to a precondition not being met.
stability: development
examples:
- success
- failure
- timeout
- skipped
brief: |
The result of a pipeline run.
stability: development
requirement_level:
conditionally_required: If and only if the pipeline run result has been set during that state.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD be predictable, and SHOULD have low cardinality.
When `error.type` is set to a type (e.g., an exception type), its
canonical class name identifying the type within the artifact SHOULD be used.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low.
Telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time when no
additional filters are applied.
If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`.
If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes),
it's RECOMMENDED to:
- Use a domain-specific attribute
- Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not.
stability: stable
requirement_level:
conditionally_required: If and only if the pipeline run failed.
entity_associations:
- cicd.pipeline
brief: Duration of a pipeline run grouped by pipeline, state and result.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: cicd.pipeline.run.errors
instrument: counter
unit: '{error}'
attributes:
- key: cicd.pipeline.name
type: string
examples:
- Build and Test
- Lint
- Deploy Go Project
- deploy_to_environment
brief: |
The human readable name of the pipeline within a CI/CD system.
stability: development
requirement_level: required
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD be predictable, and SHOULD have low cardinality.
When `error.type` is set to a type (e.g., an exception type), its
canonical class name identifying the type within the artifact SHOULD be used.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low.
Telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time when no
additional filters are applied.
If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`.
If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes),
it's RECOMMENDED to:
- Use a domain-specific attribute
- Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not.
stability: stable
requirement_level: required
entity_associations:
- cicd.pipeline
brief: The number of errors encountered in pipeline runs (eg. compile, test failures).
note: |
There might be errors in a pipeline run that are non fatal (eg. they are suppressed) or in a parallel stage multiple stages could have a fatal error.
This means that this error count might not be the same as the count of metric `cicd.pipeline.run.duration` with run result `failure`.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: cicd.system.errors
instrument: counter
unit: '{error}'
attributes:
- key: cicd.system.component
type: string
examples:
- controller
- scheduler
- agent
brief: The name of a component of the CICD system.
stability: development
requirement_level: required
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD be predictable, and SHOULD have low cardinality.
When `error.type` is set to a type (e.g., an exception type), its
canonical class name identifying the type within the artifact SHOULD be used.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low.
Telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time when no
additional filters are applied.
If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`.
If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes),
it's RECOMMENDED to:
- Use a domain-specific attribute
- Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not.
stability: stable
requirement_level: required
brief: The number of errors in a component of the CICD system (eg. controller, scheduler, agent).
note: Errors in pipeline run execution are explicitly excluded. Ie a test failure is not counted in this metric.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: cicd.worker.count
instrument: updowncounter
unit: '{count}'
attributes:
- key: cicd.worker.state
type:
members:
- id: available
value: available
brief: The worker is not performing work for the CICD system. It is available to the CICD system to perform work on (online / idle).
note: Pipelines might have conditions on which workers they are able to run so not every worker might be available to every pipeline.
stability: development
- id: busy
value: busy
brief: The worker is performing work for the CICD system.
stability: development
- id: offline
value: offline
brief: The worker is not available to the CICD system (disconnected / down).
stability: development
examples:
- idle
- busy
- down
brief: |
The state of a CICD worker / agent.
stability: development
requirement_level: required
brief: The number of workers on the CICD system by state.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: container.cpu.time
instrument: counter
unit: s
attributes:
- key: cpu.mode
type:
members:
- id: user
value: user
brief: User
stability: development
- id: system
value: system
brief: System
stability: development
- id: nice
value: nice
brief: Nice
stability: development
- id: idle
value: idle
brief: Idle
stability: development
- id: iowait
value: iowait
brief: IO Wait
stability: development
- id: interrupt
value: interrupt
brief: Interrupt
stability: development
- id: steal
value: steal
brief: Steal
stability: development
- id: kernel
value: kernel
brief: Kernel
stability: development
examples:
- user
- system
brief: The CPU mode for this data point. A container's CPU metric SHOULD be characterized _either_ by data points with no `mode` labels, _or only_ data points with `mode` labels.
note: 'Following states SHOULD be used: `user`, `system`, `kernel`'
stability: development
requirement_level:
conditionally_required: Required if mode is available, i.e. metrics coming from the Docker Stats API.
brief: Total CPU time consumed.
note: |
Total CPU time consumed by the specific container on all available CPU cores
stability: development
annotations:
code_generation:
metric_value_type: double
- name: container.cpu.usage
instrument: gauge
unit: '{cpu}'
attributes:
- key: cpu.mode
type:
members:
- id: user
value: user
brief: User
stability: development
- id: system
value: system
brief: System
stability: development
- id: nice
value: nice
brief: Nice
stability: development
- id: idle
value: idle
brief: Idle
stability: development
- id: iowait
value: iowait
brief: IO Wait
stability: development
- id: interrupt
value: interrupt
brief: Interrupt
stability: development
- id: steal
value: steal
brief: Steal
stability: development
- id: kernel
value: kernel
brief: Kernel
stability: development
examples:
- user
- system
brief: The CPU mode for this data point. A container's CPU metric SHOULD be characterized _either_ by data points with no `mode` labels, _or only_ data points with `mode` labels.
note: 'Following states SHOULD be used: `user`, `system`, `kernel`'
stability: development
requirement_level:
conditionally_required: Required if mode is available, i.e. metrics coming from the Docker Stats API.
brief: Container's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs.
note: |
CPU usage of the specific container on all available CPU cores, averaged over the sample window
stability: development
annotations:
code_generation:
metric_value_type: double
- name: container.disk.io
instrument: counter
unit: By
attributes:
- key: disk.io.direction
type:
members:
- id: read
value: read
stability: development
- id: write
value: write
stability: development
examples:
- read
brief: The disk IO operation direction.
stability: development
requirement_level: recommended
- key: system.device
type: string
examples:
- (identifier)
brief: The device identifier
stability: development
requirement_level: recommended
brief: Disk bytes for the container.
note: |
The total number of bytes read/written successfully (aggregated from all disks).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: container.filesystem.available
instrument: updowncounter
unit: By
entity_associations:
- container
brief: Container filesystem available bytes.
note: |
In K8s, this metric is derived from the
[FsStats.AvailableBytes](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#FsStats) field
of the [ContainerStats.Rootfs](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#ContainerStats)
of the Kubelet's stats API.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: container.filesystem.capacity
instrument: updowncounter
unit: By
entity_associations:
- container
brief: Container filesystem capacity.
note: |
In K8s, this metric is derived from the
[FsStats.CapacityBytes](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#FsStats) field
of the [ContainerStats.Rootfs](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#ContainerStats)
of the Kubelet's stats API.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: container.filesystem.usage
instrument: updowncounter
unit: By
entity_associations:
- container
brief: Container filesystem usage.
note: |
This may not equal capacity - available.
In K8s, this metric is derived from the
[FsStats.UsedBytes](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#FsStats) field
of the [ContainerStats.Rootfs](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#ContainerStats)
of the Kubelet's stats API.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: container.memory.available
instrument: updowncounter
unit: By
entity_associations:
- container
brief: Container memory available.
note: |
Available memory for use. This is defined as the memory limit - workingSetBytes. If memory limit is undefined, the available bytes is omitted.
In general, this metric can be derived from [cadvisor](https://github.com/google/cadvisor/blob/v0.53.0/docs/storage/prometheus.md#prometheus-container-metrics) and by subtracting the `container_memory_working_set_bytes` metric from the `container_spec_memory_limit_bytes` metric.
In K8s, this metric is derived from the [MemoryStats.AvailableBytes](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#MemoryStats) field of the [PodStats.Memory](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#PodStats) of the Kubelet's stats API.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: container.memory.paging.faults
instrument: counter
unit: '{fault}'
attributes:
- key: system.paging.fault.type
type:
members:
- id: major
value: major
stability: development
- id: minor
value: minor
stability: development
examples:
- minor
brief: The paging fault type
stability: development
requirement_level: recommended
entity_associations:
- container
brief: Container memory paging faults.
note: |
In general, this metric can be derived from [cadvisor](https://github.com/google/cadvisor/blob/v0.53.0/docs/storage/prometheus.md#prometheus-container-metrics) and specifically the `container_memory_failures_total{failure_type=pgfault, scope=container}` and `container_memory_failures_total{failure_type=pgmajfault, scope=container}`metric.
In K8s, this metric is derived from the [MemoryStats.PageFaults](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#MemoryStats) and [MemoryStats.MajorPageFaults](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#MemoryStats) field of the [PodStats.Memory](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#PodStats) of the Kubelet's stats API.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: container.memory.rss
instrument: updowncounter
unit: By
entity_associations:
- container
brief: Container memory RSS.
note: |
In general, this metric can be derived from [cadvisor](https://github.com/google/cadvisor/blob/v0.53.0/docs/storage/prometheus.md#prometheus-container-metrics) and specifically the `container_memory_rss` metric.
In K8s, this metric is derived from the [MemoryStats.RSSBytes](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#MemoryStats) field of the [PodStats.Memory](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#PodStats) of the Kubelet's stats API.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: container.memory.usage
instrument: counter
unit: By
brief: Memory usage of the container.
note: |
Memory usage of the container.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: container.memory.working_set
instrument: updowncounter
unit: By
entity_associations:
- container
brief: Container memory working set.
note: |
In general, this metric can be derived from [cadvisor](https://github.com/google/cadvisor/blob/v0.53.0/docs/storage/prometheus.md#prometheus-container-metrics) and specifically the `container_memory_working_set_bytes` metric.
In K8s, this metric is derived from the [MemoryStats.WorkingSetBytes](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#MemoryStats) field of the [PodStats.Memory](https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/stats/v1alpha1#PodStats) of the Kubelet's stats API.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: container.network.io
instrument: counter
unit: By
attributes:
- key: network.io.direction
type:
members:
- id: transmit
value: transmit
stability: development
- id: receive
value: receive
stability: development
examples:
- transmit
brief: The network IO operation direction.
stability: development
requirement_level: recommended
- key: network.interface.name
type: string
examples:
- lo
- eth0
brief: The network interface name.
stability: development
requirement_level: recommended
brief: Network bytes for the container.
note: |
The number of bytes sent/received on all network interfaces by the container.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: container.uptime
instrument: gauge
unit: s
brief: The time the container has been running.
note: |
Instrumentations SHOULD use a gauge with type `double` and measure uptime in seconds as a floating point number with the highest precision available.
The actual accuracy would depend on the instrumentation and operating system.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: cpu.frequency
instrument: gauge
unit: '{Hz}'
brief: Deprecated. Use `system.cpu.frequency` instead.
stability: development
deprecated:
reason: renamed
renamed_to: system.cpu.frequency
note: Replaced by `system.cpu.frequency`.
annotations:
code_generation:
metric_value_type: int
- name: cpu.time
instrument: counter
unit: s
attributes:
- key: cpu.logical_number
type: int
examples:
- 1
brief: The logical CPU number [0..n-1]
stability: development
requirement_level: recommended
- key: cpu.mode
type:
members:
- id: user
value: user
brief: User
stability: development
- id: system
value: system
brief: System
stability: development
- id: nice
value: nice
brief: Nice
stability: development
- id: idle
value: idle
brief: Idle
stability: development
- id: iowait
value: iowait
brief: IO Wait
stability: development
- id: interrupt
value: interrupt
brief: Interrupt
stability: development
- id: steal
value: steal
brief: Steal
stability: development
- id: kernel
value: kernel
brief: Kernel
stability: development
examples:
- user
- system
brief: The mode of the CPU
note: 'Following states SHOULD be used: `user`, `system`, `nice`, `idle`, `iowait`, `interrupt`, `steal`'
stability: development
requirement_level: recommended
brief: Deprecated. Use `system.cpu.time` instead.
stability: development
deprecated:
reason: renamed
renamed_to: system.cpu.time
note: Replaced by `system.cpu.time`.
annotations:
code_generation:
metric_value_type: double
- name: cpu.utilization
instrument: gauge
unit: '1'
attributes:
- key: cpu.logical_number
type: int
examples:
- 1
brief: The logical CPU number [0..n-1]
stability: development
requirement_level: recommended
- key: cpu.mode
type:
members:
- id: user
value: user
brief: User
stability: development
- id: system
value: system
brief: System
stability: development
- id: nice
value: nice
brief: Nice
stability: development
- id: idle
value: idle
brief: Idle
stability: development
- id: iowait
value: iowait
brief: IO Wait
stability: development
- id: interrupt
value: interrupt
brief: Interrupt
stability: development
- id: steal
value: steal
brief: Steal
stability: development
- id: kernel
value: kernel
brief: Kernel
stability: development
examples:
- user
- system
brief: The mode of the CPU
note: 'Following states SHOULD be used: `user`, `system`, `nice`, `idle`, `iowait`, `interrupt`, `steal`'
stability: development
requirement_level: recommended
brief: Deprecated. Use `system.cpu.utilization` instead.
stability: development
deprecated:
reason: renamed
renamed_to: system.cpu.utilization
note: Replaced by `system.cpu.utilization`.
annotations:
code_generation:
metric_value_type: double
- name: cpython.gc.collected_objects
instrument: counter
unit: '{object}'
attributes:
- key: cpython.gc.generation
type:
members:
- id: generation_0
value: 0
brief: Generation 0
stability: development
- id: generation_1
value: 1
brief: Generation 1
stability: development
- id: generation_2
value: 2
brief: Generation 2
stability: development
examples:
- 0
- 1
- 2
brief: Value of the garbage collector collection generation.
stability: development
requirement_level: required
brief: The total number of objects collected inside a generation since interpreter start.
note: |
This metric reports data from [`gc.stats()`](https://docs.python.org/3/library/gc.html#gc.get_stats).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: cpython.gc.collections
instrument: counter
unit: '{collection}'
attributes:
- key: cpython.gc.generation
type:
members:
- id: generation_0
value: 0
brief: Generation 0
stability: development
- id: generation_1
value: 1
brief: Generation 1
stability: development
- id: generation_2
value: 2
brief: Generation 2
stability: development
examples:
- 0
- 1
- 2
brief: Value of the garbage collector collection generation.
stability: development
requirement_level: required
brief: The number of times a generation was collected since interpreter start.
note: |
This metric reports data from [`gc.stats()`](https://docs.python.org/3/library/gc.html#gc.get_stats).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: cpython.gc.uncollectable_objects
instrument: counter
unit: '{object}'
attributes:
- key: cpython.gc.generation
type:
members:
- id: generation_0
value: 0
brief: Generation 0
stability: development
- id: generation_1
value: 1
brief: Generation 1
stability: development
- id: generation_2
value: 2
brief: Generation 2
stability: development
examples:
- 0
- 1
- 2
brief: Value of the garbage collector collection generation.
stability: development
requirement_level: required
brief: The total number of objects which were found to be uncollectable inside a generation since interpreter start.
note: |
This metric reports data from [`gc.stats()`](https://docs.python.org/3/library/gc.html#gc.get_stats).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: db.client.connection.count
instrument: updowncounter
unit: '{connection}'
attributes:
- key: db.client.connection.state
type:
members:
- id: idle
value: idle
stability: development
- id: used
value: used
stability: development
examples:
- idle
brief: The state of a connection in the pool
stability: development
requirement_level: required
- key: db.client.connection.pool.name
type: string
examples:
- myDataSource
brief: |
The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation SHOULD use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns SHOULD document it.
stability: development
requirement_level: required
brief: The number of connections that are currently in state described by the `state` attribute.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: db.client.connection.create_time
instrument: histogram
unit: s
attributes:
- key: db.client.connection.pool.name
type: string
examples:
- myDataSource
brief: |
The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation SHOULD use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns SHOULD document it.
stability: development
requirement_level: required
brief: The time it took to create a new connection.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: db.client.connection.idle.max
instrument: updowncounter
unit: '{connection}'
attributes:
- key: db.client.connection.pool.name
type: string
examples:
- myDataSource
brief: |
The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation SHOULD use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns SHOULD document it.
stability: development
requirement_level: required
brief: The maximum number of idle open connections allowed.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: db.client.connection.idle.min
instrument: updowncounter
unit: '{connection}'
attributes:
- key: db.client.connection.pool.name
type: string
examples:
- myDataSource
brief: |
The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation SHOULD use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns SHOULD document it.
stability: development
requirement_level: required
brief: The minimum number of idle open connections allowed.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: db.client.connection.max
instrument: updowncounter
unit: '{connection}'
attributes:
- key: db.client.connection.pool.name
type: string
examples:
- myDataSource
brief: |
The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation SHOULD use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns SHOULD document it.
stability: development
requirement_level: required
brief: The maximum number of open connections allowed.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: db.client.connection.pending_requests
instrument: updowncounter
unit: '{request}'
attributes:
- key: db.client.connection.pool.name
type: string
examples:
- myDataSource
brief: |
The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation SHOULD use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns SHOULD document it.
stability: development
requirement_level: required
brief: The number of current pending requests for an open connection.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: db.client.connection.timeouts
instrument: counter
unit: '{timeout}'
attributes:
- key: db.client.connection.pool.name
type: string
examples:
- myDataSource
brief: |
The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation SHOULD use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns SHOULD document it.
stability: development
requirement_level: required
brief: The number of connection timeouts that have occurred trying to obtain a connection from the pool.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: db.client.connection.use_time
instrument: histogram
unit: s
attributes:
- key: db.client.connection.pool.name
type: string
examples:
- myDataSource
brief: |
The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation SHOULD use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns SHOULD document it.
stability: development
requirement_level: required
brief: The time between borrowing a connection and returning it to the pool.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: db.client.connection.wait_time
instrument: histogram
unit: s
attributes:
- key: db.client.connection.pool.name
type: string
examples:
- myDataSource
brief: |
The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation SHOULD use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns SHOULD document it.
stability: development
requirement_level: required
brief: The time it took to obtain an open connection from the pool.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: db.client.connections.create_time
instrument: histogram
unit: ms
attributes:
- key: db.client.connections.pool.name
type: string
examples:
- myDataSource
brief: Deprecated, use `db.client.connection.pool.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.pool.name
note: Replaced by `db.client.connection.pool.name`.
requirement_level: required
brief: 'Deprecated, use `db.client.connection.create_time` instead. Note: the unit also changed from `ms` to `s`.'
stability: development
deprecated:
reason: uncategorized
note: Replaced by `db.client.connection.create_time` with unit `s`.
annotations:
code_generation:
metric_value_type: double
- name: db.client.connections.idle.max
instrument: updowncounter
unit: '{connection}'
attributes:
- key: db.client.connections.pool.name
type: string
examples:
- myDataSource
brief: Deprecated, use `db.client.connection.pool.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.pool.name
note: Replaced by `db.client.connection.pool.name`.
requirement_level: required
brief: Deprecated, use `db.client.connection.idle.max` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.idle.max
note: Replaced by `db.client.connection.idle.max`.
annotations:
code_generation:
metric_value_type: int
- name: db.client.connections.idle.min
instrument: updowncounter
unit: '{connection}'
attributes:
- key: db.client.connections.pool.name
type: string
examples:
- myDataSource
brief: Deprecated, use `db.client.connection.pool.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.pool.name
note: Replaced by `db.client.connection.pool.name`.
requirement_level: required
brief: Deprecated, use `db.client.connection.idle.min` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.idle.min
note: Replaced by `db.client.connection.idle.min`.
annotations:
code_generation:
metric_value_type: int
- name: db.client.connections.max
instrument: updowncounter
unit: '{connection}'
attributes:
- key: db.client.connections.pool.name
type: string
examples:
- myDataSource
brief: Deprecated, use `db.client.connection.pool.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.pool.name
note: Replaced by `db.client.connection.pool.name`.
requirement_level: required
brief: Deprecated, use `db.client.connection.max` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.max
note: Replaced by `db.client.connection.max`.
annotations:
code_generation:
metric_value_type: int
- name: db.client.connections.pending_requests
instrument: updowncounter
unit: '{request}'
attributes:
- key: db.client.connections.pool.name
type: string
examples:
- myDataSource
brief: Deprecated, use `db.client.connection.pool.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.pool.name
note: Replaced by `db.client.connection.pool.name`.
requirement_level: required
brief: Deprecated, use `db.client.connection.pending_requests` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.pending_requests
note: Replaced by `db.client.connection.pending_requests`.
annotations:
code_generation:
metric_value_type: int
- name: db.client.connections.timeouts
instrument: counter
unit: '{timeout}'
attributes:
- key: db.client.connections.pool.name
type: string
examples:
- myDataSource
brief: Deprecated, use `db.client.connection.pool.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.pool.name
note: Replaced by `db.client.connection.pool.name`.
requirement_level: required
brief: Deprecated, use `db.client.connection.timeouts` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.timeouts
note: Replaced by `db.client.connection.timeouts`.
annotations:
code_generation:
metric_value_type: int
- name: db.client.connections.usage
instrument: updowncounter
unit: '{connection}'
attributes:
- key: db.client.connections.state
type:
members:
- id: idle
value: idle
stability: development
- id: used
value: used
stability: development
examples:
- idle
brief: Deprecated, use `db.client.connection.state` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.state
note: Replaced by `db.client.connection.state`.
requirement_level: required
- key: db.client.connections.pool.name
type: string
examples:
- myDataSource
brief: Deprecated, use `db.client.connection.pool.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.pool.name
note: Replaced by `db.client.connection.pool.name`.
requirement_level: required
brief: Deprecated, use `db.client.connection.count` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.count
note: Replaced by `db.client.connection.count`.
annotations:
code_generation:
metric_value_type: int
- name: db.client.connections.use_time
instrument: histogram
unit: ms
attributes:
- key: db.client.connections.pool.name
type: string
examples:
- myDataSource
brief: Deprecated, use `db.client.connection.pool.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.pool.name
note: Replaced by `db.client.connection.pool.name`.
requirement_level: required
brief: 'Deprecated, use `db.client.connection.use_time` instead. Note: the unit also changed from `ms` to `s`.'
stability: development
deprecated:
reason: uncategorized
note: Replaced by `db.client.connection.use_time` with unit `s`.
annotations:
code_generation:
metric_value_type: double
- name: db.client.connections.wait_time
instrument: histogram
unit: ms
attributes:
- key: db.client.connections.pool.name
type: string
examples:
- myDataSource
brief: Deprecated, use `db.client.connection.pool.name` instead.
stability: development
deprecated:
reason: renamed
renamed_to: db.client.connection.pool.name
note: Replaced by `db.client.connection.pool.name`.
requirement_level: required
brief: 'Deprecated, use `db.client.connection.wait_time` instead. Note: the unit also changed from `ms` to `s`.'
stability: development
deprecated:
reason: uncategorized
note: Replaced by `db.client.connection.wait_time` with unit `s`.
annotations:
code_generation:
metric_value_type: double
- name: db.client.cosmosdb.active_instance.count
instrument: updowncounter
unit: '{instance}'
attributes:
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
Name of the database host.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: recommended
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level:
conditionally_required: If using a port other than the default port for this DBMS and if `server.address` is set.
brief: Deprecated, use `azure.cosmosdb.client.active_instance.count` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.cosmosdb.client.active_instance.count
note: Replaced by `azure.cosmosdb.client.active_instance.count`.
annotations:
code_generation:
metric_value_type: int
- name: db.client.cosmosdb.operation.request_charge
instrument: histogram
unit: '{request_unit}'
attributes:
- key: db.namespace
type: string
examples:
- customers
- test.users
brief: |
The name of the database, fully qualified within the server address and port.
stability: stable
requirement_level:
conditionally_required: If available.
- key: db.collection.name
type: string
examples:
- public.users
- customers
brief: Cosmos DB container name.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
The collection name SHOULD NOT be extracted from `db.query.text`,
when the database system supports query text with multiple collections
in non-batch operations.
For batch operations, if the individual operations are known to have the same
collection name then that collection name SHOULD be used.
stability: stable
requirement_level:
conditionally_required: If available.
- key: db.operation.name
type: string
examples:
- findAndModify
- HMSET
- SELECT
brief: |
The name of the operation or command being executed.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
The operation name SHOULD NOT be extracted from `db.query.text`,
when the database system supports query text with multiple operations
in non-batch operations.
If spaces can occur in the operation name, multiple consecutive spaces
SHOULD be normalized to a single space.
For batch operations, if the individual operations are known to have the same operation name
then that operation name SHOULD be used prepended by `BATCH `,
otherwise `db.operation.name` SHOULD be `BATCH` or some other database
system specific term if more applicable.
stability: stable
requirement_level:
conditionally_required: |
If readily available and if there is a single operation name that describes the database call. The operation name MAY be parsed from the query text, in which case it SHOULD be the single operation name found in the query.
- key: db.cosmosdb.sub_status_code
type: int
examples:
- 1000
- 1002
brief: Deprecated, use `azure.cosmosdb.response.sub_status_code` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.cosmosdb.response.sub_status_code
note: Replaced by `azure.cosmosdb.response.sub_status_code`.
requirement_level:
conditionally_required: when response was received and contained sub-code.
- key: db.cosmosdb.consistency_level
type:
members:
- id: strong
value: Strong
stability: development
- id: bounded_staleness
value: BoundedStaleness
stability: development
- id: session
value: Session
stability: development
- id: eventual
value: Eventual
stability: development
- id: consistent_prefix
value: ConsistentPrefix
stability: development
examples:
- Eventual
- ConsistentPrefix
- BoundedStaleness
- Strong
- Session
brief: Deprecated, use `cosmosdb.consistency.level` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.cosmosdb.consistency.level
note: Replaced by `azure.cosmosdb.consistency.level`.
requirement_level:
conditionally_required: If available.
- key: db.cosmosdb.regions_contacted
type: string[]
examples:
- - North Central US
- Australia East
- Australia Southeast
brief: Deprecated, use `azure.cosmosdb.operation.contacted_regions` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.cosmosdb.operation.contacted_regions
note: Replaced by `azure.cosmosdb.operation.contacted_regions`.
requirement_level:
recommended: If available
brief: Deprecated, use `azure.cosmosdb.client.operation.request_charge` instead.
stability: development
deprecated:
reason: renamed
renamed_to: azure.cosmosdb.client.operation.request_charge
note: Replaced by `azure.cosmosdb.client.operation.request_charge`.
annotations:
code_generation:
metric_value_type: double
- name: db.client.operation.duration
instrument: histogram
unit: s
attributes:
- key: db.response.status_code
type: string
examples:
- '102'
- ORA-17002
- 08P01
- '404'
brief: Database response status code.
note: |
The status code returned by the database. Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes.
Semantic conventions for individual database systems SHOULD document what `db.response.status_code` means in the context of that system.
stability: stable
requirement_level:
conditionally_required: If the operation failed and status code is available.
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
Name of the database host.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: recommended
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level:
conditionally_required: If using a port other than the default port for this DBMS and if `server.address` is set.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD match the `db.response.status_code` returned by the database or the client library, or the canonical name of exception that occurred.
When using canonical exception type name, instrumentation SHOULD do the best effort to report the most relevant type. For example, if the original exception is wrapped into a generic one, the original exception SHOULD be preferred.
Instrumentations SHOULD document how `error.type` is populated.
stability: stable
requirement_level:
conditionally_required: If and only if the operation failed.
- key: db.query.summary
type: string
examples:
- SELECT wuser_table
- INSERT shipping_details SELECT orders
- get user by id
brief: |
Low cardinality summary of a database query.
note: |
The query summary describes a class of database queries and is useful
as a grouping key, especially when analyzing telemetry for database
calls involving complex queries.
Summary may be available to the instrumentation through
instrumentation hooks or other means. If it is not available, instrumentations
that support query parsing SHOULD generate a summary following
[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query)
section.
stability: stable
requirement_level:
recommended: if available through instrumentation hooks or if the instrumentation supports generating a query summary.
- key: db.collection.name
type: string
examples:
- public.users
- customers
brief: The name of a collection (table, container) within the database.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
The collection name SHOULD NOT be extracted from `db.query.text`,
when the database system supports query text with multiple collections
in non-batch operations.
For batch operations, if the individual operations are known to have the same
collection name then that collection name SHOULD be used.
stability: stable
requirement_level:
conditionally_required: |
If readily available and if a database call is performed on a single collection.
- key: db.operation.name
type: string
examples:
- findAndModify
- HMSET
- SELECT
brief: |
The name of the operation or command being executed.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
The operation name SHOULD NOT be extracted from `db.query.text`,
when the database system supports query text with multiple operations
in non-batch operations.
If spaces can occur in the operation name, multiple consecutive spaces
SHOULD be normalized to a single space.
For batch operations, if the individual operations are known to have the same operation name
then that operation name SHOULD be used prepended by `BATCH `,
otherwise `db.operation.name` SHOULD be `BATCH` or some other database
system specific term if more applicable.
stability: stable
requirement_level:
conditionally_required: |
If readily available and if there is a single operation name that describes the database call.
- key: db.stored_procedure.name
type: string
examples:
- GetCustomer
brief: The name of a stored procedure within the database.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
For batch operations, if the individual operations are known to have the same
stored procedure name then that stored procedure name SHOULD be used.
stability: stable
requirement_level:
recommended: If operation applies to a specific stored procedure.
- key: network.peer.address
type: string
examples:
- 10.1.2.80
- /tmp/my.sock
brief: Peer address of the database node where the operation was performed.
note: |
Semantic conventions for individual database systems SHOULD document whether `network.peer.*` attributes are applicable. Network peer address and port are useful when the application interacts with individual database nodes directly.
If a database operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used.
stability: stable
requirement_level:
recommended: If applicable for this database system.
- key: db.namespace
type: string
examples:
- customers
- test.users
brief: |
The name of the database, fully qualified within the server address and port.
note: |
If a database system has multiple namespace components, they SHOULD be concatenated from the most general to the most specific namespace component, using `|` as a separator between the components. Any missing components (and their associated separators) SHOULD be omitted.
Semantic conventions for individual database systems SHOULD document what `db.namespace` means in the context of that system.
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
stability: stable
requirement_level:
conditionally_required: If available.
- key: db.query.text
type: string
examples:
- SELECT * FROM wuser_table where username = ?
- SET mykey ?
brief: |
The database query being executed.
note: |
For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext).
For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable.
Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk.
stability: stable
requirement_level: opt_in
- key: db.system.name
type:
members:
- id: other_sql
value: other_sql
brief: Some other SQL database. Fallback only.
stability: development
- id: softwareag.adabas
value: softwareag.adabas
brief: '[Adabas (Adaptable Database System)](https://documentation.softwareag.com/?pf=adabas)'
stability: development
- id: actian.ingres
value: actian.ingres
brief: '[Actian Ingres](https://www.actian.com/databases/ingres/)'
stability: development
- id: aws.dynamodb
value: aws.dynamodb
brief: '[Amazon DynamoDB](https://aws.amazon.com/pm/dynamodb/)'
stability: development
- id: aws.redshift
value: aws.redshift
brief: '[Amazon Redshift](https://aws.amazon.com/redshift/)'
stability: development
- id: azure.cosmosdb
value: azure.cosmosdb
brief: '[Azure Cosmos DB](https://learn.microsoft.com/azure/cosmos-db)'
stability: development
- id: intersystems.cache
value: intersystems.cache
brief: '[InterSystems Caché](https://www.intersystems.com/products/cache/)'
stability: development
- id: cassandra
value: cassandra
brief: '[Apache Cassandra](https://cassandra.apache.org/)'
stability: development
- id: clickhouse
value: clickhouse
brief: '[ClickHouse](https://clickhouse.com/)'
stability: development
- id: cockroachdb
value: cockroachdb
brief: '[CockroachDB](https://www.cockroachlabs.com/)'
stability: development
- id: couchbase
value: couchbase
brief: '[Couchbase](https://www.couchbase.com/)'
stability: development
- id: couchdb
value: couchdb
brief: '[Apache CouchDB](https://couchdb.apache.org/)'
stability: development
- id: derby
value: derby
brief: '[Apache Derby](https://db.apache.org/derby/)'
stability: development
- id: elasticsearch
value: elasticsearch
brief: '[Elasticsearch](https://www.elastic.co/elasticsearch)'
stability: development
- id: firebirdsql
value: firebirdsql
brief: '[Firebird](https://www.firebirdsql.org/)'
stability: development
- id: gcp.spanner
value: gcp.spanner
brief: '[Google Cloud Spanner](https://cloud.google.com/spanner)'
stability: development
- id: geode
value: geode
brief: '[Apache Geode](https://geode.apache.org/)'
stability: development
- id: h2database
value: h2database
brief: '[H2 Database](https://h2database.com/)'
stability: development
- id: hbase
value: hbase
brief: '[Apache HBase](https://hbase.apache.org/)'
stability: development
- id: hive
value: hive
brief: '[Apache Hive](https://hive.apache.org/)'
stability: development
- id: hsqldb
value: hsqldb
brief: '[HyperSQL Database](https://hsqldb.org/)'
stability: development
- id: ibm.db2
value: ibm.db2
brief: '[IBM Db2](https://www.ibm.com/db2)'
stability: development
- id: ibm.informix
value: ibm.informix
brief: '[IBM Informix](https://www.ibm.com/products/informix)'
stability: development
- id: ibm.netezza
value: ibm.netezza
brief: '[IBM Netezza](https://www.ibm.com/products/netezza)'
stability: development
- id: influxdb
value: influxdb
brief: '[InfluxDB](https://www.influxdata.com/)'
stability: development
- id: instantdb
value: instantdb
brief: '[Instant](https://www.instantdb.com/)'
stability: development
- id: mariadb
value: mariadb
brief: '[MariaDB](https://mariadb.org/)'
stability: stable
- id: memcached
value: memcached
brief: '[Memcached](https://memcached.org/)'
stability: development
- id: mongodb
value: mongodb
brief: '[MongoDB](https://www.mongodb.com/)'
stability: development
- id: microsoft.sql_server
value: microsoft.sql_server
brief: '[Microsoft SQL Server](https://www.microsoft.com/sql-server)'
stability: stable
- id: mysql
value: mysql
brief: '[MySQL](https://www.mysql.com/)'
stability: stable
- id: neo4j
value: neo4j
brief: '[Neo4j](https://neo4j.com/)'
stability: development
- id: opensearch
value: opensearch
brief: '[OpenSearch](https://opensearch.org/)'
stability: development
- id: oracle.db
value: oracle.db
brief: '[Oracle Database](https://www.oracle.com/database/)'
stability: development
- id: postgresql
value: postgresql
brief: '[PostgreSQL](https://www.postgresql.org/)'
stability: stable
- id: redis
value: redis
brief: '[Redis](https://redis.io/)'
stability: development
- id: sap.hana
value: sap.hana
brief: '[SAP HANA](https://www.sap.com/products/technology-platform/hana/what-is-sap-hana.html)'
stability: development
- id: sap.maxdb
value: sap.maxdb
brief: '[SAP MaxDB](https://maxdb.sap.com/)'
stability: development
- id: sqlite
value: sqlite
brief: '[SQLite](https://www.sqlite.org/)'
stability: development
- id: teradata
value: teradata
brief: '[Teradata](https://www.teradata.com/)'
stability: development
- id: trino
value: trino
brief: '[Trino](https://trino.io/)'
stability: development
brief: The database management system (DBMS) product as identified by the client instrumentation.
note: |
The actual DBMS may differ from the one identified by the client. For example, when using PostgreSQL client libraries to connect to a CockroachDB, the `db.system.name` is set to `postgresql` based on the instrumentation's best knowledge.
stability: stable
requirement_level: required
- key: network.peer.port
type: int
examples:
- 65123
brief: Peer port number of the network connection.
stability: stable
requirement_level:
recommended: If and only if `network.peer.address` is set.
brief: Duration of database client operations.
note: |
Batch operations SHOULD be recorded as a single operation.
stability: stable
annotations:
code_generation:
metric_value_type: double
- name: db.client.response.returned_rows
instrument: histogram
unit: '{row}'
attributes:
- key: db.response.status_code
type: string
examples:
- '102'
- ORA-17002
- 08P01
- '404'
brief: Database response status code.
note: |
The status code returned by the database. Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes.
Semantic conventions for individual database systems SHOULD document what `db.response.status_code` means in the context of that system.
stability: stable
requirement_level:
conditionally_required: If the operation failed and status code is available.
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
Name of the database host.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: recommended
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level:
conditionally_required: If using a port other than the default port for this DBMS and if `server.address` is set.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD match the `db.response.status_code` returned by the database or the client library, or the canonical name of exception that occurred.
When using canonical exception type name, instrumentation SHOULD do the best effort to report the most relevant type. For example, if the original exception is wrapped into a generic one, the original exception SHOULD be preferred.
Instrumentations SHOULD document how `error.type` is populated.
stability: stable
requirement_level:
conditionally_required: If and only if the operation failed.
- key: db.query.summary
type: string
examples:
- SELECT wuser_table
- INSERT shipping_details SELECT orders
- get user by id
brief: |
Low cardinality summary of a database query.
note: |
The query summary describes a class of database queries and is useful
as a grouping key, especially when analyzing telemetry for database
calls involving complex queries.
Summary may be available to the instrumentation through
instrumentation hooks or other means. If it is not available, instrumentations
that support query parsing SHOULD generate a summary following
[Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query)
section.
stability: stable
requirement_level:
recommended: if available through instrumentation hooks or if the instrumentation supports generating a query summary.
- key: db.collection.name
type: string
examples:
- public.users
- customers
brief: The name of a collection (table, container) within the database.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
The collection name SHOULD NOT be extracted from `db.query.text`,
when the database system supports query text with multiple collections
in non-batch operations.
For batch operations, if the individual operations are known to have the same
collection name then that collection name SHOULD be used.
stability: stable
requirement_level:
conditionally_required: |
If readily available and if a database call is performed on a single collection.
- key: db.operation.name
type: string
examples:
- findAndModify
- HMSET
- SELECT
brief: |
The name of the operation or command being executed.
note: |
It is RECOMMENDED to capture the value as provided by the application
without attempting to do any case normalization.
The operation name SHOULD NOT be extracted from `db.query.text`,
when the database system supports query text with multiple operations
in non-batch operations.
If spaces can occur in the operation name, multiple consecutive spaces
SHOULD be normalized to a single space.
For batch operations, if the individual operations are known to have the same operation name
then that operation name SHOULD be used prepended by `BATCH `,
otherwise `db.operation.name` SHOULD be `BATCH` or some other database
system specific term if more applicable.
stability: stable
requirement_level:
conditionally_required: |
If readily available and if there is a single operation name that describes the database call.
- key: network.peer.address
type: string
examples:
- 10.1.2.80
- /tmp/my.sock
brief: Peer address of the database node where the operation was performed.
note: |
Semantic conventions for individual database systems SHOULD document whether `network.peer.*` attributes are applicable. Network peer address and port are useful when the application interacts with individual database nodes directly.
If a database operation involved multiple network calls (for example retries), the address of the last contacted node SHOULD be used.
stability: stable
requirement_level:
recommended: If applicable for this database system.
- key: db.namespace
type: string
examples:
- customers
- test.users
brief: |
The name of the database, fully qualified within the server address and port.
note: |
If a database system has multiple namespace components, they SHOULD be concatenated from the most general to the most specific namespace component, using `|` as a separator between the components. Any missing components (and their associated separators) SHOULD be omitted.
Semantic conventions for individual database systems SHOULD document what `db.namespace` means in the context of that system.
It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
stability: stable
requirement_level:
conditionally_required: If available.
- key: db.query.text
type: string
examples:
- SELECT * FROM wuser_table where username = ?
- SET mykey ?
brief: |
The database query being executed.
note: |
For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext).
For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable.
Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk.
stability: stable
requirement_level: opt_in
- key: db.system.name
type:
members:
- id: other_sql
value: other_sql
brief: Some other SQL database. Fallback only.
stability: development
- id: softwareag.adabas
value: softwareag.adabas
brief: '[Adabas (Adaptable Database System)](https://documentation.softwareag.com/?pf=adabas)'
stability: development
- id: actian.ingres
value: actian.ingres
brief: '[Actian Ingres](https://www.actian.com/databases/ingres/)'
stability: development
- id: aws.dynamodb
value: aws.dynamodb
brief: '[Amazon DynamoDB](https://aws.amazon.com/pm/dynamodb/)'
stability: development
- id: aws.redshift
value: aws.redshift
brief: '[Amazon Redshift](https://aws.amazon.com/redshift/)'
stability: development
- id: azure.cosmosdb
value: azure.cosmosdb
brief: '[Azure Cosmos DB](https://learn.microsoft.com/azure/cosmos-db)'
stability: development
- id: intersystems.cache
value: intersystems.cache
brief: '[InterSystems Caché](https://www.intersystems.com/products/cache/)'
stability: development
- id: cassandra
value: cassandra
brief: '[Apache Cassandra](https://cassandra.apache.org/)'
stability: development
- id: clickhouse
value: clickhouse
brief: '[ClickHouse](https://clickhouse.com/)'
stability: development
- id: cockroachdb
value: cockroachdb
brief: '[CockroachDB](https://www.cockroachlabs.com/)'
stability: development
- id: couchbase
value: couchbase
brief: '[Couchbase](https://www.couchbase.com/)'
stability: development
- id: couchdb
value: couchdb
brief: '[Apache CouchDB](https://couchdb.apache.org/)'
stability: development
- id: derby
value: derby
brief: '[Apache Derby](https://db.apache.org/derby/)'
stability: development
- id: elasticsearch
value: elasticsearch
brief: '[Elasticsearch](https://www.elastic.co/elasticsearch)'
stability: development
- id: firebirdsql
value: firebirdsql
brief: '[Firebird](https://www.firebirdsql.org/)'
stability: development
- id: gcp.spanner
value: gcp.spanner
brief: '[Google Cloud Spanner](https://cloud.google.com/spanner)'
stability: development
- id: geode
value: geode
brief: '[Apache Geode](https://geode.apache.org/)'
stability: development
- id: h2database
value: h2database
brief: '[H2 Database](https://h2database.com/)'
stability: development
- id: hbase
value: hbase
brief: '[Apache HBase](https://hbase.apache.org/)'
stability: development
- id: hive
value: hive
brief: '[Apache Hive](https://hive.apache.org/)'
stability: development
- id: hsqldb
value: hsqldb
brief: '[HyperSQL Database](https://hsqldb.org/)'
stability: development
- id: ibm.db2
value: ibm.db2
brief: '[IBM Db2](https://www.ibm.com/db2)'
stability: development
- id: ibm.informix
value: ibm.informix
brief: '[IBM Informix](https://www.ibm.com/products/informix)'
stability: development
- id: ibm.netezza
value: ibm.netezza
brief: '[IBM Netezza](https://www.ibm.com/products/netezza)'
stability: development
- id: influxdb
value: influxdb
brief: '[InfluxDB](https://www.influxdata.com/)'
stability: development
- id: instantdb
value: instantdb
brief: '[Instant](https://www.instantdb.com/)'
stability: development
- id: mariadb
value: mariadb
brief: '[MariaDB](https://mariadb.org/)'
stability: stable
- id: memcached
value: memcached
brief: '[Memcached](https://memcached.org/)'
stability: development
- id: mongodb
value: mongodb
brief: '[MongoDB](https://www.mongodb.com/)'
stability: development
- id: microsoft.sql_server
value: microsoft.sql_server
brief: '[Microsoft SQL Server](https://www.microsoft.com/sql-server)'
stability: stable
- id: mysql
value: mysql
brief: '[MySQL](https://www.mysql.com/)'
stability: stable
- id: neo4j
value: neo4j
brief: '[Neo4j](https://neo4j.com/)'
stability: development
- id: opensearch
value: opensearch
brief: '[OpenSearch](https://opensearch.org/)'
stability: development
- id: oracle.db
value: oracle.db
brief: '[Oracle Database](https://www.oracle.com/database/)'
stability: development
- id: postgresql
value: postgresql
brief: '[PostgreSQL](https://www.postgresql.org/)'
stability: stable
- id: redis
value: redis
brief: '[Redis](https://redis.io/)'
stability: development
- id: sap.hana
value: sap.hana
brief: '[SAP HANA](https://www.sap.com/products/technology-platform/hana/what-is-sap-hana.html)'
stability: development
- id: sap.maxdb
value: sap.maxdb
brief: '[SAP MaxDB](https://maxdb.sap.com/)'
stability: development
- id: sqlite
value: sqlite
brief: '[SQLite](https://www.sqlite.org/)'
stability: development
- id: teradata
value: teradata
brief: '[Teradata](https://www.teradata.com/)'
stability: development
- id: trino
value: trino
brief: '[Trino](https://trino.io/)'
stability: development
brief: The database management system (DBMS) product as identified by the client instrumentation.
note: |
The actual DBMS may differ from the one identified by the client. For example, when using PostgreSQL client libraries to connect to a CockroachDB, the `db.system.name` is set to `postgresql` based on the instrumentation's best knowledge.
stability: stable
requirement_level: required
- key: network.peer.port
type: int
examples:
- 65123
brief: Peer port number of the network connection.
stability: stable
requirement_level:
recommended: If and only if `network.peer.address` is set.
brief: The actual number of records returned by the database operation.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: dns.lookup.duration
instrument: histogram
unit: s
attributes:
- key: dns.question.name
type: string
examples:
- www.example.com
- dot.net
brief: The name being queried.
note: |
The name represents the queried domain name as it appears in the DNS query without any additional normalization.
stability: development
requirement_level: required
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- host_not_found
- no_recovery
- java.net.UnknownHostException
brief: Describes the error the DNS lookup failed with.
note: |
Instrumentations SHOULD use error code such as one of errors reported by `getaddrinfo`([Linux or other POSIX systems](https://man7.org/linux/man-pages/man3/getaddrinfo.3.html) / [Windows](https://learn.microsoft.com/windows/win32/api/ws2tcpip/nf-ws2tcpip-getaddrinfo)) or one reported by the runtime or client library. If error code is not available, the full name of exception type SHOULD be used.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred.
brief: Measures the time taken to perform a DNS lookup.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: dotnet.assembly.count
instrument: updowncounter
unit: '{assembly}'
brief: The number of .NET assemblies that are currently loaded.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`AppDomain.CurrentDomain.GetAssemblies().Length`](https://learn.microsoft.com/dotnet/api/system.appdomain.getassemblies).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.exceptions
instrument: counter
unit: '{exception}'
attributes:
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- System.OperationCanceledException
- Contoso.MyException
brief: |
Describes a class of error the operation ended with.
stability: stable
requirement_level: required
brief: The number of exceptions that have been thrown in managed code.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as counting calls to [`AppDomain.CurrentDomain.FirstChanceException`](https://learn.microsoft.com/dotnet/api/system.appdomain.firstchanceexception).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.gc.collections
instrument: counter
unit: '{collection}'
attributes:
- key: dotnet.gc.heap.generation
type:
members:
- id: gen0
value: gen0
brief: Generation 0
stability: stable
- id: gen1
value: gen1
brief: Generation 1
stability: stable
- id: gen2
value: gen2
brief: Generation 2
stability: stable
- id: loh
value: loh
brief: Large Object Heap
stability: stable
- id: poh
value: poh
brief: Pinned Object Heap
stability: stable
examples:
- gen0
- gen1
- gen2
brief: Name of the garbage collector managed heap generation.
stability: stable
requirement_level: required
brief: The number of garbage collections that have occurred since the process has started.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric uses the [`GC.CollectionCount(int generation)`](https://learn.microsoft.com/dotnet/api/system.gc.collectioncount) API to calculate exclusive collections per generation.
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.gc.heap.total_allocated
instrument: counter
unit: By
brief: |
The *approximate* number of bytes allocated on the managed GC heap since the process has started. The returned value does not include any native allocations.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`GC.GetTotalAllocatedBytes()`](https://learn.microsoft.com/dotnet/api/system.gc.gettotalallocatedbytes).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.gc.last_collection.heap.fragmentation.size
instrument: updowncounter
unit: By
attributes:
- key: dotnet.gc.heap.generation
type:
members:
- id: gen0
value: gen0
brief: Generation 0
stability: stable
- id: gen1
value: gen1
brief: Generation 1
stability: stable
- id: gen2
value: gen2
brief: Generation 2
stability: stable
- id: loh
value: loh
brief: Large Object Heap
stability: stable
- id: poh
value: poh
brief: Pinned Object Heap
stability: stable
examples:
- gen0
- gen1
- gen2
brief: Name of the garbage collector managed heap generation.
stability: stable
requirement_level: required
brief: |
The heap fragmentation, as observed during the latest garbage collection.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`GC.GetGCMemoryInfo().GenerationInfo.FragmentationAfterBytes`](https://learn.microsoft.com/dotnet/api/system.gcgenerationinfo.fragmentationafterbytes).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.gc.last_collection.heap.size
instrument: updowncounter
unit: By
attributes:
- key: dotnet.gc.heap.generation
type:
members:
- id: gen0
value: gen0
brief: Generation 0
stability: stable
- id: gen1
value: gen1
brief: Generation 1
stability: stable
- id: gen2
value: gen2
brief: Generation 2
stability: stable
- id: loh
value: loh
brief: Large Object Heap
stability: stable
- id: poh
value: poh
brief: Pinned Object Heap
stability: stable
examples:
- gen0
- gen1
- gen2
brief: Name of the garbage collector managed heap generation.
stability: stable
requirement_level: required
brief: |
The managed GC heap size (including fragmentation), as observed during the latest garbage collection.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`GC.GetGCMemoryInfo().GenerationInfo.SizeAfterBytes`](https://learn.microsoft.com/dotnet/api/system.gcgenerationinfo.sizeafterbytes).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.gc.last_collection.memory.committed_size
instrument: updowncounter
unit: By
brief: |
The amount of committed virtual memory in use by the .NET GC, as observed during the latest garbage collection.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`GC.GetGCMemoryInfo().TotalCommittedBytes`](https://learn.microsoft.com/dotnet/api/system.gcmemoryinfo.totalcommittedbytes). Committed virtual memory may be larger than the heap size because it includes both memory for storing existing objects (the heap size) and some extra memory that is ready to handle newly allocated objects in the future.
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.gc.pause.time
instrument: counter
unit: s
brief: The total amount of time paused in GC since the process has started.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`GC.GetTotalPauseDuration()`](https://learn.microsoft.com/dotnet/api/system.gc.gettotalpauseduration).
stability: stable
annotations:
code_generation:
metric_value_type: double
- name: dotnet.jit.compilation.time
instrument: counter
unit: s
brief: |
The amount of time the JIT compiler has spent compiling methods since the process has started.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`JitInfo.GetCompilationTime()`](https://learn.microsoft.com/dotnet/api/system.runtime.jitinfo.getcompilationtime).
stability: stable
annotations:
code_generation:
metric_value_type: double
- name: dotnet.jit.compiled_il.size
instrument: counter
unit: By
brief: Count of bytes of intermediate language that have been compiled since the process has started.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`JitInfo.GetCompiledILBytes()`](https://learn.microsoft.com/dotnet/api/system.runtime.jitinfo.getcompiledilbytes).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.jit.compiled_methods
instrument: counter
unit: '{method}'
brief: |
The number of times the JIT compiler (re)compiled methods since the process has started.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`JitInfo.GetCompiledMethodCount()`](https://learn.microsoft.com/dotnet/api/system.runtime.jitinfo.getcompiledmethodcount).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.monitor.lock_contentions
instrument: counter
unit: '{contention}'
brief: |
The number of times there was contention when trying to acquire a monitor lock since the process has started.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`Monitor.LockContentionCount`](https://learn.microsoft.com/dotnet/api/system.threading.monitor.lockcontentioncount).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.process.cpu.count
instrument: updowncounter
unit: '{cpu}'
brief: The number of processors available to the process.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as accessing [`Environment.ProcessorCount`](https://learn.microsoft.com/dotnet/api/system.environment.processorcount).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.process.cpu.time
instrument: counter
unit: s
attributes:
- key: cpu.mode
type:
members:
- id: user
value: user
brief: User
stability: development
- id: system
value: system
brief: System
stability: development
- id: nice
value: nice
brief: Nice
stability: development
- id: idle
value: idle
brief: Idle
stability: development
- id: iowait
value: iowait
brief: IO Wait
stability: development
- id: interrupt
value: interrupt
brief: Interrupt
stability: development
- id: steal
value: steal
brief: Steal
stability: development
- id: kernel
value: kernel
brief: Kernel
stability: development
examples:
- user
- system
brief: The mode of the CPU
stability: development
requirement_level: required
brief: CPU time used by the process.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as accessing the corresponding processor time properties on [`System.Diagnostics.Process`](https://learn.microsoft.com/dotnet/api/system.diagnostics.process).
stability: stable
annotations:
code_generation:
metric_value_type: double
- name: dotnet.process.memory.working_set
instrument: updowncounter
unit: By
brief: The number of bytes of physical memory mapped to the process context.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`Environment.WorkingSet`](https://learn.microsoft.com/dotnet/api/system.environment.workingset).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.thread_pool.queue.length
instrument: updowncounter
unit: '{work_item}'
brief: |
The number of work items that are currently queued to be processed by the thread pool.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`ThreadPool.PendingWorkItemCount`](https://learn.microsoft.com/dotnet/api/system.threading.threadpool.pendingworkitemcount).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.thread_pool.thread.count
instrument: updowncounter
unit: '{thread}'
brief: The number of thread pool threads that currently exist.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`ThreadPool.ThreadCount`](https://learn.microsoft.com/dotnet/api/system.threading.threadpool.threadcount).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.thread_pool.work_item.count
instrument: counter
unit: '{work_item}'
brief: |
The number of work items that the thread pool has completed since the process has started.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`ThreadPool.CompletedWorkItemCount`](https://learn.microsoft.com/dotnet/api/system.threading.threadpool.completedworkitemcount).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: dotnet.timer.count
instrument: updowncounter
unit: '{timer}'
brief: The number of timer instances that are currently active.
note: |
Meter name: `System.Runtime`; Added in: .NET 9.0.
This metric reports the same values as calling [`Timer.ActiveCount`](https://learn.microsoft.com/dotnet/api/system.threading.timer.activecount).
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: faas.coldstarts
instrument: counter
unit: '{coldstart}'
attributes:
- key: faas.trigger
type:
members:
- id: datasource
value: datasource
brief: A response to some data source operation such as a database or filesystem read/write
stability: development
- id: http
value: http
brief: To provide an answer to an inbound HTTP request
stability: development
- id: pubsub
value: pubsub
brief: A function is set to be executed when messages are sent to a messaging system
stability: development
- id: timer
value: timer
brief: A function is scheduled to be executed regularly
stability: development
- id: other
value: other
brief: If none of the others apply
stability: development
brief: |
Type of the trigger which caused this function invocation.
stability: development
requirement_level: recommended
brief: Number of invocation cold starts.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: faas.cpu_usage
instrument: histogram
unit: s
attributes:
- key: faas.trigger
type:
members:
- id: datasource
value: datasource
brief: A response to some data source operation such as a database or filesystem read/write
stability: development
- id: http
value: http
brief: To provide an answer to an inbound HTTP request
stability: development
- id: pubsub
value: pubsub
brief: A function is set to be executed when messages are sent to a messaging system
stability: development
- id: timer
value: timer
brief: A function is scheduled to be executed regularly
stability: development
- id: other
value: other
brief: If none of the others apply
stability: development
brief: |
Type of the trigger which caused this function invocation.
stability: development
requirement_level: recommended
brief: Distribution of CPU usage per invocation.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: faas.errors
instrument: counter
unit: '{error}'
attributes:
- key: faas.trigger
type:
members:
- id: datasource
value: datasource
brief: A response to some data source operation such as a database or filesystem read/write
stability: development
- id: http
value: http
brief: To provide an answer to an inbound HTTP request
stability: development
- id: pubsub
value: pubsub
brief: A function is set to be executed when messages are sent to a messaging system
stability: development
- id: timer
value: timer
brief: A function is scheduled to be executed regularly
stability: development
- id: other
value: other
brief: If none of the others apply
stability: development
brief: |
Type of the trigger which caused this function invocation.
stability: development
requirement_level: recommended
brief: Number of invocation errors.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: faas.init_duration
instrument: histogram
unit: s
attributes:
- key: faas.trigger
type:
members:
- id: datasource
value: datasource
brief: A response to some data source operation such as a database or filesystem read/write
stability: development
- id: http
value: http
brief: To provide an answer to an inbound HTTP request
stability: development
- id: pubsub
value: pubsub
brief: A function is set to be executed when messages are sent to a messaging system
stability: development
- id: timer
value: timer
brief: A function is scheduled to be executed regularly
stability: development
- id: other
value: other
brief: If none of the others apply
stability: development
brief: |
Type of the trigger which caused this function invocation.
stability: development
requirement_level: recommended
brief: Measures the duration of the function's initialization, such as a cold start.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: faas.invocations
instrument: counter
unit: '{invocation}'
attributes:
- key: faas.trigger
type:
members:
- id: datasource
value: datasource
brief: A response to some data source operation such as a database or filesystem read/write
stability: development
- id: http
value: http
brief: To provide an answer to an inbound HTTP request
stability: development
- id: pubsub
value: pubsub
brief: A function is set to be executed when messages are sent to a messaging system
stability: development
- id: timer
value: timer
brief: A function is scheduled to be executed regularly
stability: development
- id: other
value: other
brief: If none of the others apply
stability: development
brief: |
Type of the trigger which caused this function invocation.
stability: development
requirement_level: recommended
brief: Number of successful invocations.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: faas.invoke_duration
instrument: histogram
unit: s
attributes:
- key: faas.trigger
type:
members:
- id: datasource
value: datasource
brief: A response to some data source operation such as a database or filesystem read/write
stability: development
- id: http
value: http
brief: To provide an answer to an inbound HTTP request
stability: development
- id: pubsub
value: pubsub
brief: A function is set to be executed when messages are sent to a messaging system
stability: development
- id: timer
value: timer
brief: A function is scheduled to be executed regularly
stability: development
- id: other
value: other
brief: If none of the others apply
stability: development
brief: |
Type of the trigger which caused this function invocation.
stability: development
requirement_level: recommended
brief: Measures the duration of the function's logic execution.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: faas.mem_usage
instrument: histogram
unit: By
attributes:
- key: faas.trigger
type:
members:
- id: datasource
value: datasource
brief: A response to some data source operation such as a database or filesystem read/write
stability: development
- id: http
value: http
brief: To provide an answer to an inbound HTTP request
stability: development
- id: pubsub
value: pubsub
brief: A function is set to be executed when messages are sent to a messaging system
stability: development
- id: timer
value: timer
brief: A function is scheduled to be executed regularly
stability: development
- id: other
value: other
brief: If none of the others apply
stability: development
brief: |
Type of the trigger which caused this function invocation.
stability: development
requirement_level: recommended
brief: Distribution of max memory usage per invocation.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: faas.net_io
instrument: histogram
unit: By
attributes:
- key: faas.trigger
type:
members:
- id: datasource
value: datasource
brief: A response to some data source operation such as a database or filesystem read/write
stability: development
- id: http
value: http
brief: To provide an answer to an inbound HTTP request
stability: development
- id: pubsub
value: pubsub
brief: A function is set to be executed when messages are sent to a messaging system
stability: development
- id: timer
value: timer
brief: A function is scheduled to be executed regularly
stability: development
- id: other
value: other
brief: If none of the others apply
stability: development
brief: |
Type of the trigger which caused this function invocation.
stability: development
requirement_level: recommended
brief: Distribution of net I/O usage per invocation.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: faas.timeouts
instrument: counter
unit: '{timeout}'
attributes:
- key: faas.trigger
type:
members:
- id: datasource
value: datasource
brief: A response to some data source operation such as a database or filesystem read/write
stability: development
- id: http
value: http
brief: To provide an answer to an inbound HTTP request
stability: development
- id: pubsub
value: pubsub
brief: A function is set to be executed when messages are sent to a messaging system
stability: development
- id: timer
value: timer
brief: A function is scheduled to be executed regularly
stability: development
- id: other
value: other
brief: If none of the others apply
stability: development
brief: |
Type of the trigger which caused this function invocation.
stability: development
requirement_level: recommended
brief: Number of invocation timeouts.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: gen_ai.client.operation.duration
instrument: histogram
unit: s
attributes:
- key: gen_ai.response.model
type: string
examples:
- gpt-4-0613
brief: The name of the model that generated the response.
stability: development
requirement_level: recommended
- key: gen_ai.operation.name
type:
members:
- id: chat
value: chat
brief: Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat)
stability: development
- id: generate_content
value: generate_content
brief: Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content)
stability: development
- id: text_completion
value: text_completion
brief: Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions)
stability: development
- id: embeddings
value: embeddings
brief: Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create)
stability: development
- id: create_agent
value: create_agent
brief: Create GenAI agent
stability: development
- id: invoke_agent
value: invoke_agent
brief: Invoke GenAI agent
stability: development
- id: execute_tool
value: execute_tool
brief: Execute a tool
stability: development
brief: The name of the operation being performed.
note: |
If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
stability: development
requirement_level: required
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: GenAI server address.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: recommended
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: GenAI server port.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level:
conditionally_required: If `server.address` is set.
- key: gen_ai.provider.name
type:
members:
- id: openai
value: openai
brief: '[OpenAI](https://openai.com/)'
stability: development
- id: gcp.gen_ai
value: gcp.gen_ai
brief: Any Google generative AI endpoint
note: |
May be used when specific backend is unknown.
stability: development
- id: gcp.vertex_ai
value: gcp.vertex_ai
brief: '[Vertex AI](https://cloud.google.com/vertex-ai)'
note: |
Used when accessing the 'aiplatform.googleapis.com' endpoint.
stability: development
- id: gcp.gemini
value: gcp.gemini
brief: '[Gemini](https://cloud.google.com/products/gemini)'
note: |
Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
stability: development
- id: anthropic
value: anthropic
brief: '[Anthropic](https://www.anthropic.com/)'
stability: development
- id: cohere
value: cohere
brief: '[Cohere](https://cohere.com/)'
stability: development
- id: azure.ai.inference
value: azure.ai.inference
brief: Azure AI Inference
stability: development
- id: azure.ai.openai
value: azure.ai.openai
brief: '[Azure OpenAI](https://azure.microsoft.com/products/ai-services/openai-service/)'
stability: development
- id: ibm.watsonx.ai
value: ibm.watsonx.ai
brief: '[IBM Watsonx AI](https://www.ibm.com/products/watsonx-ai)'
stability: development
- id: aws.bedrock
value: aws.bedrock
brief: '[AWS Bedrock](https://aws.amazon.com/bedrock)'
stability: development
- id: perplexity
value: perplexity
brief: '[Perplexity](https://www.perplexity.ai/)'
stability: development
- id: x_ai
value: x_ai
brief: '[xAI](https://x.ai/)'
stability: development
- id: deepseek
value: deepseek
brief: '[DeepSeek](https://www.deepseek.com/)'
stability: development
- id: groq
value: groq
brief: '[Groq](https://groq.com/)'
stability: development
- id: mistral_ai
value: mistral_ai
brief: '[Mistral AI](https://mistral.ai/)'
stability: development
brief: The Generative AI provider as identified by the client or server instrumentation.
note: |
The attribute SHOULD be set based on the instrumentation's best
knowledge and may differ from the actual model provider.
Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
are accessible using the OpenAI REST API and corresponding client libraries,
but may proxy or host models from different providers.
The `gen_ai.request.model`, `gen_ai.response.model`, and `server.address`
attributes may help identify the actual system in use.
The `gen_ai.provider.name` attribute acts as a discriminator that
identifies the GenAI telemetry format flavor specific to that provider
within GenAI semantic conventions.
It SHOULD be set consistently with provider-specific attributes and signals.
For example, GenAI spans, metrics, and events related to AWS Bedrock
should have the `gen_ai.provider.name` set to `aws.bedrock` and include
applicable `aws.bedrock.*` attributes and are not expected to include
`openai.*` attributes.
stability: development
requirement_level: required
- key: gen_ai.request.model
type: string
examples: gpt-4
brief: The name of the GenAI model a request is being made to.
stability: development
requirement_level:
conditionally_required: If available.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD match the error code returned by the Generative AI provider or the client library,
the canonical name of exception that occurred, or another low-cardinality error identifier.
Instrumentations SHOULD document the list of errors they report.
stability: stable
requirement_level:
conditionally_required: if the operation ended in an error
brief: GenAI operation duration.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: gen_ai.client.token.usage
instrument: histogram
unit: '{token}'
attributes:
- key: gen_ai.response.model
type: string
examples:
- gpt-4-0613
brief: The name of the model that generated the response.
stability: development
requirement_level: recommended
- key: gen_ai.operation.name
type:
members:
- id: chat
value: chat
brief: Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat)
stability: development
- id: generate_content
value: generate_content
brief: Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content)
stability: development
- id: text_completion
value: text_completion
brief: Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions)
stability: development
- id: embeddings
value: embeddings
brief: Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create)
stability: development
- id: create_agent
value: create_agent
brief: Create GenAI agent
stability: development
- id: invoke_agent
value: invoke_agent
brief: Invoke GenAI agent
stability: development
- id: execute_tool
value: execute_tool
brief: Execute a tool
stability: development
brief: The name of the operation being performed.
note: |
If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
stability: development
requirement_level: required
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: GenAI server address.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: recommended
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: GenAI server port.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level:
conditionally_required: If `server.address` is set.
- key: gen_ai.provider.name
type:
members:
- id: openai
value: openai
brief: '[OpenAI](https://openai.com/)'
stability: development
- id: gcp.gen_ai
value: gcp.gen_ai
brief: Any Google generative AI endpoint
note: |
May be used when specific backend is unknown.
stability: development
- id: gcp.vertex_ai
value: gcp.vertex_ai
brief: '[Vertex AI](https://cloud.google.com/vertex-ai)'
note: |
Used when accessing the 'aiplatform.googleapis.com' endpoint.
stability: development
- id: gcp.gemini
value: gcp.gemini
brief: '[Gemini](https://cloud.google.com/products/gemini)'
note: |
Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
stability: development
- id: anthropic
value: anthropic
brief: '[Anthropic](https://www.anthropic.com/)'
stability: development
- id: cohere
value: cohere
brief: '[Cohere](https://cohere.com/)'
stability: development
- id: azure.ai.inference
value: azure.ai.inference
brief: Azure AI Inference
stability: development
- id: azure.ai.openai
value: azure.ai.openai
brief: '[Azure OpenAI](https://azure.microsoft.com/products/ai-services/openai-service/)'
stability: development
- id: ibm.watsonx.ai
value: ibm.watsonx.ai
brief: '[IBM Watsonx AI](https://www.ibm.com/products/watsonx-ai)'
stability: development
- id: aws.bedrock
value: aws.bedrock
brief: '[AWS Bedrock](https://aws.amazon.com/bedrock)'
stability: development
- id: perplexity
value: perplexity
brief: '[Perplexity](https://www.perplexity.ai/)'
stability: development
- id: x_ai
value: x_ai
brief: '[xAI](https://x.ai/)'
stability: development
- id: deepseek
value: deepseek
brief: '[DeepSeek](https://www.deepseek.com/)'
stability: development
- id: groq
value: groq
brief: '[Groq](https://groq.com/)'
stability: development
- id: mistral_ai
value: mistral_ai
brief: '[Mistral AI](https://mistral.ai/)'
stability: development
brief: The Generative AI provider as identified by the client or server instrumentation.
note: |
The attribute SHOULD be set based on the instrumentation's best
knowledge and may differ from the actual model provider.
Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
are accessible using the OpenAI REST API and corresponding client libraries,
but may proxy or host models from different providers.
The `gen_ai.request.model`, `gen_ai.response.model`, and `server.address`
attributes may help identify the actual system in use.
The `gen_ai.provider.name` attribute acts as a discriminator that
identifies the GenAI telemetry format flavor specific to that provider
within GenAI semantic conventions.
It SHOULD be set consistently with provider-specific attributes and signals.
For example, GenAI spans, metrics, and events related to AWS Bedrock
should have the `gen_ai.provider.name` set to `aws.bedrock` and include
applicable `aws.bedrock.*` attributes and are not expected to include
`openai.*` attributes.
stability: development
requirement_level: required
- key: gen_ai.request.model
type: string
examples: gpt-4
brief: The name of the GenAI model a request is being made to.
stability: development
requirement_level:
conditionally_required: If available.
- key: gen_ai.token.type
type:
members:
- id: input
value: input
brief: Input tokens (prompt, input, etc.)
stability: development
- id: completion
value: output
brief: Output tokens (completion, response, etc.)
stability: development
deprecated:
reason: renamed
renamed_to: output
note: Replaced by `output`.
- id: output
value: output
brief: Output tokens (completion, response, etc.)
stability: development
examples:
- input
- output
brief: The type of token being counted.
stability: development
requirement_level: required
brief: Number of input and output tokens used.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: gen_ai.server.request.duration
instrument: histogram
unit: s
attributes:
- key: gen_ai.response.model
type: string
examples:
- gpt-4-0613
brief: The name of the model that generated the response.
stability: development
requirement_level: recommended
- key: gen_ai.operation.name
type:
members:
- id: chat
value: chat
brief: Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat)
stability: development
- id: generate_content
value: generate_content
brief: Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content)
stability: development
- id: text_completion
value: text_completion
brief: Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions)
stability: development
- id: embeddings
value: embeddings
brief: Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create)
stability: development
- id: create_agent
value: create_agent
brief: Create GenAI agent
stability: development
- id: invoke_agent
value: invoke_agent
brief: Invoke GenAI agent
stability: development
- id: execute_tool
value: execute_tool
brief: Execute a tool
stability: development
brief: The name of the operation being performed.
note: |
If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
stability: development
requirement_level: required
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: GenAI server address.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: recommended
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: GenAI server port.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level:
conditionally_required: If `server.address` is set.
- key: gen_ai.provider.name
type:
members:
- id: openai
value: openai
brief: '[OpenAI](https://openai.com/)'
stability: development
- id: gcp.gen_ai
value: gcp.gen_ai
brief: Any Google generative AI endpoint
note: |
May be used when specific backend is unknown.
stability: development
- id: gcp.vertex_ai
value: gcp.vertex_ai
brief: '[Vertex AI](https://cloud.google.com/vertex-ai)'
note: |
Used when accessing the 'aiplatform.googleapis.com' endpoint.
stability: development
- id: gcp.gemini
value: gcp.gemini
brief: '[Gemini](https://cloud.google.com/products/gemini)'
note: |
Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
stability: development
- id: anthropic
value: anthropic
brief: '[Anthropic](https://www.anthropic.com/)'
stability: development
- id: cohere
value: cohere
brief: '[Cohere](https://cohere.com/)'
stability: development
- id: azure.ai.inference
value: azure.ai.inference
brief: Azure AI Inference
stability: development
- id: azure.ai.openai
value: azure.ai.openai
brief: '[Azure OpenAI](https://azure.microsoft.com/products/ai-services/openai-service/)'
stability: development
- id: ibm.watsonx.ai
value: ibm.watsonx.ai
brief: '[IBM Watsonx AI](https://www.ibm.com/products/watsonx-ai)'
stability: development
- id: aws.bedrock
value: aws.bedrock
brief: '[AWS Bedrock](https://aws.amazon.com/bedrock)'
stability: development
- id: perplexity
value: perplexity
brief: '[Perplexity](https://www.perplexity.ai/)'
stability: development
- id: x_ai
value: x_ai
brief: '[xAI](https://x.ai/)'
stability: development
- id: deepseek
value: deepseek
brief: '[DeepSeek](https://www.deepseek.com/)'
stability: development
- id: groq
value: groq
brief: '[Groq](https://groq.com/)'
stability: development
- id: mistral_ai
value: mistral_ai
brief: '[Mistral AI](https://mistral.ai/)'
stability: development
brief: The Generative AI provider as identified by the client or server instrumentation.
note: |
The attribute SHOULD be set based on the instrumentation's best
knowledge and may differ from the actual model provider.
Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
are accessible using the OpenAI REST API and corresponding client libraries,
but may proxy or host models from different providers.
The `gen_ai.request.model`, `gen_ai.response.model`, and `server.address`
attributes may help identify the actual system in use.
The `gen_ai.provider.name` attribute acts as a discriminator that
identifies the GenAI telemetry format flavor specific to that provider
within GenAI semantic conventions.
It SHOULD be set consistently with provider-specific attributes and signals.
For example, GenAI spans, metrics, and events related to AWS Bedrock
should have the `gen_ai.provider.name` set to `aws.bedrock` and include
applicable `aws.bedrock.*` attributes and are not expected to include
`openai.*` attributes.
stability: development
requirement_level: required
- key: gen_ai.request.model
type: string
examples: gpt-4
brief: The name of the GenAI model a request is being made to.
stability: development
requirement_level:
conditionally_required: If available.
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
The `error.type` SHOULD match the error code returned by the Generative AI service,
the canonical name of exception that occurred, or another low-cardinality error identifier.
Instrumentations SHOULD document the list of errors they report.
stability: stable
requirement_level:
conditionally_required: if the operation ended in an error
brief: Generative AI server request duration such as time-to-last byte or last output token.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: gen_ai.server.time_per_output_token
instrument: histogram
unit: s
attributes:
- key: gen_ai.response.model
type: string
examples:
- gpt-4-0613
brief: The name of the model that generated the response.
stability: development
requirement_level: recommended
- key: gen_ai.operation.name
type:
members:
- id: chat
value: chat
brief: Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat)
stability: development
- id: generate_content
value: generate_content
brief: Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content)
stability: development
- id: text_completion
value: text_completion
brief: Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions)
stability: development
- id: embeddings
value: embeddings
brief: Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create)
stability: development
- id: create_agent
value: create_agent
brief: Create GenAI agent
stability: development
- id: invoke_agent
value: invoke_agent
brief: Invoke GenAI agent
stability: development
- id: execute_tool
value: execute_tool
brief: Execute a tool
stability: development
brief: The name of the operation being performed.
note: |
If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
stability: development
requirement_level: required
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: GenAI server address.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: recommended
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: GenAI server port.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level:
conditionally_required: If `server.address` is set.
- key: gen_ai.provider.name
type:
members:
- id: openai
value: openai
brief: '[OpenAI](https://openai.com/)'
stability: development
- id: gcp.gen_ai
value: gcp.gen_ai
brief: Any Google generative AI endpoint
note: |
May be used when specific backend is unknown.
stability: development
- id: gcp.vertex_ai
value: gcp.vertex_ai
brief: '[Vertex AI](https://cloud.google.com/vertex-ai)'
note: |
Used when accessing the 'aiplatform.googleapis.com' endpoint.
stability: development
- id: gcp.gemini
value: gcp.gemini
brief: '[Gemini](https://cloud.google.com/products/gemini)'
note: |
Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
stability: development
- id: anthropic
value: anthropic
brief: '[Anthropic](https://www.anthropic.com/)'
stability: development
- id: cohere
value: cohere
brief: '[Cohere](https://cohere.com/)'
stability: development
- id: azure.ai.inference
value: azure.ai.inference
brief: Azure AI Inference
stability: development
- id: azure.ai.openai
value: azure.ai.openai
brief: '[Azure OpenAI](https://azure.microsoft.com/products/ai-services/openai-service/)'
stability: development
- id: ibm.watsonx.ai
value: ibm.watsonx.ai
brief: '[IBM Watsonx AI](https://www.ibm.com/products/watsonx-ai)'
stability: development
- id: aws.bedrock
value: aws.bedrock
brief: '[AWS Bedrock](https://aws.amazon.com/bedrock)'
stability: development
- id: perplexity
value: perplexity
brief: '[Perplexity](https://www.perplexity.ai/)'
stability: development
- id: x_ai
value: x_ai
brief: '[xAI](https://x.ai/)'
stability: development
- id: deepseek
value: deepseek
brief: '[DeepSeek](https://www.deepseek.com/)'
stability: development
- id: groq
value: groq
brief: '[Groq](https://groq.com/)'
stability: development
- id: mistral_ai
value: mistral_ai
brief: '[Mistral AI](https://mistral.ai/)'
stability: development
brief: The Generative AI provider as identified by the client or server instrumentation.
note: |
The attribute SHOULD be set based on the instrumentation's best
knowledge and may differ from the actual model provider.
Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
are accessible using the OpenAI REST API and corresponding client libraries,
but may proxy or host models from different providers.
The `gen_ai.request.model`, `gen_ai.response.model`, and `server.address`
attributes may help identify the actual system in use.
The `gen_ai.provider.name` attribute acts as a discriminator that
identifies the GenAI telemetry format flavor specific to that provider
within GenAI semantic conventions.
It SHOULD be set consistently with provider-specific attributes and signals.
For example, GenAI spans, metrics, and events related to AWS Bedrock
should have the `gen_ai.provider.name` set to `aws.bedrock` and include
applicable `aws.bedrock.*` attributes and are not expected to include
`openai.*` attributes.
stability: development
requirement_level: required
- key: gen_ai.request.model
type: string
examples: gpt-4
brief: The name of the GenAI model a request is being made to.
stability: development
requirement_level:
conditionally_required: If available.
brief: Time per output token generated after the first token for successful responses.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: gen_ai.server.time_to_first_token
instrument: histogram
unit: s
attributes:
- key: gen_ai.response.model
type: string
examples:
- gpt-4-0613
brief: The name of the model that generated the response.
stability: development
requirement_level: recommended
- key: gen_ai.operation.name
type:
members:
- id: chat
value: chat
brief: Chat completion operation such as [OpenAI Chat API](https://platform.openai.com/docs/api-reference/chat)
stability: development
- id: generate_content
value: generate_content
brief: Multimodal content generation operation such as [Gemini Generate Content](https://ai.google.dev/api/generate-content)
stability: development
- id: text_completion
value: text_completion
brief: Text completions operation such as [OpenAI Completions API (Legacy)](https://platform.openai.com/docs/api-reference/completions)
stability: development
- id: embeddings
value: embeddings
brief: Embeddings operation such as [OpenAI Create embeddings API](https://platform.openai.com/docs/api-reference/embeddings/create)
stability: development
- id: create_agent
value: create_agent
brief: Create GenAI agent
stability: development
- id: invoke_agent
value: invoke_agent
brief: Invoke GenAI agent
stability: development
- id: execute_tool
value: execute_tool
brief: Execute a tool
stability: development
brief: The name of the operation being performed.
note: |
If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.
stability: development
requirement_level: required
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: GenAI server address.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: recommended
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: GenAI server port.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level:
conditionally_required: If `server.address` is set.
- key: gen_ai.provider.name
type:
members:
- id: openai
value: openai
brief: '[OpenAI](https://openai.com/)'
stability: development
- id: gcp.gen_ai
value: gcp.gen_ai
brief: Any Google generative AI endpoint
note: |
May be used when specific backend is unknown.
stability: development
- id: gcp.vertex_ai
value: gcp.vertex_ai
brief: '[Vertex AI](https://cloud.google.com/vertex-ai)'
note: |
Used when accessing the 'aiplatform.googleapis.com' endpoint.
stability: development
- id: gcp.gemini
value: gcp.gemini
brief: '[Gemini](https://cloud.google.com/products/gemini)'
note: |
Used when accessing the 'generativelanguage.googleapis.com' endpoint. Also known as the AI Studio API.
stability: development
- id: anthropic
value: anthropic
brief: '[Anthropic](https://www.anthropic.com/)'
stability: development
- id: cohere
value: cohere
brief: '[Cohere](https://cohere.com/)'
stability: development
- id: azure.ai.inference
value: azure.ai.inference
brief: Azure AI Inference
stability: development
- id: azure.ai.openai
value: azure.ai.openai
brief: '[Azure OpenAI](https://azure.microsoft.com/products/ai-services/openai-service/)'
stability: development
- id: ibm.watsonx.ai
value: ibm.watsonx.ai
brief: '[IBM Watsonx AI](https://www.ibm.com/products/watsonx-ai)'
stability: development
- id: aws.bedrock
value: aws.bedrock
brief: '[AWS Bedrock](https://aws.amazon.com/bedrock)'
stability: development
- id: perplexity
value: perplexity
brief: '[Perplexity](https://www.perplexity.ai/)'
stability: development
- id: x_ai
value: x_ai
brief: '[xAI](https://x.ai/)'
stability: development
- id: deepseek
value: deepseek
brief: '[DeepSeek](https://www.deepseek.com/)'
stability: development
- id: groq
value: groq
brief: '[Groq](https://groq.com/)'
stability: development
- id: mistral_ai
value: mistral_ai
brief: '[Mistral AI](https://mistral.ai/)'
stability: development
brief: The Generative AI provider as identified by the client or server instrumentation.
note: |
The attribute SHOULD be set based on the instrumentation's best
knowledge and may differ from the actual model provider.
Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
are accessible using the OpenAI REST API and corresponding client libraries,
but may proxy or host models from different providers.
The `gen_ai.request.model`, `gen_ai.response.model`, and `server.address`
attributes may help identify the actual system in use.
The `gen_ai.provider.name` attribute acts as a discriminator that
identifies the GenAI telemetry format flavor specific to that provider
within GenAI semantic conventions.
It SHOULD be set consistently with provider-specific attributes and signals.
For example, GenAI spans, metrics, and events related to AWS Bedrock
should have the `gen_ai.provider.name` set to `aws.bedrock` and include
applicable `aws.bedrock.*` attributes and are not expected to include
`openai.*` attributes.
stability: development
requirement_level: required
- key: gen_ai.request.model
type: string
examples: gpt-4
brief: The name of the GenAI model a request is being made to.
stability: development
requirement_level:
conditionally_required: If available.
brief: Time to generate first token for successful responses.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: go.config.gogc
instrument: updowncounter
unit: '%'
brief: Heap size target percentage configured by the user, otherwise 100.
note: |
The value range is [0.0,100.0]. Computed from `/gc/gogc:percent`.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: go.goroutine.count
instrument: updowncounter
unit: '{goroutine}'
brief: Count of live goroutines.
note: |
Computed from `/sched/goroutines:goroutines`.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: go.memory.allocated
instrument: counter
unit: By
brief: Memory allocated to the heap by the application.
note: |
Computed from `/gc/heap/allocs:bytes`.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: go.memory.allocations
instrument: counter
unit: '{allocation}'
brief: Count of allocations to the heap by the application.
note: |
Computed from `/gc/heap/allocs:objects`.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: go.memory.gc.goal
instrument: updowncounter
unit: By
brief: Heap size target for the end of the GC cycle.
note: |
Computed from `/gc/heap/goal:bytes`.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: go.memory.limit
instrument: updowncounter
unit: By
brief: Go runtime memory limit configured by the user, if a limit exists.
note: |
Computed from `/gc/gomemlimit:bytes`. This metric is excluded if the limit obtained from the Go runtime is math.MaxInt64.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: go.memory.used
instrument: updowncounter
unit: By
attributes:
- key: go.memory.type
type:
members:
- id: stack
value: stack
brief: Memory allocated from the heap that is reserved for stack space, whether or not it is currently in-use.
note: |
Computed from `/memory/classes/heap/stacks:bytes`.
stability: development
- id: other
value: other
brief: Memory used by the Go runtime, excluding other categories of memory usage described in this enumeration.
stability: development
examples:
- other
- stack
brief: The type of memory.
stability: development
requirement_level: recommended
brief: Memory used by the Go runtime.
note: |
Computed from `(/memory/classes/total:bytes - /memory/classes/heap/released:bytes)`.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: go.processor.limit
instrument: updowncounter
unit: '{thread}'
brief: The number of OS threads that can execute user-level Go code simultaneously.
note: |
Computed from `/sched/gomaxprocs:threads`.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: go.schedule.duration
instrument: histogram
unit: s
brief: The time goroutines have spent in the scheduler in a runnable state before actually running.
note: |
Computed from `/sched/latencies:seconds`. Bucket boundaries are provided by the runtime, and are subject to change.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: http.client.active_requests
instrument: updowncounter
unit: '{request}'
attributes:
- key: url.scheme
type: string
examples:
- http
- https
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
stability: stable
requirement_level: opt_in
- key: http.request.method
type:
members:
- id: connect
value: CONNECT
brief: CONNECT method.
stability: stable
- id: delete
value: DELETE
brief: DELETE method.
stability: stable
- id: get
value: GET
brief: GET method.
stability: stable
- id: head
value: HEAD
brief: HEAD method.
stability: stable
- id: options
value: OPTIONS
brief: OPTIONS method.
stability: stable
- id: patch
value: PATCH
brief: PATCH method.
stability: stable
- id: post
value: POST
brief: POST method.
stability: stable
- id: put
value: PUT
brief: PUT method.
stability: stable
- id: trace
value: TRACE
brief: TRACE method.
stability: stable
- id: query
value: QUERY
brief: QUERY method.
stability: development
- id: other
value: _OTHER
brief: Any HTTP method that the instrumentation has no prior knowledge of.
stability: stable
examples:
- GET
- POST
- HEAD
brief: HTTP request method.
note: |
HTTP request method value SHOULD be "known" to the instrumentation.
By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).
If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods
(this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults).
HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
Tracing instrumentations that do so, MUST also set `http.request.method_original` to the original value.
stability: stable
requirement_level: recommended
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
In HTTP/1.1, when the [request target](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)
is passed in its [absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2),
the `server.address` SHOULD match the host component of the request target.
In all other cases, `server.address` SHOULD match the host component of the
`Host` header in HTTP/1.1 or the `:authority` pseudo-header in HTTP/2 and HTTP/3.
stability: stable
requirement_level: required
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
In the case of HTTP/1.1, when the [request target](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)
is passed in its [absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2),
the `server.port` SHOULD match the port component of the request target.
In all other cases, `server.port` SHOULD match the port component of the
`Host` header in HTTP/1.1 or the `:authority` pseudo-header in HTTP/2 and HTTP/3.
stability: stable
requirement_level: required
- key: url.template
type: string
examples:
- /users/{id}
- /users/:id
- /users?id={id}
brief: |
The low-cardinality template of an [absolute path reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2).
note: |
The `url.template` MUST have low cardinality. It is not usually available on HTTP clients, but may be known by the application or specialized HTTP instrumentation.
stability: development
requirement_level:
conditionally_required: If available.
brief: Number of active HTTP requests.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: http.client.connection.duration
instrument: histogram
unit: s
attributes:
- key: url.scheme
type: string
examples:
- http
- https
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
stability: stable
requirement_level: opt_in
- key: network.peer.address
type: string
examples:
- 10.1.2.80
- /tmp/my.sock
brief: Peer address of the network connection - IP address or Unix domain socket name.
stability: stable
requirement_level: recommended
- key: network.protocol.version
type: string
examples:
- '1.1'
- '2'
brief: The actual version of the protocol used for network communication.
note: |
If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute SHOULD be set to the negotiated version. If the actual protocol version is not known, this attribute SHOULD NOT be set.
stability: stable
requirement_level: recommended
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: required
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: required
brief: The duration of the successfully established outbound HTTP connections.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: http.client.open_connections
instrument: updowncounter
unit: '{connection}'
attributes:
- key: url.scheme
type: string
examples:
- http
- https
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
stability: stable
requirement_level: opt_in
- key: network.peer.address
type: string
examples:
- 10.1.2.80
- /tmp/my.sock
brief: Peer address of the network connection - IP address or Unix domain socket name.
stability: stable
requirement_level: recommended
- key: network.protocol.version
type: string
examples:
- '1.1'
- '2'
brief: The actual version of the protocol used for network communication.
note: |
If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute SHOULD be set to the negotiated version. If the actual protocol version is not known, this attribute SHOULD NOT be set.
stability: stable
requirement_level: recommended
- key: http.connection.state
type:
members:
- id: active
value: active
brief: active state.
stability: development
- id: idle
value: idle
brief: idle state.
stability: development
examples:
- active
- idle
brief: State of the HTTP connection in the HTTP connection pool.
stability: development
requirement_level: required
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: required
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
stability: stable
requirement_level: required
brief: Number of outbound HTTP connections that are currently active or idle on the client.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: http.client.request.body.size
instrument: histogram
unit: By
attributes:
- key: url.scheme
type: string
examples:
- http
- https
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
stability: stable
requirement_level: opt_in
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
If the request fails with an error before response status code was sent or received,
`error.type` SHOULD be set to exception type (its fully-qualified class name, if applicable)
or a component-specific low cardinality error identifier.
If response status code was sent or received and status indicates an error according to [HTTP span status definition](/docs/http/http-spans.md),
`error.type` SHOULD be set to the status code number (represented as a string), an exception type (if thrown) or a component-specific error identifier.
The `error.type` value SHOULD be predictable and SHOULD have low cardinality.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low, but
telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time, when no
additional filters are applied.
If the request has completed successfully, instrumentations SHOULD NOT set `error.type`.
stability: stable
requirement_level:
conditionally_required: If request has ended with an error.
- key: http.request.method
type:
members:
- id: connect
value: CONNECT
brief: CONNECT method.
stability: stable
- id: delete
value: DELETE
brief: DELETE method.
stability: stable
- id: get
value: GET
brief: GET method.
stability: stable
- id: head
value: HEAD
brief: HEAD method.
stability: stable
- id: options
value: OPTIONS
brief: OPTIONS method.
stability: stable
- id: patch
value: PATCH
brief: PATCH method.
stability: stable
- id: post
value: POST
brief: POST method.
stability: stable
- id: put
value: PUT
brief: PUT method.
stability: stable
- id: trace
value: TRACE
brief: TRACE method.
stability: stable
- id: query
value: QUERY
brief: QUERY method.
stability: development
- id: other
value: _OTHER
brief: Any HTTP method that the instrumentation has no prior knowledge of.
stability: stable
examples:
- GET
- POST
- HEAD
brief: HTTP request method.
note: |
HTTP request method value SHOULD be "known" to the instrumentation.
By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).
If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods
(this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults).
HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
Tracing instrumentations that do so, MUST also set `http.request.method_original` to the original value.
stability: stable
requirement_level: required
- key: http.response.status_code
type: int
examples:
- 200
brief: '[HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).'
stability: stable
requirement_level:
conditionally_required: If and only if one was received/sent.
- key: network.protocol.name
type: string
examples:
- http
- spdy
brief: '[OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.'
note: The value SHOULD be normalized to lowercase.
stability: stable
requirement_level:
conditionally_required: If not `http` and `network.protocol.version` is set.
- key: network.protocol.version
type: string
examples:
- '1.0'
- '1.1'
- '2'
- '3'
brief: The actual version of the protocol used for network communication.
note: |
If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute SHOULD be set to the negotiated version. If the actual protocol version is not known, this attribute SHOULD NOT be set.
stability: stable
requirement_level: recommended
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
In HTTP/1.1, when the [request target](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)
is passed in its [absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2),
the `server.address` SHOULD match the host component of the request target.
In all other cases, `server.address` SHOULD match the host component of the
`Host` header in HTTP/1.1 or the `:authority` pseudo-header in HTTP/2 and HTTP/3.
stability: stable
requirement_level: required
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
In the case of HTTP/1.1, when the [request target](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)
is passed in its [absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2),
the `server.port` SHOULD match the port component of the request target.
In all other cases, `server.port` SHOULD match the port component of the
`Host` header in HTTP/1.1 or the `:authority` pseudo-header in HTTP/2 and HTTP/3.
stability: stable
requirement_level: required
- key: url.template
type: string
examples:
- /users/{id}
- /users/:id
- /users?id={id}
brief: |
The low-cardinality template of an [absolute path reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2).
note: |
The `url.template` MUST have low cardinality. It is not usually available on HTTP clients, but may be known by the application or specialized HTTP instrumentation.
stability: development
requirement_level:
conditionally_required: If available.
brief: Size of HTTP client request bodies.
note: |
The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: http.client.request.duration
instrument: histogram
unit: s
attributes:
- key: url.scheme
type: string
examples:
- http
- https
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
stability: stable
requirement_level: opt_in
- key: url.template
type: string
examples:
- /users/{id}
- /users/:id
- /users?id={id}
brief: |
The low-cardinality template of an [absolute path reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2).
note: |
The `url.template` MUST have low cardinality. It is not usually available on HTTP clients, but may be known by the application or specialized HTTP instrumentation.
stability: development
requirement_level: opt_in
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
If the request fails with an error before response status code was sent or received,
`error.type` SHOULD be set to exception type (its fully-qualified class name, if applicable)
or a component-specific low cardinality error identifier.
If response status code was sent or received and status indicates an error according to [HTTP span status definition](/docs/http/http-spans.md),
`error.type` SHOULD be set to the status code number (represented as a string), an exception type (if thrown) or a component-specific error identifier.
The `error.type` value SHOULD be predictable and SHOULD have low cardinality.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low, but
telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time, when no
additional filters are applied.
If the request has completed successfully, instrumentations SHOULD NOT set `error.type`.
stability: stable
requirement_level:
conditionally_required: If request has ended with an error.
- key: http.request.method
type:
members:
- id: connect
value: CONNECT
brief: CONNECT method.
stability: stable
- id: delete
value: DELETE
brief: DELETE method.
stability: stable
- id: get
value: GET
brief: GET method.
stability: stable
- id: head
value: HEAD
brief: HEAD method.
stability: stable
- id: options
value: OPTIONS
brief: OPTIONS method.
stability: stable
- id: patch
value: PATCH
brief: PATCH method.
stability: stable
- id: post
value: POST
brief: POST method.
stability: stable
- id: put
value: PUT
brief: PUT method.
stability: stable
- id: trace
value: TRACE
brief: TRACE method.
stability: stable
- id: query
value: QUERY
brief: QUERY method.
stability: development
- id: other
value: _OTHER
brief: Any HTTP method that the instrumentation has no prior knowledge of.
stability: stable
examples:
- GET
- POST
- HEAD
brief: HTTP request method.
note: |
HTTP request method value SHOULD be "known" to the instrumentation.
By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).
If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods
(this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults).
HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
Tracing instrumentations that do so, MUST also set `http.request.method_original` to the original value.
stability: stable
requirement_level: required
- key: http.response.status_code
type: int
examples:
- 200
brief: '[HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).'
stability: stable
requirement_level:
conditionally_required: If and only if one was received/sent.
- key: network.protocol.name
type: string
examples:
- http
- spdy
brief: '[OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.'
note: The value SHOULD be normalized to lowercase.
stability: stable
requirement_level:
conditionally_required: If not `http` and `network.protocol.version` is set.
- key: network.protocol.version
type: string
examples:
- '1.0'
- '1.1'
- '2'
- '3'
brief: The actual version of the protocol used for network communication.
note: |
If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute SHOULD be set to the negotiated version. If the actual protocol version is not known, this attribute SHOULD NOT be set.
stability: stable
requirement_level: recommended
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
In HTTP/1.1, when the [request target](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)
is passed in its [absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2),
the `server.address` SHOULD match the host component of the request target.
In all other cases, `server.address` SHOULD match the host component of the
`Host` header in HTTP/1.1 or the `:authority` pseudo-header in HTTP/2 and HTTP/3.
stability: stable
requirement_level: required
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
In the case of HTTP/1.1, when the [request target](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)
is passed in its [absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2),
the `server.port` SHOULD match the port component of the request target.
In all other cases, `server.port` SHOULD match the port component of the
`Host` header in HTTP/1.1 or the `:authority` pseudo-header in HTTP/2 and HTTP/3.
stability: stable
requirement_level: required
brief: Duration of HTTP client requests.
stability: stable
annotations:
code_generation:
metric_value_type: double
- name: http.client.response.body.size
instrument: histogram
unit: By
attributes:
- key: url.scheme
type: string
examples:
- http
- https
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
stability: stable
requirement_level: opt_in
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
If the request fails with an error before response status code was sent or received,
`error.type` SHOULD be set to exception type (its fully-qualified class name, if applicable)
or a component-specific low cardinality error identifier.
If response status code was sent or received and status indicates an error according to [HTTP span status definition](/docs/http/http-spans.md),
`error.type` SHOULD be set to the status code number (represented as a string), an exception type (if thrown) or a component-specific error identifier.
The `error.type` value SHOULD be predictable and SHOULD have low cardinality.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low, but
telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time, when no
additional filters are applied.
If the request has completed successfully, instrumentations SHOULD NOT set `error.type`.
stability: stable
requirement_level:
conditionally_required: If request has ended with an error.
- key: http.request.method
type:
members:
- id: connect
value: CONNECT
brief: CONNECT method.
stability: stable
- id: delete
value: DELETE
brief: DELETE method.
stability: stable
- id: get
value: GET
brief: GET method.
stability: stable
- id: head
value: HEAD
brief: HEAD method.
stability: stable
- id: options
value: OPTIONS
brief: OPTIONS method.
stability: stable
- id: patch
value: PATCH
brief: PATCH method.
stability: stable
- id: post
value: POST
brief: POST method.
stability: stable
- id: put
value: PUT
brief: PUT method.
stability: stable
- id: trace
value: TRACE
brief: TRACE method.
stability: stable
- id: query
value: QUERY
brief: QUERY method.
stability: development
- id: other
value: _OTHER
brief: Any HTTP method that the instrumentation has no prior knowledge of.
stability: stable
examples:
- GET
- POST
- HEAD
brief: HTTP request method.
note: |
HTTP request method value SHOULD be "known" to the instrumentation.
By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).
If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods
(this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults).
HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
Tracing instrumentations that do so, MUST also set `http.request.method_original` to the original value.
stability: stable
requirement_level: required
- key: http.response.status_code
type: int
examples:
- 200
brief: '[HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).'
stability: stable
requirement_level:
conditionally_required: If and only if one was received/sent.
- key: network.protocol.name
type: string
examples:
- http
- spdy
brief: '[OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.'
note: The value SHOULD be normalized to lowercase.
stability: stable
requirement_level:
conditionally_required: If not `http` and `network.protocol.version` is set.
- key: network.protocol.version
type: string
examples:
- '1.0'
- '1.1'
- '2'
- '3'
brief: The actual version of the protocol used for network communication.
note: |
If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute SHOULD be set to the negotiated version. If the actual protocol version is not known, this attribute SHOULD NOT be set.
stability: stable
requirement_level: recommended
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
note: |
In HTTP/1.1, when the [request target](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)
is passed in its [absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2),
the `server.address` SHOULD match the host component of the request target.
In all other cases, `server.address` SHOULD match the host component of the
`Host` header in HTTP/1.1 or the `:authority` pseudo-header in HTTP/2 and HTTP/3.
stability: stable
requirement_level: required
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: Server port number.
note: |
In the case of HTTP/1.1, when the [request target](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)
is passed in its [absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2),
the `server.port` SHOULD match the port component of the request target.
In all other cases, `server.port` SHOULD match the port component of the
`Host` header in HTTP/1.1 or the `:authority` pseudo-header in HTTP/2 and HTTP/3.
stability: stable
requirement_level: required
- key: url.template
type: string
examples:
- /users/{id}
- /users/:id
- /users?id={id}
brief: |
The low-cardinality template of an [absolute path reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2).
note: |
The `url.template` MUST have low cardinality. It is not usually available on HTTP clients, but may be known by the application or specialized HTTP instrumentation.
stability: development
requirement_level:
conditionally_required: If available.
brief: Size of HTTP client response bodies.
note: |
The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: http.server.active_requests
instrument: updowncounter
unit: '{request}'
attributes:
- key: http.request.method
type:
members:
- id: connect
value: CONNECT
brief: CONNECT method.
stability: stable
- id: delete
value: DELETE
brief: DELETE method.
stability: stable
- id: get
value: GET
brief: GET method.
stability: stable
- id: head
value: HEAD
brief: HEAD method.
stability: stable
- id: options
value: OPTIONS
brief: OPTIONS method.
stability: stable
- id: patch
value: PATCH
brief: PATCH method.
stability: stable
- id: post
value: POST
brief: POST method.
stability: stable
- id: put
value: PUT
brief: PUT method.
stability: stable
- id: trace
value: TRACE
brief: TRACE method.
stability: stable
- id: query
value: QUERY
brief: QUERY method.
stability: development
- id: other
value: _OTHER
brief: Any HTTP method that the instrumentation has no prior knowledge of.
stability: stable
examples:
- GET
- POST
- HEAD
brief: HTTP request method.
note: |
HTTP request method value SHOULD be "known" to the instrumentation.
By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).
If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods
(this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults).
HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
Tracing instrumentations that do so, MUST also set `http.request.method_original` to the original value.
stability: stable
requirement_level: required
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
Name of the local HTTP server that received the request.
note: |
See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes).
> **Warning**
> Since this attribute is based on HTTP headers, opting in to it may allow an attacker
> to trigger cardinality limits, degrading the usefulness of the metric.
stability: stable
requirement_level: opt_in
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: |
Port of the local HTTP server that received the request.
note: |
See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes).
> **Warning**
> Since this attribute is based on HTTP headers, opting in to it may allow an attacker
> to trigger cardinality limits, degrading the usefulness of the metric.
stability: stable
requirement_level: opt_in
- key: url.scheme
type: string
examples:
- http
- https
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
stability: stable
requirement_level: required
brief: Number of active HTTP server requests.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: http.server.request.body.size
instrument: histogram
unit: By
attributes:
- key: url.scheme
type: string
examples:
- http
- https
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
note: |
The scheme of the original client request, if known (e.g. from [Forwarded#proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/Forwarded#proto), [X-Forwarded-Proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Forwarded-Proto), or a similar header). Otherwise, the scheme of the immediate peer request.
stability: stable
requirement_level: required
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
If the request fails with an error before response status code was sent or received,
`error.type` SHOULD be set to exception type (its fully-qualified class name, if applicable)
or a component-specific low cardinality error identifier.
If response status code was sent or received and status indicates an error according to [HTTP span status definition](/docs/http/http-spans.md),
`error.type` SHOULD be set to the status code number (represented as a string), an exception type (if thrown) or a component-specific error identifier.
The `error.type` value SHOULD be predictable and SHOULD have low cardinality.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low, but
telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time, when no
additional filters are applied.
If the request has completed successfully, instrumentations SHOULD NOT set `error.type`.
stability: stable
requirement_level:
conditionally_required: If request has ended with an error.
- key: http.request.method
type:
members:
- id: connect
value: CONNECT
brief: CONNECT method.
stability: stable
- id: delete
value: DELETE
brief: DELETE method.
stability: stable
- id: get
value: GET
brief: GET method.
stability: stable
- id: head
value: HEAD
brief: HEAD method.
stability: stable
- id: options
value: OPTIONS
brief: OPTIONS method.
stability: stable
- id: patch
value: PATCH
brief: PATCH method.
stability: stable
- id: post
value: POST
brief: POST method.
stability: stable
- id: put
value: PUT
brief: PUT method.
stability: stable
- id: trace
value: TRACE
brief: TRACE method.
stability: stable
- id: query
value: QUERY
brief: QUERY method.
stability: development
- id: other
value: _OTHER
brief: Any HTTP method that the instrumentation has no prior knowledge of.
stability: stable
examples:
- GET
- POST
- HEAD
brief: HTTP request method.
note: |
HTTP request method value SHOULD be "known" to the instrumentation.
By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).
If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods
(this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults).
HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
Tracing instrumentations that do so, MUST also set `http.request.method_original` to the original value.
stability: stable
requirement_level: required
- key: http.response.status_code
type: int
examples:
- 200
brief: '[HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).'
stability: stable
requirement_level:
conditionally_required: If and only if one was received/sent.
- key: http.route
type: string
examples:
- /users/:userID?
- my-controller/my-action/{id?}
brief: |
The matched route template for the request. This MUST be low-cardinality and include all static path segments, with dynamic path segments represented with placeholders.
note: |
MUST NOT be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it.
SHOULD include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one.
A static path segment is a part of the route template with a fixed, low-cardinality value. This includes literal strings like `/users/` and placeholders that
are constrained to a finite, predefined set of values, e.g. `{controller}` or `{action}`.
A dynamic path segment is a placeholder for a value that can have high cardinality and is not constrained to a predefined list like static path segments.
Instrumentations SHOULD use routing information provided by the corresponding web framework. They SHOULD pick the most precise source of routing information and MAY
support custom route formatting. Instrumentations SHOULD document the format and the API used to obtain the route string.
stability: stable
requirement_level:
conditionally_required: If and only if it's available
- key: network.protocol.name
type: string
examples:
- http
- spdy
brief: '[OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.'
note: The value SHOULD be normalized to lowercase.
stability: stable
requirement_level:
conditionally_required: If not `http` and `network.protocol.version` is set.
- key: network.protocol.version
type: string
examples:
- '1.0'
- '1.1'
- '2'
- '3'
brief: The actual version of the protocol used for network communication.
note: |
If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute SHOULD be set to the negotiated version. If the actual protocol version is not known, this attribute SHOULD NOT be set.
stability: stable
requirement_level: recommended
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
Name of the local HTTP server that received the request.
note: |
See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes).
> **Warning**
> Since this attribute is based on HTTP headers, opting in to it may allow an attacker
> to trigger cardinality limits, degrading the usefulness of the metric.
stability: stable
requirement_level: opt_in
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: |
Port of the local HTTP server that received the request.
note: |
See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes).
> **Warning**
> Since this attribute is based on HTTP headers, opting in to it may allow an attacker
> to trigger cardinality limits, degrading the usefulness of the metric.
stability: stable
requirement_level: opt_in
- key: user_agent.synthetic.type
type:
members:
- id: bot
value: bot
brief: Bot source.
stability: development
- id: test
value: test
brief: Synthetic test source.
stability: development
brief: |
Specifies the category of synthetic traffic, such as tests or bots.
note: |
This attribute MAY be derived from the contents of the `user_agent.original` attribute. Components that populate the attribute are responsible for determining what they consider to be synthetic bot or test traffic. This attribute can either be set for self-identification purposes, or on telemetry detected to be generated as a result of a synthetic request. This attribute is useful for distinguishing between genuine client traffic and synthetic traffic generated by bots or tests.
stability: development
requirement_level: opt_in
brief: Size of HTTP server request bodies.
note: |
The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: http.server.request.duration
instrument: histogram
unit: s
attributes:
- key: url.scheme
type: string
examples:
- http
- https
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
note: |
The scheme of the original client request, if known (e.g. from [Forwarded#proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/Forwarded#proto), [X-Forwarded-Proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Forwarded-Proto), or a similar header). Otherwise, the scheme of the immediate peer request.
stability: stable
requirement_level: required
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
If the request fails with an error before response status code was sent or received,
`error.type` SHOULD be set to exception type (its fully-qualified class name, if applicable)
or a component-specific low cardinality error identifier.
If response status code was sent or received and status indicates an error according to [HTTP span status definition](/docs/http/http-spans.md),
`error.type` SHOULD be set to the status code number (represented as a string), an exception type (if thrown) or a component-specific error identifier.
The `error.type` value SHOULD be predictable and SHOULD have low cardinality.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low, but
telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time, when no
additional filters are applied.
If the request has completed successfully, instrumentations SHOULD NOT set `error.type`.
stability: stable
requirement_level:
conditionally_required: If request has ended with an error.
- key: http.request.method
type:
members:
- id: connect
value: CONNECT
brief: CONNECT method.
stability: stable
- id: delete
value: DELETE
brief: DELETE method.
stability: stable
- id: get
value: GET
brief: GET method.
stability: stable
- id: head
value: HEAD
brief: HEAD method.
stability: stable
- id: options
value: OPTIONS
brief: OPTIONS method.
stability: stable
- id: patch
value: PATCH
brief: PATCH method.
stability: stable
- id: post
value: POST
brief: POST method.
stability: stable
- id: put
value: PUT
brief: PUT method.
stability: stable
- id: trace
value: TRACE
brief: TRACE method.
stability: stable
- id: query
value: QUERY
brief: QUERY method.
stability: development
- id: other
value: _OTHER
brief: Any HTTP method that the instrumentation has no prior knowledge of.
stability: stable
examples:
- GET
- POST
- HEAD
brief: HTTP request method.
note: |
HTTP request method value SHOULD be "known" to the instrumentation.
By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).
If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods
(this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults).
HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
Tracing instrumentations that do so, MUST also set `http.request.method_original` to the original value.
stability: stable
requirement_level: required
- key: http.response.status_code
type: int
examples:
- 200
brief: '[HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).'
stability: stable
requirement_level:
conditionally_required: If and only if one was received/sent.
- key: http.route
type: string
examples:
- /users/:userID?
- my-controller/my-action/{id?}
brief: |
The matched route template for the request. This MUST be low-cardinality and include all static path segments, with dynamic path segments represented with placeholders.
note: |
MUST NOT be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it.
SHOULD include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one.
A static path segment is a part of the route template with a fixed, low-cardinality value. This includes literal strings like `/users/` and placeholders that
are constrained to a finite, predefined set of values, e.g. `{controller}` or `{action}`.
A dynamic path segment is a placeholder for a value that can have high cardinality and is not constrained to a predefined list like static path segments.
Instrumentations SHOULD use routing information provided by the corresponding web framework. They SHOULD pick the most precise source of routing information and MAY
support custom route formatting. Instrumentations SHOULD document the format and the API used to obtain the route string.
stability: stable
requirement_level:
conditionally_required: If and only if it's available
- key: network.protocol.name
type: string
examples:
- http
- spdy
brief: '[OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.'
note: The value SHOULD be normalized to lowercase.
stability: stable
requirement_level:
conditionally_required: If not `http` and `network.protocol.version` is set.
- key: network.protocol.version
type: string
examples:
- '1.0'
- '1.1'
- '2'
- '3'
brief: The actual version of the protocol used for network communication.
note: |
If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute SHOULD be set to the negotiated version. If the actual protocol version is not known, this attribute SHOULD NOT be set.
stability: stable
requirement_level: recommended
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
Name of the local HTTP server that received the request.
note: |
See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes).
> **Warning**
> Since this attribute is based on HTTP headers, opting in to it may allow an attacker
> to trigger cardinality limits, degrading the usefulness of the metric.
stability: stable
requirement_level: opt_in
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: |
Port of the local HTTP server that received the request.
note: |
See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes).
> **Warning**
> Since this attribute is based on HTTP headers, opting in to it may allow an attacker
> to trigger cardinality limits, degrading the usefulness of the metric.
stability: stable
requirement_level: opt_in
- key: user_agent.synthetic.type
type:
members:
- id: bot
value: bot
brief: Bot source.
stability: development
- id: test
value: test
brief: Synthetic test source.
stability: development
brief: |
Specifies the category of synthetic traffic, such as tests or bots.
note: |
This attribute MAY be derived from the contents of the `user_agent.original` attribute. Components that populate the attribute are responsible for determining what they consider to be synthetic bot or test traffic. This attribute can either be set for self-identification purposes, or on telemetry detected to be generated as a result of a synthetic request. This attribute is useful for distinguishing between genuine client traffic and synthetic traffic generated by bots or tests.
stability: development
requirement_level: opt_in
brief: Duration of HTTP server requests.
stability: stable
annotations:
code_generation:
metric_value_type: double
- name: http.server.response.body.size
instrument: histogram
unit: By
attributes:
- key: url.scheme
type: string
examples:
- http
- https
brief: |
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
note: |
The scheme of the original client request, if known (e.g. from [Forwarded#proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/Forwarded#proto), [X-Forwarded-Proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Forwarded-Proto), or a similar header). Otherwise, the scheme of the immediate peer request.
stability: stable
requirement_level: required
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- timeout
- java.net.UnknownHostException
- server_certificate_invalid
- '500'
brief: |
Describes a class of error the operation ended with.
note: |
If the request fails with an error before response status code was sent or received,
`error.type` SHOULD be set to exception type (its fully-qualified class name, if applicable)
or a component-specific low cardinality error identifier.
If response status code was sent or received and status indicates an error according to [HTTP span status definition](/docs/http/http-spans.md),
`error.type` SHOULD be set to the status code number (represented as a string), an exception type (if thrown) or a component-specific error identifier.
The `error.type` value SHOULD be predictable and SHOULD have low cardinality.
Instrumentations SHOULD document the list of errors they report.
The cardinality of `error.type` within one instrumentation library SHOULD be low, but
telemetry consumers that aggregate data from multiple instrumentation libraries and applications
should be prepared for `error.type` to have high cardinality at query time, when no
additional filters are applied.
If the request has completed successfully, instrumentations SHOULD NOT set `error.type`.
stability: stable
requirement_level:
conditionally_required: If request has ended with an error.
- key: http.request.method
type:
members:
- id: connect
value: CONNECT
brief: CONNECT method.
stability: stable
- id: delete
value: DELETE
brief: DELETE method.
stability: stable
- id: get
value: GET
brief: GET method.
stability: stable
- id: head
value: HEAD
brief: HEAD method.
stability: stable
- id: options
value: OPTIONS
brief: OPTIONS method.
stability: stable
- id: patch
value: PATCH
brief: PATCH method.
stability: stable
- id: post
value: POST
brief: POST method.
stability: stable
- id: put
value: PUT
brief: PUT method.
stability: stable
- id: trace
value: TRACE
brief: TRACE method.
stability: stable
- id: query
value: QUERY
brief: QUERY method.
stability: development
- id: other
value: _OTHER
brief: Any HTTP method that the instrumentation has no prior knowledge of.
stability: stable
examples:
- GET
- POST
- HEAD
brief: HTTP request method.
note: |
HTTP request method value SHOULD be "known" to the instrumentation.
By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).
If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods
(this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults).
HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
Tracing instrumentations that do so, MUST also set `http.request.method_original` to the original value.
stability: stable
requirement_level: required
- key: http.response.status_code
type: int
examples:
- 200
brief: '[HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).'
stability: stable
requirement_level:
conditionally_required: If and only if one was received/sent.
- key: http.route
type: string
examples:
- /users/:userID?
- my-controller/my-action/{id?}
brief: |
The matched route template for the request. This MUST be low-cardinality and include all static path segments, with dynamic path segments represented with placeholders.
note: |
MUST NOT be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it.
SHOULD include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one.
A static path segment is a part of the route template with a fixed, low-cardinality value. This includes literal strings like `/users/` and placeholders that
are constrained to a finite, predefined set of values, e.g. `{controller}` or `{action}`.
A dynamic path segment is a placeholder for a value that can have high cardinality and is not constrained to a predefined list like static path segments.
Instrumentations SHOULD use routing information provided by the corresponding web framework. They SHOULD pick the most precise source of routing information and MAY
support custom route formatting. Instrumentations SHOULD document the format and the API used to obtain the route string.
stability: stable
requirement_level:
conditionally_required: If and only if it's available
- key: network.protocol.name
type: string
examples:
- http
- spdy
brief: '[OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.'
note: The value SHOULD be normalized to lowercase.
stability: stable
requirement_level:
conditionally_required: If not `http` and `network.protocol.version` is set.
- key: network.protocol.version
type: string
examples:
- '1.0'
- '1.1'
- '2'
- '3'
brief: The actual version of the protocol used for network communication.
note: |
If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute SHOULD be set to the negotiated version. If the actual protocol version is not known, this attribute SHOULD NOT be set.
stability: stable
requirement_level: recommended
- key: server.address
type: string
examples:
- example.com
- 10.1.2.80
- /tmp/my.sock
brief: |
Name of the local HTTP server that received the request.
note: |
See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes).
> **Warning**
> Since this attribute is based on HTTP headers, opting in to it may allow an attacker
> to trigger cardinality limits, degrading the usefulness of the metric.
stability: stable
requirement_level: opt_in
- key: server.port
type: int
examples:
- 80
- 8080
- 443
brief: |
Port of the local HTTP server that received the request.
note: |
See [Setting `server.address` and `server.port` attributes](/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes).
> **Warning**
> Since this attribute is based on HTTP headers, opting in to it may allow an attacker
> to trigger cardinality limits, degrading the usefulness of the metric.
stability: stable
requirement_level: opt_in
- key: user_agent.synthetic.type
type:
members:
- id: bot
value: bot
brief: Bot source.
stability: development
- id: test
value: test
brief: Synthetic test source.
stability: development
brief: |
Specifies the category of synthetic traffic, such as tests or bots.
note: |
This attribute MAY be derived from the contents of the `user_agent.original` attribute. Components that populate the attribute are responsible for determining what they consider to be synthetic bot or test traffic. This attribute can either be set for self-identification purposes, or on telemetry detected to be generated as a result of a synthetic request. This attribute is useful for distinguishing between genuine client traffic and synthetic traffic generated by bots or tests.
stability: development
requirement_level: opt_in
brief: Size of HTTP server response bodies.
note: |
The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.battery.charge
instrument: gauge
unit: '1'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.battery.chemistry
type: string
examples:
- Li-ion
- NiMH
brief: |
Battery [chemistry](https://schemas.dmtf.org/wbem/cim-html/2.31.0/CIM_Battery.html), e.g. Lithium-Ion, Nickel-Cadmium, etc.
stability: development
requirement_level: recommended
- key: hw.battery.capacity
type: string
examples:
- 9.3Ah
- 50Wh
brief: |
Design capacity in Watts-hours or Amper-hours
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Remaining fraction of battery charge.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.battery.charge.limit
instrument: gauge
unit: '1'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.battery.chemistry
type: string
examples:
- Li-ion
- NiMH
brief: |
Battery [chemistry](https://schemas.dmtf.org/wbem/cim-html/2.31.0/CIM_Battery.html), e.g. Lithium-Ion, Nickel-Cadmium, etc.
stability: development
requirement_level: recommended
- key: hw.battery.capacity
type: string
examples:
- 9.3Ah
- 50Wh
brief: |
Design capacity in Watts-hours or Amper-hours
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.limit_type
type:
members:
- id: critical
value: critical
brief: Critical
stability: development
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: high_critical
value: high.critical
brief: High Critical
stability: development
- id: high_degraded
value: high.degraded
brief: High Degraded
stability: development
- id: low_critical
value: low.critical
brief: Low Critical
stability: development
- id: low_degraded
value: low.degraded
brief: Low Degraded
stability: development
- id: max
value: max
brief: Maximum
stability: development
- id: throttled
value: throttled
brief: Throttled
stability: development
- id: turbo
value: turbo
brief: Turbo
stability: development
examples:
- critical
- throttled
- degraded
brief: |
Represents battery charge level thresholds relevant to device operation and health. Each `limit_type` denotes a specific charge limit such as the minimum or maximum optimal charge, the shutdown threshold, or energy-saving thresholds. These values are typically provided by the hardware or firmware to guide safe and efficient battery usage.
stability: development
requirement_level: recommended
brief: Lower limit of battery charge fraction to ensure proper operation.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.battery.time_left
instrument: gauge
unit: s
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.battery.chemistry
type: string
examples:
- Li-ion
- NiMH
brief: |
Battery [chemistry](https://schemas.dmtf.org/wbem/cim-html/2.31.0/CIM_Battery.html), e.g. Lithium-Ion, Nickel-Cadmium, etc.
stability: development
requirement_level: recommended
- key: hw.battery.capacity
type: string
examples:
- 9.3Ah
- 50Wh
brief: |
Design capacity in Watts-hours or Amper-hours
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.battery.state
type:
members:
- id: charging
value: charging
brief: Charging
stability: development
- id: discharging
value: discharging
brief: Discharging
stability: development
brief: |
The current state of the battery
note: |
The `hw.state` attribute should indicate the current state of the battery. It should be one of the predefined states such as "charging" or "discharging".
stability: development
requirement_level:
conditionally_required: If the battery is charging or discharging
- key: hw.state
type:
members:
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: failed
value: failed
brief: Failed
stability: development
- id: needs_cleaning
value: needs_cleaning
brief: Needs Cleaning
stability: development
- id: ok
value: ok
brief: OK
stability: development
- id: predicted_failure
value: predicted_failure
brief: Predicted Failure
stability: development
brief: |
The current state of the component
stability: development
requirement_level: required
brief: Time left before battery is completely charged or discharged.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.cpu.speed
instrument: gauge
unit: Hz
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: CPU current frequency.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.cpu.speed.limit
instrument: gauge
unit: Hz
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.limit_type
type:
members:
- id: critical
value: critical
brief: Critical
stability: development
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: high_critical
value: high.critical
brief: High Critical
stability: development
- id: high_degraded
value: high.degraded
brief: High Degraded
stability: development
- id: low_critical
value: low.critical
brief: Low Critical
stability: development
- id: low_degraded
value: low.degraded
brief: Low Degraded
stability: development
- id: max
value: max
brief: Maximum
stability: development
- id: throttled
value: throttled
brief: Throttled
stability: development
- id: turbo
value: turbo
brief: Turbo
stability: development
examples:
- throttled
- max
- turbo
brief: |
Type of limit for hardware components
stability: development
requirement_level: recommended
brief: CPU maximum frequency.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.energy
instrument: counter
unit: J
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.type
type:
members:
- id: battery
value: battery
brief: Battery
stability: development
- id: cpu
value: cpu
brief: CPU
stability: development
- id: disk_controller
value: disk_controller
brief: Disk controller
stability: development
- id: enclosure
value: enclosure
brief: Enclosure
stability: development
- id: fan
value: fan
brief: Fan
stability: development
- id: gpu
value: gpu
brief: GPU
stability: development
- id: logical_disk
value: logical_disk
brief: Logical disk
stability: development
- id: memory
value: memory
brief: Memory
stability: development
- id: network
value: network
brief: Network
stability: development
- id: physical_disk
value: physical_disk
brief: Physical disk
stability: development
- id: power_supply
value: power_supply
brief: Power supply
stability: development
- id: tape_drive
value: tape_drive
brief: Tape drive
stability: development
- id: temperature
value: temperature
brief: Temperature
stability: development
- id: voltage
value: voltage
brief: Voltage
stability: development
brief: |
Type of the component
note: |
Describes the category of the hardware component for which `hw.state` is being reported. For example, `hw.type=temperature` along with `hw.state=degraded` would indicate that the temperature of the hardware component has been reported as `degraded`.
stability: development
requirement_level: required
brief: Energy consumed by the component.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.errors
instrument: counter
unit: '{error}'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.type
type:
members:
- id: battery
value: battery
brief: Battery
stability: development
- id: cpu
value: cpu
brief: CPU
stability: development
- id: disk_controller
value: disk_controller
brief: Disk controller
stability: development
- id: enclosure
value: enclosure
brief: Enclosure
stability: development
- id: fan
value: fan
brief: Fan
stability: development
- id: gpu
value: gpu
brief: GPU
stability: development
- id: logical_disk
value: logical_disk
brief: Logical disk
stability: development
- id: memory
value: memory
brief: Memory
stability: development
- id: network
value: network
brief: Network
stability: development
- id: physical_disk
value: physical_disk
brief: Physical disk
stability: development
- id: power_supply
value: power_supply
brief: Power supply
stability: development
- id: tape_drive
value: tape_drive
brief: Tape drive
stability: development
- id: temperature
value: temperature
brief: Temperature
stability: development
- id: voltage
value: voltage
brief: Voltage
stability: development
brief: |
Type of the component
note: |
Describes the category of the hardware component for which `hw.state` is being reported. For example, `hw.type=temperature` along with `hw.state=degraded` would indicate that the temperature of the hardware component has been reported as `degraded`.
stability: development
requirement_level: required
- key: error.type
type:
members:
- id: other
value: _OTHER
brief: |
A fallback error value to be used when the instrumentation doesn't define a custom value.
stability: stable
examples:
- uncorrected
- zero_buffer_credit
- crc
- bad_sector
brief: The type of error encountered by the component.
note: |
The `error.type` SHOULD match the error code reported by the component, the canonical name of the error, or another low-cardinality error identifier. Instrumentations SHOULD document the list of errors they report.
stability: stable
requirement_level:
conditionally_required: if and only if an error has occurred
- key: network.io.direction
type:
members:
- id: transmit
value: transmit
stability: development
- id: receive
value: receive
stability: development
examples:
- receive
- transmit
brief: Direction of network traffic for network errors.
note: |
This attribute SHOULD only be used when `hw.type` is set to `"network"` to indicate the direction of the error.
stability: development
requirement_level: recommended
brief: Number of errors encountered by the component.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.fan.speed
instrument: gauge
unit: rpm
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.sensor_location
type: string
examples:
- cpu0
- ps1
- INLET
- CPU0_DIE
- AMBIENT
- MOTHERBOARD
- PS0 V3_3
- MAIN_12V
- CPU_VCORE
brief: |
Location of the sensor
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Fan speed in revolutions per minute.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.fan.speed.limit
instrument: gauge
unit: rpm
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.sensor_location
type: string
examples:
- cpu0
- ps1
- INLET
- CPU0_DIE
- AMBIENT
- MOTHERBOARD
- PS0 V3_3
- MAIN_12V
- CPU_VCORE
brief: |
Location of the sensor
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.limit_type
type:
members:
- id: critical
value: critical
brief: Critical
stability: development
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: high_critical
value: high.critical
brief: High Critical
stability: development
- id: high_degraded
value: high.degraded
brief: High Degraded
stability: development
- id: low_critical
value: low.critical
brief: Low Critical
stability: development
- id: low_degraded
value: low.degraded
brief: Low Degraded
stability: development
- id: max
value: max
brief: Maximum
stability: development
- id: throttled
value: throttled
brief: Throttled
stability: development
- id: turbo
value: turbo
brief: Turbo
stability: development
examples:
- low.critical
- low.degraded
- max
brief: |
Type of limit for hardware components
stability: development
requirement_level: recommended
brief: Speed limit in rpm.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.fan.speed_ratio
instrument: gauge
unit: '1'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.sensor_location
type: string
examples:
- cpu0
- ps1
- INLET
- CPU0_DIE
- AMBIENT
- MOTHERBOARD
- PS0 V3_3
- MAIN_12V
- CPU_VCORE
brief: |
Location of the sensor
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Fan speed expressed as a fraction of its maximum speed.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.gpu.io
instrument: counter
unit: By
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.driver_version
type: string
examples:
- 10.2.1-3
brief: |
Driver version for the hardware component
stability: development
requirement_level: recommended
- key: hw.firmware_version
type: string
examples:
- 2.0.1
brief: |
Firmware version of the hardware component
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: network.io.direction
type:
members:
- id: transmit
value: transmit
stability: development
- id: receive
value: receive
stability: development
examples:
- receive
- transmit
brief: The network IO operation direction.
stability: development
requirement_level: required
brief: Received and transmitted bytes by the GPU.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.gpu.memory.limit
instrument: updowncounter
unit: By
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.driver_version
type: string
examples:
- 10.2.1-3
brief: |
Driver version for the hardware component
stability: development
requirement_level: recommended
- key: hw.firmware_version
type: string
examples:
- 2.0.1
brief: |
Firmware version of the hardware component
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Size of the GPU memory.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.gpu.memory.usage
instrument: updowncounter
unit: By
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.driver_version
type: string
examples:
- 10.2.1-3
brief: |
Driver version for the hardware component
stability: development
requirement_level: recommended
- key: hw.firmware_version
type: string
examples:
- 2.0.1
brief: |
Firmware version of the hardware component
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: GPU memory used.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.gpu.memory.utilization
instrument: gauge
unit: '1'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.driver_version
type: string
examples:
- 10.2.1-3
brief: |
Driver version for the hardware component
stability: development
requirement_level: recommended
- key: hw.firmware_version
type: string
examples:
- 2.0.1
brief: |
Firmware version of the hardware component
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Fraction of GPU memory used.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.gpu.utilization
instrument: gauge
unit: '1'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.driver_version
type: string
examples:
- 10.2.1-3
brief: |
Driver version for the hardware component
stability: development
requirement_level: recommended
- key: hw.firmware_version
type: string
examples:
- 2.0.1
brief: |
Firmware version of the hardware component
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.gpu.task
type:
members:
- id: decoder
value: decoder
brief: Decoder
stability: development
- id: encoder
value: encoder
brief: Encoder
stability: development
- id: general
value: general
brief: General
stability: development
examples:
- decoder
- encoder
- general
brief: |
Type of task the GPU is performing
stability: development
requirement_level: recommended
brief: Fraction of time spent in a specific task.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.host.ambient_temperature
instrument: gauge
unit: Cel
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Ambient (external) temperature of the physical host.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.host.energy
instrument: counter
unit: J
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Total energy consumed by the entire physical host, in joules.
note: |
The overall energy usage of a host MUST be reported using the specific `hw.host.energy` and `hw.host.power` metrics **only**, instead of the generic `hw.energy` and `hw.power` described in the previous section, to prevent summing up overlapping values.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.host.heating_margin
instrument: gauge
unit: Cel
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: |
By how many degrees Celsius the temperature of the physical host can be increased, before reaching a warning threshold on one of the internal sensors.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.host.power
instrument: gauge
unit: W
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: |
Instantaneous power consumed by the entire physical host in Watts (`hw.host.energy` is preferred).
note: |
The overall energy usage of a host MUST be reported using the specific `hw.host.energy` and `hw.host.power` metrics **only**, instead of the generic `hw.energy` and `hw.power` described in the previous section, to prevent summing up overlapping values.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.logical_disk.limit
instrument: updowncounter
unit: By
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.logical_disk.raid_level
type: string
examples:
- RAID0+1
- RAID5
- RAID10
brief: |
RAID Level of the logical disk
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Size of the logical disk.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.logical_disk.usage
instrument: updowncounter
unit: By
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.logical_disk.raid_level
type: string
examples:
- RAID0+1
- RAID5
- RAID10
brief: |
RAID Level of the logical disk
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.logical_disk.state
type:
members:
- id: used
value: used
brief: Used
stability: development
- id: free
value: free
brief: Free
stability: development
examples:
- used
- free
brief: |
State of the logical disk space usage
stability: development
requirement_level: required
brief: Logical disk space usage.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.logical_disk.utilization
instrument: gauge
unit: '1'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.logical_disk.raid_level
type: string
examples:
- RAID0+1
- RAID5
- RAID10
brief: |
RAID Level of the logical disk
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.logical_disk.state
type:
members:
- id: used
value: used
brief: Used
stability: development
- id: free
value: free
brief: Free
stability: development
examples:
- used
- free
brief: |
State of the logical disk space usage
stability: development
requirement_level: required
brief: Logical disk space utilization as a fraction.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.memory.size
instrument: updowncounter
unit: By
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.memory.type
type: string
examples:
- DDR4
- DDR5
- LPDDR5
brief: |
Type of the memory module
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Size of the memory module.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.network.bandwidth.limit
instrument: updowncounter
unit: By/s
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.network.logical_addresses
type: string[]
examples:
- - 172.16.8.21
- 57.11.193.42
brief: |
Logical addresses of the adapter (e.g. IP address, or WWPN)
stability: development
requirement_level: recommended
- key: hw.network.physical_address
type: string
examples:
- 00-90-F5-E9-7B-36
brief: |
Physical address of the adapter (e.g. MAC address, or WWNN)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Link speed.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.network.bandwidth.utilization
instrument: gauge
unit: '1'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.network.logical_addresses
type: string[]
examples:
- - 172.16.8.21
- 57.11.193.42
brief: |
Logical addresses of the adapter (e.g. IP address, or WWPN)
stability: development
requirement_level: recommended
- key: hw.network.physical_address
type: string
examples:
- 00-90-F5-E9-7B-36
brief: |
Physical address of the adapter (e.g. MAC address, or WWNN)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Utilization of the network bandwidth as a fraction.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.network.io
instrument: counter
unit: By
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.network.logical_addresses
type: string[]
examples:
- - 172.16.8.21
- 57.11.193.42
brief: |
Logical addresses of the adapter (e.g. IP address, or WWPN)
stability: development
requirement_level: recommended
- key: hw.network.physical_address
type: string
examples:
- 00-90-F5-E9-7B-36
brief: |
Physical address of the adapter (e.g. MAC address, or WWNN)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: network.io.direction
type:
members:
- id: transmit
value: transmit
stability: development
- id: receive
value: receive
stability: development
examples:
- receive
- transmit
brief: The network IO operation direction.
stability: development
requirement_level: required
brief: Received and transmitted network traffic in bytes.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.network.packets
instrument: counter
unit: '{packet}'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.network.logical_addresses
type: string[]
examples:
- - 172.16.8.21
- 57.11.193.42
brief: |
Logical addresses of the adapter (e.g. IP address, or WWPN)
stability: development
requirement_level: recommended
- key: hw.network.physical_address
type: string
examples:
- 00-90-F5-E9-7B-36
brief: |
Physical address of the adapter (e.g. MAC address, or WWNN)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: network.io.direction
type:
members:
- id: transmit
value: transmit
stability: development
- id: receive
value: receive
stability: development
examples:
- receive
- transmit
brief: The network IO operation direction.
stability: development
requirement_level: required
brief: Received and transmitted network traffic in packets (or frames).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.network.up
instrument: updowncounter
unit: '1'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.network.logical_addresses
type: string[]
examples:
- - 172.16.8.21
- 57.11.193.42
brief: |
Logical addresses of the adapter (e.g. IP address, or WWPN)
stability: development
requirement_level: recommended
- key: hw.network.physical_address
type: string
examples:
- 00-90-F5-E9-7B-36
brief: |
Physical address of the adapter (e.g. MAC address, or WWNN)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: 'Link status: `1` (up) or `0` (down).'
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.physical_disk.endurance_utilization
instrument: gauge
unit: '1'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.firmware_version
type: string
examples:
- 2.0.1
brief: |
Firmware version of the hardware component
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.physical_disk.type
type: string
examples:
- HDD
- SSD
- 10K
brief: |
Type of the physical disk
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.physical_disk.state
type:
members:
- id: remaining
value: remaining
brief: Remaining
stability: development
examples:
- remaining
brief: |
State of the physical disk endurance utilization
stability: development
requirement_level: required
brief: Endurance remaining for this SSD disk.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.physical_disk.size
instrument: updowncounter
unit: By
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.firmware_version
type: string
examples:
- 2.0.1
brief: |
Firmware version of the hardware component
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.physical_disk.type
type: string
examples:
- HDD
- SSD
- 10K
brief: |
Type of the physical disk
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Size of the disk.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.physical_disk.smart
instrument: gauge
unit: '1'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.firmware_version
type: string
examples:
- 2.0.1
brief: |
Firmware version of the hardware component
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.physical_disk.type
type: string
examples:
- HDD
- SSD
- 10K
brief: |
Type of the physical disk
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.physical_disk.smart_attribute
type: string
examples:
- Spin Retry Count
- Seek Error Rate
brief: |
[S.M.A.R.T.](https://wikipedia.org/wiki/S.M.A.R.T.) (Self-Monitoring, Analysis, and Reporting Technology) attribute of the physical disk
stability: development
requirement_level: recommended
brief: Value of the corresponding [S.M.A.R.T.](https://wikipedia.org/wiki/S.M.A.R.T.) (Self-Monitoring, Analysis, and Reporting Technology) attribute.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.power
instrument: gauge
unit: W
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.type
type:
members:
- id: battery
value: battery
brief: Battery
stability: development
- id: cpu
value: cpu
brief: CPU
stability: development
- id: disk_controller
value: disk_controller
brief: Disk controller
stability: development
- id: enclosure
value: enclosure
brief: Enclosure
stability: development
- id: fan
value: fan
brief: Fan
stability: development
- id: gpu
value: gpu
brief: GPU
stability: development
- id: logical_disk
value: logical_disk
brief: Logical disk
stability: development
- id: memory
value: memory
brief: Memory
stability: development
- id: network
value: network
brief: Network
stability: development
- id: physical_disk
value: physical_disk
brief: Physical disk
stability: development
- id: power_supply
value: power_supply
brief: Power supply
stability: development
- id: tape_drive
value: tape_drive
brief: Tape drive
stability: development
- id: temperature
value: temperature
brief: Temperature
stability: development
- id: voltage
value: voltage
brief: Voltage
stability: development
brief: |
Type of the component
note: |
Describes the category of the hardware component for which `hw.state` is being reported. For example, `hw.type=temperature` along with `hw.state=degraded` would indicate that the temperature of the hardware component has been reported as `degraded`.
stability: development
requirement_level: required
brief: Instantaneous power consumed by the component.
note: |
It is recommended to report `hw.energy` instead of `hw.power` when possible.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.power_supply.limit
instrument: updowncounter
unit: W
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.limit_type
type:
members:
- id: critical
value: critical
brief: Critical
stability: development
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: high_critical
value: high.critical
brief: High Critical
stability: development
- id: high_degraded
value: high.degraded
brief: High Degraded
stability: development
- id: low_critical
value: low.critical
brief: Low Critical
stability: development
- id: low_degraded
value: low.degraded
brief: Low Degraded
stability: development
- id: max
value: max
brief: Maximum
stability: development
- id: throttled
value: throttled
brief: Throttled
stability: development
- id: turbo
value: turbo
brief: Turbo
stability: development
examples:
- max
- critical
- throttled
brief: |
Type of limit for hardware components
stability: development
requirement_level: recommended
brief: Maximum power output of the power supply.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.power_supply.usage
instrument: updowncounter
unit: W
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Current power output of the power supply.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.power_supply.utilization
instrument: gauge
unit: '1'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Utilization of the power supply as a fraction of its maximum output.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.status
instrument: updowncounter
unit: '1'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.state
type:
members:
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: failed
value: failed
brief: Failed
stability: development
- id: needs_cleaning
value: needs_cleaning
brief: Needs Cleaning
stability: development
- id: ok
value: ok
brief: OK
stability: development
- id: predicted_failure
value: predicted_failure
brief: Predicted Failure
stability: development
brief: |
The current state of the component
stability: development
requirement_level: required
- key: hw.type
type:
members:
- id: battery
value: battery
brief: Battery
stability: development
- id: cpu
value: cpu
brief: CPU
stability: development
- id: disk_controller
value: disk_controller
brief: Disk controller
stability: development
- id: enclosure
value: enclosure
brief: Enclosure
stability: development
- id: fan
value: fan
brief: Fan
stability: development
- id: gpu
value: gpu
brief: GPU
stability: development
- id: logical_disk
value: logical_disk
brief: Logical disk
stability: development
- id: memory
value: memory
brief: Memory
stability: development
- id: network
value: network
brief: Network
stability: development
- id: physical_disk
value: physical_disk
brief: Physical disk
stability: development
- id: power_supply
value: power_supply
brief: Power supply
stability: development
- id: tape_drive
value: tape_drive
brief: Tape drive
stability: development
- id: temperature
value: temperature
brief: Temperature
stability: development
- id: voltage
value: voltage
brief: Voltage
stability: development
brief: |
Type of the component
note: |
Describes the category of the hardware component for which `hw.state` is being reported. For example, `hw.type=temperature` along with `hw.state=degraded` would indicate that the temperature of the hardware component has been reported as `degraded`.
stability: development
requirement_level: required
brief: 'Operational status: `1` (true) or `0` (false) for each of the possible states.'
note: |
`hw.status` is currently specified as an *UpDownCounter* but would ideally be represented using a [*StateSet* as defined in OpenMetrics](https://github.com/prometheus/OpenMetrics/blob/v1.0.0/specification/OpenMetrics.md#stateset). This semantic convention will be updated once *StateSet* is specified in OpenTelemetry. This planned change is not expected to have any consequence on the way users query their timeseries backend to retrieve the values of `hw.status` over time.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.tape_drive.operations
instrument: counter
unit: '{operation}'
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.model
type: string
examples:
- PERC H740P
- Intel(R) Core(TM) i7-10700K
- Dell XPS 15 Battery
brief: |
Descriptive model name of the hardware component
stability: development
requirement_level: recommended
- key: hw.serial_number
type: string
examples:
- CNFCP0123456789
brief: |
Serial number of the hardware component
stability: development
requirement_level: recommended
- key: hw.vendor
type: string
examples:
- Dell
- HP
- Intel
- AMD
- LSI
- Lenovo
brief: |
Vendor name of the hardware component
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.tape_drive.operation_type
type:
members:
- id: mount
value: mount
brief: Mount
stability: development
- id: unmount
value: unmount
brief: Unmount
stability: development
- id: clean
value: clean
brief: Clean
stability: development
examples:
- mount
- unmount
- clean
brief: |
Type of tape drive operation
stability: development
requirement_level: recommended
brief: Operations performed by the tape drive.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: hw.temperature
instrument: gauge
unit: Cel
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.sensor_location
type: string
examples:
- cpu0
- ps1
- INLET
- CPU0_DIE
- AMBIENT
- MOTHERBOARD
- PS0 V3_3
- MAIN_12V
- CPU_VCORE
brief: |
Location of the sensor
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Temperature in degrees Celsius.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.temperature.limit
instrument: gauge
unit: Cel
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.sensor_location
type: string
examples:
- cpu0
- ps1
- INLET
- CPU0_DIE
- AMBIENT
- MOTHERBOARD
- PS0 V3_3
- MAIN_12V
- CPU_VCORE
brief: |
Location of the sensor
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.limit_type
type:
members:
- id: critical
value: critical
brief: Critical
stability: development
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: high_critical
value: high.critical
brief: High Critical
stability: development
- id: high_degraded
value: high.degraded
brief: High Degraded
stability: development
- id: low_critical
value: low.critical
brief: Low Critical
stability: development
- id: low_degraded
value: low.degraded
brief: Low Degraded
stability: development
- id: max
value: max
brief: Maximum
stability: development
- id: throttled
value: throttled
brief: Throttled
stability: development
- id: turbo
value: turbo
brief: Turbo
stability: development
examples:
- low.critical
- low.degraded
- high.degraded
- high.critical
brief: |
Type of limit for hardware components
stability: development
requirement_level: recommended
brief: Temperature limit in degrees Celsius.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.voltage
instrument: gauge
unit: V
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.sensor_location
type: string
examples:
- cpu0
- ps1
- INLET
- CPU0_DIE
- AMBIENT
- MOTHERBOARD
- PS0 V3_3
- MAIN_12V
- CPU_VCORE
brief: |
Location of the sensor
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Voltage measured by the sensor.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.voltage.limit
instrument: gauge
unit: V
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.sensor_location
type: string
examples:
- cpu0
- ps1
- INLET
- CPU0_DIE
- AMBIENT
- MOTHERBOARD
- PS0 V3_3
- MAIN_12V
- CPU_VCORE
brief: |
Location of the sensor
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
- key: hw.limit_type
type:
members:
- id: critical
value: critical
brief: Critical
stability: development
- id: degraded
value: degraded
brief: Degraded
stability: development
- id: high_critical
value: high.critical
brief: High Critical
stability: development
- id: high_degraded
value: high.degraded
brief: High Degraded
stability: development
- id: low_critical
value: low.critical
brief: Low Critical
stability: development
- id: low_degraded
value: low.degraded
brief: Low Degraded
stability: development
- id: max
value: max
brief: Maximum
stability: development
- id: throttled
value: throttled
brief: Throttled
stability: development
- id: turbo
value: turbo
brief: Turbo
stability: development
examples:
- low.critical
- low.degraded
- high.degraded
- high.critical
brief: |
Type of limit for hardware components
stability: development
requirement_level: recommended
brief: Voltage limit in Volts.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: hw.voltage.nominal
instrument: gauge
unit: V
attributes:
- key: hw.name
type: string
examples:
- eth0
brief: |
An easily-recognizable name for the hardware component
stability: development
requirement_level: recommended
- key: hw.parent
type: string
examples:
- dellStorage_perc_0
brief: |
Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
stability: development
requirement_level: recommended
- key: hw.sensor_location
type: string
examples:
- cpu0
- ps1
- INLET
- CPU0_DIE
- AMBIENT
- MOTHERBOARD
- PS0 V3_3
- MAIN_12V
- CPU_VCORE
brief: |
Location of the sensor
stability: development
requirement_level: recommended
- key: hw.id
type: string
examples:
- win32battery_battery_testsysa33_1
brief: |
An identifier for the hardware component, unique within the monitored host
stability: development
requirement_level: required
brief: Nominal (expected) voltage.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: jvm.buffer.count
instrument: updowncounter
unit: '{buffer}'
attributes:
- key: jvm.buffer.pool.name
type: string
examples:
- mapped
- direct
brief: Name of the buffer pool.
note: |
Pool names are generally obtained via [BufferPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/BufferPoolMXBean.html#getName()).
stability: development
requirement_level: recommended
brief: Number of buffers in the pool.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: jvm.buffer.memory.limit
instrument: updowncounter
unit: By
attributes:
- key: jvm.buffer.pool.name
type: string
examples:
- mapped
- direct
brief: Name of the buffer pool.
note: |
Pool names are generally obtained via [BufferPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/BufferPoolMXBean.html#getName()).
stability: development
requirement_level: recommended
brief: Measure of total memory capacity of buffers.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: jvm.buffer.memory.usage
instrument: updowncounter
unit: By
attributes:
- key: jvm.buffer.pool.name
type: string
examples:
- mapped
- direct
brief: Name of the buffer pool.
note: |
Pool names are generally obtained via [BufferPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/BufferPoolMXBean.html#getName()).
stability: development
requirement_level: recommended
brief: Deprecated, use `jvm.buffer.memory.used` instead.
stability: development
deprecated:
reason: renamed
renamed_to: jvm.buffer.memory.used
note: Replaced by `jvm.buffer.memory.used`.
annotations:
code_generation:
metric_value_type: int
- name: jvm.buffer.memory.used
instrument: updowncounter
unit: By
attributes:
- key: jvm.buffer.pool.name
type: string
examples:
- mapped
- direct
brief: Name of the buffer pool.
note: |
Pool names are generally obtained via [BufferPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/BufferPoolMXBean.html#getName()).
stability: development
requirement_level: recommended
brief: Measure of memory used by buffers.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: jvm.class.count
instrument: updowncounter
unit: '{class}'
brief: Number of classes currently loaded.
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: jvm.class.loaded
instrument: counter
unit: '{class}'
brief: Number of classes loaded since JVM start.
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: jvm.class.unloaded
instrument: counter
unit: '{class}'
brief: Number of classes unloaded since JVM start.
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: jvm.cpu.count
instrument: updowncounter
unit: '{cpu}'
brief: Number of processors available to the Java virtual machine.
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: jvm.cpu.recent_utilization
instrument: gauge
unit: '1'
brief: Recent CPU utilization for the process as reported by the JVM.
note: |
The value range is [0.0,1.0]. This utilization is not defined as being for the specific interval since last measurement (unlike `system.cpu.utilization`). [Reference](https://docs.oracle.com/en/java/javase/17/docs/api/jdk.management/com/sun/management/OperatingSystemMXBean.html#getProcessCpuLoad()).
stability: stable
annotations:
code_generation:
metric_value_type: double
- name: jvm.cpu.time
instrument: counter
unit: s
brief: CPU time used by the process as reported by the JVM.
stability: stable
annotations:
code_generation:
metric_value_type: double
- name: jvm.file_descriptor.count
instrument: updowncounter
unit: '{file_descriptor}'
brief: Number of open file descriptors as reported by the JVM.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: jvm.gc.duration
instrument: histogram
unit: s
attributes:
- key: jvm.gc.action
type: string
examples:
- end of minor GC
- end of major GC
brief: Name of the garbage collector action.
note: |
Garbage collector action is generally obtained via [GarbageCollectionNotificationInfo#getGcAction()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcAction()).
stability: stable
requirement_level: recommended
- key: jvm.gc.name
type: string
examples:
- G1 Young Generation
- G1 Old Generation
brief: Name of the garbage collector.
note: |
Garbage collector name is generally obtained via [GarbageCollectionNotificationInfo#getGcName()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcName()).
stability: stable
requirement_level: recommended
- key: jvm.gc.cause
type: string
examples:
- System.gc()
- Allocation Failure
brief: Name of the garbage collector cause.
note: |
Garbage collector cause is generally obtained via [GarbageCollectionNotificationInfo#getGcCause()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcCause()).
stability: development
requirement_level: opt_in
brief: Duration of JVM garbage collection actions.
stability: stable
annotations:
code_generation:
metric_value_type: double
- name: jvm.memory.committed
instrument: updowncounter
unit: By
attributes:
- key: jvm.memory.type
type:
members:
- id: heap
value: heap
brief: Heap memory.
stability: stable
- id: non_heap
value: non_heap
brief: Non-heap memory
stability: stable
examples:
- heap
- non_heap
brief: The type of memory.
stability: stable
requirement_level: recommended
- key: jvm.memory.pool.name
type: string
examples:
- G1 Old Gen
- G1 Eden space
- G1 Survivor Space
brief: Name of the memory pool.
note: |
Pool names are generally obtained via [MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()).
stability: stable
requirement_level: recommended
brief: Measure of memory committed.
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: jvm.memory.init
instrument: updowncounter
unit: By
attributes:
- key: jvm.memory.type
type:
members:
- id: heap
value: heap
brief: Heap memory.
stability: stable
- id: non_heap
value: non_heap
brief: Non-heap memory
stability: stable
examples:
- heap
- non_heap
brief: The type of memory.
stability: stable
requirement_level: recommended
- key: jvm.memory.pool.name
type: string
examples:
- G1 Old Gen
- G1 Eden space
- G1 Survivor Space
brief: Name of the memory pool.
note: |
Pool names are generally obtained via [MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()).
stability: stable
requirement_level: recommended
brief: Measure of initial memory requested.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: jvm.memory.limit
instrument: updowncounter
unit: By
attributes:
- key: jvm.memory.type
type:
members:
- id: heap
value: heap
brief: Heap memory.
stability: stable
- id: non_heap
value: non_heap
brief: Non-heap memory
stability: stable
examples:
- heap
- non_heap
brief: The type of memory.
stability: stable
requirement_level: recommended
- key: jvm.memory.pool.name
type: string
examples:
- G1 Old Gen
- G1 Eden space
- G1 Survivor Space
brief: Name of the memory pool.
note: |
Pool names are generally obtained via [MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()).
stability: stable
requirement_level: recommended
brief: Measure of max obtainable memory.
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: jvm.memory.used
instrument: updowncounter
unit: By
attributes:
- key: jvm.memory.type
type:
members:
- id: heap
value: heap
brief: Heap memory.
stability: stable
- id: non_heap
value: non_heap
brief: Non-heap memory
stability: stable
examples:
- heap
- non_heap
brief: The type of memory.
stability: stable
requirement_level: recommended
- key: jvm.memory.pool.name
type: string
examples:
- G1 Old Gen
- G1 Eden space
- G1 Survivor Space
brief: Name of the memory pool.
note: |
Pool names are generally obtained via [MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()).
stability: stable
requirement_level: recommended
brief: Measure of memory used.
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: jvm.memory.used_after_last_gc
instrument: updowncounter
unit: By
attributes:
- key: jvm.memory.type
type:
members:
- id: heap
value: heap
brief: Heap memory.
stability: stable
- id: non_heap
value: non_heap
brief: Non-heap memory
stability: stable
examples:
- heap
- non_heap
brief: The type of memory.
stability: stable
requirement_level: recommended
- key: jvm.memory.pool.name
type: string
examples:
- G1 Old Gen
- G1 Eden space
- G1 Survivor Space
brief: Name of the memory pool.
note: |
Pool names are generally obtained via [MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()).
stability: stable
requirement_level: recommended
brief: Measure of memory used, as measured after the most recent garbage collection event on this pool.
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: jvm.system.cpu.load_1m
instrument: gauge
unit: '{run_queue_item}'
brief: Average CPU load of the whole system for the last minute as reported by the JVM.
note: |
The value range is [0,n], where n is the number of CPU cores - or a negative number if the value is not available. This utilization is not defined as being for the specific interval since last measurement (unlike `system.cpu.utilization`). [Reference](https://docs.oracle.com/en/java/javase/17/docs/api/java.management/java/lang/management/OperatingSystemMXBean.html#getSystemLoadAverage()).
stability: development
annotations:
code_generation:
metric_value_type: double
- name: jvm.system.cpu.utilization
instrument: gauge
unit: '1'
brief: Recent CPU utilization for the whole system as reported by the JVM.
note: |
The value range is [0.0,1.0]. This utilization is not defined as being for the specific interval since last measurement (unlike `system.cpu.utilization`). [Reference](https://docs.oracle.com/en/java/javase/17/docs/api/jdk.management/com/sun/management/OperatingSystemMXBean.html#getCpuLoad()).
stability: development
annotations:
code_generation:
metric_value_type: double
- name: jvm.thread.count
instrument: updowncounter
unit: '{thread}'
attributes:
- key: jvm.thread.daemon
type: boolean
brief: Whether the thread is daemon or not.
stability: stable
requirement_level: recommended
- key: jvm.thread.state
type:
members:
- id: new
value: new
brief: A thread that has not yet started is in this state.
stability: stable
- id: runnable
value: runnable
brief: A thread executing in the Java virtual machine is in this state.
stability: stable
- id: blocked
value: blocked
brief: A thread that is blocked waiting for a monitor lock is in this state.
stability: stable
- id: waiting
value: waiting
brief: A thread that is waiting indefinitely for another thread to perform a particular action is in this state.
stability: stable
- id: timed_waiting
value: timed_waiting
brief: A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state.
stability: stable
- id: terminated
value: terminated
brief: A thread that has exited is in this state.
stability: stable
examples:
- runnable
- blocked
brief: State of the thread.
stability: stable
requirement_level: recommended
brief: Number of executing platform threads.
stability: stable
annotations:
code_generation:
metric_value_type: int
- name: k8s.container.cpu.limit
instrument: updowncounter
unit: '{cpu}'
entity_associations:
- k8s.container
brief: Maximum CPU resource limit set for the container.
note: |
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: k8s.container.cpu.limit_utilization
instrument: gauge
unit: '1'
entity_associations:
- k8s.container
brief: The ratio of container CPU usage to its CPU limit.
note: |
The value range is [0.0,1.0]. A value of 1.0 means the container is using 100% of its CPU limit. If the CPU limit is not set, this metric SHOULD NOT be emitted for that container.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: k8s.container.cpu.request
instrument: updowncounter
unit: '{cpu}'
entity_associations:
- k8s.container
brief: CPU resource requested for the container.
note: |
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: k8s.container.cpu.request_utilization
instrument: gauge
unit: '1'
entity_associations:
- k8s.container
brief: The ratio of container CPU usage to its CPU request.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: k8s.container.ephemeral_storage.limit
instrument: updowncounter
unit: By
entity_associations:
- k8s.container
brief: Maximum ephemeral storage resource limit set for the container.
note: |
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.container.ephemeral_storage.request
instrument: updowncounter
unit: By
entity_associations:
- k8s.container
brief: Ephemeral storage resource requested for the container.
note: |
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.container.memory.limit
instrument: updowncounter
unit: By
entity_associations:
- k8s.container
brief: Maximum memory resource limit set for the container.
note: |
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.container.memory.request
instrument: updowncounter
unit: By
entity_associations:
- k8s.container
brief: Memory resource requested for the container.
note: |
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.container.ready
instrument: updowncounter
unit: '{container}'
entity_associations:
- k8s.container
brief: |
Indicates whether the container is currently marked as ready to accept traffic, based on its readiness probe (1 = ready, 0 = not ready).
note: |
This metric SHOULD reflect the value of the `ready` field in the
[K8s ContainerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#containerstatus-v1-core).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.container.restart.count
instrument: updowncounter
unit: '{restart}'
entity_associations:
- k8s.container
brief: Describes how many times the container has restarted (since the last counter reset).
note: |
This value is pulled directly from the K8s API and the value can go indefinitely high and be reset to 0
at any time depending on how your kubelet is configured to prune dead containers.
It is best to not depend too much on the exact value but rather look at it as
either == 0, in which case you can conclude there were no restarts in the recent past, or > 0, in which case
you can conclude there were restarts in the recent past, and not try and analyze the value beyond that.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.container.status.reason
instrument: updowncounter
unit: '{container}'
attributes:
- key: k8s.container.status.reason
type:
members:
- id: container_creating
value: ContainerCreating
brief: The container is being created.
stability: development
- id: crash_loop_back_off
value: CrashLoopBackOff
brief: The container is in a crash loop back off state.
stability: development
- id: create_container_config_error
value: CreateContainerConfigError
brief: There was an error creating the container configuration.
stability: development
- id: err_image_pull
value: ErrImagePull
brief: There was an error pulling the container image.
stability: development
- id: image_pull_back_off
value: ImagePullBackOff
brief: The container image pull is in back off state.
stability: development
- id: oom_killed
value: OOMKilled
brief: The container was killed due to out of memory.
stability: development
- id: completed
value: Completed
brief: The container has completed execution.
stability: development
- id: error
value: Error
brief: There was an error with the container.
stability: development
- id: container_cannot_run
value: ContainerCannotRun
brief: The container cannot run.
stability: development
examples:
- ContainerCreating
- CrashLoopBackOff
- CreateContainerConfigError
- ErrImagePull
- ImagePullBackOff
- OOMKilled
- Completed
- Error
- ContainerCannotRun
brief: |
The reason for the container state. Corresponds to the `reason` field of the: [K8s ContainerStateWaiting](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#containerstatewaiting-v1-core) or [K8s ContainerStateTerminated](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#containerstateterminated-v1-core)
stability: development
requirement_level: required
entity_associations:
- k8s.container
brief: Describes the number of K8s containers that are currently in a state for a given reason.
note: |
All possible container state reasons will be reported at each time interval to avoid missing metrics.
Only the value corresponding to the current state reason will be non-zero.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.container.status.state
instrument: updowncounter
unit: '{container}'
attributes:
- key: k8s.container.status.state
type:
members:
- id: terminated
value: terminated
brief: The container has terminated.
stability: development
- id: running
value: running
brief: The container is running.
stability: development
- id: waiting
value: waiting
brief: The container is waiting.
stability: development
examples:
- terminated
- running
- waiting
brief: |
The state of the container. [K8s ContainerState](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#containerstate-v1-core)
stability: development
requirement_level: required
entity_associations:
- k8s.container
brief: Describes the number of K8s containers that are currently in a given state.
note: |
All possible container states will be reported at each time interval to avoid missing metrics.
Only the value corresponding to the current state will be non-zero.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.container.storage.limit
instrument: updowncounter
unit: By
entity_associations:
- k8s.container
brief: Maximum storage resource limit set for the container.
note: |
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.container.storage.request
instrument: updowncounter
unit: By
entity_associations:
- k8s.container
brief: Storage resource requested for the container.
note: |
See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.cronjob.active_jobs
instrument: updowncounter
unit: '{job}'
entity_associations:
- k8s.cronjob
brief: Deprecated, use `k8s.cronjob.job.active` instead.
note: |
This metric aligns with the `active` field of the
[K8s CronJobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#cronjobstatus-v1-batch).
stability: development
deprecated:
reason: renamed
renamed_to: k8s.cronjob.job.active
note: Replaced by `k8s.cronjob.job.active`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.cronjob.job.active
instrument: updowncounter
unit: '{job}'
entity_associations:
- k8s.cronjob
brief: The number of actively running jobs for a cronjob.
note: |
This metric aligns with the `active` field of the
[K8s CronJobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#cronjobstatus-v1-batch).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.daemonset.current_scheduled_nodes
instrument: updowncounter
unit: '{node}'
entity_associations:
- k8s.daemonset
brief: Deprecated, use `k8s.daemonset.node.current_scheduled` instead.
note: |
This metric aligns with the `currentNumberScheduled` field of the
[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).
stability: development
deprecated:
reason: renamed
renamed_to: k8s.daemonset.node.current_scheduled
note: Replaced by `k8s.daemonset.node.current_scheduled`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.daemonset.desired_scheduled_nodes
instrument: updowncounter
unit: '{node}'
entity_associations:
- k8s.daemonset
brief: Deprecated, use `k8s.daemonset.node.desired_scheduled` instead.
note: |
This metric aligns with the `desiredNumberScheduled` field of the
[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).
stability: development
deprecated:
reason: renamed
renamed_to: k8s.daemonset.node.desired_scheduled
note: Replaced by `k8s.daemonset.node.desired_scheduled`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.daemonset.misscheduled_nodes
instrument: updowncounter
unit: '{node}'
entity_associations:
- k8s.daemonset
brief: Deprecated, use `k8s.daemonset.node.misscheduled` instead.
note: |
This metric aligns with the `numberMisscheduled` field of the
[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).
stability: development
deprecated:
reason: renamed
renamed_to: k8s.daemonset.node.misscheduled
note: Replaced by `k8s.daemonset.node.misscheduled`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.daemonset.node.current_scheduled
instrument: updowncounter
unit: '{node}'
entity_associations:
- k8s.daemonset
brief: Number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod.
note: |
This metric aligns with the `currentNumberScheduled` field of the
[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.daemonset.node.desired_scheduled
instrument: updowncounter
unit: '{node}'
entity_associations:
- k8s.daemonset
brief: Number of nodes that should be running the daemon pod (including nodes currently running the daemon pod).
note: |
This metric aligns with the `desiredNumberScheduled` field of the
[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.daemonset.node.misscheduled
instrument: updowncounter
unit: '{node}'
entity_associations:
- k8s.daemonset
brief: Number of nodes that are running the daemon pod, but are not supposed to run the daemon pod.
note: |
This metric aligns with the `numberMisscheduled` field of the
[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.daemonset.node.ready
instrument: updowncounter
unit: '{node}'
entity_associations:
- k8s.daemonset
brief: Number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.
note: |
This metric aligns with the `numberReady` field of the
[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.daemonset.ready_nodes
instrument: updowncounter
unit: '{node}'
entity_associations:
- k8s.daemonset
brief: Deprecated, use `k8s.daemonset.node.ready` instead.
note: |
This metric aligns with the `numberReady` field of the
[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).
stability: development
deprecated:
reason: renamed
renamed_to: k8s.daemonset.node.ready
note: Replaced by `k8s.daemonset.node.ready`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.deployment.available_pods
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.deployment
brief: Deprecated, use `k8s.deployment.pod.available` instead.
note: |
This metric aligns with the `availableReplicas` field of the
[K8s DeploymentStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#deploymentstatus-v1-apps).
stability: development
deprecated:
reason: renamed
renamed_to: k8s.deployment.pod.available
note: Replaced by `k8s.deployment.pod.available`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.deployment.desired_pods
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.deployment
brief: Deprecated, use `k8s.deployment.pod.desired` instead.
note: |
This metric aligns with the `replicas` field of the
[K8s DeploymentSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#deploymentspec-v1-apps).
stability: development
deprecated:
reason: renamed
renamed_to: k8s.deployment.pod.desired
note: Replaced by `k8s.deployment.pod.desired`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.deployment.pod.available
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.deployment
brief: Total number of available replica pods (ready for at least minReadySeconds) targeted by this deployment.
note: |
This metric aligns with the `availableReplicas` field of the
[K8s DeploymentStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#deploymentstatus-v1-apps).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.deployment.pod.desired
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.deployment
brief: Number of desired replica pods in this deployment.
note: |
This metric aligns with the `replicas` field of the
[K8s DeploymentSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#deploymentspec-v1-apps).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.hpa.current_pods
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.hpa
brief: Deprecated, use `k8s.hpa.pod.current` instead.
note: |
This metric aligns with the `currentReplicas` field of the
[K8s HorizontalPodAutoscalerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerstatus-v2-autoscaling)
stability: development
deprecated:
reason: renamed
renamed_to: k8s.hpa.pod.current
note: Replaced by `k8s.hpa.pod.current`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.hpa.desired_pods
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.hpa
brief: Deprecated, use `k8s.hpa.pod.desired` instead.
note: |
This metric aligns with the `desiredReplicas` field of the
[K8s HorizontalPodAutoscalerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerstatus-v2-autoscaling)
stability: development
deprecated:
reason: renamed
renamed_to: k8s.hpa.pod.desired
note: Replaced by `k8s.hpa.pod.desired`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.hpa.max_pods
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.hpa
brief: Deprecated, use `k8s.hpa.pod.max` instead.
note: |
This metric aligns with the `maxReplicas` field of the
[K8s HorizontalPodAutoscalerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerspec-v2-autoscaling)
stability: development
deprecated:
reason: renamed
renamed_to: k8s.hpa.pod.max
note: Replaced by `k8s.hpa.pod.max`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.hpa.metric.target.cpu.average_utilization
instrument: gauge
unit: '1'
attributes:
- key: k8s.hpa.metric.type
type: string
examples:
- Resource
- ContainerResource
brief: |
The type of metric source for the horizontal pod autoscaler.
note: |
This attribute reflects the `type` field of spec.metrics[] in the HPA.
stability: development
requirement_level: recommended
- key: k8s.container.name
type: string
examples:
- redis
brief: |
The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (`container.name`).
stability: development
requirement_level:
conditionally_required: if and only if k8s.hpa.metric.type is ContainerResource.
entity_associations:
- k8s.hpa
- k8s.namespace
brief: Target average utilization, in percentage, for CPU resource in HPA config.
note: |
This metric aligns with the `averageUtilization` field of the
[K8s HPA MetricTarget](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#metrictarget-v2-autoscaling).
If the type of the metric is [`ContainerResource`](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-metrics-apis),
the `k8s.container.name` attribute MUST be set to identify the specific container within the pod to which the metric applies.
stability: development
- name: k8s.hpa.metric.target.cpu.average_value
instrument: gauge
unit: '{cpu}'
attributes:
- key: k8s.hpa.metric.type
type: string
examples:
- Resource
- ContainerResource
brief: |
The type of metric source for the horizontal pod autoscaler.
note: |
This attribute reflects the `type` field of spec.metrics[] in the HPA.
stability: development
requirement_level: recommended
- key: k8s.container.name
type: string
examples:
- redis
brief: |
The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (`container.name`).
stability: development
requirement_level:
conditionally_required: if and only if k8s.hpa.metric.type is ContainerResource
entity_associations:
- k8s.hpa
- k8s.namespace
brief: Target average value for CPU resource in HPA config.
note: |
This metric aligns with the `averageValue` field of the
[K8s HPA MetricTarget](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#metrictarget-v2-autoscaling).
If the type of the metric is [`ContainerResource`](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-metrics-apis),
the `k8s.container.name` attribute MUST be set to identify the specific container within the pod to which the metric applies.
stability: development
- name: k8s.hpa.metric.target.cpu.value
instrument: gauge
unit: '{cpu}'
attributes:
- key: k8s.hpa.metric.type
type: string
examples:
- Resource
- ContainerResource
brief: |
The type of metric source for the horizontal pod autoscaler.
note: |
This attribute reflects the `type` field of spec.metrics[] in the HPA.
stability: development
requirement_level: recommended
- key: k8s.container.name
type: string
examples:
- redis
brief: |
The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (`container.name`).
stability: development
requirement_level:
conditionally_required: if and only if k8s.hpa.metric.type is ContainerResource
entity_associations:
- k8s.hpa
- k8s.namespace
brief: Target value for CPU resource in HPA config.
note: |
This metric aligns with the `value` field of the
[K8s HPA MetricTarget](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#metrictarget-v2-autoscaling).
If the type of the metric is [`ContainerResource`](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-metrics-apis),
the `k8s.container.name` attribute MUST be set to identify the specific container within the pod to which the metric applies.
stability: development
- name: k8s.hpa.min_pods
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.hpa
brief: Deprecated, use `k8s.hpa.pod.min` instead.
note: |
This metric aligns with the `minReplicas` field of the
[K8s HorizontalPodAutoscalerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerspec-v2-autoscaling)
stability: development
deprecated:
reason: renamed
renamed_to: k8s.hpa.pod.min
note: Replaced by `k8s.hpa.pod.min`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.hpa.pod.current
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.hpa
brief: Current number of replica pods managed by this horizontal pod autoscaler, as last seen by the autoscaler.
note: |
This metric aligns with the `currentReplicas` field of the
[K8s HorizontalPodAutoscalerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerstatus-v2-autoscaling)
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.hpa.pod.desired
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.hpa
brief: Desired number of replica pods managed by this horizontal pod autoscaler, as last calculated by the autoscaler.
note: |
This metric aligns with the `desiredReplicas` field of the
[K8s HorizontalPodAutoscalerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerstatus-v2-autoscaling)
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.hpa.pod.max
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.hpa
brief: The upper limit for the number of replica pods to which the autoscaler can scale up.
note: |
This metric aligns with the `maxReplicas` field of the
[K8s HorizontalPodAutoscalerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerspec-v2-autoscaling)
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.hpa.pod.min
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.hpa
brief: The lower limit for the number of replica pods to which the autoscaler can scale down.
note: |
This metric aligns with the `minReplicas` field of the
[K8s HorizontalPodAutoscalerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerspec-v2-autoscaling)
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.job.active_pods
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.job
brief: Deprecated, use `k8s.job.pod.active` instead.
note: |
This metric aligns with the `active` field of the
[K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch).
stability: development
deprecated:
reason: renamed
renamed_to: k8s.job.pod.active
note: Replaced by `k8s.job.pod.active`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.job.desired_successful_pods
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.job
brief: Deprecated, use `k8s.job.pod.desired_successful` instead.
note: |
This metric aligns with the `completions` field of the
[K8s JobSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobspec-v1-batch)..
stability: development
deprecated:
reason: renamed
renamed_to: k8s.job.pod.desired_successful
note: Replaced by `k8s.job.pod.desired_successful`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.job.failed_pods
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.job
brief: Deprecated, use `k8s.job.pod.failed` instead.
note: |
This metric aligns with the `failed` field of the
[K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch).
stability: development
deprecated:
reason: renamed
renamed_to: k8s.job.pod.failed
note: Replaced by `k8s.job.pod.failed`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.job.max_parallel_pods
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.job
brief: Deprecated, use `k8s.job.pod.max_parallel` instead.
note: |
This metric aligns with the `parallelism` field of the
[K8s JobSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobspec-v1-batch).
stability: development
deprecated:
reason: renamed
renamed_to: k8s.job.pod.max_parallel
note: Replaced by `k8s.job.pod.max_parallel`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.job.pod.active
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.job
brief: The number of pending and actively running pods for a job.
note: |
This metric aligns with the `active` field of the
[K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.job.pod.desired_successful
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.job
brief: The desired number of successfully finished pods the job should be run with.
note: |
This metric aligns with the `completions` field of the
[K8s JobSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobspec-v1-batch)..
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.job.pod.failed
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.job
brief: The number of pods which reached phase Failed for a job.
note: |
This metric aligns with the `failed` field of the
[K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.job.pod.max_parallel
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.job
brief: The max desired number of pods the job should run at any given time.
note: |
This metric aligns with the `parallelism` field of the
[K8s JobSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobspec-v1-batch).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.job.pod.successful
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.job
brief: The number of pods which reached phase Succeeded for a job.
note: |
This metric aligns with the `succeeded` field of the
[K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch).
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.job.successful_pods
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.job
brief: Deprecated, use `k8s.job.pod.successful` instead.
note: |
This metric aligns with the `succeeded` field of the
[K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch).
stability: development
deprecated:
reason: renamed
renamed_to: k8s.job.pod.successful
note: Replaced by `k8s.job.pod.successful`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.namespace.phase
instrument: updowncounter
unit: '{namespace}'
attributes:
- key: k8s.namespace.phase
type:
members:
- id: active
value: active
brief: Active namespace phase as described by [K8s API](https://pkg.go.dev/k8s.io/[email protected]/core/v1#NamespacePhase)
stability: development
- id: terminating
value: terminating
brief: Terminating namespace phase as described by [K8s API](https://pkg.go.dev/k8s.io/[email protected]/core/v1#NamespacePhase)
stability: development
examples:
- active
- terminating
brief: |
The phase of the K8s namespace.
note: |
This attribute aligns with the `phase` field of the
[K8s NamespaceStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#namespacestatus-v1-core)
stability: development
requirement_level: required
entity_associations:
- k8s.namespace
brief: Describes number of K8s namespaces that are currently in a given phase.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.node.allocatable.cpu
instrument: updowncounter
unit: '{cpu}'
entity_associations:
- k8s.node
brief: Deprecated, use `k8s.node.cpu.allocatable` instead.
stability: development
deprecated:
reason: renamed
renamed_to: k8s.node.cpu.allocatable
note: Replaced by `k8s.node.cpu.allocatable`.
annotations:
code_generation:
metric_value_type: double
- name: k8s.node.allocatable.ephemeral_storage
instrument: updowncounter
unit: By
entity_associations:
- k8s.node
brief: Deprecated, use `k8s.node.ephemeral_storage.allocatable` instead.
stability: development
deprecated:
reason: renamed
renamed_to: k8s.node.ephemeral_storage.allocatable
note: Replaced by `k8s.node.ephemeral_storage.allocatable`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.node.allocatable.memory
instrument: updowncounter
unit: By
entity_associations:
- k8s.node
brief: Deprecated, use `k8s.node.memory.allocatable` instead.
stability: development
deprecated:
reason: renamed
renamed_to: k8s.node.memory.allocatable
note: Replaced by `k8s.node.memory.allocatable`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.node.allocatable.pods
instrument: updowncounter
unit: '{pod}'
entity_associations:
- k8s.node
brief: Deprecated, use `k8s.node.pod.allocatable` instead.
stability: development
deprecated:
reason: renamed
renamed_to: k8s.node.pod.allocatable
note: Replaced by `k8s.node.pod.allocatable`.
annotations:
code_generation:
metric_value_type: int
- name: k8s.node.condition.status
instrument: updowncounter
unit: '{node}'
attributes:
- key: k8s.node.condition.type
type:
members:
- id: ready
value: Ready
brief: The node is healthy and ready to accept pods
stability: development
- id: disk_pressure
value: DiskPressure
brief: Pressure exists on the disk size—that is, if the disk capacity is low
stability: development
- id: memory_pressure
value: MemoryPressure
brief: Pressure exists on the node memory—that is, if the node memory is low
stability: development
- id: pid_pressure
value: PIDPressure
brief: Pressure exists on the processes—that is, if there are too many processes on the node
stability: development
- id: network_unavailable
value: NetworkUnavailable
brief: The network for the node is not correctly configured
stability: development
examples:
- Ready
- DiskPressure
brief: |
The condition type of a K8s Node.
note: |
K8s Node conditions as described
by [K8s documentation](https://v1-32.docs.kubernetes.io/docs/reference/node/node-status/#condition).
This attribute aligns with the `type` field of the
[NodeCondition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#nodecondition-v1-core)
The set of possible values is not limited to those listed here. Managed Kubernetes environments,
or custom controllers MAY introduce additional node condition types.
When this occurs, the exact value as reported by the Kubernetes API SHOULD be used.
stability: development
requirement_level: required
- key: k8s.node.condition.status
type:
members:
- id: condition_true
value: 'true'
stability: development
- id: condition_false
value: 'false'
stability: development
- id: condition_unknown
value: unknown
stability: development
examples:
- 'true'
- 'false'
- unknown
brief: |
The status of the condition, one of True, False, Unknown.
note: |
This attribute aligns with the `status` field of the
[NodeCondition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#nodecondition-v1-core)
stability: development
requirement_level: required
entity_associations:
- k8s.node
brief: Describes the condition of a particular Node.
note: |
All possible node condition pairs (type and status) will be reported at each time interval to avoid missing metrics. Condition pairs corresponding to the current conditions' statuses will be non-zero.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.node.cpu.allocatable
instrument: updowncounter
unit: '{cpu}'
entity_associations:
- k8s.node
brief: Amount of cpu allocatable on the node.
stability: development
annotations:
code_generation:
metric_value_type: double
- name: k8s.node.cpu.time
instrument: counter
unit: s
entity_associations:
- k8s.node
brief: Total CPU time consumed.
note: |
Total CPU time consumed by the specific Node on all available CPU cores
stability: development
annotations:
code_generation:
metric_value_type: double
- name: k8s.node.cpu.usage
instrument: gauge
unit: '{cpu}'
entity_associations:
- k8s.node
brief: Node's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs.
note: |
CPU usage of the specific Node on all available CPU cores, averaged over the sample window
stability: development
annotations:
code_generation:
metric_value_type: double
- name: k8s.node.ephemeral_storage.allocatable
instrument: updowncounter
unit: By
entity_associations:
- k8s.node
brief: Amount of ephemeral-storage allocatable on the node.
stability: development
annotations:
code_generation:
metric_value_type: int
- name: k8s.node.filesystem.available
instrument: updowncounter
unit: By
entity_associatio
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment