1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2025-02-05 13:15:41 +02:00

semconv-gen: fix capitalization at word boundaries, add stability/deprecation indicators (#2033)

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
This commit is contained in:
Anthony Mirabella 2021-06-28 12:11:49 -04:00 committed by GitHub
parent 0bceed7e01
commit 62af6c7077
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 207 additions and 4 deletions

View File

@ -270,6 +270,7 @@ var capitalizations = []string{
"ARNs",
"ASCII",
"AWS",
"CPP",
"CPU",
"CSS",
"DB",
@ -369,7 +370,7 @@ func fixIdentifiers(cfg config) error {
// Match the title-cased capitalization target, asserting that its followed by
// either a capital letter, whitespace, a digit, or the end of text.
// This is to avoid, e.g., turning "Identifier" into "IDentifier".
re := regexp.MustCompile(strings.Title(strings.ToLower(init)) + `([A-Z\s\d]|$)`)
re := regexp.MustCompile(strings.Title(strings.ToLower(init)) + `([A-Z\s\d]|\b|$)`)
// RE2 does not support zero-width lookahead assertions, so we have to replace
// the last character that may have matched the first capture group in the
// expression constructed above.

View File

@ -23,6 +23,10 @@ Required: {{ attr.required_msg }}
{%- else %}
Required: No
{%- endif %}
{{ attr.stability | replace("Level.", ": ") | capitalize }}
{%- if attr.deprecated != None %}
Deprecated: {{ attr.deprecated }}
{%- endif %}
{%- if attr.examples is iterable %}
Examples: {{ attr.examples | pprint | trim("[]") }}
{%- endif %}

View File

@ -24,12 +24,14 @@ const (
//
// Type: Enum
// Required: No
// Stability: stable
// Examples: 'gcp'
CloudProviderKey = attribute.Key("cloud.provider")
// The cloud account ID the resource is assigned to.
//
// Type: string
// Required: No
// Stability: stable
// Examples: '111111111111', 'opentelemetry'
CloudAccountIDKey = attribute.Key("cloud.account.id")
// The geographical region the resource is running. Refer to your provider's docs
@ -41,6 +43,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'us-central1', 'us-east-1'
CloudRegionKey = attribute.Key("cloud.region")
// Cloud regions often have multiple, isolated locations known as zones to
@ -49,6 +52,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'us-east-1c'
// Note: Availability zones are called "zones" on Google Cloud.
CloudAvailabilityZoneKey = attribute.Key("cloud.availability_zone")
@ -56,6 +60,7 @@ const (
//
// Type: Enum
// Required: No
// Stability: stable
// Examples: 'aws_ec2', 'azure_vm', 'gcp_compute_engine'
// Note: The prefix of the service SHOULD match the one specified in
// `cloud.provider`.
@ -111,6 +116,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'arn:aws:ecs:us-
// west-1:123456789123:container/32624152-9086-4f0e-acae-1a75b14fe4d9'
AWSECSContainerARNKey = attribute.Key("aws.ecs.container.arn")
@ -119,6 +125,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster'
AWSECSClusterARNKey = attribute.Key("aws.ecs.cluster.arn")
// The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/l
@ -126,6 +133,7 @@ const (
//
// Type: Enum
// Required: No
// Stability: stable
// Examples: 'ec2', 'fargate'
AWSECSLaunchtypeKey = attribute.Key("aws.ecs.launchtype")
// The ARN of an [ECS task definition](https://docs.aws.amazon.com/AmazonECS/lates
@ -133,6 +141,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'arn:aws:ecs:us-
// west-1:123456789123:task/10838bed-421f-43ef-870a-f43feacbbb5b'
AWSECSTaskARNKey = attribute.Key("aws.ecs.task.arn")
@ -140,12 +149,14 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry-family'
AWSECSTaskFamilyKey = attribute.Key("aws.ecs.task.family")
// The revision for this task definition.
//
// Type: string
// Required: No
// Stability: stable
// Examples: '8', '26'
AWSECSTaskRevisionKey = attribute.Key("aws.ecs.task.revision")
)
@ -163,6 +174,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster'
AWSEKSClusterARNKey = attribute.Key("aws.eks.cluster.arn")
)
@ -173,6 +185,7 @@ const (
//
// Type: string[]
// Required: No
// Stability: stable
// Examples: '/aws/lambda/my-function', 'opentelemetry-service'
// Note: Multiple log groups must be supported for cases like multi-container
// applications, where a single application has sidecar containers, and each write
@ -182,6 +195,7 @@ const (
//
// Type: string[]
// Required: No
// Stability: stable
// Examples: 'arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:*'
// Note: See the [log group ARN format
// documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-
@ -191,12 +205,14 @@ const (
//
// Type: string[]
// Required: No
// Stability: stable
// Examples: 'logs/main/10838bed-421f-43ef-870a-f43feacbbb5b'
AWSLogStreamNamesKey = attribute.Key("aws.log.stream.names")
// The ARN(s) of the AWS log stream(s).
//
// Type: string[]
// Required: No
// Stability: stable
// Examples: 'arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:log-
// stream:logs/main/10838bed-421f-43ef-870a-f43feacbbb5b'
// Note: See the [log stream ARN format
@ -213,6 +229,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry-autoconf'
ContainerNameKey = attribute.Key("container.name")
// Container ID. Usually a UUID, as for example used to [identify Docker
@ -221,24 +238,28 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'a3bf90e006b2'
ContainerIDKey = attribute.Key("container.id")
// The container runtime managing this container.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'docker', 'containerd', 'rkt'
ContainerRuntimeKey = attribute.Key("container.runtime")
// Name of the image the container was built on.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'gcr.io/opentelemetry/operator'
ContainerImageNameKey = attribute.Key("container.image.name")
// Container image tag.
//
// Type: string
// Required: No
// Stability: stable
// Examples: '0.1'
ContainerImageTagKey = attribute.Key("container.image.tag")
)
@ -251,6 +272,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'staging', 'production'
DeploymentEnvironmentKey = attribute.Key("deployment.environment")
)
@ -261,6 +283,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '2ab2916d-a51f-4ac8-80ee-45ac31a28092'
// Note: The device identifier MUST only be defined using the values outlined
// below. This value is not an advertising identifier and MUST NOT be used as
@ -278,6 +301,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'iPhone3,4', 'SM-G920F'
// 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
@ -287,6 +311,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'iPhone 6s Plus', 'Samsung Galaxy S6'
// Note: It's recommended this value represents a human readable version of the
// device model rather than a machine readable alternative.
@ -299,12 +324,14 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'my-function'
FaaSNameKey = attribute.Key("faas.name")
// The unique ID of the function being executed.
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'arn:aws:lambda:us-west-2:123456789012:function:my-function'
// Note: For example, in AWS Lambda this field corresponds to the
// [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-
@ -317,18 +344,21 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '2.0.0'
FaaSVersionKey = attribute.Key("faas.version")
// The execution environment ID as a string.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'my-function:instance-0001'
FaaSInstanceKey = attribute.Key("faas.instance")
// The amount of memory available to the serverless function in MiB.
//
// Type: int
// Required: No
// Stability: stable
// Examples: 128
// 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,
@ -344,6 +374,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry-test'
HostIDKey = attribute.Key("host.id")
// Name of the host. On Unix systems, it may contain what the hostname command
@ -352,29 +383,34 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry-test'
HostNameKey = attribute.Key("host.name")
// Type of host. For Cloud, this must be the machine type.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'n1-standard-1'
HostTypeKey = attribute.Key("host.type")
// The CPU architecture the host system is running on.
//
// Type: Enum
// Required: No
// Stability: stable
HostArchKey = attribute.Key("host.arch")
// Name of the VM image or OS install the host was instantiated from.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'infra-ami-eks-worker-node-7d4ec78312', 'CentOS-8-x86_64-1905'
HostImageNameKey = attribute.Key("host.image.name")
// VM image ID. For Cloud, this value is from the provider.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'ami-07b06b442921831e5'
HostImageIDKey = attribute.Key("host.image.id")
// The version string of the VM image as defined in [Version
@ -382,6 +418,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '0.1'
HostImageVersionKey = attribute.Key("host.image.version")
)
@ -409,6 +446,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry-cluster'
K8SClusterNameKey = attribute.Key("k8s.cluster.name")
)
@ -419,12 +457,14 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'node-1'
K8SNodeNameKey = attribute.Key("k8s.node.name")
// The UID of the Node.
//
// Type: string
// Required: No
// Stability: stable
// Examples: '1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2'
K8SNodeUIDKey = attribute.Key("k8s.node.uid")
)
@ -435,6 +475,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'default'
K8SNamespaceNameKey = attribute.Key("k8s.namespace.name")
)
@ -445,12 +486,14 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
K8SPodUIDKey = attribute.Key("k8s.pod.uid")
// The name of the Pod.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry-pod-autoconf'
K8SPodNameKey = attribute.Key("k8s.pod.name")
)
@ -461,6 +504,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'redis'
K8SContainerNameKey = attribute.Key("k8s.container.name")
)
@ -471,12 +515,14 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
K8SReplicasetUIDKey = attribute.Key("k8s.replicaset.uid")
// The name of the ReplicaSet.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry'
K8SReplicasetNameKey = attribute.Key("k8s.replicaset.name")
)
@ -487,12 +533,14 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
K8SDeploymentUIDKey = attribute.Key("k8s.deployment.uid")
// The name of the Deployment.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry'
K8SDeploymentNameKey = attribute.Key("k8s.deployment.name")
)
@ -503,12 +551,14 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
K8SStatefulsetUIDKey = attribute.Key("k8s.statefulset.uid")
// The name of the StatefulSet.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry'
K8SStatefulsetNameKey = attribute.Key("k8s.statefulset.name")
)
@ -519,12 +569,14 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
K8SDaemonsetUIDKey = attribute.Key("k8s.daemonset.uid")
// The name of the DaemonSet.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry'
K8SDaemonsetNameKey = attribute.Key("k8s.daemonset.name")
)
@ -535,12 +587,14 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
K8SJobUIDKey = attribute.Key("k8s.job.uid")
// The name of the Job.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry'
K8SJobNameKey = attribute.Key("k8s.job.name")
)
@ -551,12 +605,14 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
K8SCronJobUIDKey = attribute.Key("k8s.cronjob.uid")
// The name of the CronJob.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry'
K8SCronJobNameKey = attribute.Key("k8s.cronjob.name")
)
@ -567,18 +623,21 @@ const (
//
// Type: Enum
// Required: Always
// Stability: stable
OSTypeKey = attribute.Key("os.type")
// Human readable (not intended to be parsed) OS version information, like e.g.
// reported by `ver` or `lsb_release -a` commands.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'Microsoft Windows [Version 10.0.18363.778]', 'Ubuntu 18.04.1 LTS'
OSDescriptionKey = attribute.Key("os.description")
// Human readable operating system name.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'iOS', 'Android', 'Ubuntu'
OSNameKey = attribute.Key("os.name")
// The version string of the operating system as defined in [Version
@ -586,6 +645,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '14.2.1', '18.04.1'
OSVersionKey = attribute.Key("os.version")
)
@ -621,6 +681,7 @@ const (
//
// Type: int
// Required: No
// Stability: stable
// Examples: 1234
ProcessPIDKey = attribute.Key("process.pid")
// The name of the process executable. On Linux based systems, can be set to the
@ -629,6 +690,7 @@ const (
//
// Type: string
// Required: See below
// Stability: stable
// Examples: 'otelcol'
ProcessExecutableNameKey = attribute.Key("process.executable.name")
// The full path to the process executable. On Linux based systems, can be set to
@ -637,6 +699,7 @@ const (
//
// Type: string
// Required: See below
// Stability: stable
// Examples: '/usr/bin/cmd/otelcol'
ProcessExecutablePathKey = attribute.Key("process.executable.path")
// The command used to launch the process (i.e. the command name). On Linux based
@ -645,6 +708,7 @@ const (
//
// Type: string
// Required: See below
// Stability: stable
// Examples: 'cmd/otelcol'
ProcessCommandKey = attribute.Key("process.command")
// The full command used to launch the process as a single string representing the
@ -654,6 +718,7 @@ const (
//
// Type: string
// Required: See below
// Stability: stable
// Examples: 'C:\\cmd\\otecol --config="my directory\\config.yaml"'
ProcessCommandLineKey = attribute.Key("process.command_line")
// All the command arguments (including the command/executable itself) as received
@ -664,12 +729,14 @@ const (
//
// Type: string[]
// Required: See below
// Stability: stable
// Examples: 'cmd/otecol', '--config=config.yaml'
ProcessCommandArgsKey = attribute.Key("process.command_args")
// The username of the user that owns the process.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'root'
ProcessOwnerKey = attribute.Key("process.owner")
)
@ -681,6 +748,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'OpenJDK Runtime Environment'
ProcessRuntimeNameKey = attribute.Key("process.runtime.name")
// The version of the runtime of this process, as returned by the runtime without
@ -688,6 +756,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '14.0.2'
ProcessRuntimeVersionKey = attribute.Key("process.runtime.version")
// An additional description about the runtime of the process, for example a
@ -695,6 +764,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'Eclipse OpenJ9 Eclipse OpenJ9 VM openj9-0.21.0'
ProcessRuntimeDescriptionKey = attribute.Key("process.runtime.description")
)
@ -705,6 +775,7 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'shoppingcart'
// Note: MUST be the same for all instances of horizontally scaled services. If
// the value was not specified, SDKs MUST fallback to `unknown_service:`
@ -716,6 +787,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'Shop'
// 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.
@ -729,6 +801,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '627cc493-f310-47de-96bd-71410b7dec09'
// Note: MUST be unique for each instance of the same
// `service.namespace,service.name` pair (in other words
@ -747,6 +820,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '2.0.0'
ServiceVersionKey = attribute.Key("service.version")
)
@ -757,30 +831,34 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'opentelemetry'
TelemetrySDKNameKey = attribute.Key("telemetry.sdk.name")
// The language of the telemetry SDK.
//
// Type: Enum
// Required: No
// Stability: stable
TelemetrySDKLanguageKey = attribute.Key("telemetry.sdk.language")
// The version string of the telemetry SDK.
//
// Type: string
// Required: No
// Stability: stable
// Examples: '1.2.3'
TelemetrySDKVersionKey = attribute.Key("telemetry.sdk.version")
// The version string of the auto instrumentation agent, if used.
//
// Type: string
// Required: No
// Stability: stable
// Examples: '1.2.3'
TelemetryAutoVersionKey = attribute.Key("telemetry.auto.version")
)
var (
// cpp
TelemetrySDKLanguageCpp = TelemetrySDKLanguageKey.String("cpp")
TelemetrySDKLanguageCPP = TelemetrySDKLanguageKey.String("cpp")
// dotnet
TelemetrySDKLanguageDotnet = TelemetrySDKLanguageKey.String("dotnet")
// erlang
@ -807,12 +885,14 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'WildFly'
WebEngineNameKey = attribute.Key("webengine.name")
// The version of the web engine.
//
// Type: string
// Required: No
// Stability: stable
// Examples: '21.0.0'
WebEngineVersionKey = attribute.Key("webengine.version")
// Additional description of the web engine (e.g. detailed version and edition
@ -820,6 +900,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) - 2.2.2.Final'
WebEngineDescriptionKey = attribute.Key("webengine.description")
)

View File

@ -25,18 +25,21 @@ const (
//
// Type: Enum
// Required: Always
// Stability: stable
DBSystemKey = attribute.Key("db.system")
// The connection string used to connect to the database. It is recommended to
// remove embedded credentials.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'Server=(localdb)\\v11.0;Integrated Security=true;'
DBConnectionStringKey = attribute.Key("db.connection_string")
// Username for accessing the database.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'readonly_user', 'reporting_user'
DBUserKey = attribute.Key("db.user")
// The fully-qualified class name of the [Java Database Connectivity
@ -45,6 +48,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'org.postgresql.Driver',
// 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
DBJDBCDriverClassnameKey = attribute.Key("db.jdbc.driver_classname")
@ -55,6 +59,7 @@ const (
//
// Type: string
// Required: Required, if applicable and no more-specific attribute is defined.
// Stability: stable
// Examples: 'customers', 'main'
// Note: In some SQL databases, the database name to be used is called "schema
// name".
@ -64,6 +69,7 @@ const (
// Type: string
// Required: Required if applicable and not explicitly disabled via
// instrumentation configuration.
// Stability: stable
// Examples: 'SELECT * FROM wuser_table', 'SET mykey "WuValue"'
// Note: The value may be sanitized to exclude sensitive information.
DBStatementKey = attribute.Key("db.statement")
@ -73,6 +79,7 @@ const (
//
// Type: string
// Required: Required, if `db.statement` is not applicable.
// Stability: stable
// Examples: 'findAndModify', 'HMSET', 'SELECT'
// Note: When setting this to an SQL keyword, it is not recommended to attempt any
// client-side parsing of `db.statement` just to get this property, but it should
@ -187,6 +194,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'MSSQLSERVER'
// Note: If setting a `db.mssql.instance_name`, `net.peer.port` is no longer
// required (but still recommended if non-standard).
@ -200,12 +208,14 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'mykeyspace'
DBCassandraKeyspaceKey = attribute.Key("db.cassandra.keyspace")
// The fetch size used for paging, i.e. how many rows will be returned at once.
//
// Type: int
// Required: No
// Stability: stable
// Examples: 5000
DBCassandraPageSizeKey = attribute.Key("db.cassandra.page_size")
// The consistency level of the query. Based on consistency values from
@ -214,12 +224,14 @@ const (
//
// Type: Enum
// Required: No
// Stability: stable
DBCassandraConsistencyLevelKey = attribute.Key("db.cassandra.consistency_level")
// The name of the primary table that the operation is acting upon, including the
// schema name (if applicable).
//
// Type: string
// Required: Recommended if available.
// Stability: stable
// Examples: 'mytable'
// Note: This mirrors the db.sql.table attribute but references cassandra rather
// than sql. It is not recommended to attempt any client-side parsing of
@ -231,24 +243,28 @@ const (
//
// Type: boolean
// Required: No
// Stability: stable
DBCassandraIdempotenceKey = attribute.Key("db.cassandra.idempotence")
// The number of times a query was speculatively executed. Not set or `0` if the
// query was not executed speculatively.
//
// Type: int
// Required: No
// Stability: stable
// Examples: 0, 2
DBCassandraSpeculativeExecutionCountKey = attribute.Key("db.cassandra.speculative_execution_count")
// The ID of the coordinating node for a query.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'be13faa2-8574-4d71-926d-27f16cf8a7af'
DBCassandraCoordinatorIDKey = attribute.Key("db.cassandra.coordinator.id")
// The data center of the coordinating node for a query.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'us-west-2'
DBCassandraCoordinatorDCKey = attribute.Key("db.cassandra.coordinator.dc")
)
@ -285,6 +301,7 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'default'
DBHBaseNamespaceKey = attribute.Key("db.hbase.namespace")
)
@ -297,6 +314,7 @@ const (
//
// Type: int
// Required: Required, if other than the default database (`0`).
// Stability: stable
// Examples: 0, 1, 15
DBRedisDBIndexKey = attribute.Key("db.redis.database_index")
)
@ -307,6 +325,7 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'customers', 'products'
DBMongoDBCollectionKey = attribute.Key("db.mongodb.collection")
)
@ -318,6 +337,7 @@ const (
//
// Type: string
// Required: Recommended if available.
// Stability: stable
// Examples: 'public.users', 'customers'
// Note: It is not recommended to attempt any client-side parsing of
// `db.statement` just to get this property, but it should be set if it is
@ -334,12 +354,14 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'java.net.ConnectException', 'OSError'
ExceptionTypeKey = attribute.Key("exception.type")
// The exception message.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'Division by zero', "Can't convert 'int' object to str implicitly"
ExceptionMessageKey = attribute.Key("exception.message")
// A stacktrace as a string in the natural representation for the language
@ -348,6 +370,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'Exception in thread "main" java.lang.RuntimeException: Test
// exception\\n at '
// 'com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\n at '
@ -359,6 +382,7 @@ const (
//
// Type: boolean
// Required: No
// Stability: stable
// Note: An exception is considered to have escaped (or left) the scope of a span,
// if that span is ended while the exception is still logically "in flight".
// This may be actually "in flight" in some languages (e.g. if the exception
@ -389,11 +413,13 @@ const (
// invocations, if it is known to the client. This is, for example, not the case,
// when the transport layer is abstracted in a FaaS client framework without
// access to its configuration.
// Stability: stable
FaaSTriggerKey = attribute.Key("faas.trigger")
// The execution ID of the current function execution.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'af9d5aa4-a685-4c5f-a22b-444f80b3cc28'
FaaSExecutionKey = attribute.Key("faas.execution")
)
@ -419,12 +445,14 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'myBucketName', 'myDBName'
FaaSDocumentCollectionKey = attribute.Key("faas.document.collection")
// Describes the type of the operation that was performed on the data.
//
// Type: Enum
// Required: Always
// Stability: stable
FaaSDocumentOperationKey = attribute.Key("faas.document.operation")
// 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
@ -432,6 +460,7 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: '2020-01-23T13:47:06Z'
FaaSDocumentTimeKey = attribute.Key("faas.document.time")
// The document name/table subjected to the operation. For example, in Cloud
@ -439,6 +468,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'myFile.txt', 'myTableName'
FaaSDocumentNameKey = attribute.Key("faas.document.name")
)
@ -460,6 +490,7 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: '2020-01-23T13:47:06Z'
FaaSTimeKey = attribute.Key("faas.time")
// A string containing the schedule period as [Cron Expression](https://docs.oracl
@ -467,6 +498,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '0/5 * * * ? *'
FaaSCronKey = attribute.Key("faas.cron")
)
@ -478,6 +510,7 @@ const (
//
// Type: boolean
// Required: No
// Stability: stable
FaaSColdstartKey = attribute.Key("faas.coldstart")
)
@ -487,6 +520,7 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'my-function'
// Note: SHOULD be equal to the `faas.name` resource attribute of the invoked
// function.
@ -495,6 +529,7 @@ const (
//
// Type: Enum
// Required: Always
// Stability: stable
// Examples: 'aws'
// Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked
// function.
@ -508,6 +543,7 @@ const (
// always known to clients. In these cases, `faas.invoked_region` MUST be set
// accordingly. If the region is unknown to the client or not required for
// identifying the invoked function, setting `faas.invoked_region` is optional.
// Stability: stable
// Examples: 'eu-central-1'
// Note: SHOULD be equal to the `cloud.region` resource attribute of the invoked
// function.
@ -529,6 +565,7 @@ const (
//
// Type: Enum
// Required: No
// Stability: stable
// Examples: 'ip_tcp'
NetTransportKey = attribute.Key("net.transport")
// Remote address of the peer (dotted decimal for IPv4 or
@ -536,36 +573,42 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '127.0.0.1'
NetPeerIPKey = attribute.Key("net.peer.ip")
// Remote port number.
//
// Type: int
// Required: No
// Stability: stable
// Examples: 80, 8080, 443
NetPeerPortKey = attribute.Key("net.peer.port")
// Remote hostname or similar, see note below.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'example.com'
NetPeerNameKey = attribute.Key("net.peer.name")
// Like `net.peer.ip` but for the host IP. Useful in case of a multi-IP host.
//
// Type: string
// Required: No
// Stability: stable
// Examples: '192.168.0.1'
NetHostIPKey = attribute.Key("net.host.ip")
// Like `net.peer.port` but for the host port.
//
// Type: int
// Required: No
// Stability: stable
// Examples: 35555
NetHostPortKey = attribute.Key("net.host.port")
// Local hostname or similar, see note below.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'localhost'
NetHostNameKey = attribute.Key("net.host.name")
)
@ -595,6 +638,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'AuthTokenCache'
PeerServiceKey = attribute.Key("peer.service")
)
@ -607,6 +651,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'username'
EnduserIDKey = attribute.Key("enduser.id")
// Actual/assumed role the client is making the request under extracted from token
@ -614,6 +659,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'admin'
EnduserRoleKey = attribute.Key("enduser.role")
// Scopes or granted authorities the client currently possesses extracted from
@ -625,6 +671,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'read:message, write:files'
EnduserScopeKey = attribute.Key("enduser.scope")
)
@ -635,12 +682,14 @@ const (
//
// Type: int
// Required: No
// Stability: stable
// Examples: 42
ThreadIDKey = attribute.Key("thread.id")
// Current thread name.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'main'
ThreadNameKey = attribute.Key("thread.name")
)
@ -652,6 +701,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'serveRequest'
CodeFunctionKey = attribute.Key("code.function")
// The "namespace" within which `code.function` is defined. Usually the qualified
@ -660,6 +710,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'com.example.MyHTTPService'
CodeNamespaceKey = attribute.Key("code.namespace")
// The source code file name that identifies the code unit as uniquely as possible
@ -667,6 +718,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '/usr/local/MyApplication/content_root/app/index.php'
CodeFilepathKey = attribute.Key("code.filepath")
// The line number in `code.filepath` best representing the operation. It SHOULD
@ -674,6 +726,7 @@ const (
//
// Type: int
// Required: No
// Stability: stable
// Examples: 42
CodeLineNumberKey = attribute.Key("code.lineno")
)
@ -684,6 +737,7 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'GET', 'POST', 'HEAD'
HTTPMethodKey = attribute.Key("http.method")
// Full HTTP request URL in the form `scheme://host[:port]/path?query[#fragment]`.
@ -692,6 +746,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'https://www.foo.bar/search?q=OpenTelemetry#SemConv'
// Note: `http.url` MUST NOT contain credentials passed via URL in form of
// `https://username:password@www.example.com/`. In such case the attribute's
@ -701,6 +756,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '/path/12314/?q=ddds#123'
HTTPTargetKey = attribute.Key("http.target")
// The value of the [HTTP host
@ -709,24 +765,28 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'www.example.org'
HTTPHostKey = attribute.Key("http.host")
// The URI scheme identifying the used protocol.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'http', 'https'
HTTPSchemeKey = attribute.Key("http.scheme")
// [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).
//
// Type: int
// Required: If and only if one was received/sent.
// Stability: stable
// Examples: 200
HTTPStatusCodeKey = attribute.Key("http.status_code")
// Kind of HTTP protocol used.
//
// Type: Enum
// Required: No
// Stability: stable
// Examples: '1.0'
// Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP`
// except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.
@ -737,6 +797,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'CERN-LineMode/2.15 libwww/2.17b3'
HTTPUserAgentKey = attribute.Key("http.user_agent")
// The size of the request payload body in bytes. This is the number of bytes
@ -746,6 +807,7 @@ const (
//
// Type: int
// Required: No
// Stability: stable
// Examples: 3495
HTTPRequestContentLengthKey = attribute.Key("http.request_content_length")
// The size of the uncompressed request payload body after transport decoding. Not
@ -753,6 +815,7 @@ const (
//
// Type: int
// Required: No
// Stability: stable
// Examples: 5493
HTTPRequestContentLengthUncompressedKey = attribute.Key("http.request_content_length_uncompressed")
// The size of the response payload body in bytes. This is the number of bytes
@ -762,6 +825,7 @@ const (
//
// Type: int
// Required: No
// Stability: stable
// Examples: 3495
HTTPResponseContentLengthKey = attribute.Key("http.response_content_length")
// The size of the uncompressed response payload body after transport decoding.
@ -769,6 +833,7 @@ const (
//
// Type: int
// Required: No
// Stability: stable
// Examples: 5493
HTTPResponseContentLengthUncompressedKey = attribute.Key("http.response_content_length_uncompressed")
)
@ -794,6 +859,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'example.com'
// Note: `http.url` is usually not readily available on the server side but would
// have to be assembled in a cumbersome and sometimes lossy process from other
@ -804,6 +870,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '/users/:userID?'
HTTPRouteKey = attribute.Key("http.route")
// The IP address of the original client behind all proxies, if known (e.g. from
@ -812,6 +879,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '83.164.160.102'
// Note: This is not necessarily the same as `net.peer.ip`, which would identify
// the network-level peer, which may be a proxy.
@ -824,6 +892,7 @@ const (
//
// Type: string[]
// Required: No
// Stability: stable
// Examples: 'Users', 'Cats'
AWSDynamoDBTableNamesKey = attribute.Key("aws.dynamodb.table_names")
// The JSON-serialized value of each item in the `ConsumedCapacity` response
@ -831,6 +900,7 @@ const (
//
// Type: string[]
// Required: No
// Stability: stable
// Examples: '{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : {
// "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits":
// number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number,
@ -843,6 +913,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob,
// "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" :
// "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S":
@ -852,23 +923,27 @@ const (
//
// Type: double
// Required: No
// Stability: stable
// Examples: 1.0, 2.0
AWSDynamoDBProvisionedReadCapacityKey = attribute.Key("aws.dynamodb.provisioned_read_capacity")
// The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.
//
// Type: double
// Required: No
// Stability: stable
// Examples: 1.0, 2.0
AWSDynamoDBProvisionedWriteCapacityKey = attribute.Key("aws.dynamodb.provisioned_write_capacity")
// The value of the `ConsistentRead` request parameter.
//
// Type: boolean
// Required: No
// Stability: stable
AWSDynamoDBConsistentReadKey = attribute.Key("aws.dynamodb.consistent_read")
// The value of the `ProjectionExpression` request parameter.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'Title', 'Title, Price, Color', 'Title, Description, RelatedItems,
// ProductReviews'
AWSDynamoDBProjectionKey = attribute.Key("aws.dynamodb.projection")
@ -876,24 +951,28 @@ const (
//
// Type: int
// Required: No
// Stability: stable
// Examples: 10
AWSDynamoDBLimitKey = attribute.Key("aws.dynamodb.limit")
// The value of the `AttributesToGet` request parameter.
//
// Type: string[]
// Required: No
// Stability: stable
// Examples: 'lives', 'id'
AWSDynamoDBAttributesToGetKey = attribute.Key("aws.dynamodb.attributes_to_get")
// The value of the `IndexName` request parameter.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'name_to_group'
AWSDynamoDBIndexNameKey = attribute.Key("aws.dynamodb.index_name")
// The value of the `Select` request parameter.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'ALL_ATTRIBUTES', 'COUNT'
AWSDynamoDBSelectKey = attribute.Key("aws.dynamodb.select")
)
@ -905,6 +984,7 @@ const (
//
// Type: string[]
// Required: No
// Stability: stable
// Examples: '{ "IndexName": "string", "KeySchema": [ { "AttributeName": "string",
// "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ],
// "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits":
@ -915,7 +995,8 @@ const (
//
// Type: string[]
// Required: No
// Examples: '{ "IndexArn": "string", "IndexName": "string", "IndexSizeBytes":
// Stability: stable
// Examples: '{ "IndexARN": "string", "IndexName": "string", "IndexSizeBytes":
// number, "ItemCount": number, "KeySchema": [ { "AttributeName": "string",
// "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ],
// "ProjectionType": "string" } }'
@ -928,12 +1009,14 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'Users', 'CatsTable'
AWSDynamoDBExclusiveStartTableKey = attribute.Key("aws.dynamodb.exclusive_start_table")
// The the number of items in the `TableNames` response parameter.
//
// Type: int
// Required: No
// Stability: stable
// Examples: 20
AWSDynamoDBTableCountKey = attribute.Key("aws.dynamodb.table_count")
)
@ -944,6 +1027,7 @@ const (
//
// Type: boolean
// Required: No
// Stability: stable
AWSDynamoDBScanForwardKey = attribute.Key("aws.dynamodb.scan_forward")
)
@ -953,24 +1037,28 @@ const (
//
// Type: int
// Required: No
// Stability: stable
// Examples: 10
AWSDynamoDBSegmentKey = attribute.Key("aws.dynamodb.segment")
// The value of the `TotalSegments` request parameter.
//
// Type: int
// Required: No
// Stability: stable
// Examples: 100
AWSDynamoDBTotalSegmentsKey = attribute.Key("aws.dynamodb.total_segments")
// The value of the `Count` response parameter.
//
// Type: int
// Required: No
// Stability: stable
// Examples: 10
AWSDynamoDBCountKey = attribute.Key("aws.dynamodb.count")
// The value of the `ScannedCount` response parameter.
//
// Type: int
// Required: No
// Stability: stable
// Examples: 50
AWSDynamoDBScannedCountKey = attribute.Key("aws.dynamodb.scanned_count")
)
@ -982,6 +1070,7 @@ const (
//
// Type: string[]
// Required: No
// Stability: stable
// Examples: '{ "AttributeName": "string", "AttributeType": "string" }'
AWSDynamoDBAttributeDefinitionsKey = attribute.Key("aws.dynamodb.attribute_definitions")
// The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates`
@ -989,6 +1078,7 @@ const (
//
// Type: string[]
// Required: No
// Stability: stable
// Examples: '{ "Create": { "IndexName": "string", "KeySchema": [ {
// "AttributeName": "string", "KeyType": "string" } ], "Projection": {
// "NonKeyAttributes": [ "string" ], "ProjectionType": "string" },
@ -1003,6 +1093,7 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'kafka', 'rabbitmq', 'activemq', 'AmazonSQS'
MessagingSystemKey = attribute.Key("messaging.system")
// The message destination name. This might be equal to the span name but is
@ -1010,6 +1101,7 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'MyQueue', 'MyTopic'
MessagingDestinationKey = attribute.Key("messaging.destination")
// The kind of message destination
@ -1017,28 +1109,33 @@ const (
// Type: Enum
// Required: Required only if the message destination is either a `queue` or
// `topic`.
// Stability: stable
MessagingDestinationKindKey = attribute.Key("messaging.destination_kind")
// A boolean that is true if the message destination is temporary.
//
// Type: boolean
// Required: If missing, it is assumed to be false.
// Stability: stable
MessagingTempDestinationKey = attribute.Key("messaging.temp_destination")
// The name of the transport protocol.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'AMQP', 'MQTT'
MessagingProtocolKey = attribute.Key("messaging.protocol")
// The version of the transport protocol.
//
// Type: string
// Required: No
// Stability: stable
// Examples: '0.9.1'
MessagingProtocolVersionKey = attribute.Key("messaging.protocol_version")
// Connection string.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'tibjmsnaming://localhost:7222',
// 'https://queue.amazonaws.com/80398EXAMPLE/MyQueue'
MessagingURLKey = attribute.Key("messaging.url")
@ -1047,6 +1144,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '452a7c7c7c7048c2f887f61572b18fc2'
MessagingMessageIDKey = attribute.Key("messaging.message_id")
// The [conversation ID](#conversations) identifying the conversation to which the
@ -1054,7 +1152,8 @@ const (
//
// Type: string
// Required: No
// Examples: 'MyConversationId'
// Stability: stable
// Examples: 'MyConversationID'
MessagingConversationIDKey = attribute.Key("messaging.conversation_id")
// The (uncompressed) size of the message payload in bytes. Also use this
// attribute if it is unknown whether the compressed or uncompressed payload size
@ -1062,12 +1161,14 @@ const (
//
// Type: int
// Required: No
// Stability: stable
// Examples: 2738
MessagingMessagePayloadSizeBytesKey = attribute.Key("messaging.message_payload_size_bytes")
// The compressed size of the message payload in bytes.
//
// Type: int
// Required: No
// Stability: stable
// Examples: 2048
MessagingMessagePayloadCompressedSizeBytesKey = attribute.Key("messaging.message_payload_compressed_size_bytes")
)
@ -1088,6 +1189,7 @@ const (
//
// Type: Enum
// Required: No
// Stability: stable
MessagingOperationKey = attribute.Key("messaging.operation")
)
@ -1104,6 +1206,7 @@ const (
//
// Type: string
// Required: Unless it is empty.
// Stability: stable
// Examples: 'myKey'
MessagingRabbitmqRoutingKeyKey = attribute.Key("messaging.rabbitmq.routing_key")
)
@ -1116,6 +1219,7 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'myKey'
// 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
@ -1126,24 +1230,28 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'my-group'
MessagingKafkaConsumerGroupKey = attribute.Key("messaging.kafka.consumer_group")
// Client ID for the Consumer or Producer that is handling the message.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'client-5'
MessagingKafkaClientIDKey = attribute.Key("messaging.kafka.client_id")
// Partition the message is sent to.
//
// Type: int
// Required: No
// Stability: stable
// Examples: 2
MessagingKafkaPartitionKey = attribute.Key("messaging.kafka.partition")
// A boolean that is true if the message is a tombstone.
//
// Type: boolean
// Required: If missing, it is assumed to be false.
// Stability: stable
MessagingKafkaTombstoneKey = attribute.Key("messaging.kafka.tombstone")
)
@ -1153,6 +1261,7 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'grpc', 'java_rmi', 'wcf'
RPCSystemKey = attribute.Key("rpc.system")
// The full name of the service being called, including its package name, if
@ -1160,6 +1269,7 @@ const (
//
// Type: string
// Required: No, but recommended
// Stability: stable
// Examples: 'myservice.EchoService'
RPCServiceKey = attribute.Key("rpc.service")
// The name of the method being called, must be equal to the $method part in the
@ -1167,6 +1277,7 @@ const (
//
// Type: string
// Required: No, but recommended
// Stability: stable
// Examples: 'exampleMethod'
RPCMethodKey = attribute.Key("rpc.method")
)
@ -1179,6 +1290,7 @@ const (
//
// Type: Enum
// Required: Always
// Stability: stable
// Examples: 0, 1, 16
RPCGRPCStatusCodeKey = attribute.Key("rpc.grpc.status_code")
)
@ -1227,6 +1339,7 @@ const (
//
// Type: string
// Required: If missing, it is assumed to be "1.0".
// Stability: stable
// Examples: '2.0', '1.0'
RPCJsonrpcVersionKey = attribute.Key("rpc.jsonrpc.version")
// `method` property from request. Unlike `rpc.method`, this may not relate to the
@ -1235,6 +1348,7 @@ const (
//
// Type: string
// Required: Always
// Stability: stable
// Examples: 'users.create', 'get_users'
RPCJsonrpcMethodKey = attribute.Key("rpc.jsonrpc.method")
// `id` property of request or response. Since protocol allows id to be int,
@ -1244,18 +1358,21 @@ const (
//
// Type: string
// Required: No
// Stability: stable
// Examples: '10', 'request-7', ''
RPCJsonrpcRequestIDKey = attribute.Key("rpc.jsonrpc.request_id")
// `error.code` property of response if it is an error response.
//
// Type: int
// Required: If missing, response is assumed to be successful.
// Stability: stable
// Examples: -32700, 100
RPCJsonrpcErrorCodeKey = attribute.Key("rpc.jsonrpc.error_code")
// `error.message` property of response if it is an error response.
//
// Type: string
// Required: No
// Stability: stable
// Examples: 'Parse error', 'User already exists'
RPCJsonrpcErrorMessageKey = attribute.Key("rpc.jsonrpc.error_message")
)