opentelemetry_semantic_conventions/
attribute.rs

1// DO NOT EDIT, this is an auto-generated file
2//
3// If you want to update the file:
4// - Edit the template at scripts/templates/registry/rust/attributes.rs.j2
5// - Run the script at scripts/generate-consts-from-spec.sh
6
7//! # Semantic Attributes
8//!
9//! The entire set of semantic attributes (or [conventions](https://opentelemetry.io/docs/concepts/semantic-conventions/)) defined by the project. The resource, metric, and trace modules reference these attributes.
10
11/// This attribute represents the state of the application.
12///
13/// ## Notes
14///
15/// 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.
16///
17/// # Examples
18///
19/// - `"created"`
20#[cfg(feature = "semconv_experimental")]
21pub const ANDROID_APP_STATE: &str = "android.app.state";
22
23/// Uniquely identifies the framework API revision offered by a version (`os.version`) of the android operating system. More information can be found [here](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels).
24///
25/// ## Notes
26///
27/// # Examples
28///
29/// - `"33"`
30/// - `"32"`
31#[cfg(feature = "semconv_experimental")]
32pub const ANDROID_OS_API_LEVEL: &str = "android.os.api_level";
33
34/// Deprecated. Use `android.app.state` instead.
35///
36/// ## Notes
37///
38/// 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
39#[cfg(feature = "semconv_experimental")]
40pub const ANDROID_STATE: &str = "android.state";
41
42/// 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.
43///
44/// ## Notes
45///
46/// # Examples
47///
48/// - `"golang-binary-amd64-v0.1.0.attestation"`
49/// - `"docker-image-amd64-v0.1.0.intoto.json1"`
50/// - `"release-1.tar.gz.attestation"`
51/// - `"file-name-package.tar.gz.intoto.json1"`
52#[cfg(feature = "semconv_experimental")]
53pub const ARTIFACT_ATTESTATION_FILENAME: &str = "artifact.attestation.filename";
54
55/// 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**.
56///
57/// ## Notes
58///
59/// # Examples
60///
61/// - `"1b31dfcd5b7f9267bf2ff47651df1cfb9147b9e4df1f335accf65b4cda498408"`
62#[cfg(feature = "semconv_experimental")]
63pub const ARTIFACT_ATTESTATION_HASH: &str = "artifact.attestation.hash";
64
65/// The id of the build [software attestation](https://slsa.dev/attestation-model).
66///
67/// ## Notes
68///
69/// # Examples
70///
71/// - `"123"`
72#[cfg(feature = "semconv_experimental")]
73pub const ARTIFACT_ATTESTATION_ID: &str = "artifact.attestation.id";
74
75/// 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.
76///
77/// ## Notes
78///
79/// This file name can also act as the [Package Name](https://slsa.dev/spec/v1.0/terminology#package-model)
80/// in cases where the package ecosystem maps accordingly.
81/// Additionally, the artifact [can be published](https://slsa.dev/spec/v1.0/terminology#software-supply-chain)
82/// for others, but that is not a guarantee.
83///
84/// # Examples
85///
86/// - `"golang-binary-amd64-v0.1.0"`
87/// - `"docker-image-amd64-v0.1.0"`
88/// - `"release-1.tar.gz"`
89/// - `"file-name-package.tar.gz"`
90#[cfg(feature = "semconv_experimental")]
91pub const ARTIFACT_FILENAME: &str = "artifact.filename";
92
93/// 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.
94///
95/// ## Notes
96///
97/// The specific algorithm used to create the cryptographic hash value is
98/// not defined. In situations where an artifact has multiple
99/// cryptographic hashes, it is up to the implementer to choose which
100/// hash value to set here; this should be the most secure hash algorithm
101/// that is suitable for the situation and consistent with the
102/// corresponding attestation. The implementer can then provide the other
103/// hash values through an additional set of attribute extensions as they
104/// deem necessary.
105///
106/// # Examples
107///
108/// - `"9ff4c52759e2c4ac70b7d517bc7fcdc1cda631ca0045271ddd1b192544f8a3e9"`
109#[cfg(feature = "semconv_experimental")]
110pub const ARTIFACT_HASH: &str = "artifact.hash";
111
112/// 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.
113///
114/// ## Notes
115///
116/// # Examples
117///
118/// - `"pkg:github/package-url/purl-spec@1209109710924"`
119/// - `"pkg:npm/foo@12.12.3"`
120#[cfg(feature = "semconv_experimental")]
121pub const ARTIFACT_PURL: &str = "artifact.purl";
122
123/// The version of the artifact.
124///
125/// ## Notes
126///
127/// # Examples
128///
129/// - `"v0.1.0"`
130/// - `"1.2.1"`
131/// - `"122691-build"`
132#[cfg(feature = "semconv_experimental")]
133pub const ARTIFACT_VERSION: &str = "artifact.version";
134
135/// ASP.NET Core exception middleware handling result
136///
137/// ## Notes
138///
139/// # Examples
140///
141/// - `"handled"`
142/// - `"unhandled"`
143pub const ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT: &str = "aspnetcore.diagnostics.exception.result";
144
145/// Full type name of the [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler) implementation that handled the exception.
146///
147/// ## Notes
148///
149/// # Examples
150///
151/// - `"Contoso.MyHandler"`
152pub const ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE: &str = "aspnetcore.diagnostics.handler.type";
153
154/// Rate limiting policy name.
155///
156/// ## Notes
157///
158/// # Examples
159///
160/// - `"fixed"`
161/// - `"sliding"`
162/// - `"token"`
163pub const ASPNETCORE_RATE_LIMITING_POLICY: &str = "aspnetcore.rate_limiting.policy";
164
165/// Rate-limiting result, shows whether the lease was acquired or contains a rejection reason
166///
167/// ## Notes
168///
169/// # Examples
170///
171/// - `"acquired"`
172/// - `"request_canceled"`
173pub const ASPNETCORE_RATE_LIMITING_RESULT: &str = "aspnetcore.rate_limiting.result";
174
175/// Flag indicating if request was handled by the application pipeline.
176///
177/// ## Notes
178///
179/// # Examples
180///
181/// - `true`
182pub const ASPNETCORE_REQUEST_IS_UNHANDLED: &str = "aspnetcore.request.is_unhandled";
183
184/// A value that indicates whether the matched route is a fallback route.
185///
186/// ## Notes
187///
188/// # Examples
189///
190/// - `true`
191pub const ASPNETCORE_ROUTING_IS_FALLBACK: &str = "aspnetcore.routing.is_fallback";
192
193/// Match result - success or failure
194///
195/// ## Notes
196///
197/// # Examples
198///
199/// - `"success"`
200/// - `"failure"`
201pub const ASPNETCORE_ROUTING_MATCH_STATUS: &str = "aspnetcore.routing.match_status";
202
203/// The JSON-serialized value of each item in the `AttributeDefinitions` request field.
204///
205/// ## Notes
206///
207/// # Examples
208///
209/// - `[
210///  "{ \"AttributeName\": \"string\", \"AttributeType\": \"string\" }",
211/// ]`
212#[cfg(feature = "semconv_experimental")]
213pub const AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS: &str = "aws.dynamodb.attribute_definitions";
214
215/// The value of the `AttributesToGet` request parameter.
216///
217/// ## Notes
218///
219/// # Examples
220///
221/// - `[
222///  "lives",
223///  "id",
224/// ]`
225#[cfg(feature = "semconv_experimental")]
226pub const AWS_DYNAMODB_ATTRIBUTES_TO_GET: &str = "aws.dynamodb.attributes_to_get";
227
228/// The value of the `ConsistentRead` request parameter.
229///
230/// ## Notes
231#[cfg(feature = "semconv_experimental")]
232pub const AWS_DYNAMODB_CONSISTENT_READ: &str = "aws.dynamodb.consistent_read";
233
234/// The JSON-serialized value of each item in the `ConsumedCapacity` response field.
235///
236/// ## Notes
237///
238/// # Examples
239///
240/// - `[
241///  "{ \"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 }",
242/// ]`
243#[cfg(feature = "semconv_experimental")]
244pub const AWS_DYNAMODB_CONSUMED_CAPACITY: &str = "aws.dynamodb.consumed_capacity";
245
246/// The value of the `Count` response parameter.
247///
248/// ## Notes
249///
250/// # Examples
251///
252/// - `10`
253#[cfg(feature = "semconv_experimental")]
254pub const AWS_DYNAMODB_COUNT: &str = "aws.dynamodb.count";
255
256/// The value of the `ExclusiveStartTableName` request parameter.
257///
258/// ## Notes
259///
260/// # Examples
261///
262/// - `"Users"`
263/// - `"CatsTable"`
264#[cfg(feature = "semconv_experimental")]
265pub const AWS_DYNAMODB_EXCLUSIVE_START_TABLE: &str = "aws.dynamodb.exclusive_start_table";
266
267/// The JSON-serialized value of each item in the `GlobalSecondaryIndexUpdates` request field.
268///
269/// ## Notes
270///
271/// # Examples
272///
273/// - `[
274///  "{ \"Create\": { \"IndexName\": \"string\", \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" }, \"ProvisionedThroughput\": { \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }",
275/// ]`
276#[cfg(feature = "semconv_experimental")]
277pub const AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES: &str =
278    "aws.dynamodb.global_secondary_index_updates";
279
280/// The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field
281///
282/// ## Notes
283///
284/// # Examples
285///
286/// - `[
287///  "{ \"IndexName\": \"string\", \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" }, \"ProvisionedThroughput\": { \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }",
288/// ]`
289#[cfg(feature = "semconv_experimental")]
290pub const AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES: &str = "aws.dynamodb.global_secondary_indexes";
291
292/// The value of the `IndexName` request parameter.
293///
294/// ## Notes
295///
296/// # Examples
297///
298/// - `"name_to_group"`
299#[cfg(feature = "semconv_experimental")]
300pub const AWS_DYNAMODB_INDEX_NAME: &str = "aws.dynamodb.index_name";
301
302/// The JSON-serialized value of the `ItemCollectionMetrics` response field.
303///
304/// ## Notes
305///
306/// # Examples
307///
308/// - `"{ \"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 ] } ] }"`
309#[cfg(feature = "semconv_experimental")]
310pub const AWS_DYNAMODB_ITEM_COLLECTION_METRICS: &str = "aws.dynamodb.item_collection_metrics";
311
312/// The value of the `Limit` request parameter.
313///
314/// ## Notes
315///
316/// # Examples
317///
318/// - `10`
319#[cfg(feature = "semconv_experimental")]
320pub const AWS_DYNAMODB_LIMIT: &str = "aws.dynamodb.limit";
321
322/// The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.
323///
324/// ## Notes
325///
326/// # Examples
327///
328/// - `[
329///  "{ \"IndexArn\": \"string\", \"IndexName\": \"string\", \"IndexSizeBytes\": number, \"ItemCount\": number, \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" } }",
330/// ]`
331#[cfg(feature = "semconv_experimental")]
332pub const AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES: &str = "aws.dynamodb.local_secondary_indexes";
333
334/// The value of the `ProjectionExpression` request parameter.
335///
336/// ## Notes
337///
338/// # Examples
339///
340/// - `"Title"`
341/// - `"Title, Price, Color"`
342/// - `"Title, Description, RelatedItems, ProductReviews"`
343#[cfg(feature = "semconv_experimental")]
344pub const AWS_DYNAMODB_PROJECTION: &str = "aws.dynamodb.projection";
345
346/// The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.
347///
348/// ## Notes
349///
350/// # Examples
351///
352/// - `1.0`
353/// - `2.0`
354#[cfg(feature = "semconv_experimental")]
355pub const AWS_DYNAMODB_PROVISIONED_READ_CAPACITY: &str = "aws.dynamodb.provisioned_read_capacity";
356
357/// The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.
358///
359/// ## Notes
360///
361/// # Examples
362///
363/// - `1.0`
364/// - `2.0`
365#[cfg(feature = "semconv_experimental")]
366pub const AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY: &str = "aws.dynamodb.provisioned_write_capacity";
367
368/// The value of the `ScanIndexForward` request parameter.
369///
370/// ## Notes
371#[cfg(feature = "semconv_experimental")]
372pub const AWS_DYNAMODB_SCAN_FORWARD: &str = "aws.dynamodb.scan_forward";
373
374/// The value of the `ScannedCount` response parameter.
375///
376/// ## Notes
377///
378/// # Examples
379///
380/// - `50`
381#[cfg(feature = "semconv_experimental")]
382pub const AWS_DYNAMODB_SCANNED_COUNT: &str = "aws.dynamodb.scanned_count";
383
384/// The value of the `Segment` request parameter.
385///
386/// ## Notes
387///
388/// # Examples
389///
390/// - `10`
391#[cfg(feature = "semconv_experimental")]
392pub const AWS_DYNAMODB_SEGMENT: &str = "aws.dynamodb.segment";
393
394/// The value of the `Select` request parameter.
395///
396/// ## Notes
397///
398/// # Examples
399///
400/// - `"ALL_ATTRIBUTES"`
401/// - `"COUNT"`
402#[cfg(feature = "semconv_experimental")]
403pub const AWS_DYNAMODB_SELECT: &str = "aws.dynamodb.select";
404
405/// The number of items in the `TableNames` response parameter.
406///
407/// ## Notes
408///
409/// # Examples
410///
411/// - `20`
412#[cfg(feature = "semconv_experimental")]
413pub const AWS_DYNAMODB_TABLE_COUNT: &str = "aws.dynamodb.table_count";
414
415/// The keys in the `RequestItems` object field.
416///
417/// ## Notes
418///
419/// # Examples
420///
421/// - `[
422///  "Users",
423///  "Cats",
424/// ]`
425#[cfg(feature = "semconv_experimental")]
426pub const AWS_DYNAMODB_TABLE_NAMES: &str = "aws.dynamodb.table_names";
427
428/// The value of the `TotalSegments` request parameter.
429///
430/// ## Notes
431///
432/// # Examples
433///
434/// - `100`
435#[cfg(feature = "semconv_experimental")]
436pub const AWS_DYNAMODB_TOTAL_SEGMENTS: &str = "aws.dynamodb.total_segments";
437
438/// The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).
439///
440/// ## Notes
441///
442/// # Examples
443///
444/// - `"arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster"`
445#[cfg(feature = "semconv_experimental")]
446pub const AWS_ECS_CLUSTER_ARN: &str = "aws.ecs.cluster.arn";
447
448/// The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).
449///
450/// ## Notes
451///
452/// # Examples
453///
454/// - `"arn:aws:ecs:us-west-1:123456789123:container/32624152-9086-4f0e-acae-1a75b14fe4d9"`
455#[cfg(feature = "semconv_experimental")]
456pub const AWS_ECS_CONTAINER_ARN: &str = "aws.ecs.container.arn";
457
458/// The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.
459///
460/// ## Notes
461#[cfg(feature = "semconv_experimental")]
462pub const AWS_ECS_LAUNCHTYPE: &str = "aws.ecs.launchtype";
463
464/// The ARN of a running [ECS task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids).
465///
466/// ## Notes
467///
468/// # Examples
469///
470/// - `"arn:aws:ecs:us-west-1:123456789123:task/10838bed-421f-43ef-870a-f43feacbbb5b"`
471/// - `"arn:aws:ecs:us-west-1:123456789123:task/my-cluster/task-id/23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd"`
472#[cfg(feature = "semconv_experimental")]
473pub const AWS_ECS_TASK_ARN: &str = "aws.ecs.task.arn";
474
475/// 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.
476///
477/// ## Notes
478///
479/// # Examples
480///
481/// - `"opentelemetry-family"`
482#[cfg(feature = "semconv_experimental")]
483pub const AWS_ECS_TASK_FAMILY: &str = "aws.ecs.task.family";
484
485/// The ID of a running ECS task. The ID MUST be extracted from `task.arn`.
486///
487/// ## Notes
488///
489/// # Examples
490///
491/// - `"10838bed-421f-43ef-870a-f43feacbbb5b"`
492/// - `"23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd"`
493#[cfg(feature = "semconv_experimental")]
494pub const AWS_ECS_TASK_ID: &str = "aws.ecs.task.id";
495
496/// The revision for the task definition used to create the ECS task.
497///
498/// ## Notes
499///
500/// # Examples
501///
502/// - `"8"`
503/// - `"26"`
504#[cfg(feature = "semconv_experimental")]
505pub const AWS_ECS_TASK_REVISION: &str = "aws.ecs.task.revision";
506
507/// The ARN of an EKS cluster.
508///
509/// ## Notes
510///
511/// # Examples
512///
513/// - `"arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster"`
514#[cfg(feature = "semconv_experimental")]
515pub const AWS_EKS_CLUSTER_ARN: &str = "aws.eks.cluster.arn";
516
517/// The AWS extended request ID as returned in the response header `x-amz-id-2`.
518///
519/// ## Notes
520///
521/// # Examples
522///
523/// - `"wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ="`
524#[cfg(feature = "semconv_experimental")]
525pub const AWS_EXTENDED_REQUEST_ID: &str = "aws.extended_request_id";
526
527/// 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).
528///
529/// ## Notes
530///
531/// This may be different from `cloud.resource_id` if an alias is involved.
532///
533/// # Examples
534///
535/// - `"arn:aws:lambda:us-east-1:123456:function:myfunction:myalias"`
536#[cfg(feature = "semconv_experimental")]
537pub const AWS_LAMBDA_INVOKED_ARN: &str = "aws.lambda.invoked_arn";
538
539/// The Amazon Resource Name(s) (ARN) of the AWS log group(s).
540///
541/// ## Notes
542///
543/// See the [log group ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).
544///
545/// # Examples
546///
547/// - `[
548///  "arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:*",
549/// ]`
550#[cfg(feature = "semconv_experimental")]
551pub const AWS_LOG_GROUP_ARNS: &str = "aws.log.group.arns";
552
553/// The name(s) of the AWS log group(s) an application is writing to.
554///
555/// ## Notes
556///
557/// 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.
558///
559/// # Examples
560///
561/// - `[
562///  "/aws/lambda/my-function",
563///  "opentelemetry-service",
564/// ]`
565#[cfg(feature = "semconv_experimental")]
566pub const AWS_LOG_GROUP_NAMES: &str = "aws.log.group.names";
567
568/// The ARN(s) of the AWS log stream(s).
569///
570/// ## Notes
571///
572/// 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.
573///
574/// # Examples
575///
576/// - `[
577///  "arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:log-stream:logs/main/10838bed-421f-43ef-870a-f43feacbbb5b",
578/// ]`
579#[cfg(feature = "semconv_experimental")]
580pub const AWS_LOG_STREAM_ARNS: &str = "aws.log.stream.arns";
581
582/// The name(s) of the AWS log stream(s) an application is writing to.
583///
584/// ## Notes
585///
586/// # Examples
587///
588/// - `[
589///  "logs/main/10838bed-421f-43ef-870a-f43feacbbb5b",
590/// ]`
591#[cfg(feature = "semconv_experimental")]
592pub const AWS_LOG_STREAM_NAMES: &str = "aws.log.stream.names";
593
594/// The AWS request ID as returned in the response headers `x-amzn-requestid`, `x-amzn-request-id` or `x-amz-request-id`.
595///
596/// ## Notes
597///
598/// # Examples
599///
600/// - `"79b9da39-b7ae-508a-a6bc-864b2829c622"`
601/// - `"C9ER4AJX75574TDJ"`
602#[cfg(feature = "semconv_experimental")]
603pub const AWS_REQUEST_ID: &str = "aws.request_id";
604
605/// 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.
606///
607/// ## Notes
608///
609/// The `bucket` attribute is applicable to all S3 operations that reference a bucket, i.e. that require the bucket name as a mandatory parameter.
610/// This applies to almost all S3 operations except `list-buckets`.
611///
612/// # Examples
613///
614/// - `"some-bucket-name"`
615#[cfg(feature = "semconv_experimental")]
616pub const AWS_S3_BUCKET: &str = "aws.s3.bucket";
617
618/// The source object (in the form `bucket`/`key`) for the copy operation.
619///
620/// ## Notes
621///
622/// The `copy_source` attribute applies to S3 copy operations and corresponds to the `--copy-source` parameter
623/// of the [copy-object operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html).
624/// This applies in particular to the following operations:
625///
626/// - [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
627/// - [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
628///
629/// # Examples
630///
631/// - `"someFile.yml"`
632#[cfg(feature = "semconv_experimental")]
633pub const AWS_S3_COPY_SOURCE: &str = "aws.s3.copy_source";
634
635/// The delete request container that specifies the objects to be deleted.
636///
637/// ## Notes
638///
639/// The `delete` attribute is only applicable to the [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html) operation.
640/// The `delete` attribute corresponds to the `--delete` parameter of the
641/// [delete-objects operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-objects.html).
642///
643/// # Examples
644///
645/// - `"Objects=[{Key=string,VersionId=string},{Key=string,VersionId=string}],Quiet=boolean"`
646#[cfg(feature = "semconv_experimental")]
647pub const AWS_S3_DELETE: &str = "aws.s3.delete";
648
649/// 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.
650///
651/// ## Notes
652///
653/// The `key` attribute is applicable to all object-related S3 operations, i.e. that require the object key as a mandatory parameter.
654/// This applies in particular to the following operations:
655///
656/// - [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
657/// - [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)
658/// - [get-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html)
659/// - [head-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html)
660/// - [put-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html)
661/// - [restore-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/restore-object.html)
662/// - [select-object-content](https://docs.aws.amazon.com/cli/latest/reference/s3api/select-object-content.html)
663/// - [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)
664/// - [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)
665/// - [create-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-multipart-upload.html)
666/// - [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)
667/// - [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
668/// - [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
669///
670/// # Examples
671///
672/// - `"someFile.yml"`
673#[cfg(feature = "semconv_experimental")]
674pub const AWS_S3_KEY: &str = "aws.s3.key";
675
676/// The part number of the part being uploaded in a multipart-upload operation. This is a positive integer between 1 and 10,000.
677///
678/// ## Notes
679///
680/// The `part_number` attribute is only applicable to the [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
681/// and [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) operations.
682/// The `part_number` attribute corresponds to the `--part-number` parameter of the
683/// [upload-part operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html).
684///
685/// # Examples
686///
687/// - `3456`
688#[cfg(feature = "semconv_experimental")]
689pub const AWS_S3_PART_NUMBER: &str = "aws.s3.part_number";
690
691/// Upload ID that identifies the multipart upload.
692///
693/// ## Notes
694///
695/// The `upload_id` attribute applies to S3 multipart-upload operations and corresponds to the `--upload-id` parameter
696/// of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) multipart operations.
697/// This applies in particular to the following operations:
698///
699/// - [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)
700/// - [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)
701/// - [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)
702/// - [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
703/// - [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
704///
705/// # Examples
706///
707/// - `"dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ"`
708#[cfg(feature = "semconv_experimental")]
709pub const AWS_S3_UPLOAD_ID: &str = "aws.s3.upload_id";
710
711/// [Azure Resource Provider Namespace](https://learn.microsoft.com/azure/azure-resource-manager/management/azure-services-resource-providers) as recognized by the client.
712///
713/// ## Notes
714///
715/// # Examples
716///
717/// - `"Microsoft.Storage"`
718/// - `"Microsoft.KeyVault"`
719/// - `"Microsoft.ServiceBus"`
720#[cfg(feature = "semconv_experimental")]
721pub const AZ_NAMESPACE: &str = "az.namespace";
722
723/// The unique identifier of the service request. It's generated by the Azure service and returned with the response.
724///
725/// ## Notes
726///
727/// # Examples
728///
729/// - `"00000000-0000-0000-0000-000000000000"`
730#[cfg(feature = "semconv_experimental")]
731pub const AZ_SERVICE_REQUEST_ID: &str = "az.service_request_id";
732
733/// The unique identifier of the client instance.
734///
735/// ## Notes
736///
737/// # Examples
738///
739/// - `"3ba4827d-4422-483f-b59f-85b74211c11d"`
740/// - `"storage-client-1"`
741#[cfg(feature = "semconv_experimental")]
742pub const AZURE_CLIENT_ID: &str = "azure.client.id";
743
744/// Cosmos client connection mode.
745///
746/// ## Notes
747#[cfg(feature = "semconv_experimental")]
748pub const AZURE_COSMOSDB_CONNECTION_MODE: &str = "azure.cosmosdb.connection.mode";
749
750/// Account or request [consistency level](https://learn.microsoft.com/azure/cosmos-db/consistency-levels).
751///
752/// ## Notes
753///
754/// # Examples
755///
756/// - `"Eventual"`
757/// - `"ConsistentPrefix"`
758/// - `"BoundedStaleness"`
759/// - `"Strong"`
760/// - `"Session"`
761#[cfg(feature = "semconv_experimental")]
762pub const AZURE_COSMOSDB_CONSISTENCY_LEVEL: &str = "azure.cosmosdb.consistency.level";
763
764/// 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.
765///
766/// ## Notes
767///
768/// Region name matches the format of `displayName` in [Azure Location API](https://learn.microsoft.com/rest/api/subscription/subscriptions/list-locations?view=rest-subscription-2021-10-01&tabs=HTTP#location)
769///
770/// # Examples
771///
772/// - `[
773///  "North Central US",
774///  "Australia East",
775///  "Australia Southeast",
776/// ]`
777#[cfg(feature = "semconv_experimental")]
778pub const AZURE_COSMOSDB_OPERATION_CONTACTED_REGIONS: &str =
779    "azure.cosmosdb.operation.contacted_regions";
780
781/// The number of request units consumed by the operation.
782///
783/// ## Notes
784///
785/// # Examples
786///
787/// - `46.18`
788/// - `1.0`
789#[cfg(feature = "semconv_experimental")]
790pub const AZURE_COSMOSDB_OPERATION_REQUEST_CHARGE: &str = "azure.cosmosdb.operation.request_charge";
791
792/// Request payload size in bytes.
793///
794/// ## Notes
795#[cfg(feature = "semconv_experimental")]
796pub const AZURE_COSMOSDB_REQUEST_BODY_SIZE: &str = "azure.cosmosdb.request.body.size";
797
798/// Cosmos DB sub status code.
799///
800/// ## Notes
801///
802/// # Examples
803///
804/// - `1000`
805/// - `1002`
806#[cfg(feature = "semconv_experimental")]
807pub const AZURE_COSMOSDB_RESPONSE_SUB_STATUS_CODE: &str = "azure.cosmosdb.response.sub_status_code";
808
809/// Array of brand name and version separated by a space
810///
811/// ## Notes
812///
813/// This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.brands`).
814///
815/// # Examples
816///
817/// - `[
818///  " Not A;Brand 99",
819///  "Chromium 99",
820///  "Chrome 99",
821/// ]`
822#[cfg(feature = "semconv_experimental")]
823pub const BROWSER_BRANDS: &str = "browser.brands";
824
825/// Preferred language of the user using the browser
826///
827/// ## Notes
828///
829/// This value is intended to be taken from the Navigator API `navigator.language`.
830///
831/// # Examples
832///
833/// - `"en"`
834/// - `"en-US"`
835/// - `"fr"`
836/// - `"fr-FR"`
837#[cfg(feature = "semconv_experimental")]
838pub const BROWSER_LANGUAGE: &str = "browser.language";
839
840/// A boolean that is true if the browser is running on a mobile device
841///
842/// ## Notes
843///
844/// 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
845#[cfg(feature = "semconv_experimental")]
846pub const BROWSER_MOBILE: &str = "browser.mobile";
847
848/// The platform on which the browser is running
849///
850/// ## Notes
851///
852/// 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.
853/// 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.
854///
855/// # Examples
856///
857/// - `"Windows"`
858/// - `"macOS"`
859/// - `"Android"`
860#[cfg(feature = "semconv_experimental")]
861pub const BROWSER_PLATFORM: &str = "browser.platform";
862
863/// 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).
864///
865/// ## Notes
866#[cfg(feature = "semconv_experimental")]
867pub const CASSANDRA_CONSISTENCY_LEVEL: &str = "cassandra.consistency.level";
868
869/// The data center of the coordinating node for a query.
870///
871/// ## Notes
872///
873/// # Examples
874///
875/// - `"us-west-2"`
876#[cfg(feature = "semconv_experimental")]
877pub const CASSANDRA_COORDINATOR_DC: &str = "cassandra.coordinator.dc";
878
879/// The ID of the coordinating node for a query.
880///
881/// ## Notes
882///
883/// # Examples
884///
885/// - `"be13faa2-8574-4d71-926d-27f16cf8a7af"`
886#[cfg(feature = "semconv_experimental")]
887pub const CASSANDRA_COORDINATOR_ID: &str = "cassandra.coordinator.id";
888
889/// The fetch size used for paging, i.e. how many rows will be returned at once.
890///
891/// ## Notes
892///
893/// # Examples
894///
895/// - `5000`
896#[cfg(feature = "semconv_experimental")]
897pub const CASSANDRA_PAGE_SIZE: &str = "cassandra.page.size";
898
899/// Whether or not the query is idempotent.
900///
901/// ## Notes
902#[cfg(feature = "semconv_experimental")]
903pub const CASSANDRA_QUERY_IDEMPOTENT: &str = "cassandra.query.idempotent";
904
905/// The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively.
906///
907/// ## Notes
908///
909/// # Examples
910///
911/// - `0`
912/// - `2`
913#[cfg(feature = "semconv_experimental")]
914pub const CASSANDRA_SPECULATIVE_EXECUTION_COUNT: &str = "cassandra.speculative_execution.count";
915
916/// The human readable name of the pipeline within a CI/CD system.
917///
918/// ## Notes
919///
920/// # Examples
921///
922/// - `"Build and Test"`
923/// - `"Lint"`
924/// - `"Deploy Go Project"`
925/// - `"deploy_to_environment"`
926#[cfg(feature = "semconv_experimental")]
927pub const CICD_PIPELINE_NAME: &str = "cicd.pipeline.name";
928
929/// The result of a pipeline run.
930///
931/// ## Notes
932///
933/// # Examples
934///
935/// - `"success"`
936/// - `"failure"`
937/// - `"timeout"`
938/// - `"skipped"`
939#[cfg(feature = "semconv_experimental")]
940pub const CICD_PIPELINE_RESULT: &str = "cicd.pipeline.result";
941
942/// The unique identifier of a pipeline run within a CI/CD system.
943///
944/// ## Notes
945///
946/// # Examples
947///
948/// - `"120912"`
949#[cfg(feature = "semconv_experimental")]
950pub const CICD_PIPELINE_RUN_ID: &str = "cicd.pipeline.run.id";
951
952/// The pipeline run goes through these states during its lifecycle.
953///
954/// ## Notes
955///
956/// # Examples
957///
958/// - `"pending"`
959/// - `"executing"`
960/// - `"finalizing"`
961#[cfg(feature = "semconv_experimental")]
962pub const CICD_PIPELINE_RUN_STATE: &str = "cicd.pipeline.run.state";
963
964/// The [URL](https://wikipedia.org/wiki/URL) of the pipeline run, providing the complete address in order to locate and identify the pipeline run.
965///
966/// ## Notes
967///
968/// # Examples
969///
970/// - `"https://github.com/open-telemetry/semantic-conventions/actions/runs/9753949763?pr=1075"`
971#[cfg(feature = "semconv_experimental")]
972pub const CICD_PIPELINE_RUN_URL_FULL: &str = "cicd.pipeline.run.url.full";
973
974/// 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.
975///
976/// ## Notes
977///
978/// # Examples
979///
980/// - `"Run GoLang Linter"`
981/// - `"Go Build"`
982/// - `"go-test"`
983/// - `"deploy_binary"`
984#[cfg(feature = "semconv_experimental")]
985pub const CICD_PIPELINE_TASK_NAME: &str = "cicd.pipeline.task.name";
986
987/// The unique identifier of a task run within a pipeline.
988///
989/// ## Notes
990///
991/// # Examples
992///
993/// - `"12097"`
994#[cfg(feature = "semconv_experimental")]
995pub const CICD_PIPELINE_TASK_RUN_ID: &str = "cicd.pipeline.task.run.id";
996
997/// 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.
998///
999/// ## Notes
1000///
1001/// # Examples
1002///
1003/// - `"https://github.com/open-telemetry/semantic-conventions/actions/runs/9753949763/job/26920038674?pr=1075"`
1004#[cfg(feature = "semconv_experimental")]
1005pub const CICD_PIPELINE_TASK_RUN_URL_FULL: &str = "cicd.pipeline.task.run.url.full";
1006
1007/// The type of the task within a pipeline.
1008///
1009/// ## Notes
1010///
1011/// # Examples
1012///
1013/// - `"build"`
1014/// - `"test"`
1015/// - `"deploy"`
1016#[cfg(feature = "semconv_experimental")]
1017pub const CICD_PIPELINE_TASK_TYPE: &str = "cicd.pipeline.task.type";
1018
1019/// The name of a component of the CICD system.
1020///
1021/// ## Notes
1022///
1023/// # Examples
1024///
1025/// - `"controller"`
1026/// - `"scheduler"`
1027/// - `"agent"`
1028#[cfg(feature = "semconv_experimental")]
1029pub const CICD_SYSTEM_COMPONENT: &str = "cicd.system.component";
1030
1031/// The state of a CICD worker / agent.
1032///
1033/// ## Notes
1034///
1035/// # Examples
1036///
1037/// - `"idle"`
1038/// - `"busy"`
1039/// - `"down"`
1040#[cfg(feature = "semconv_experimental")]
1041pub const CICD_WORKER_STATE: &str = "cicd.worker.state";
1042
1043/// Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
1044///
1045/// ## Notes
1046///
1047/// 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.
1048///
1049/// # Examples
1050///
1051/// - `"client.example.com"`
1052/// - `"10.1.2.80"`
1053/// - `"/tmp/my.sock"`
1054pub const CLIENT_ADDRESS: &str = "client.address";
1055
1056/// Client port number.
1057///
1058/// ## Notes
1059///
1060/// 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.
1061///
1062/// # Examples
1063///
1064/// - `65123`
1065pub const CLIENT_PORT: &str = "client.port";
1066
1067/// The cloud account ID the resource is assigned to.
1068///
1069/// ## Notes
1070///
1071/// # Examples
1072///
1073/// - `"111111111111"`
1074/// - `"opentelemetry"`
1075#[cfg(feature = "semconv_experimental")]
1076pub const CLOUD_ACCOUNT_ID: &str = "cloud.account.id";
1077
1078/// Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.
1079///
1080/// ## Notes
1081///
1082/// Availability zones are called "zones" on Alibaba Cloud and Google Cloud.
1083///
1084/// # Examples
1085///
1086/// - `"us-east-1c"`
1087#[cfg(feature = "semconv_experimental")]
1088pub const CLOUD_AVAILABILITY_ZONE: &str = "cloud.availability_zone";
1089
1090/// The cloud platform in use.
1091///
1092/// ## Notes
1093///
1094/// The prefix of the service SHOULD match the one specified in `cloud.provider`
1095#[cfg(feature = "semconv_experimental")]
1096pub const CLOUD_PLATFORM: &str = "cloud.platform";
1097
1098/// Name of the cloud provider.
1099///
1100/// ## Notes
1101#[cfg(feature = "semconv_experimental")]
1102pub const CLOUD_PROVIDER: &str = "cloud.provider";
1103
1104/// The geographical region the resource is running.
1105///
1106/// ## Notes
1107///
1108/// 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).
1109///
1110/// # Examples
1111///
1112/// - `"us-central1"`
1113/// - `"us-east-1"`
1114#[cfg(feature = "semconv_experimental")]
1115pub const CLOUD_REGION: &str = "cloud.region";
1116
1117/// 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)
1118///
1119/// ## Notes
1120///
1121/// On some cloud providers, it may not be possible to determine the full ID at startup,
1122/// so it may be necessary to set `cloud.resource_id` as a span attribute instead.
1123///
1124/// The exact value to use for `cloud.resource_id` depends on the cloud provider.
1125/// The following well-known definitions MUST be used if you set this attribute and they apply:
1126///
1127/// - **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
1128///   Take care not to use the "invoked ARN" directly but replace any
1129///   [alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html)
1130///   with the resolved function version, as the same runtime instance may be invocable with
1131///   multiple different aliases.
1132/// - **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names)
1133/// - **Azure:** The [Fully Qualified Resource ID](https://docs.microsoft.com/rest/api/resources/resources/get-by-id) of the invoked function,
1134///   *not* the function app, having the form
1135///   `/subscriptions/[SUBSCRIPTION_GUID]/resourceGroups/[RG]/providers/Microsoft.Web/sites/[FUNCAPP]/functions/[FUNC]`.
1136///   This means that a span attribute MUST be used, as an Azure function app can host multiple functions that would usually share
1137///   a TracerProvider.
1138///
1139/// # Examples
1140///
1141/// - `"arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function"`
1142/// - `"//run.googleapis.com/projects/PROJECT_ID/locations/LOCATION_ID/services/SERVICE_ID"`
1143/// - `"/subscriptions/<SUBSCRIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>"`
1144#[cfg(feature = "semconv_experimental")]
1145pub const CLOUD_RESOURCE_ID: &str = "cloud.resource_id";
1146
1147/// The [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id) uniquely identifies the event.
1148///
1149/// ## Notes
1150///
1151/// # Examples
1152///
1153/// - `"123e4567-e89b-12d3-a456-426614174000"`
1154/// - `"0001"`
1155#[cfg(feature = "semconv_experimental")]
1156pub const CLOUDEVENTS_EVENT_ID: &str = "cloudevents.event_id";
1157
1158/// The [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1) identifies the context in which an event happened.
1159///
1160/// ## Notes
1161///
1162/// # Examples
1163///
1164/// - `"https://github.com/cloudevents"`
1165/// - `"/cloudevents/spec/pull/123"`
1166/// - `"my-service"`
1167#[cfg(feature = "semconv_experimental")]
1168pub const CLOUDEVENTS_EVENT_SOURCE: &str = "cloudevents.event_source";
1169
1170/// The [version of the CloudEvents specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion) which the event uses.
1171///
1172/// ## Notes
1173///
1174/// # Examples
1175///
1176/// - `"1.0"`
1177#[cfg(feature = "semconv_experimental")]
1178pub const CLOUDEVENTS_EVENT_SPEC_VERSION: &str = "cloudevents.event_spec_version";
1179
1180/// 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).
1181///
1182/// ## Notes
1183///
1184/// # Examples
1185///
1186/// - `"mynewfile.jpg"`
1187#[cfg(feature = "semconv_experimental")]
1188pub const CLOUDEVENTS_EVENT_SUBJECT: &str = "cloudevents.event_subject";
1189
1190/// 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.
1191///
1192/// ## Notes
1193///
1194/// # Examples
1195///
1196/// - `"com.github.pull_request.opened"`
1197/// - `"com.example.object.deleted.v2"`
1198#[cfg(feature = "semconv_experimental")]
1199pub const CLOUDEVENTS_EVENT_TYPE: &str = "cloudevents.event_type";
1200
1201/// The guid of the application.
1202///
1203/// ## Notes
1204///
1205/// Application instrumentation should use the value from environment
1206/// variable `VCAP_APPLICATION.application_id`. This is the same value as
1207/// reported by `cf app [app-name] --guid`.
1208///
1209/// # Examples
1210///
1211/// - `"218fc5a9-a5f1-4b54-aa05-46717d0ab26d"`
1212#[cfg(feature = "semconv_experimental")]
1213pub const CLOUDFOUNDRY_APP_ID: &str = "cloudfoundry.app.id";
1214
1215/// The index of the application instance. 0 when just one instance is active.
1216///
1217/// ## Notes
1218///
1219/// CloudFoundry defines the `instance_id` in the [Loggregator v2 envelope](https://github.com/cloudfoundry/loggregator-api#v2-envelope).
1220/// It is used for logs and metrics emitted by CloudFoundry. It is
1221/// supposed to contain the application instance index for applications
1222/// deployed on the runtime.
1223///
1224/// Application instrumentation should use the value from environment
1225/// variable `CF_INSTANCE_INDEX`.
1226///
1227/// # Examples
1228///
1229/// - `"0"`
1230/// - `"1"`
1231#[cfg(feature = "semconv_experimental")]
1232pub const CLOUDFOUNDRY_APP_INSTANCE_ID: &str = "cloudfoundry.app.instance.id";
1233
1234/// The name of the application.
1235///
1236/// ## Notes
1237///
1238/// Application instrumentation should use the value from environment
1239/// variable `VCAP_APPLICATION.application_name`. This is the same value
1240/// as reported by `cf apps`.
1241///
1242/// # Examples
1243///
1244/// - `"my-app-name"`
1245#[cfg(feature = "semconv_experimental")]
1246pub const CLOUDFOUNDRY_APP_NAME: &str = "cloudfoundry.app.name";
1247
1248/// The guid of the CloudFoundry org the application is running in.
1249///
1250/// ## Notes
1251///
1252/// Application instrumentation should use the value from environment
1253/// variable `VCAP_APPLICATION.org_id`. This is the same value as
1254/// reported by `cf org [org-name] --guid`.
1255///
1256/// # Examples
1257///
1258/// - `"218fc5a9-a5f1-4b54-aa05-46717d0ab26d"`
1259#[cfg(feature = "semconv_experimental")]
1260pub const CLOUDFOUNDRY_ORG_ID: &str = "cloudfoundry.org.id";
1261
1262/// The name of the CloudFoundry organization the app is running in.
1263///
1264/// ## Notes
1265///
1266/// Application instrumentation should use the value from environment
1267/// variable `VCAP_APPLICATION.org_name`. This is the same value as
1268/// reported by `cf orgs`.
1269///
1270/// # Examples
1271///
1272/// - `"my-org-name"`
1273#[cfg(feature = "semconv_experimental")]
1274pub const CLOUDFOUNDRY_ORG_NAME: &str = "cloudfoundry.org.name";
1275
1276/// The UID identifying the process.
1277///
1278/// ## Notes
1279///
1280/// Application instrumentation should use the value from environment
1281/// variable `VCAP_APPLICATION.process_id`. It is supposed to be equal to
1282/// `VCAP_APPLICATION.app_id` for applications deployed to the runtime.
1283/// For system components, this could be the actual PID.
1284///
1285/// # Examples
1286///
1287/// - `"218fc5a9-a5f1-4b54-aa05-46717d0ab26d"`
1288#[cfg(feature = "semconv_experimental")]
1289pub const CLOUDFOUNDRY_PROCESS_ID: &str = "cloudfoundry.process.id";
1290
1291/// The type of process.
1292///
1293/// ## Notes
1294///
1295/// CloudFoundry applications can consist of multiple jobs. Usually the
1296/// main process will be of type `web`. There can be additional background
1297/// tasks or side-cars with different process types.
1298///
1299/// # Examples
1300///
1301/// - `"web"`
1302#[cfg(feature = "semconv_experimental")]
1303pub const CLOUDFOUNDRY_PROCESS_TYPE: &str = "cloudfoundry.process.type";
1304
1305/// The guid of the CloudFoundry space the application is running in.
1306///
1307/// ## Notes
1308///
1309/// Application instrumentation should use the value from environment
1310/// variable `VCAP_APPLICATION.space_id`. This is the same value as
1311/// reported by `cf space [space-name] --guid`.
1312///
1313/// # Examples
1314///
1315/// - `"218fc5a9-a5f1-4b54-aa05-46717d0ab26d"`
1316#[cfg(feature = "semconv_experimental")]
1317pub const CLOUDFOUNDRY_SPACE_ID: &str = "cloudfoundry.space.id";
1318
1319/// The name of the CloudFoundry space the application is running in.
1320///
1321/// ## Notes
1322///
1323/// Application instrumentation should use the value from environment
1324/// variable `VCAP_APPLICATION.space_name`. This is the same value as
1325/// reported by `cf spaces`.
1326///
1327/// # Examples
1328///
1329/// - `"my-space-name"`
1330#[cfg(feature = "semconv_experimental")]
1331pub const CLOUDFOUNDRY_SPACE_NAME: &str = "cloudfoundry.space.name";
1332
1333/// A guid or another name describing the event source.
1334///
1335/// ## Notes
1336///
1337/// CloudFoundry defines the `source_id` in the [Loggregator v2 envelope](https://github.com/cloudfoundry/loggregator-api#v2-envelope).
1338/// It is used for logs and metrics emitted by CloudFoundry. It is
1339/// supposed to contain the component name, e.g. "gorouter", for
1340/// CloudFoundry components.
1341///
1342/// When system components are instrumented, values from the
1343/// [Bosh spec](https://bosh.io/docs/jobs/#properties-spec)
1344/// should be used. The `system.id` should be set to
1345/// `spec.deployment/spec.name`.
1346///
1347/// # Examples
1348///
1349/// - `"cf/gorouter"`
1350#[cfg(feature = "semconv_experimental")]
1351pub const CLOUDFOUNDRY_SYSTEM_ID: &str = "cloudfoundry.system.id";
1352
1353/// A guid describing the concrete instance of the event source.
1354///
1355/// ## Notes
1356///
1357/// CloudFoundry defines the `instance_id` in the [Loggregator v2 envelope](https://github.com/cloudfoundry/loggregator-api#v2-envelope).
1358/// It is used for logs and metrics emitted by CloudFoundry. It is
1359/// supposed to contain the vm id for CloudFoundry components.
1360///
1361/// When system components are instrumented, values from the
1362/// [Bosh spec](https://bosh.io/docs/jobs/#properties-spec)
1363/// should be used. The `system.instance.id` should be set to `spec.id`.
1364///
1365/// # Examples
1366///
1367/// - `"218fc5a9-a5f1-4b54-aa05-46717d0ab26d"`
1368#[cfg(feature = "semconv_experimental")]
1369pub const CLOUDFOUNDRY_SYSTEM_INSTANCE_ID: &str = "cloudfoundry.system.instance.id";
1370
1371/// Deprecated, use `code.column.number`
1372///
1373/// ## Notes
1374///
1375/// # Examples
1376///
1377/// - `16`
1378#[cfg(feature = "semconv_experimental")]
1379pub const CODE_COLUMN: &str = "code.column";
1380
1381/// The column number in `code.file.path` best representing the operation. It SHOULD point within the code unit named in `code.function.name`.
1382///
1383/// ## Notes
1384///
1385/// # Examples
1386///
1387/// - `16`
1388#[cfg(feature = "semconv_experimental")]
1389pub const CODE_COLUMN_NUMBER: &str = "code.column.number";
1390
1391/// The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).
1392///
1393/// ## Notes
1394///
1395/// # Examples
1396///
1397/// - `"/usr/local/MyApplication/content_root/app/index.php"`
1398#[cfg(feature = "semconv_experimental")]
1399pub const CODE_FILE_PATH: &str = "code.file.path";
1400
1401/// Deprecated, use `code.file.path` instead
1402///
1403/// ## Notes
1404///
1405/// # Examples
1406///
1407/// - `"/usr/local/MyApplication/content_root/app/index.php"`
1408#[cfg(feature = "semconv_experimental")]
1409pub const CODE_FILEPATH: &str = "code.filepath";
1410
1411/// Deprecated, use `code.function.name` instead
1412///
1413/// ## Notes
1414///
1415/// # Examples
1416///
1417/// - `"serveRequest"`
1418#[cfg(feature = "semconv_experimental")]
1419pub const CODE_FUNCTION: &str = "code.function";
1420
1421/// 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.
1422///
1423/// ## Notes
1424///
1425/// Values and format depends on each language runtime, thus it is impossible to provide an exhaustive list of examples.
1426/// The values are usually the same (or prefixes of) the ones found in native stack trace representation stored in
1427/// `code.stacktrace` without information on arguments.
1428///
1429/// Examples:
1430///
1431/// - Java method: `com.example.MyHttpService.serveRequest`
1432/// - Java anonymous class method: `com.mycompany.Main$1.myMethod`
1433/// - Java lambda method: `com.mycompany.Main$$Lambda/0x0000748ae4149c00.myMethod`
1434/// - PHP function: `GuzzleHttp\Client::transfer
1435/// - Go function: `github.com/my/repo/pkg.foo.func5`
1436/// - Elixir: `OpenTelemetry.Ctx.new`
1437/// - Erlang: `opentelemetry_ctx:new`
1438/// - Rust: `playground::my_module::my_cool_func`
1439/// - C function: `fopen`
1440///
1441/// # Examples
1442///
1443/// - `"com.example.MyHttpService.serveRequest"`
1444/// - `"GuzzleHttp\\Client::transfer"`
1445/// - `"fopen"`
1446#[cfg(feature = "semconv_experimental")]
1447pub const CODE_FUNCTION_NAME: &str = "code.function.name";
1448
1449/// The line number in `code.file.path` best representing the operation. It SHOULD point within the code unit named in `code.function.name`.
1450///
1451/// ## Notes
1452///
1453/// # Examples
1454///
1455/// - `42`
1456#[cfg(feature = "semconv_experimental")]
1457pub const CODE_LINE_NUMBER: &str = "code.line.number";
1458
1459/// Deprecated, use `code.line.number` instead
1460///
1461/// ## Notes
1462///
1463/// # Examples
1464///
1465/// - `42`
1466#[cfg(feature = "semconv_experimental")]
1467pub const CODE_LINENO: &str = "code.lineno";
1468
1469/// Deprecated, namespace is now included into `code.function.name`
1470///
1471/// ## Notes
1472///
1473/// # Examples
1474///
1475/// - `"com.example.MyHttpService"`
1476#[cfg(feature = "semconv_experimental")]
1477pub const CODE_NAMESPACE: &str = "code.namespace";
1478
1479/// 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).
1480///
1481/// ## Notes
1482///
1483/// # Examples
1484///
1485/// - `"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)\n"`
1486#[cfg(feature = "semconv_experimental")]
1487pub const CODE_STACKTRACE: &str = "code.stacktrace";
1488
1489/// The command used to run the container (i.e. the command name).
1490///
1491/// ## Notes
1492///
1493/// If using embedded credentials or sensitive data, it is recommended to remove them to prevent potential leakage.
1494///
1495/// # Examples
1496///
1497/// - `"otelcontribcol"`
1498#[cfg(feature = "semconv_experimental")]
1499pub const CONTAINER_COMMAND: &str = "container.command";
1500
1501/// All the command arguments (including the command/executable itself) run by the container.
1502///
1503/// ## Notes
1504///
1505/// # Examples
1506///
1507/// - `[
1508///  "otelcontribcol",
1509///  "--config",
1510///  "config.yaml",
1511/// ]`
1512#[cfg(feature = "semconv_experimental")]
1513pub const CONTAINER_COMMAND_ARGS: &str = "container.command_args";
1514
1515/// The full command run by the container as a single string representing the full command.
1516///
1517/// ## Notes
1518///
1519/// # Examples
1520///
1521/// - `"otelcontribcol --config config.yaml"`
1522#[cfg(feature = "semconv_experimental")]
1523pub const CONTAINER_COMMAND_LINE: &str = "container.command_line";
1524
1525/// Deprecated, use `cpu.mode` instead.
1526///
1527/// ## Notes
1528///
1529/// # Examples
1530///
1531/// - `"user"`
1532/// - `"kernel"`
1533#[cfg(feature = "semconv_experimental")]
1534pub const CONTAINER_CPU_STATE: &str = "container.cpu.state";
1535
1536/// The name of the CSI ([Container Storage Interface](https://github.com/container-storage-interface/spec)) plugin used by the volume.
1537///
1538/// ## Notes
1539///
1540/// This can sometimes be referred to as a "driver" in CSI implementations. This should represent the `name` field of the GetPluginInfo RPC.
1541///
1542/// # Examples
1543///
1544/// - `"pd.csi.storage.gke.io"`
1545#[cfg(feature = "semconv_experimental")]
1546pub const CONTAINER_CSI_PLUGIN_NAME: &str = "container.csi.plugin.name";
1547
1548/// The unique volume ID returned by the CSI ([Container Storage Interface](https://github.com/container-storage-interface/spec)) plugin.
1549///
1550/// ## Notes
1551///
1552/// This can sometimes be referred to as a "volume handle" in CSI implementations. This should represent the `Volume.volume_id` field in CSI spec.
1553///
1554/// # Examples
1555///
1556/// - `"projects/my-gcp-project/zones/my-gcp-zone/disks/my-gcp-disk"`
1557#[cfg(feature = "semconv_experimental")]
1558pub const CONTAINER_CSI_VOLUME_ID: &str = "container.csi.volume.id";
1559
1560/// 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.
1561///
1562/// ## Notes
1563///
1564/// # Examples
1565///
1566/// - `"a3bf90e006b2"`
1567#[cfg(feature = "semconv_experimental")]
1568pub const CONTAINER_ID: &str = "container.id";
1569
1570/// Runtime specific image identifier. Usually a hash algorithm followed by a UUID.
1571///
1572/// ## Notes
1573///
1574/// 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/engine/api/v1.43/#tag/Container/operation/ContainerInspect) endpoint.
1575/// K8s defines a link to the container registry repository with digest `"imageID": "registry.azurecr.io /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"`.
1576/// 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.
1577///
1578/// # Examples
1579///
1580/// - `"sha256:19c92d0a00d1b66d897bceaa7319bee0dd38a10a851c60bcec9474aa3f01e50f"`
1581#[cfg(feature = "semconv_experimental")]
1582pub const CONTAINER_IMAGE_ID: &str = "container.image.id";
1583
1584/// Name of the image the container was built on.
1585///
1586/// ## Notes
1587///
1588/// # Examples
1589///
1590/// - `"gcr.io/opentelemetry/operator"`
1591#[cfg(feature = "semconv_experimental")]
1592pub const CONTAINER_IMAGE_NAME: &str = "container.image.name";
1593
1594/// Repo digests of the container image as provided by the container runtime.
1595///
1596/// ## Notes
1597///
1598/// [Docker](https://docs.docker.com/engine/api/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.
1599///
1600/// # Examples
1601///
1602/// - `[
1603///  "example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb",
1604///  "internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578",
1605/// ]`
1606#[cfg(feature = "semconv_experimental")]
1607pub const CONTAINER_IMAGE_REPO_DIGESTS: &str = "container.image.repo_digests";
1608
1609/// Container image tags. An example can be found in [Docker Image Inspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect). Should be only the `<tag>` section of the full name for example from `registry.example.com/my-org/my-image:<tag>`.
1610///
1611/// ## Notes
1612///
1613/// # Examples
1614///
1615/// - `[
1616///  "v1.27.1",
1617///  "3.5.7-0",
1618/// ]`
1619#[cfg(feature = "semconv_experimental")]
1620pub const CONTAINER_IMAGE_TAGS: &str = "container.image.tags";
1621
1622/// Container labels, `<key>` being the label name, the value being the label value.
1623///
1624/// ## Notes
1625///
1626/// # Examples
1627///
1628/// - `"container.label.app=nginx"`
1629#[cfg(feature = "semconv_experimental")]
1630pub const CONTAINER_LABEL: &str = "container.label";
1631
1632/// Deprecated, use `container.label` instead.
1633///
1634/// ## Notes
1635///
1636/// # Examples
1637///
1638/// - `"container.label.app=nginx"`
1639#[cfg(feature = "semconv_experimental")]
1640pub const CONTAINER_LABELS: &str = "container.labels";
1641
1642/// Container name used by container runtime.
1643///
1644/// ## Notes
1645///
1646/// # Examples
1647///
1648/// - `"opentelemetry-autoconf"`
1649#[cfg(feature = "semconv_experimental")]
1650pub const CONTAINER_NAME: &str = "container.name";
1651
1652/// The container runtime managing this container.
1653///
1654/// ## Notes
1655///
1656/// # Examples
1657///
1658/// - `"docker"`
1659/// - `"containerd"`
1660/// - `"rkt"`
1661#[cfg(feature = "semconv_experimental")]
1662pub const CONTAINER_RUNTIME: &str = "container.runtime";
1663
1664/// The logical CPU number \[0..n-1\]
1665///
1666/// ## Notes
1667///
1668/// # Examples
1669///
1670/// - `1`
1671#[cfg(feature = "semconv_experimental")]
1672pub const CPU_LOGICAL_NUMBER: &str = "cpu.logical_number";
1673
1674/// The mode of the CPU
1675///
1676/// ## Notes
1677///
1678/// # Examples
1679///
1680/// - `"user"`
1681/// - `"system"`
1682#[cfg(feature = "semconv_experimental")]
1683pub const CPU_MODE: &str = "cpu.mode";
1684
1685/// Deprecated, use `cassandra.consistency.level` instead.
1686///
1687/// ## Notes
1688#[cfg(feature = "semconv_experimental")]
1689pub const DB_CASSANDRA_CONSISTENCY_LEVEL: &str = "db.cassandra.consistency_level";
1690
1691/// Deprecated, use `cassandra.coordinator.dc` instead.
1692///
1693/// ## Notes
1694///
1695/// # Examples
1696///
1697/// - `"us-west-2"`
1698#[cfg(feature = "semconv_experimental")]
1699pub const DB_CASSANDRA_COORDINATOR_DC: &str = "db.cassandra.coordinator.dc";
1700
1701/// Deprecated, use `cassandra.coordinator.id` instead.
1702///
1703/// ## Notes
1704///
1705/// # Examples
1706///
1707/// - `"be13faa2-8574-4d71-926d-27f16cf8a7af"`
1708#[cfg(feature = "semconv_experimental")]
1709pub const DB_CASSANDRA_COORDINATOR_ID: &str = "db.cassandra.coordinator.id";
1710
1711/// Deprecated, use `cassandra.query.idempotent` instead.
1712///
1713/// ## Notes
1714#[cfg(feature = "semconv_experimental")]
1715pub const DB_CASSANDRA_IDEMPOTENCE: &str = "db.cassandra.idempotence";
1716
1717/// Deprecated, use `cassandra.page.size` instead.
1718///
1719/// ## Notes
1720///
1721/// # Examples
1722///
1723/// - `5000`
1724#[cfg(feature = "semconv_experimental")]
1725pub const DB_CASSANDRA_PAGE_SIZE: &str = "db.cassandra.page_size";
1726
1727/// Deprecated, use `cassandra.speculative_execution.count` instead.
1728///
1729/// ## Notes
1730///
1731/// # Examples
1732///
1733/// - `0`
1734/// - `2`
1735#[cfg(feature = "semconv_experimental")]
1736pub const DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT: &str =
1737    "db.cassandra.speculative_execution_count";
1738
1739/// Deprecated, use `db.collection.name` instead.
1740///
1741/// ## Notes
1742///
1743/// # Examples
1744///
1745/// - `"mytable"`
1746#[cfg(feature = "semconv_experimental")]
1747pub const DB_CASSANDRA_TABLE: &str = "db.cassandra.table";
1748
1749/// 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.
1750///
1751/// ## Notes
1752///
1753/// # Examples
1754///
1755/// - `"myDataSource"`
1756#[cfg(feature = "semconv_experimental")]
1757pub const DB_CLIENT_CONNECTION_POOL_NAME: &str = "db.client.connection.pool.name";
1758
1759/// The state of a connection in the pool
1760///
1761/// ## Notes
1762///
1763/// # Examples
1764///
1765/// - `"idle"`
1766#[cfg(feature = "semconv_experimental")]
1767pub const DB_CLIENT_CONNECTION_STATE: &str = "db.client.connection.state";
1768
1769/// Deprecated, use `db.client.connection.pool.name` instead.
1770///
1771/// ## Notes
1772///
1773/// # Examples
1774///
1775/// - `"myDataSource"`
1776#[cfg(feature = "semconv_experimental")]
1777pub const DB_CLIENT_CONNECTIONS_POOL_NAME: &str = "db.client.connections.pool.name";
1778
1779/// Deprecated, use `db.client.connection.state` instead.
1780///
1781/// ## Notes
1782///
1783/// # Examples
1784///
1785/// - `"idle"`
1786#[cfg(feature = "semconv_experimental")]
1787pub const DB_CLIENT_CONNECTIONS_STATE: &str = "db.client.connections.state";
1788
1789/// The name of a collection (table, container) within the database.
1790///
1791/// ## Notes
1792///
1793/// It is RECOMMENDED to capture the value as provided by the application
1794/// without attempting to do any case normalization.
1795///
1796/// The collection name SHOULD NOT be extracted from `db.query.text`,
1797/// when the database system supports cross-table queries in non-batch operations.
1798///
1799/// For batch operations, if the individual operations are known to have the same
1800/// collection name then that collection name SHOULD be used.
1801///
1802/// # Examples
1803///
1804/// - `"public.users"`
1805/// - `"customers"`
1806#[cfg(feature = "semconv_experimental")]
1807pub const DB_COLLECTION_NAME: &str = "db.collection.name";
1808
1809/// Deprecated, use `server.address`, `server.port` attributes instead.
1810///
1811/// ## Notes
1812///
1813/// # Examples
1814///
1815/// - `"Server=(localdb)\\v11.0;Integrated Security=true;"`
1816#[cfg(feature = "semconv_experimental")]
1817pub const DB_CONNECTION_STRING: &str = "db.connection_string";
1818
1819/// Deprecated, use `azure.client.id` instead.
1820///
1821/// ## Notes
1822///
1823/// # Examples
1824///
1825/// - `"3ba4827d-4422-483f-b59f-85b74211c11d"`
1826#[cfg(feature = "semconv_experimental")]
1827pub const DB_COSMOSDB_CLIENT_ID: &str = "db.cosmosdb.client_id";
1828
1829/// Deprecated, use `azure.cosmosdb.connection.mode` instead.
1830///
1831/// ## Notes
1832#[cfg(feature = "semconv_experimental")]
1833pub const DB_COSMOSDB_CONNECTION_MODE: &str = "db.cosmosdb.connection_mode";
1834
1835/// Deprecated, use `cosmosdb.consistency.level` instead.
1836///
1837/// ## Notes
1838///
1839/// # Examples
1840///
1841/// - `"Eventual"`
1842/// - `"ConsistentPrefix"`
1843/// - `"BoundedStaleness"`
1844/// - `"Strong"`
1845/// - `"Session"`
1846#[cfg(feature = "semconv_experimental")]
1847pub const DB_COSMOSDB_CONSISTENCY_LEVEL: &str = "db.cosmosdb.consistency_level";
1848
1849/// Deprecated, use `db.collection.name` instead.
1850///
1851/// ## Notes
1852///
1853/// # Examples
1854///
1855/// - `"mytable"`
1856#[cfg(feature = "semconv_experimental")]
1857pub const DB_COSMOSDB_CONTAINER: &str = "db.cosmosdb.container";
1858
1859/// Deprecated, no replacement at this time.
1860///
1861/// ## Notes
1862#[cfg(feature = "semconv_experimental")]
1863pub const DB_COSMOSDB_OPERATION_TYPE: &str = "db.cosmosdb.operation_type";
1864
1865/// Deprecated, use `azure.cosmosdb.operation.contacted_regions` instead.
1866///
1867/// ## Notes
1868///
1869/// # Examples
1870///
1871/// - `[
1872///  "North Central US",
1873///  "Australia East",
1874///  "Australia Southeast",
1875/// ]`
1876#[cfg(feature = "semconv_experimental")]
1877pub const DB_COSMOSDB_REGIONS_CONTACTED: &str = "db.cosmosdb.regions_contacted";
1878
1879/// Deprecated, use `azure.cosmosdb.operation.request_charge` instead.
1880///
1881/// ## Notes
1882///
1883/// # Examples
1884///
1885/// - `46.18`
1886/// - `1.0`
1887#[cfg(feature = "semconv_experimental")]
1888pub const DB_COSMOSDB_REQUEST_CHARGE: &str = "db.cosmosdb.request_charge";
1889
1890/// Deprecated, use `azure.cosmosdb.request.body.size` instead.
1891///
1892/// ## Notes
1893#[cfg(feature = "semconv_experimental")]
1894pub const DB_COSMOSDB_REQUEST_CONTENT_LENGTH: &str = "db.cosmosdb.request_content_length";
1895
1896/// Deprecated, use `db.response.status_code` instead.
1897///
1898/// ## Notes
1899///
1900/// # Examples
1901///
1902/// - `200`
1903/// - `201`
1904#[cfg(feature = "semconv_experimental")]
1905pub const DB_COSMOSDB_STATUS_CODE: &str = "db.cosmosdb.status_code";
1906
1907/// Deprecated, use `azure.cosmosdb.response.sub_status_code` instead.
1908///
1909/// ## Notes
1910///
1911/// # Examples
1912///
1913/// - `1000`
1914/// - `1002`
1915#[cfg(feature = "semconv_experimental")]
1916pub const DB_COSMOSDB_SUB_STATUS_CODE: &str = "db.cosmosdb.sub_status_code";
1917
1918/// Deprecated, use `db.namespace` instead.
1919///
1920/// ## Notes
1921///
1922/// # Examples
1923///
1924/// - `"e9106fc68e3044f0b1475b04bf4ffd5f"`
1925#[cfg(feature = "semconv_experimental")]
1926pub const DB_ELASTICSEARCH_CLUSTER_NAME: &str = "db.elasticsearch.cluster.name";
1927
1928/// Deprecated, use `elasticsearch.node.name` instead.
1929///
1930/// ## Notes
1931///
1932/// # Examples
1933///
1934/// - `"instance-0000000001"`
1935#[cfg(feature = "semconv_experimental")]
1936pub const DB_ELASTICSEARCH_NODE_NAME: &str = "db.elasticsearch.node.name";
1937
1938/// Deprecated, use `db.operation.parameter` instead.
1939///
1940/// ## Notes
1941///
1942/// # Examples
1943///
1944/// - `"db.elasticsearch.path_parts.index=test-index"`
1945/// - `"db.elasticsearch.path_parts.doc_id=123"`
1946#[cfg(feature = "semconv_experimental")]
1947pub const DB_ELASTICSEARCH_PATH_PARTS: &str = "db.elasticsearch.path_parts";
1948
1949/// Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead.
1950///
1951/// ## Notes
1952///
1953/// # Examples
1954///
1955/// - `"mysql-e26b99z.example.com"`
1956#[cfg(feature = "semconv_experimental")]
1957pub const DB_INSTANCE_ID: &str = "db.instance.id";
1958
1959/// Removed, no replacement at this time.
1960///
1961/// ## Notes
1962///
1963/// # Examples
1964///
1965/// - `"org.postgresql.Driver"`
1966/// - `"com.microsoft.sqlserver.jdbc.SQLServerDriver"`
1967#[cfg(feature = "semconv_experimental")]
1968pub const DB_JDBC_DRIVER_CLASSNAME: &str = "db.jdbc.driver_classname";
1969
1970/// Deprecated, use `db.collection.name` instead.
1971///
1972/// ## Notes
1973///
1974/// # Examples
1975///
1976/// - `"mytable"`
1977#[cfg(feature = "semconv_experimental")]
1978pub const DB_MONGODB_COLLECTION: &str = "db.mongodb.collection";
1979
1980/// Deprecated, SQL Server instance is now populated as a part of `db.namespace` attribute.
1981///
1982/// ## Notes
1983///
1984/// # Examples
1985///
1986/// - `"MSSQLSERVER"`
1987#[cfg(feature = "semconv_experimental")]
1988pub const DB_MSSQL_INSTANCE_NAME: &str = "db.mssql.instance_name";
1989
1990/// Deprecated, use `db.namespace` instead.
1991///
1992/// ## Notes
1993///
1994/// # Examples
1995///
1996/// - `"customers"`
1997/// - `"main"`
1998#[cfg(feature = "semconv_experimental")]
1999pub const DB_NAME: &str = "db.name";
2000
2001/// The name of the database, fully qualified within the server address and port.
2002///
2003/// ## Notes
2004///
2005/// If a database system has multiple namespace components, they SHOULD be concatenated (potentially using database system specific conventions) from most general to most specific namespace component, and more specific namespaces SHOULD NOT be captured without the more general namespaces, to ensure that "startswith" queries for the more general namespaces will be valid.
2006/// Semantic conventions for individual database systems SHOULD document what `db.namespace` means in the context of that system.
2007/// It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
2008///
2009/// # Examples
2010///
2011/// - `"customers"`
2012/// - `"test.users"`
2013#[cfg(feature = "semconv_experimental")]
2014pub const DB_NAMESPACE: &str = "db.namespace";
2015
2016/// Deprecated, use `db.operation.name` instead.
2017///
2018/// ## Notes
2019///
2020/// # Examples
2021///
2022/// - `"findAndModify"`
2023/// - `"HMSET"`
2024/// - `"SELECT"`
2025#[cfg(feature = "semconv_experimental")]
2026pub const DB_OPERATION: &str = "db.operation";
2027
2028/// The number of queries included in a batch operation.
2029///
2030/// ## Notes
2031///
2032/// Operations are only considered batches when they contain two or more operations, and so `db.operation.batch.size` SHOULD never be `1`.
2033///
2034/// # Examples
2035///
2036/// - `2`
2037/// - `3`
2038/// - `4`
2039#[cfg(feature = "semconv_experimental")]
2040pub const DB_OPERATION_BATCH_SIZE: &str = "db.operation.batch.size";
2041
2042/// The name of the operation or command being executed.
2043///
2044/// ## Notes
2045///
2046/// It is RECOMMENDED to capture the value as provided by the application
2047/// without attempting to do any case normalization.
2048///
2049/// The operation name SHOULD NOT be extracted from `db.query.text`,
2050/// when the database system supports cross-table queries in non-batch operations.
2051///
2052/// For batch operations, if the individual operations are known to have the same operation name
2053/// then that operation name SHOULD be used prepended by `BATCH `,
2054/// otherwise `db.operation.name` SHOULD be `BATCH` or some other database
2055/// system specific term if more applicable.
2056///
2057/// # Examples
2058///
2059/// - `"findAndModify"`
2060/// - `"HMSET"`
2061/// - `"SELECT"`
2062#[cfg(feature = "semconv_experimental")]
2063pub const DB_OPERATION_NAME: &str = "db.operation.name";
2064
2065/// A database operation parameter, with `<key>` being the parameter name, and the attribute value being a string representation of the parameter value.
2066///
2067/// ## Notes
2068///
2069/// If a parameter has no name and instead is referenced only by index, then `[key]` SHOULD be the 0-based index.
2070/// If `db.query.text` is also captured, then `db.operation.parameter.[key]` SHOULD match up with the parameterized placeholders present in `db.query.text`.
2071///
2072/// # Examples
2073///
2074/// - `"someval"`
2075/// - `"55"`
2076#[cfg(feature = "semconv_experimental")]
2077pub const DB_OPERATION_PARAMETER: &str = "db.operation.parameter";
2078
2079/// A query parameter used in `db.query.text`, with `<key>` being the parameter name, and the attribute value being a string representation of the parameter value.
2080///
2081/// ## Notes
2082///
2083/// # Examples
2084///
2085/// - `"someval"`
2086/// - `"55"`
2087#[cfg(feature = "semconv_experimental")]
2088pub const DB_QUERY_PARAMETER: &str = "db.query.parameter";
2089
2090/// Low cardinality representation of a database query text.
2091///
2092/// ## Notes
2093///
2094/// `db.query.summary` provides static summary of the query text. It describes a class of database queries and is useful as a grouping key, especially when analyzing telemetry for database calls involving complex queries.
2095/// 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](../database/database-spans.md#generating-a-summary-of-the-query-text) section.
2096///
2097/// # Examples
2098///
2099/// - `"SELECT wuser_table"`
2100/// - `"INSERT shipping_details SELECT orders"`
2101/// - `"get user by id"`
2102#[cfg(feature = "semconv_experimental")]
2103pub const DB_QUERY_SUMMARY: &str = "db.query.summary";
2104
2105/// The database query being executed.
2106///
2107/// ## Notes
2108///
2109/// For sanitization see [Sanitization of `db.query.text`](../database/database-spans.md#sanitization-of-dbquerytext).
2110/// 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.
2111/// 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.
2112///
2113/// # Examples
2114///
2115/// - `"SELECT * FROM wuser_table where username = ?"`
2116/// - `"SET mykey ?"`
2117#[cfg(feature = "semconv_experimental")]
2118pub const DB_QUERY_TEXT: &str = "db.query.text";
2119
2120/// Deprecated, use `db.namespace` instead.
2121///
2122/// ## Notes
2123///
2124/// # Examples
2125///
2126/// - `0`
2127/// - `1`
2128/// - `15`
2129#[cfg(feature = "semconv_experimental")]
2130pub const DB_REDIS_DATABASE_INDEX: &str = "db.redis.database_index";
2131
2132/// Number of rows returned by the operation.
2133///
2134/// ## Notes
2135///
2136/// # Examples
2137///
2138/// - `10`
2139/// - `30`
2140/// - `1000`
2141#[cfg(feature = "semconv_experimental")]
2142pub const DB_RESPONSE_RETURNED_ROWS: &str = "db.response.returned_rows";
2143
2144/// Database response status code.
2145///
2146/// ## Notes
2147///
2148/// 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.
2149/// Semantic conventions for individual database systems SHOULD document what `db.response.status_code` means in the context of that system.
2150///
2151/// # Examples
2152///
2153/// - `"102"`
2154/// - `"ORA-17002"`
2155/// - `"08P01"`
2156/// - `"404"`
2157#[cfg(feature = "semconv_experimental")]
2158pub const DB_RESPONSE_STATUS_CODE: &str = "db.response.status_code";
2159
2160/// Deprecated, use `db.collection.name` instead.
2161///
2162/// ## Notes
2163///
2164/// # Examples
2165///
2166/// - `"mytable"`
2167#[cfg(feature = "semconv_experimental")]
2168pub const DB_SQL_TABLE: &str = "db.sql.table";
2169
2170/// The database statement being executed.
2171///
2172/// ## Notes
2173///
2174/// # Examples
2175///
2176/// - `"SELECT * FROM wuser_table"`
2177/// - `"SET mykey \"WuValue\""`
2178#[cfg(feature = "semconv_experimental")]
2179pub const DB_STATEMENT: &str = "db.statement";
2180
2181/// Deprecated, use `db.system.name` instead.
2182///
2183/// ## Notes
2184#[cfg(feature = "semconv_experimental")]
2185pub const DB_SYSTEM: &str = "db.system";
2186
2187/// The database management system (DBMS) product as identified by the client instrumentation.
2188///
2189/// ## Notes
2190///
2191/// 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
2192#[cfg(feature = "semconv_experimental")]
2193pub const DB_SYSTEM_NAME: &str = "db.system.name";
2194
2195/// Deprecated, no replacement at this time.
2196///
2197/// ## Notes
2198///
2199/// # Examples
2200///
2201/// - `"readonly_user"`
2202/// - `"reporting_user"`
2203#[cfg(feature = "semconv_experimental")]
2204pub const DB_USER: &str = "db.user";
2205
2206/// 'Deprecated, use `deployment.environment.name` instead.'
2207///
2208/// ## Notes
2209///
2210/// # Examples
2211///
2212/// - `"staging"`
2213/// - `"production"`
2214#[cfg(feature = "semconv_experimental")]
2215pub const DEPLOYMENT_ENVIRONMENT: &str = "deployment.environment";
2216
2217/// Name of the [deployment environment](https://wikipedia.org/wiki/Deployment_environment) (aka deployment tier).
2218///
2219/// ## Notes
2220///
2221/// `deployment.environment.name` does not affect the uniqueness constraints defined through
2222/// the `service.namespace`, `service.name` and `service.instance.id` resource attributes.
2223/// This implies that resources carrying the following attribute combinations MUST be
2224/// considered to be identifying the same service:
2225///
2226/// - `service.name=frontend`, `deployment.environment.name=production`
2227/// - `service.name=frontend`, `deployment.environment.name=staging`.
2228///
2229/// # Examples
2230///
2231/// - `"staging"`
2232/// - `"production"`
2233#[cfg(feature = "semconv_experimental")]
2234pub const DEPLOYMENT_ENVIRONMENT_NAME: &str = "deployment.environment.name";
2235
2236/// The id of the deployment.
2237///
2238/// ## Notes
2239///
2240/// # Examples
2241///
2242/// - `"1208"`
2243#[cfg(feature = "semconv_experimental")]
2244pub const DEPLOYMENT_ID: &str = "deployment.id";
2245
2246/// The name of the deployment.
2247///
2248/// ## Notes
2249///
2250/// # Examples
2251///
2252/// - `"deploy my app"`
2253/// - `"deploy-frontend"`
2254#[cfg(feature = "semconv_experimental")]
2255pub const DEPLOYMENT_NAME: &str = "deployment.name";
2256
2257/// The status of the deployment.
2258///
2259/// ## Notes
2260#[cfg(feature = "semconv_experimental")]
2261pub const DEPLOYMENT_STATUS: &str = "deployment.status";
2262
2263/// Destination address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
2264///
2265/// ## Notes
2266///
2267/// 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.
2268///
2269/// # Examples
2270///
2271/// - `"destination.example.com"`
2272/// - `"10.1.2.80"`
2273/// - `"/tmp/my.sock"`
2274#[cfg(feature = "semconv_experimental")]
2275pub const DESTINATION_ADDRESS: &str = "destination.address";
2276
2277/// Destination port number
2278///
2279/// ## Notes
2280///
2281/// # Examples
2282///
2283/// - `3389`
2284/// - `2888`
2285#[cfg(feature = "semconv_experimental")]
2286pub const DESTINATION_PORT: &str = "destination.port";
2287
2288/// A unique identifier representing the device
2289///
2290/// ## Notes
2291///
2292/// The device identifier MUST only be defined using the values outlined below. This value is not an advertising identifier and MUST NOT be used as such. On iOS (Swift or Objective-C), this value MUST be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android (Java or Kotlin), this value MUST be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. More information can be found [here](https://developer.android.com/training/articles/user-data-ids) on best practices and exact implementation details. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply, ensure you do your own due diligence.
2293///
2294/// # Examples
2295///
2296/// - `"2ab2916d-a51f-4ac8-80ee-45ac31a28092"`
2297#[cfg(feature = "semconv_experimental")]
2298pub const DEVICE_ID: &str = "device.id";
2299
2300/// The name of the device manufacturer
2301///
2302/// ## Notes
2303///
2304/// The Android OS provides this field via [Build](https://developer.android.com/reference/android/os/Build#MANUFACTURER). iOS apps SHOULD hardcode the value `Apple`.
2305///
2306/// # Examples
2307///
2308/// - `"Apple"`
2309/// - `"Samsung"`
2310#[cfg(feature = "semconv_experimental")]
2311pub const DEVICE_MANUFACTURER: &str = "device.manufacturer";
2312
2313/// The model identifier for the device
2314///
2315/// ## Notes
2316///
2317/// 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.
2318///
2319/// # Examples
2320///
2321/// - `"iPhone3,4"`
2322/// - `"SM-G920F"`
2323#[cfg(feature = "semconv_experimental")]
2324pub const DEVICE_MODEL_IDENTIFIER: &str = "device.model.identifier";
2325
2326/// The marketing name for the device model
2327///
2328/// ## Notes
2329///
2330/// It's recommended this value represents a human-readable version of the device model rather than a machine-readable alternative.
2331///
2332/// # Examples
2333///
2334/// - `"iPhone 6s Plus"`
2335/// - `"Samsung Galaxy S6"`
2336#[cfg(feature = "semconv_experimental")]
2337pub const DEVICE_MODEL_NAME: &str = "device.model.name";
2338
2339/// The disk IO operation direction.
2340///
2341/// ## Notes
2342///
2343/// # Examples
2344///
2345/// - `"read"`
2346#[cfg(feature = "semconv_experimental")]
2347pub const DISK_IO_DIRECTION: &str = "disk.io.direction";
2348
2349/// The name being queried.
2350///
2351/// ## Notes
2352///
2353/// If the name field contains non-printable characters (below 32 or above 126), those characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n respectively.
2354///
2355/// # Examples
2356///
2357/// - `"www.example.com"`
2358/// - `"opentelemetry.io"`
2359#[cfg(feature = "semconv_experimental")]
2360pub const DNS_QUESTION_NAME: &str = "dns.question.name";
2361
2362/// Name of the garbage collector managed heap generation.
2363///
2364/// ## Notes
2365///
2366/// # Examples
2367///
2368/// - `"gen0"`
2369/// - `"gen1"`
2370/// - `"gen2"`
2371pub const DOTNET_GC_HEAP_GENERATION: &str = "dotnet.gc.heap.generation";
2372
2373/// Represents the human-readable identifier of the node/instance to which a request was routed.
2374///
2375/// ## Notes
2376///
2377/// # Examples
2378///
2379/// - `"instance-0000000001"`
2380#[cfg(feature = "semconv_experimental")]
2381pub const ELASTICSEARCH_NODE_NAME: &str = "elasticsearch.node.name";
2382
2383/// Unique identifier of an end user in the system. It maybe a username, email address, or other identifier.
2384///
2385/// ## Notes
2386///
2387/// Unique identifier of an end user in the system.
2388///
2389/// \] \[!Warning\]
2390/// \] This field contains sensitive (PII) information.
2391///
2392/// # Examples
2393///
2394/// - `"username"`
2395#[cfg(feature = "semconv_experimental")]
2396pub const ENDUSER_ID: &str = "enduser.id";
2397
2398/// 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.
2399///
2400/// ## Notes
2401///
2402/// Pseudonymous identifier of an end user.
2403///
2404/// \] \[!Warning\]
2405/// \] This field contains sensitive (linkable PII) information.
2406///
2407/// # Examples
2408///
2409/// - `"QdH5CAWJgqVT4rOr0qtumf"`
2410#[cfg(feature = "semconv_experimental")]
2411pub const ENDUSER_PSEUDO_ID: &str = "enduser.pseudo.id";
2412
2413/// Deprecated, use `user.roles` instead.
2414///
2415/// ## Notes
2416///
2417/// # Examples
2418///
2419/// - `"admin"`
2420#[cfg(feature = "semconv_experimental")]
2421pub const ENDUSER_ROLE: &str = "enduser.role";
2422
2423/// Deprecated, no replacement at this time.
2424///
2425/// ## Notes
2426///
2427/// # Examples
2428///
2429/// - `"read:message, write:files"`
2430#[cfg(feature = "semconv_experimental")]
2431pub const ENDUSER_SCOPE: &str = "enduser.scope";
2432
2433/// Describes a class of error the operation ended with.
2434///
2435/// ## Notes
2436///
2437/// The `error.type` SHOULD be predictable, and SHOULD have low cardinality.
2438///
2439/// When `error.type` is set to a type (e.g., an exception type), its
2440/// canonical class name identifying the type within the artifact SHOULD be used.
2441///
2442/// Instrumentations SHOULD document the list of errors they report.
2443///
2444/// The cardinality of `error.type` within one instrumentation library SHOULD be low.
2445/// Telemetry consumers that aggregate data from multiple instrumentation libraries and applications
2446/// should be prepared for `error.type` to have high cardinality at query time when no
2447/// additional filters are applied.
2448///
2449/// If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`.
2450///
2451/// If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes),
2452/// it's RECOMMENDED to:
2453///
2454/// - Use a domain-specific attribute
2455/// - Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not.
2456///
2457/// # Examples
2458///
2459/// - `"timeout"`
2460/// - `"java.net.UnknownHostException"`
2461/// - `"server_certificate_invalid"`
2462/// - `"500"`
2463pub const ERROR_TYPE: &str = "error.type";
2464
2465/// Identifies the class / type of event.
2466///
2467/// ## Notes
2468///
2469/// # Examples
2470///
2471/// - `"browser.mouse.click"`
2472/// - `"device.app.lifecycle"`
2473#[cfg(feature = "semconv_experimental")]
2474pub const EVENT_NAME: &str = "event.name";
2475
2476/// Indicates that the exception is escaping the scope of the span.
2477///
2478/// ## Notes
2479pub const EXCEPTION_ESCAPED: &str = "exception.escaped";
2480
2481/// The exception message.
2482///
2483/// ## Notes
2484///
2485/// # Examples
2486///
2487/// - `"Division by zero"`
2488/// - `"Can't convert 'int' object to str implicitly"`
2489pub const EXCEPTION_MESSAGE: &str = "exception.message";
2490
2491/// 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.
2492///
2493/// ## Notes
2494///
2495/// # Examples
2496///
2497/// - `"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)\n"`
2498pub const EXCEPTION_STACKTRACE: &str = "exception.stacktrace";
2499
2500/// 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.
2501///
2502/// ## Notes
2503///
2504/// # Examples
2505///
2506/// - `"java.net.ConnectException"`
2507/// - `"OSError"`
2508pub const EXCEPTION_TYPE: &str = "exception.type";
2509
2510/// A boolean that is true if the serverless function is executed for the first time (aka cold-start).
2511///
2512/// ## Notes
2513#[cfg(feature = "semconv_experimental")]
2514pub const FAAS_COLDSTART: &str = "faas.coldstart";
2515
2516/// A string containing the schedule period as [Cron Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).
2517///
2518/// ## Notes
2519///
2520/// # Examples
2521///
2522/// - `"0/5 * * * ? *"`
2523#[cfg(feature = "semconv_experimental")]
2524pub const FAAS_CRON: &str = "faas.cron";
2525
2526/// 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.
2527///
2528/// ## Notes
2529///
2530/// # Examples
2531///
2532/// - `"myBucketName"`
2533/// - `"myDbName"`
2534#[cfg(feature = "semconv_experimental")]
2535pub const FAAS_DOCUMENT_COLLECTION: &str = "faas.document.collection";
2536
2537/// 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.
2538///
2539/// ## Notes
2540///
2541/// # Examples
2542///
2543/// - `"myFile.txt"`
2544/// - `"myTableName"`
2545#[cfg(feature = "semconv_experimental")]
2546pub const FAAS_DOCUMENT_NAME: &str = "faas.document.name";
2547
2548/// Describes the type of the operation that was performed on the data.
2549///
2550/// ## Notes
2551#[cfg(feature = "semconv_experimental")]
2552pub const FAAS_DOCUMENT_OPERATION: &str = "faas.document.operation";
2553
2554/// 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).
2555///
2556/// ## Notes
2557///
2558/// # Examples
2559///
2560/// - `"2020-01-23T13:47:06Z"`
2561#[cfg(feature = "semconv_experimental")]
2562pub const FAAS_DOCUMENT_TIME: &str = "faas.document.time";
2563
2564/// The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.
2565///
2566/// ## Notes
2567///
2568/// - **AWS Lambda:** Use the (full) log stream name.
2569///
2570/// # Examples
2571///
2572/// - `"2021/06/28/[$LATEST]2f399eb14537447da05ab2a2e39309de"`
2573#[cfg(feature = "semconv_experimental")]
2574pub const FAAS_INSTANCE: &str = "faas.instance";
2575
2576/// The invocation ID of the current function invocation.
2577///
2578/// ## Notes
2579///
2580/// # Examples
2581///
2582/// - `"af9d5aa4-a685-4c5f-a22b-444f80b3cc28"`
2583#[cfg(feature = "semconv_experimental")]
2584pub const FAAS_INVOCATION_ID: &str = "faas.invocation_id";
2585
2586/// The name of the invoked function.
2587///
2588/// ## Notes
2589///
2590/// SHOULD be equal to the `faas.name` resource attribute of the invoked function.
2591///
2592/// # Examples
2593///
2594/// - `"my-function"`
2595#[cfg(feature = "semconv_experimental")]
2596pub const FAAS_INVOKED_NAME: &str = "faas.invoked_name";
2597
2598/// The cloud provider of the invoked function.
2599///
2600/// ## Notes
2601///
2602/// SHOULD be equal to the `cloud.provider` resource attribute of the invoked function
2603#[cfg(feature = "semconv_experimental")]
2604pub const FAAS_INVOKED_PROVIDER: &str = "faas.invoked_provider";
2605
2606/// The cloud region of the invoked function.
2607///
2608/// ## Notes
2609///
2610/// SHOULD be equal to the `cloud.region` resource attribute of the invoked function.
2611///
2612/// # Examples
2613///
2614/// - `"eu-central-1"`
2615#[cfg(feature = "semconv_experimental")]
2616pub const FAAS_INVOKED_REGION: &str = "faas.invoked_region";
2617
2618/// The amount of memory available to the serverless function converted to Bytes.
2619///
2620/// ## Notes
2621///
2622/// 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).
2623///
2624/// # Examples
2625///
2626/// - `134217728`
2627#[cfg(feature = "semconv_experimental")]
2628pub const FAAS_MAX_MEMORY: &str = "faas.max_memory";
2629
2630/// The name of the single function that this runtime instance executes.
2631///
2632/// ## Notes
2633///
2634/// This is the name of the function as configured/deployed on the FaaS
2635/// platform and is usually different from the name of the callback
2636/// function (which may be stored in the
2637/// [`code.namespace`/`code.function.name`](/docs/general/attributes.md#source-code-attributes)
2638/// span attributes).
2639///
2640/// For some cloud providers, the above definition is ambiguous. The following
2641/// definition of function name MUST be used for this attribute
2642/// (and consequently the span name) for the listed cloud providers/products:
2643///
2644/// - **Azure:**  The full name `[FUNCAPP]/[FUNC]`, i.e., function app name
2645///   followed by a forward slash followed by the function name (this form
2646///   can also be seen in the resource JSON for the function).
2647///   This means that a span attribute MUST be used, as an Azure function
2648///   app can host multiple functions that would usually share
2649///   a TracerProvider (see also the `cloud.resource_id` attribute).
2650///
2651/// # Examples
2652///
2653/// - `"my-function"`
2654/// - `"myazurefunctionapp/some-function-name"`
2655#[cfg(feature = "semconv_experimental")]
2656pub const FAAS_NAME: &str = "faas.name";
2657
2658/// 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).
2659///
2660/// ## Notes
2661///
2662/// # Examples
2663///
2664/// - `"2020-01-23T13:47:06Z"`
2665#[cfg(feature = "semconv_experimental")]
2666pub const FAAS_TIME: &str = "faas.time";
2667
2668/// Type of the trigger which caused this function invocation.
2669///
2670/// ## Notes
2671#[cfg(feature = "semconv_experimental")]
2672pub const FAAS_TRIGGER: &str = "faas.trigger";
2673
2674/// The immutable version of the function being executed.
2675///
2676/// ## Notes
2677///
2678/// Depending on the cloud provider and platform, use:
2679///
2680/// - **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)
2681///   (an integer represented as a decimal string).
2682/// - **Google Cloud Run (Services):** The [revision](https://cloud.google.com/run/docs/managing/revisions)
2683///   (i.e., the function name plus the revision suffix).
2684/// - **Google Cloud Functions:** The value of the
2685///   [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically).
2686/// - **Azure Functions:** Not applicable. Do not set this attribute.
2687///
2688/// # Examples
2689///
2690/// - `"26"`
2691/// - `"pinkfroid-00002"`
2692#[cfg(feature = "semconv_experimental")]
2693pub const FAAS_VERSION: &str = "faas.version";
2694
2695/// The unique identifier for the flag evaluation context. For example, the targeting key.
2696///
2697/// ## Notes
2698///
2699/// # Examples
2700///
2701/// - `"5157782b-2203-4c80-a857-dbbd5e7761db"`
2702#[cfg(feature = "semconv_experimental")]
2703pub const FEATURE_FLAG_CONTEXT_ID: &str = "feature_flag.context.id";
2704
2705/// A message explaining the nature of an error occurring during flag evaluation.
2706///
2707/// ## Notes
2708///
2709/// # Examples
2710///
2711/// - `"Flag `header-color`expected type`string`but found type`number`"`
2712#[cfg(feature = "semconv_experimental")]
2713pub const FEATURE_FLAG_EVALUATION_ERROR_MESSAGE: &str = "feature_flag.evaluation.error.message";
2714
2715/// The reason code which shows how a feature flag value was determined.
2716///
2717/// ## Notes
2718///
2719/// # Examples
2720///
2721/// - `"static"`
2722/// - `"targeting_match"`
2723/// - `"error"`
2724/// - `"default"`
2725#[cfg(feature = "semconv_experimental")]
2726pub const FEATURE_FLAG_EVALUATION_REASON: &str = "feature_flag.evaluation.reason";
2727
2728/// The lookup key of the feature flag.
2729///
2730/// ## Notes
2731///
2732/// # Examples
2733///
2734/// - `"logo-color"`
2735#[cfg(feature = "semconv_experimental")]
2736pub const FEATURE_FLAG_KEY: &str = "feature_flag.key";
2737
2738/// Identifies the feature flag provider.
2739///
2740/// ## Notes
2741///
2742/// # Examples
2743///
2744/// - `"Flag Manager"`
2745#[cfg(feature = "semconv_experimental")]
2746pub const FEATURE_FLAG_PROVIDER_NAME: &str = "feature_flag.provider_name";
2747
2748/// The identifier of the [flag set](https://openfeature.dev/specification/glossary/#flag-set) to which the feature flag belongs.
2749///
2750/// ## Notes
2751///
2752/// # Examples
2753///
2754/// - `"proj-1"`
2755/// - `"ab98sgs"`
2756/// - `"service1/dev"`
2757#[cfg(feature = "semconv_experimental")]
2758pub const FEATURE_FLAG_SET_ID: &str = "feature_flag.set.id";
2759
2760/// A semantic identifier for an evaluated flag value.
2761///
2762/// ## Notes
2763///
2764/// A semantic identifier, commonly referred to as a variant, provides a means
2765/// for referring to a value without including the value itself. This can
2766/// provide additional context for understanding the meaning behind a value.
2767/// For example, the variant `red` maybe be used for the value `#c05543`.
2768///
2769/// # Examples
2770///
2771/// - `"red"`
2772/// - `"true"`
2773/// - `"on"`
2774#[cfg(feature = "semconv_experimental")]
2775pub const FEATURE_FLAG_VARIANT: &str = "feature_flag.variant";
2776
2777/// The version of the ruleset used during the evaluation. This may be any stable value which uniquely identifies the ruleset.
2778///
2779/// ## Notes
2780///
2781/// # Examples
2782///
2783/// - `"1"`
2784/// - `"01ABCDEF"`
2785#[cfg(feature = "semconv_experimental")]
2786pub const FEATURE_FLAG_VERSION: &str = "feature_flag.version";
2787
2788/// Time when the file was last accessed, in ISO 8601 format.
2789///
2790/// ## Notes
2791///
2792/// This attribute might not be supported by some file systems — NFS, FAT32, in embedded OS, etc.
2793///
2794/// # Examples
2795///
2796/// - `"2021-01-01T12:00:00Z"`
2797#[cfg(feature = "semconv_experimental")]
2798pub const FILE_ACCESSED: &str = "file.accessed";
2799
2800/// Array of file attributes.
2801///
2802/// ## Notes
2803///
2804/// 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`.
2805///
2806/// # Examples
2807///
2808/// - `[
2809///  "readonly",
2810///  "hidden",
2811/// ]`
2812#[cfg(feature = "semconv_experimental")]
2813pub const FILE_ATTRIBUTES: &str = "file.attributes";
2814
2815/// Time when the file attributes or metadata was last changed, in ISO 8601 format.
2816///
2817/// ## Notes
2818///
2819/// `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.
2820///
2821/// # Examples
2822///
2823/// - `"2021-01-01T12:00:00Z"`
2824#[cfg(feature = "semconv_experimental")]
2825pub const FILE_CHANGED: &str = "file.changed";
2826
2827/// Time when the file was created, in ISO 8601 format.
2828///
2829/// ## Notes
2830///
2831/// This attribute might not be supported by some file systems — NFS, FAT32, in embedded OS, etc.
2832///
2833/// # Examples
2834///
2835/// - `"2021-01-01T12:00:00Z"`
2836#[cfg(feature = "semconv_experimental")]
2837pub const FILE_CREATED: &str = "file.created";
2838
2839/// Directory where the file is located. It should include the drive letter, when appropriate.
2840///
2841/// ## Notes
2842///
2843/// # Examples
2844///
2845/// - `"/home/user"`
2846/// - `"C:\\Program Files\\MyApp"`
2847#[cfg(feature = "semconv_experimental")]
2848pub const FILE_DIRECTORY: &str = "file.directory";
2849
2850/// File extension, excluding the leading dot.
2851///
2852/// ## Notes
2853///
2854/// When the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz").
2855///
2856/// # Examples
2857///
2858/// - `"png"`
2859/// - `"gz"`
2860#[cfg(feature = "semconv_experimental")]
2861pub const FILE_EXTENSION: &str = "file.extension";
2862
2863/// Name of the fork. A fork is additional data associated with a filesystem object.
2864///
2865/// ## Notes
2866///
2867/// 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.
2868/// 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.
2869///
2870/// # Examples
2871///
2872/// - `"Zone.Identifer"`
2873#[cfg(feature = "semconv_experimental")]
2874pub const FILE_FORK_NAME: &str = "file.fork_name";
2875
2876/// Primary Group ID (GID) of the file.
2877///
2878/// ## Notes
2879///
2880/// # Examples
2881///
2882/// - `"1000"`
2883#[cfg(feature = "semconv_experimental")]
2884pub const FILE_GROUP_ID: &str = "file.group.id";
2885
2886/// Primary group name of the file.
2887///
2888/// ## Notes
2889///
2890/// # Examples
2891///
2892/// - `"users"`
2893#[cfg(feature = "semconv_experimental")]
2894pub const FILE_GROUP_NAME: &str = "file.group.name";
2895
2896/// Inode representing the file in the filesystem.
2897///
2898/// ## Notes
2899///
2900/// # Examples
2901///
2902/// - `"256383"`
2903#[cfg(feature = "semconv_experimental")]
2904pub const FILE_INODE: &str = "file.inode";
2905
2906/// Mode of the file in octal representation.
2907///
2908/// ## Notes
2909///
2910/// # Examples
2911///
2912/// - `"0640"`
2913#[cfg(feature = "semconv_experimental")]
2914pub const FILE_MODE: &str = "file.mode";
2915
2916/// Time when the file content was last modified, in ISO 8601 format.
2917///
2918/// ## Notes
2919///
2920/// # Examples
2921///
2922/// - `"2021-01-01T12:00:00Z"`
2923#[cfg(feature = "semconv_experimental")]
2924pub const FILE_MODIFIED: &str = "file.modified";
2925
2926/// Name of the file including the extension, without the directory.
2927///
2928/// ## Notes
2929///
2930/// # Examples
2931///
2932/// - `"example.png"`
2933#[cfg(feature = "semconv_experimental")]
2934pub const FILE_NAME: &str = "file.name";
2935
2936/// The user ID (UID) or security identifier (SID) of the file owner.
2937///
2938/// ## Notes
2939///
2940/// # Examples
2941///
2942/// - `"1000"`
2943#[cfg(feature = "semconv_experimental")]
2944pub const FILE_OWNER_ID: &str = "file.owner.id";
2945
2946/// Username of the file owner.
2947///
2948/// ## Notes
2949///
2950/// # Examples
2951///
2952/// - `"root"`
2953#[cfg(feature = "semconv_experimental")]
2954pub const FILE_OWNER_NAME: &str = "file.owner.name";
2955
2956/// Full path to the file, including the file name. It should include the drive letter, when appropriate.
2957///
2958/// ## Notes
2959///
2960/// # Examples
2961///
2962/// - `"/home/alice/example.png"`
2963/// - `"C:\\Program Files\\MyApp\\myapp.exe"`
2964#[cfg(feature = "semconv_experimental")]
2965pub const FILE_PATH: &str = "file.path";
2966
2967/// File size in bytes.
2968///
2969/// ## Notes
2970#[cfg(feature = "semconv_experimental")]
2971pub const FILE_SIZE: &str = "file.size";
2972
2973/// Path to the target of a symbolic link.
2974///
2975/// ## Notes
2976///
2977/// This attribute is only applicable to symbolic links.
2978///
2979/// # Examples
2980///
2981/// - `"/usr/bin/python3"`
2982#[cfg(feature = "semconv_experimental")]
2983pub const FILE_SYMBOLIC_LINK_TARGET_PATH: &str = "file.symbolic_link.target_path";
2984
2985/// Identifies the Google Cloud service for which the official client library is intended.
2986///
2987/// ## Notes
2988///
2989/// 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'.
2990///
2991/// # Examples
2992///
2993/// - `"appengine"`
2994/// - `"run"`
2995/// - `"firestore"`
2996/// - `"alloydb"`
2997/// - `"spanner"`
2998#[cfg(feature = "semconv_experimental")]
2999pub const GCP_CLIENT_SERVICE: &str = "gcp.client.service";
3000
3001/// 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.
3002///
3003/// ## Notes
3004///
3005/// # Examples
3006///
3007/// - `"job-name-xxxx"`
3008/// - `"sample-job-mdw84"`
3009#[cfg(feature = "semconv_experimental")]
3010pub const GCP_CLOUD_RUN_JOB_EXECUTION: &str = "gcp.cloud_run.job.execution";
3011
3012/// 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.
3013///
3014/// ## Notes
3015///
3016/// # Examples
3017///
3018/// - `0`
3019/// - `1`
3020#[cfg(feature = "semconv_experimental")]
3021pub const GCP_CLOUD_RUN_JOB_TASK_INDEX: &str = "gcp.cloud_run.job.task_index";
3022
3023/// 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).
3024///
3025/// ## Notes
3026///
3027/// # Examples
3028///
3029/// - `"my-host1234.example.com"`
3030/// - `"sample-vm.us-west1-b.c.my-project.internal"`
3031#[cfg(feature = "semconv_experimental")]
3032pub const GCP_GCE_INSTANCE_HOSTNAME: &str = "gcp.gce.instance.hostname";
3033
3034/// 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).
3035///
3036/// ## Notes
3037///
3038/// # Examples
3039///
3040/// - `"instance-1"`
3041/// - `"my-vm-name"`
3042#[cfg(feature = "semconv_experimental")]
3043pub const GCP_GCE_INSTANCE_NAME: &str = "gcp.gce.instance.name";
3044
3045/// Free-form description of the GenAI agent provided by the application.
3046///
3047/// ## Notes
3048///
3049/// # Examples
3050///
3051/// - `"Helps with math problems"`
3052/// - `"Generates fiction stories"`
3053#[cfg(feature = "semconv_experimental")]
3054pub const GEN_AI_AGENT_DESCRIPTION: &str = "gen_ai.agent.description";
3055
3056/// The unique identifier of the GenAI agent.
3057///
3058/// ## Notes
3059///
3060/// # Examples
3061///
3062/// - `"asst_5j66UpCpwteGg4YSxUnt7lPY"`
3063#[cfg(feature = "semconv_experimental")]
3064pub const GEN_AI_AGENT_ID: &str = "gen_ai.agent.id";
3065
3066/// Human-readable name of the GenAI agent provided by the application.
3067///
3068/// ## Notes
3069///
3070/// # Examples
3071///
3072/// - `"Math Tutor"`
3073/// - `"Fiction Writer"`
3074#[cfg(feature = "semconv_experimental")]
3075pub const GEN_AI_AGENT_NAME: &str = "gen_ai.agent.name";
3076
3077/// Deprecated, use Event API to report completions contents.
3078///
3079/// ## Notes
3080///
3081/// # Examples
3082///
3083/// - `"[{'role': 'assistant', 'content': 'The capital of France is Paris.'}]"`
3084#[cfg(feature = "semconv_experimental")]
3085pub const GEN_AI_COMPLETION: &str = "gen_ai.completion";
3086
3087/// Deprecated, use `gen_ai.output.type`.
3088///
3089/// ## Notes
3090#[cfg(feature = "semconv_experimental")]
3091pub const GEN_AI_OPENAI_REQUEST_RESPONSE_FORMAT: &str = "gen_ai.openai.request.response_format";
3092
3093/// Deprecated, use `gen_ai.request.seed`.
3094///
3095/// ## Notes
3096///
3097/// # Examples
3098///
3099/// - `100`
3100#[cfg(feature = "semconv_experimental")]
3101pub const GEN_AI_OPENAI_REQUEST_SEED: &str = "gen_ai.openai.request.seed";
3102
3103/// The service tier requested. May be a specific tier, default, or auto.
3104///
3105/// ## Notes
3106///
3107/// # Examples
3108///
3109/// - `"auto"`
3110/// - `"default"`
3111#[cfg(feature = "semconv_experimental")]
3112pub const GEN_AI_OPENAI_REQUEST_SERVICE_TIER: &str = "gen_ai.openai.request.service_tier";
3113
3114/// The service tier used for the response.
3115///
3116/// ## Notes
3117///
3118/// # Examples
3119///
3120/// - `"scale"`
3121/// - `"default"`
3122#[cfg(feature = "semconv_experimental")]
3123pub const GEN_AI_OPENAI_RESPONSE_SERVICE_TIER: &str = "gen_ai.openai.response.service_tier";
3124
3125/// A fingerprint to track any eventual change in the Generative AI environment.
3126///
3127/// ## Notes
3128///
3129/// # Examples
3130///
3131/// - `"fp_44709d6fcb"`
3132#[cfg(feature = "semconv_experimental")]
3133pub const GEN_AI_OPENAI_RESPONSE_SYSTEM_FINGERPRINT: &str =
3134    "gen_ai.openai.response.system_fingerprint";
3135
3136/// The name of the operation being performed.
3137///
3138/// ## Notes
3139///
3140/// 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
3141#[cfg(feature = "semconv_experimental")]
3142pub const GEN_AI_OPERATION_NAME: &str = "gen_ai.operation.name";
3143
3144/// Represents the content type requested by the client.
3145///
3146/// ## Notes
3147///
3148/// 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.
3149/// 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.
3150/// Additional output format details may be recorded in the future in the `gen_ai.output.{type}.*` attributes
3151#[cfg(feature = "semconv_experimental")]
3152pub const GEN_AI_OUTPUT_TYPE: &str = "gen_ai.output.type";
3153
3154/// Deprecated, use Event API to report prompt contents.
3155///
3156/// ## Notes
3157///
3158/// # Examples
3159///
3160/// - `"[{'role': 'user', 'content': 'What is the capital of France?'}]"`
3161#[cfg(feature = "semconv_experimental")]
3162pub const GEN_AI_PROMPT: &str = "gen_ai.prompt";
3163
3164/// The target number of candidate completions to return.
3165///
3166/// ## Notes
3167///
3168/// # Examples
3169///
3170/// - `3`
3171#[cfg(feature = "semconv_experimental")]
3172pub const GEN_AI_REQUEST_CHOICE_COUNT: &str = "gen_ai.request.choice.count";
3173
3174/// The encoding formats requested in an embeddings operation, if specified.
3175///
3176/// ## Notes
3177///
3178/// In some GenAI systems the encoding formats are called embedding types. Also, some GenAI systems only accept a single format per request.
3179///
3180/// # Examples
3181///
3182/// - `[
3183///  "base64",
3184/// ]`
3185/// - `[
3186///  "float",
3187///  "binary",
3188/// ]`
3189#[cfg(feature = "semconv_experimental")]
3190pub const GEN_AI_REQUEST_ENCODING_FORMATS: &str = "gen_ai.request.encoding_formats";
3191
3192/// The frequency penalty setting for the GenAI request.
3193///
3194/// ## Notes
3195///
3196/// # Examples
3197///
3198/// - `0.1`
3199#[cfg(feature = "semconv_experimental")]
3200pub const GEN_AI_REQUEST_FREQUENCY_PENALTY: &str = "gen_ai.request.frequency_penalty";
3201
3202/// The maximum number of tokens the model generates for a request.
3203///
3204/// ## Notes
3205///
3206/// # Examples
3207///
3208/// - `100`
3209#[cfg(feature = "semconv_experimental")]
3210pub const GEN_AI_REQUEST_MAX_TOKENS: &str = "gen_ai.request.max_tokens";
3211
3212/// The name of the GenAI model a request is being made to.
3213///
3214/// ## Notes
3215///
3216/// # Examples
3217///
3218/// - `"gpt-4"`
3219#[cfg(feature = "semconv_experimental")]
3220pub const GEN_AI_REQUEST_MODEL: &str = "gen_ai.request.model";
3221
3222/// The presence penalty setting for the GenAI request.
3223///
3224/// ## Notes
3225///
3226/// # Examples
3227///
3228/// - `0.1`
3229#[cfg(feature = "semconv_experimental")]
3230pub const GEN_AI_REQUEST_PRESENCE_PENALTY: &str = "gen_ai.request.presence_penalty";
3231
3232/// Requests with same seed value more likely to return same result.
3233///
3234/// ## Notes
3235///
3236/// # Examples
3237///
3238/// - `100`
3239#[cfg(feature = "semconv_experimental")]
3240pub const GEN_AI_REQUEST_SEED: &str = "gen_ai.request.seed";
3241
3242/// List of sequences that the model will use to stop generating further tokens.
3243///
3244/// ## Notes
3245///
3246/// # Examples
3247///
3248/// - `[
3249///  "forest",
3250///  "lived",
3251/// ]`
3252#[cfg(feature = "semconv_experimental")]
3253pub const GEN_AI_REQUEST_STOP_SEQUENCES: &str = "gen_ai.request.stop_sequences";
3254
3255/// The temperature setting for the GenAI request.
3256///
3257/// ## Notes
3258///
3259/// # Examples
3260///
3261/// - `0.0`
3262#[cfg(feature = "semconv_experimental")]
3263pub const GEN_AI_REQUEST_TEMPERATURE: &str = "gen_ai.request.temperature";
3264
3265/// The top_k sampling setting for the GenAI request.
3266///
3267/// ## Notes
3268///
3269/// # Examples
3270///
3271/// - `1.0`
3272#[cfg(feature = "semconv_experimental")]
3273pub const GEN_AI_REQUEST_TOP_K: &str = "gen_ai.request.top_k";
3274
3275/// The top_p sampling setting for the GenAI request.
3276///
3277/// ## Notes
3278///
3279/// # Examples
3280///
3281/// - `1.0`
3282#[cfg(feature = "semconv_experimental")]
3283pub const GEN_AI_REQUEST_TOP_P: &str = "gen_ai.request.top_p";
3284
3285/// Array of reasons the model stopped generating tokens, corresponding to each generation received.
3286///
3287/// ## Notes
3288///
3289/// # Examples
3290///
3291/// - `[
3292///  "stop",
3293/// ]`
3294/// - `[
3295///  "stop",
3296///  "length",
3297/// ]`
3298#[cfg(feature = "semconv_experimental")]
3299pub const GEN_AI_RESPONSE_FINISH_REASONS: &str = "gen_ai.response.finish_reasons";
3300
3301/// The unique identifier for the completion.
3302///
3303/// ## Notes
3304///
3305/// # Examples
3306///
3307/// - `"chatcmpl-123"`
3308#[cfg(feature = "semconv_experimental")]
3309pub const GEN_AI_RESPONSE_ID: &str = "gen_ai.response.id";
3310
3311/// The name of the model that generated the response.
3312///
3313/// ## Notes
3314///
3315/// # Examples
3316///
3317/// - `"gpt-4-0613"`
3318#[cfg(feature = "semconv_experimental")]
3319pub const GEN_AI_RESPONSE_MODEL: &str = "gen_ai.response.model";
3320
3321/// The Generative AI product as identified by the client or server instrumentation.
3322///
3323/// ## Notes
3324///
3325/// The `gen_ai.system` describes a family of GenAI models with specific model identified
3326/// by `gen_ai.request.model` and `gen_ai.response.model` attributes.
3327///
3328/// The actual GenAI product may differ from the one identified by the client.
3329/// Multiple systems, including Azure OpenAI and Gemini, are accessible by OpenAI client
3330/// libraries. In such cases, the `gen_ai.system` is set to `openai` based on the
3331/// instrumentation's best knowledge, instead of the actual system. The `server.address`
3332/// attribute may help identify the actual system in use for `openai`.
3333///
3334/// For custom model, a custom friendly name SHOULD be used.
3335/// If none of these options apply, the `gen_ai.system` SHOULD be set to `_OTHER`.
3336///
3337/// # Examples
3338///
3339/// - `"openai"`
3340#[cfg(feature = "semconv_experimental")]
3341pub const GEN_AI_SYSTEM: &str = "gen_ai.system";
3342
3343/// The type of token being counted.
3344///
3345/// ## Notes
3346///
3347/// # Examples
3348///
3349/// - `"input"`
3350/// - `"output"`
3351#[cfg(feature = "semconv_experimental")]
3352pub const GEN_AI_TOKEN_TYPE: &str = "gen_ai.token.type";
3353
3354/// The tool call identifier.
3355///
3356/// ## Notes
3357///
3358/// # Examples
3359///
3360/// - `"call_mszuSIzqtI65i1wAUOE8w5H4"`
3361#[cfg(feature = "semconv_experimental")]
3362pub const GEN_AI_TOOL_CALL_ID: &str = "gen_ai.tool.call.id";
3363
3364/// Name of the tool utilized by the agent.
3365///
3366/// ## Notes
3367///
3368/// # Examples
3369///
3370/// - `"Flights"`
3371#[cfg(feature = "semconv_experimental")]
3372pub const GEN_AI_TOOL_NAME: &str = "gen_ai.tool.name";
3373
3374/// Type of the tool utilized by the agent
3375///
3376/// ## Notes
3377///
3378/// Extension: A tool executed on the agent-side to directly call external APIs, bridging the gap between the agent and real-world systems.
3379/// Agent-side operations involve actions that are performed by the agent on the server or within the agent's controlled environment.
3380/// Function: A tool executed on the client-side, where the agent generates parameters for a predefined function, and the client executes the logic.
3381/// Client-side operations are actions taken on the user's end or within the client application.
3382/// Datastore: A tool used by the agent to access and query structured or unstructured external data for retrieval-augmented tasks or knowledge updates.
3383///
3384/// # Examples
3385///
3386/// - `"function"`
3387/// - `"extension"`
3388/// - `"datastore"`
3389#[cfg(feature = "semconv_experimental")]
3390pub const GEN_AI_TOOL_TYPE: &str = "gen_ai.tool.type";
3391
3392/// Deprecated, use `gen_ai.usage.output_tokens` instead.
3393///
3394/// ## Notes
3395///
3396/// # Examples
3397///
3398/// - `42`
3399#[cfg(feature = "semconv_experimental")]
3400pub const GEN_AI_USAGE_COMPLETION_TOKENS: &str = "gen_ai.usage.completion_tokens";
3401
3402/// The number of tokens used in the GenAI input (prompt).
3403///
3404/// ## Notes
3405///
3406/// # Examples
3407///
3408/// - `100`
3409#[cfg(feature = "semconv_experimental")]
3410pub const GEN_AI_USAGE_INPUT_TOKENS: &str = "gen_ai.usage.input_tokens";
3411
3412/// The number of tokens used in the GenAI response (completion).
3413///
3414/// ## Notes
3415///
3416/// # Examples
3417///
3418/// - `180`
3419#[cfg(feature = "semconv_experimental")]
3420pub const GEN_AI_USAGE_OUTPUT_TOKENS: &str = "gen_ai.usage.output_tokens";
3421
3422/// Deprecated, use `gen_ai.usage.input_tokens` instead.
3423///
3424/// ## Notes
3425///
3426/// # Examples
3427///
3428/// - `42`
3429#[cfg(feature = "semconv_experimental")]
3430pub const GEN_AI_USAGE_PROMPT_TOKENS: &str = "gen_ai.usage.prompt_tokens";
3431
3432/// Two-letter code representing continent’s name.
3433///
3434/// ## Notes
3435#[cfg(feature = "semconv_experimental")]
3436pub const GEO_CONTINENT_CODE: &str = "geo.continent.code";
3437
3438/// Two-letter ISO Country Code ([ISO 3166-1 alpha2](https://wikipedia.org/wiki/ISO_3166-1#Codes)).
3439///
3440/// ## Notes
3441///
3442/// # Examples
3443///
3444/// - `"CA"`
3445#[cfg(feature = "semconv_experimental")]
3446pub const GEO_COUNTRY_ISO_CODE: &str = "geo.country.iso_code";
3447
3448/// Locality name. Represents the name of a city, town, village, or similar populated place.
3449///
3450/// ## Notes
3451///
3452/// # Examples
3453///
3454/// - `"Montreal"`
3455/// - `"Berlin"`
3456#[cfg(feature = "semconv_experimental")]
3457pub const GEO_LOCALITY_NAME: &str = "geo.locality.name";
3458
3459/// Latitude of the geo location in [WGS84](https://wikipedia.org/wiki/World_Geodetic_System#WGS84).
3460///
3461/// ## Notes
3462///
3463/// # Examples
3464///
3465/// - `45.505918`
3466#[cfg(feature = "semconv_experimental")]
3467pub const GEO_LOCATION_LAT: &str = "geo.location.lat";
3468
3469/// Longitude of the geo location in [WGS84](https://wikipedia.org/wiki/World_Geodetic_System#WGS84).
3470///
3471/// ## Notes
3472///
3473/// # Examples
3474///
3475/// - `-73.61483`
3476#[cfg(feature = "semconv_experimental")]
3477pub const GEO_LOCATION_LON: &str = "geo.location.lon";
3478
3479/// 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.
3480///
3481/// ## Notes
3482///
3483/// # Examples
3484///
3485/// - `"94040"`
3486#[cfg(feature = "semconv_experimental")]
3487pub const GEO_POSTAL_CODE: &str = "geo.postal_code";
3488
3489/// Region ISO code ([ISO 3166-2](https://wikipedia.org/wiki/ISO_3166-2)).
3490///
3491/// ## Notes
3492///
3493/// # Examples
3494///
3495/// - `"CA-QC"`
3496#[cfg(feature = "semconv_experimental")]
3497pub const GEO_REGION_ISO_CODE: &str = "geo.region.iso_code";
3498
3499/// The type of memory.
3500///
3501/// ## Notes
3502///
3503/// # Examples
3504///
3505/// - `"other"`
3506/// - `"stack"`
3507#[cfg(feature = "semconv_experimental")]
3508pub const GO_MEMORY_TYPE: &str = "go.memory.type";
3509
3510/// The GraphQL document being executed.
3511///
3512/// ## Notes
3513///
3514/// The value may be sanitized to exclude sensitive information.
3515///
3516/// # Examples
3517///
3518/// - `"query findBookById { bookById(id: ?) { name } }"`
3519#[cfg(feature = "semconv_experimental")]
3520pub const GRAPHQL_DOCUMENT: &str = "graphql.document";
3521
3522/// The name of the operation being executed.
3523///
3524/// ## Notes
3525///
3526/// # Examples
3527///
3528/// - `"findBookById"`
3529#[cfg(feature = "semconv_experimental")]
3530pub const GRAPHQL_OPERATION_NAME: &str = "graphql.operation.name";
3531
3532/// The type of the operation being executed.
3533///
3534/// ## Notes
3535///
3536/// # Examples
3537///
3538/// - `"query"`
3539/// - `"mutation"`
3540/// - `"subscription"`
3541#[cfg(feature = "semconv_experimental")]
3542pub const GRAPHQL_OPERATION_TYPE: &str = "graphql.operation.type";
3543
3544/// Unique identifier for the application
3545///
3546/// ## Notes
3547///
3548/// # Examples
3549///
3550/// - `"2daa2797-e42b-4624-9322-ec3f968df4da"`
3551#[cfg(feature = "semconv_experimental")]
3552pub const HEROKU_APP_ID: &str = "heroku.app.id";
3553
3554/// Commit hash for the current release
3555///
3556/// ## Notes
3557///
3558/// # Examples
3559///
3560/// - `"e6134959463efd8966b20e75b913cafe3f5ec"`
3561#[cfg(feature = "semconv_experimental")]
3562pub const HEROKU_RELEASE_COMMIT: &str = "heroku.release.commit";
3563
3564/// Time and date the release was created
3565///
3566/// ## Notes
3567///
3568/// # Examples
3569///
3570/// - `"2022-10-23T18:00:42Z"`
3571#[cfg(feature = "semconv_experimental")]
3572pub const HEROKU_RELEASE_CREATION_TIMESTAMP: &str = "heroku.release.creation_timestamp";
3573
3574/// The CPU architecture the host system is running on.
3575///
3576/// ## Notes
3577#[cfg(feature = "semconv_experimental")]
3578pub const HOST_ARCH: &str = "host.arch";
3579
3580/// The amount of level 2 memory cache available to the processor (in Bytes).
3581///
3582/// ## Notes
3583///
3584/// # Examples
3585///
3586/// - `12288000`
3587#[cfg(feature = "semconv_experimental")]
3588pub const HOST_CPU_CACHE_L2_SIZE: &str = "host.cpu.cache.l2.size";
3589
3590/// Family or generation of the CPU.
3591///
3592/// ## Notes
3593///
3594/// # Examples
3595///
3596/// - `"6"`
3597/// - `"PA-RISC 1.1e"`
3598#[cfg(feature = "semconv_experimental")]
3599pub const HOST_CPU_FAMILY: &str = "host.cpu.family";
3600
3601/// Model identifier. It provides more granular information about the CPU, distinguishing it from other CPUs within the same family.
3602///
3603/// ## Notes
3604///
3605/// # Examples
3606///
3607/// - `"6"`
3608/// - `"9000/778/B180L"`
3609#[cfg(feature = "semconv_experimental")]
3610pub const HOST_CPU_MODEL_ID: &str = "host.cpu.model.id";
3611
3612/// Model designation of the processor.
3613///
3614/// ## Notes
3615///
3616/// # Examples
3617///
3618/// - `"11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz"`
3619#[cfg(feature = "semconv_experimental")]
3620pub const HOST_CPU_MODEL_NAME: &str = "host.cpu.model.name";
3621
3622/// Stepping or core revisions.
3623///
3624/// ## Notes
3625///
3626/// # Examples
3627///
3628/// - `"1"`
3629/// - `"r1p1"`
3630#[cfg(feature = "semconv_experimental")]
3631pub const HOST_CPU_STEPPING: &str = "host.cpu.stepping";
3632
3633/// Processor manufacturer identifier. A maximum 12-character string.
3634///
3635/// ## Notes
3636///
3637/// [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.
3638///
3639/// # Examples
3640///
3641/// - `"GenuineIntel"`
3642#[cfg(feature = "semconv_experimental")]
3643pub const HOST_CPU_VENDOR_ID: &str = "host.cpu.vendor.id";
3644
3645/// 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.
3646///
3647/// ## Notes
3648///
3649/// # Examples
3650///
3651/// - `"fdbf79e8af94cb7f9e8df36789187052"`
3652#[cfg(feature = "semconv_experimental")]
3653pub const HOST_ID: &str = "host.id";
3654
3655/// VM image ID or host OS image ID. For Cloud, this value is from the provider.
3656///
3657/// ## Notes
3658///
3659/// # Examples
3660///
3661/// - `"ami-07b06b442921831e5"`
3662#[cfg(feature = "semconv_experimental")]
3663pub const HOST_IMAGE_ID: &str = "host.image.id";
3664
3665/// Name of the VM image or OS install the host was instantiated from.
3666///
3667/// ## Notes
3668///
3669/// # Examples
3670///
3671/// - `"infra-ami-eks-worker-node-7d4ec78312"`
3672/// - `"CentOS-8-x86_64-1905"`
3673#[cfg(feature = "semconv_experimental")]
3674pub const HOST_IMAGE_NAME: &str = "host.image.name";
3675
3676/// The version string of the VM image or host OS as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
3677///
3678/// ## Notes
3679///
3680/// # Examples
3681///
3682/// - `"0.1"`
3683#[cfg(feature = "semconv_experimental")]
3684pub const HOST_IMAGE_VERSION: &str = "host.image.version";
3685
3686/// Available IP addresses of the host, excluding loopback interfaces.
3687///
3688/// ## Notes
3689///
3690/// 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.
3691///
3692/// # Examples
3693///
3694/// - `[
3695///  "192.168.1.140",
3696///  "fe80::abc2:4a28:737a:609e",
3697/// ]`
3698#[cfg(feature = "semconv_experimental")]
3699pub const HOST_IP: &str = "host.ip";
3700
3701/// Available MAC addresses of the host, excluding loopback interfaces.
3702///
3703/// ## Notes
3704///
3705/// 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.
3706///
3707/// # Examples
3708///
3709/// - `[
3710///  "AC-DE-48-23-45-67",
3711///  "AC-DE-48-23-45-67-01-9F",
3712/// ]`
3713#[cfg(feature = "semconv_experimental")]
3714pub const HOST_MAC: &str = "host.mac";
3715
3716/// 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.
3717///
3718/// ## Notes
3719///
3720/// # Examples
3721///
3722/// - `"opentelemetry-test"`
3723#[cfg(feature = "semconv_experimental")]
3724pub const HOST_NAME: &str = "host.name";
3725
3726/// Type of host. For Cloud, this must be the machine type.
3727///
3728/// ## Notes
3729///
3730/// # Examples
3731///
3732/// - `"n1-standard-1"`
3733#[cfg(feature = "semconv_experimental")]
3734pub const HOST_TYPE: &str = "host.type";
3735
3736/// Deprecated, use `client.address` instead.
3737///
3738/// ## Notes
3739///
3740/// # Examples
3741///
3742/// - `"83.164.160.102"`
3743#[cfg(feature = "semconv_experimental")]
3744pub const HTTP_CLIENT_IP: &str = "http.client_ip";
3745
3746/// State of the HTTP connection in the HTTP connection pool.
3747///
3748/// ## Notes
3749///
3750/// # Examples
3751///
3752/// - `"active"`
3753/// - `"idle"`
3754#[cfg(feature = "semconv_experimental")]
3755pub const HTTP_CONNECTION_STATE: &str = "http.connection.state";
3756
3757/// Deprecated, use `network.protocol.name` instead.
3758///
3759/// ## Notes
3760#[cfg(feature = "semconv_experimental")]
3761pub const HTTP_FLAVOR: &str = "http.flavor";
3762
3763/// Deprecated, use one of `server.address`, `client.address` or `http.request.header.host` instead, depending on the usage.
3764///
3765/// ## Notes
3766///
3767/// # Examples
3768///
3769/// - `"www.example.org"`
3770#[cfg(feature = "semconv_experimental")]
3771pub const HTTP_HOST: &str = "http.host";
3772
3773/// Deprecated, use `http.request.method` instead.
3774///
3775/// ## Notes
3776///
3777/// # Examples
3778///
3779/// - `"GET"`
3780/// - `"POST"`
3781/// - `"HEAD"`
3782#[cfg(feature = "semconv_experimental")]
3783pub const HTTP_METHOD: &str = "http.method";
3784
3785/// 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.
3786///
3787/// ## Notes
3788///
3789/// # Examples
3790///
3791/// - `3495`
3792#[cfg(feature = "semconv_experimental")]
3793pub const HTTP_REQUEST_BODY_SIZE: &str = "http.request.body.size";
3794
3795/// HTTP request headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values.
3796///
3797/// ## Notes
3798///
3799/// 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.
3800/// 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.
3801/// 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.
3802///
3803/// # Examples
3804///
3805/// - `"http.request.header.content-type=[\"application/json\"]"`
3806/// - `"http.request.header.x-forwarded-for=[\"1.2.3.4\", \"1.2.3.5\"]"`
3807pub const HTTP_REQUEST_HEADER: &str = "http.request.header";
3808
3809/// HTTP request method.
3810///
3811/// ## Notes
3812///
3813/// HTTP request method value SHOULD be "known" to the instrumentation.
3814/// By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)
3815/// and the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html).
3816///
3817/// If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
3818///
3819/// If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
3820/// the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
3821/// OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods
3822/// (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).
3823///
3824/// HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
3825/// Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
3826/// Tracing instrumentations that do so, MUST also set `http.request.method_original` to the original value.
3827///
3828/// # Examples
3829///
3830/// - `"GET"`
3831/// - `"POST"`
3832/// - `"HEAD"`
3833pub const HTTP_REQUEST_METHOD: &str = "http.request.method";
3834
3835/// Original HTTP method sent by the client in the request line.
3836///
3837/// ## Notes
3838///
3839/// # Examples
3840///
3841/// - `"GeT"`
3842/// - `"ACL"`
3843/// - `"foo"`
3844pub const HTTP_REQUEST_METHOD_ORIGINAL: &str = "http.request.method_original";
3845
3846/// The ordinal number of request resending attempt (for any reason, including redirects).
3847///
3848/// ## Notes
3849///
3850/// 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).
3851///
3852/// # Examples
3853///
3854/// - `3`
3855pub const HTTP_REQUEST_RESEND_COUNT: &str = "http.request.resend_count";
3856
3857/// 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.
3858///
3859/// ## Notes
3860///
3861/// # Examples
3862///
3863/// - `1437`
3864#[cfg(feature = "semconv_experimental")]
3865pub const HTTP_REQUEST_SIZE: &str = "http.request.size";
3866
3867/// Deprecated, use `http.request.header.<key>` instead.
3868///
3869/// ## Notes
3870///
3871/// # Examples
3872///
3873/// - `3495`
3874#[cfg(feature = "semconv_experimental")]
3875pub const HTTP_REQUEST_CONTENT_LENGTH: &str = "http.request_content_length";
3876
3877/// Deprecated, use `http.request.body.size` instead.
3878///
3879/// ## Notes
3880///
3881/// # Examples
3882///
3883/// - `5493`
3884#[cfg(feature = "semconv_experimental")]
3885pub const HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED: &str =
3886    "http.request_content_length_uncompressed";
3887
3888/// 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.
3889///
3890/// ## Notes
3891///
3892/// # Examples
3893///
3894/// - `3495`
3895#[cfg(feature = "semconv_experimental")]
3896pub const HTTP_RESPONSE_BODY_SIZE: &str = "http.response.body.size";
3897
3898/// HTTP response headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values.
3899///
3900/// ## Notes
3901///
3902/// 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.
3903/// Users MAY explicitly configure instrumentations to capture them even though it is not recommended.
3904/// 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.
3905///
3906/// # Examples
3907///
3908/// - `"http.response.header.content-type=[\"application/json\"]"`
3909/// - `"http.response.header.my-custom-header=[\"abc\", \"def\"]"`
3910pub const HTTP_RESPONSE_HEADER: &str = "http.response.header";
3911
3912/// 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.
3913///
3914/// ## Notes
3915///
3916/// # Examples
3917///
3918/// - `1437`
3919#[cfg(feature = "semconv_experimental")]
3920pub const HTTP_RESPONSE_SIZE: &str = "http.response.size";
3921
3922/// [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).
3923///
3924/// ## Notes
3925///
3926/// # Examples
3927///
3928/// - `200`
3929pub const HTTP_RESPONSE_STATUS_CODE: &str = "http.response.status_code";
3930
3931/// Deprecated, use `http.response.header.<key>` instead.
3932///
3933/// ## Notes
3934///
3935/// # Examples
3936///
3937/// - `3495`
3938#[cfg(feature = "semconv_experimental")]
3939pub const HTTP_RESPONSE_CONTENT_LENGTH: &str = "http.response_content_length";
3940
3941/// Deprecated, use `http.response.body.size` instead.
3942///
3943/// ## Notes
3944///
3945/// # Examples
3946///
3947/// - `5493`
3948#[cfg(feature = "semconv_experimental")]
3949pub const HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED: &str =
3950    "http.response_content_length_uncompressed";
3951
3952/// The matched route, that is, the path template in the format used by the respective server framework.
3953///
3954/// ## Notes
3955///
3956/// 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.
3957/// SHOULD include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one.
3958///
3959/// # Examples
3960///
3961/// - `"/users/:userID?"`
3962/// - `"{controller}/{action}/{id?}"`
3963pub const HTTP_ROUTE: &str = "http.route";
3964
3965/// Deprecated, use `url.scheme` instead.
3966///
3967/// ## Notes
3968///
3969/// # Examples
3970///
3971/// - `"http"`
3972/// - `"https"`
3973#[cfg(feature = "semconv_experimental")]
3974pub const HTTP_SCHEME: &str = "http.scheme";
3975
3976/// Deprecated, use `server.address` instead.
3977///
3978/// ## Notes
3979///
3980/// # Examples
3981///
3982/// - `"example.com"`
3983#[cfg(feature = "semconv_experimental")]
3984pub const HTTP_SERVER_NAME: &str = "http.server_name";
3985
3986/// Deprecated, use `http.response.status_code` instead.
3987///
3988/// ## Notes
3989///
3990/// # Examples
3991///
3992/// - `200`
3993#[cfg(feature = "semconv_experimental")]
3994pub const HTTP_STATUS_CODE: &str = "http.status_code";
3995
3996/// Deprecated, use `url.path` and `url.query` instead.
3997///
3998/// ## Notes
3999///
4000/// # Examples
4001///
4002/// - `"/search?q=OpenTelemetry#SemConv"`
4003#[cfg(feature = "semconv_experimental")]
4004pub const HTTP_TARGET: &str = "http.target";
4005
4006/// Deprecated, use `url.full` instead.
4007///
4008/// ## Notes
4009///
4010/// # Examples
4011///
4012/// - `"https://www.foo.bar/search?q=OpenTelemetry#SemConv"`
4013#[cfg(feature = "semconv_experimental")]
4014pub const HTTP_URL: &str = "http.url";
4015
4016/// Deprecated, use `user_agent.original` instead.
4017///
4018/// ## Notes
4019///
4020/// # Examples
4021///
4022/// - `"CERN-LineMode/2.15 libwww/2.17b3"`
4023/// - `"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"`
4024#[cfg(feature = "semconv_experimental")]
4025pub const HTTP_USER_AGENT: &str = "http.user_agent";
4026
4027/// An identifier for the hardware component, unique within the monitored host
4028///
4029/// ## Notes
4030///
4031/// # Examples
4032///
4033/// - `"win32battery_battery_testsysa33_1"`
4034#[cfg(feature = "semconv_experimental")]
4035pub const HW_ID: &str = "hw.id";
4036
4037/// An easily-recognizable name for the hardware component
4038///
4039/// ## Notes
4040///
4041/// # Examples
4042///
4043/// - `"eth0"`
4044#[cfg(feature = "semconv_experimental")]
4045pub const HW_NAME: &str = "hw.name";
4046
4047/// Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
4048///
4049/// ## Notes
4050///
4051/// # Examples
4052///
4053/// - `"dellStorage_perc_0"`
4054#[cfg(feature = "semconv_experimental")]
4055pub const HW_PARENT: &str = "hw.parent";
4056
4057/// The current state of the component
4058///
4059/// ## Notes
4060#[cfg(feature = "semconv_experimental")]
4061pub const HW_STATE: &str = "hw.state";
4062
4063/// Type of the component
4064///
4065/// ## Notes
4066///
4067/// 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`
4068#[cfg(feature = "semconv_experimental")]
4069pub const HW_TYPE: &str = "hw.type";
4070
4071/// This attribute represents the state of the application.
4072///
4073/// ## Notes
4074///
4075/// 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
4076#[cfg(feature = "semconv_experimental")]
4077pub const IOS_APP_STATE: &str = "ios.app.state";
4078
4079/// Deprecated. use the `ios.app.state` instead.
4080///
4081/// ## Notes
4082///
4083/// 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
4084#[cfg(feature = "semconv_experimental")]
4085pub const IOS_STATE: &str = "ios.state";
4086
4087/// Name of the buffer pool.
4088///
4089/// ## Notes
4090///
4091/// 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()).
4092///
4093/// # Examples
4094///
4095/// - `"mapped"`
4096/// - `"direct"`
4097#[cfg(feature = "semconv_experimental")]
4098pub const JVM_BUFFER_POOL_NAME: &str = "jvm.buffer.pool.name";
4099
4100/// Name of the garbage collector action.
4101///
4102/// ## Notes
4103///
4104/// 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()).
4105///
4106/// # Examples
4107///
4108/// - `"end of minor GC"`
4109/// - `"end of major GC"`
4110pub const JVM_GC_ACTION: &str = "jvm.gc.action";
4111
4112/// Name of the garbage collector.
4113///
4114/// ## Notes
4115///
4116/// 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()).
4117///
4118/// # Examples
4119///
4120/// - `"G1 Young Generation"`
4121/// - `"G1 Old Generation"`
4122pub const JVM_GC_NAME: &str = "jvm.gc.name";
4123
4124/// Name of the memory pool.
4125///
4126/// ## Notes
4127///
4128/// 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()).
4129///
4130/// # Examples
4131///
4132/// - `"G1 Old Gen"`
4133/// - `"G1 Eden space"`
4134/// - `"G1 Survivor Space"`
4135pub const JVM_MEMORY_POOL_NAME: &str = "jvm.memory.pool.name";
4136
4137/// The type of memory.
4138///
4139/// ## Notes
4140///
4141/// # Examples
4142///
4143/// - `"heap"`
4144/// - `"non_heap"`
4145pub const JVM_MEMORY_TYPE: &str = "jvm.memory.type";
4146
4147/// Whether the thread is daemon or not.
4148///
4149/// ## Notes
4150pub const JVM_THREAD_DAEMON: &str = "jvm.thread.daemon";
4151
4152/// State of the thread.
4153///
4154/// ## Notes
4155///
4156/// # Examples
4157///
4158/// - `"runnable"`
4159/// - `"blocked"`
4160pub const JVM_THREAD_STATE: &str = "jvm.thread.state";
4161
4162/// The name of the cluster.
4163///
4164/// ## Notes
4165///
4166/// # Examples
4167///
4168/// - `"opentelemetry-cluster"`
4169#[cfg(feature = "semconv_experimental")]
4170pub const K8S_CLUSTER_NAME: &str = "k8s.cluster.name";
4171
4172/// A pseudo-ID for the cluster, set to the UID of the `kube-system` namespace.
4173///
4174/// ## Notes
4175///
4176/// K8s doesn't have support for obtaining a cluster ID. If this is ever
4177/// added, we will recommend collecting the `k8s.cluster.uid` through the
4178/// official APIs. In the meantime, we are able to use the `uid` of the
4179/// `kube-system` namespace as a proxy for cluster ID. Read on for the
4180/// rationale.
4181///
4182/// Every object created in a K8s cluster is assigned a distinct UID. The
4183/// `kube-system` namespace is used by Kubernetes itself and will exist
4184/// for the lifetime of the cluster. Using the `uid` of the `kube-system`
4185/// namespace is a reasonable proxy for the K8s ClusterID as it will only
4186/// change if the cluster is rebuilt. Furthermore, Kubernetes UIDs are
4187/// UUIDs as standardized by
4188/// [ISO/IEC 9834-8 and ITU-T X.667](https://www.itu.int/ITU-T/studygroups/com17/oid.html).
4189/// Which states:
4190///
4191/// \] If generated according to one of the mechanisms defined in Rec.
4192/// \] ITU-T X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be
4193/// \] different from all other UUIDs generated before 3603 A.D., or is
4194/// \] extremely likely to be different (depending on the mechanism chosen).
4195///
4196/// Therefore, UIDs between clusters should be extremely unlikely to
4197/// conflict.
4198///
4199/// # Examples
4200///
4201/// - `"218fc5a9-a5f1-4b54-aa05-46717d0ab26d"`
4202#[cfg(feature = "semconv_experimental")]
4203pub const K8S_CLUSTER_UID: &str = "k8s.cluster.uid";
4204
4205/// The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (`container.name`).
4206///
4207/// ## Notes
4208///
4209/// # Examples
4210///
4211/// - `"redis"`
4212#[cfg(feature = "semconv_experimental")]
4213pub const K8S_CONTAINER_NAME: &str = "k8s.container.name";
4214
4215/// Number of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec.
4216///
4217/// ## Notes
4218#[cfg(feature = "semconv_experimental")]
4219pub const K8S_CONTAINER_RESTART_COUNT: &str = "k8s.container.restart_count";
4220
4221/// Last terminated reason of the Container.
4222///
4223/// ## Notes
4224///
4225/// # Examples
4226///
4227/// - `"Evicted"`
4228/// - `"Error"`
4229#[cfg(feature = "semconv_experimental")]
4230pub const K8S_CONTAINER_STATUS_LAST_TERMINATED_REASON: &str =
4231    "k8s.container.status.last_terminated_reason";
4232
4233/// The name of the CronJob.
4234///
4235/// ## Notes
4236///
4237/// # Examples
4238///
4239/// - `"opentelemetry"`
4240#[cfg(feature = "semconv_experimental")]
4241pub const K8S_CRONJOB_NAME: &str = "k8s.cronjob.name";
4242
4243/// The UID of the CronJob.
4244///
4245/// ## Notes
4246///
4247/// # Examples
4248///
4249/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
4250#[cfg(feature = "semconv_experimental")]
4251pub const K8S_CRONJOB_UID: &str = "k8s.cronjob.uid";
4252
4253/// The name of the DaemonSet.
4254///
4255/// ## Notes
4256///
4257/// # Examples
4258///
4259/// - `"opentelemetry"`
4260#[cfg(feature = "semconv_experimental")]
4261pub const K8S_DAEMONSET_NAME: &str = "k8s.daemonset.name";
4262
4263/// The UID of the DaemonSet.
4264///
4265/// ## Notes
4266///
4267/// # Examples
4268///
4269/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
4270#[cfg(feature = "semconv_experimental")]
4271pub const K8S_DAEMONSET_UID: &str = "k8s.daemonset.uid";
4272
4273/// The name of the Deployment.
4274///
4275/// ## Notes
4276///
4277/// # Examples
4278///
4279/// - `"opentelemetry"`
4280#[cfg(feature = "semconv_experimental")]
4281pub const K8S_DEPLOYMENT_NAME: &str = "k8s.deployment.name";
4282
4283/// The UID of the Deployment.
4284///
4285/// ## Notes
4286///
4287/// # Examples
4288///
4289/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
4290#[cfg(feature = "semconv_experimental")]
4291pub const K8S_DEPLOYMENT_UID: &str = "k8s.deployment.uid";
4292
4293/// The name of the horizontal pod autoscaler.
4294///
4295/// ## Notes
4296///
4297/// # Examples
4298///
4299/// - `"opentelemetry"`
4300#[cfg(feature = "semconv_experimental")]
4301pub const K8S_HPA_NAME: &str = "k8s.hpa.name";
4302
4303/// The UID of the horizontal pod autoscaler.
4304///
4305/// ## Notes
4306///
4307/// # Examples
4308///
4309/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
4310#[cfg(feature = "semconv_experimental")]
4311pub const K8S_HPA_UID: &str = "k8s.hpa.uid";
4312
4313/// The name of the Job.
4314///
4315/// ## Notes
4316///
4317/// # Examples
4318///
4319/// - `"opentelemetry"`
4320#[cfg(feature = "semconv_experimental")]
4321pub const K8S_JOB_NAME: &str = "k8s.job.name";
4322
4323/// The UID of the Job.
4324///
4325/// ## Notes
4326///
4327/// # Examples
4328///
4329/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
4330#[cfg(feature = "semconv_experimental")]
4331pub const K8S_JOB_UID: &str = "k8s.job.uid";
4332
4333/// The name of the namespace that the pod is running in.
4334///
4335/// ## Notes
4336///
4337/// # Examples
4338///
4339/// - `"default"`
4340#[cfg(feature = "semconv_experimental")]
4341pub const K8S_NAMESPACE_NAME: &str = "k8s.namespace.name";
4342
4343/// The phase of the K8s namespace.
4344///
4345/// ## Notes
4346///
4347/// This attribute aligns with the `phase` field of the
4348/// [K8s NamespaceStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#namespacestatus-v1-core)
4349///
4350/// # Examples
4351///
4352/// - `"active"`
4353/// - `"terminating"`
4354#[cfg(feature = "semconv_experimental")]
4355pub const K8S_NAMESPACE_PHASE: &str = "k8s.namespace.phase";
4356
4357/// The name of the Node.
4358///
4359/// ## Notes
4360///
4361/// # Examples
4362///
4363/// - `"node-1"`
4364#[cfg(feature = "semconv_experimental")]
4365pub const K8S_NODE_NAME: &str = "k8s.node.name";
4366
4367/// The UID of the Node.
4368///
4369/// ## Notes
4370///
4371/// # Examples
4372///
4373/// - `"1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2"`
4374#[cfg(feature = "semconv_experimental")]
4375pub const K8S_NODE_UID: &str = "k8s.node.uid";
4376
4377/// The annotation key-value pairs placed on the Pod, the `<key>` being the annotation name, the value being the annotation value.
4378///
4379/// ## Notes
4380///
4381/// # Examples
4382///
4383/// - `"k8s.pod.annotation.kubernetes.io/enforce-mountable-secrets=true"`
4384/// - `"k8s.pod.annotation.mycompany.io/arch=x64"`
4385/// - `"k8s.pod.annotation.data="`
4386#[cfg(feature = "semconv_experimental")]
4387pub const K8S_POD_ANNOTATION: &str = "k8s.pod.annotation";
4388
4389/// The label key-value pairs placed on the Pod, the `<key>` being the label name, the value being the label value.
4390///
4391/// ## Notes
4392///
4393/// # Examples
4394///
4395/// - `"k8s.pod.label.app=my-app"`
4396/// - `"k8s.pod.label.mycompany.io/arch=x64"`
4397/// - `"k8s.pod.label.data="`
4398#[cfg(feature = "semconv_experimental")]
4399pub const K8S_POD_LABEL: &str = "k8s.pod.label";
4400
4401/// Deprecated, use `k8s.pod.label` instead.
4402///
4403/// ## Notes
4404///
4405/// # Examples
4406///
4407/// - `"k8s.pod.label.app=my-app"`
4408#[cfg(feature = "semconv_experimental")]
4409pub const K8S_POD_LABELS: &str = "k8s.pod.labels";
4410
4411/// The name of the Pod.
4412///
4413/// ## Notes
4414///
4415/// # Examples
4416///
4417/// - `"opentelemetry-pod-autoconf"`
4418#[cfg(feature = "semconv_experimental")]
4419pub const K8S_POD_NAME: &str = "k8s.pod.name";
4420
4421/// The UID of the Pod.
4422///
4423/// ## Notes
4424///
4425/// # Examples
4426///
4427/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
4428#[cfg(feature = "semconv_experimental")]
4429pub const K8S_POD_UID: &str = "k8s.pod.uid";
4430
4431/// The name of the ReplicaSet.
4432///
4433/// ## Notes
4434///
4435/// # Examples
4436///
4437/// - `"opentelemetry"`
4438#[cfg(feature = "semconv_experimental")]
4439pub const K8S_REPLICASET_NAME: &str = "k8s.replicaset.name";
4440
4441/// The UID of the ReplicaSet.
4442///
4443/// ## Notes
4444///
4445/// # Examples
4446///
4447/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
4448#[cfg(feature = "semconv_experimental")]
4449pub const K8S_REPLICASET_UID: &str = "k8s.replicaset.uid";
4450
4451/// The name of the replication controller.
4452///
4453/// ## Notes
4454///
4455/// # Examples
4456///
4457/// - `"opentelemetry"`
4458#[cfg(feature = "semconv_experimental")]
4459pub const K8S_REPLICATIONCONTROLLER_NAME: &str = "k8s.replicationcontroller.name";
4460
4461/// The UID of the replication controller.
4462///
4463/// ## Notes
4464///
4465/// # Examples
4466///
4467/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
4468#[cfg(feature = "semconv_experimental")]
4469pub const K8S_REPLICATIONCONTROLLER_UID: &str = "k8s.replicationcontroller.uid";
4470
4471/// The name of the resource quota.
4472///
4473/// ## Notes
4474///
4475/// # Examples
4476///
4477/// - `"opentelemetry"`
4478#[cfg(feature = "semconv_experimental")]
4479pub const K8S_RESOURCEQUOTA_NAME: &str = "k8s.resourcequota.name";
4480
4481/// The UID of the resource quota.
4482///
4483/// ## Notes
4484///
4485/// # Examples
4486///
4487/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
4488#[cfg(feature = "semconv_experimental")]
4489pub const K8S_RESOURCEQUOTA_UID: &str = "k8s.resourcequota.uid";
4490
4491/// The name of the StatefulSet.
4492///
4493/// ## Notes
4494///
4495/// # Examples
4496///
4497/// - `"opentelemetry"`
4498#[cfg(feature = "semconv_experimental")]
4499pub const K8S_STATEFULSET_NAME: &str = "k8s.statefulset.name";
4500
4501/// The UID of the StatefulSet.
4502///
4503/// ## Notes
4504///
4505/// # Examples
4506///
4507/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
4508#[cfg(feature = "semconv_experimental")]
4509pub const K8S_STATEFULSET_UID: &str = "k8s.statefulset.uid";
4510
4511/// The name of the K8s volume.
4512///
4513/// ## Notes
4514///
4515/// # Examples
4516///
4517/// - `"volume0"`
4518#[cfg(feature = "semconv_experimental")]
4519pub const K8S_VOLUME_NAME: &str = "k8s.volume.name";
4520
4521/// The type of the K8s volume.
4522///
4523/// ## Notes
4524///
4525/// # Examples
4526///
4527/// - `"emptyDir"`
4528/// - `"persistentVolumeClaim"`
4529#[cfg(feature = "semconv_experimental")]
4530pub const K8S_VOLUME_TYPE: &str = "k8s.volume.type";
4531
4532/// The Linux Slab memory state
4533///
4534/// ## Notes
4535///
4536/// # Examples
4537///
4538/// - `"reclaimable"`
4539/// - `"unreclaimable"`
4540#[cfg(feature = "semconv_experimental")]
4541pub const LINUX_MEMORY_SLAB_STATE: &str = "linux.memory.slab.state";
4542
4543/// The basename of the file.
4544///
4545/// ## Notes
4546///
4547/// # Examples
4548///
4549/// - `"audit.log"`
4550#[cfg(feature = "semconv_experimental")]
4551pub const LOG_FILE_NAME: &str = "log.file.name";
4552
4553/// The basename of the file, with symlinks resolved.
4554///
4555/// ## Notes
4556///
4557/// # Examples
4558///
4559/// - `"uuid.log"`
4560#[cfg(feature = "semconv_experimental")]
4561pub const LOG_FILE_NAME_RESOLVED: &str = "log.file.name_resolved";
4562
4563/// The full path to the file.
4564///
4565/// ## Notes
4566///
4567/// # Examples
4568///
4569/// - `"/var/log/mysql/audit.log"`
4570#[cfg(feature = "semconv_experimental")]
4571pub const LOG_FILE_PATH: &str = "log.file.path";
4572
4573/// The full path to the file, with symlinks resolved.
4574///
4575/// ## Notes
4576///
4577/// # Examples
4578///
4579/// - `"/var/lib/docker/uuid.log"`
4580#[cfg(feature = "semconv_experimental")]
4581pub const LOG_FILE_PATH_RESOLVED: &str = "log.file.path_resolved";
4582
4583/// The stream associated with the log. See below for a list of well-known values.
4584///
4585/// ## Notes
4586#[cfg(feature = "semconv_experimental")]
4587pub const LOG_IOSTREAM: &str = "log.iostream";
4588
4589/// The complete original Log Record.
4590///
4591/// ## Notes
4592///
4593/// 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.)
4594///
4595/// # Examples
4596///
4597/// - `"77 <86>1 2015-08-06T21:58:59.694Z 192.168.2.133 inactive - - - Something happened"`
4598/// - `"[INFO] 8/3/24 12:34:56 Something happened"`
4599#[cfg(feature = "semconv_experimental")]
4600pub const LOG_RECORD_ORIGINAL: &str = "log.record.original";
4601
4602/// A unique identifier for the Log Record.
4603///
4604/// ## Notes
4605///
4606/// 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.
4607/// 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.
4608///
4609/// # Examples
4610///
4611/// - `"01ARZ3NDEKTSV4RRFFQ69G5FAV"`
4612#[cfg(feature = "semconv_experimental")]
4613pub const LOG_RECORD_UID: &str = "log.record.uid";
4614
4615/// Deprecated, use `rpc.message.compressed_size` instead.
4616///
4617/// ## Notes
4618#[cfg(feature = "semconv_experimental")]
4619pub const MESSAGE_COMPRESSED_SIZE: &str = "message.compressed_size";
4620
4621/// Deprecated, use `rpc.message.id` instead.
4622///
4623/// ## Notes
4624#[cfg(feature = "semconv_experimental")]
4625pub const MESSAGE_ID: &str = "message.id";
4626
4627/// Deprecated, use `rpc.message.type` instead.
4628///
4629/// ## Notes
4630#[cfg(feature = "semconv_experimental")]
4631pub const MESSAGE_TYPE: &str = "message.type";
4632
4633/// Deprecated, use `rpc.message.uncompressed_size` instead.
4634///
4635/// ## Notes
4636#[cfg(feature = "semconv_experimental")]
4637pub const MESSAGE_UNCOMPRESSED_SIZE: &str = "message.uncompressed_size";
4638
4639/// The number of messages sent, received, or processed in the scope of the batching operation.
4640///
4641/// ## Notes
4642///
4643/// 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.
4644///
4645/// # Examples
4646///
4647/// - `0`
4648/// - `1`
4649/// - `2`
4650#[cfg(feature = "semconv_experimental")]
4651pub const MESSAGING_BATCH_MESSAGE_COUNT: &str = "messaging.batch.message_count";
4652
4653/// A unique identifier for the client that consumes or produces a message.
4654///
4655/// ## Notes
4656///
4657/// # Examples
4658///
4659/// - `"client-5"`
4660/// - `"myhost@8742@s8083jm"`
4661#[cfg(feature = "semconv_experimental")]
4662pub const MESSAGING_CLIENT_ID: &str = "messaging.client.id";
4663
4664/// The name of the consumer group with which a consumer is associated.
4665///
4666/// ## Notes
4667///
4668/// 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.
4669///
4670/// # Examples
4671///
4672/// - `"my-group"`
4673/// - `"indexer"`
4674#[cfg(feature = "semconv_experimental")]
4675pub const MESSAGING_CONSUMER_GROUP_NAME: &str = "messaging.consumer.group.name";
4676
4677/// A boolean that is true if the message destination is anonymous (could be unnamed or have auto-generated name).
4678///
4679/// ## Notes
4680#[cfg(feature = "semconv_experimental")]
4681pub const MESSAGING_DESTINATION_ANONYMOUS: &str = "messaging.destination.anonymous";
4682
4683/// The message destination name
4684///
4685/// ## Notes
4686///
4687/// Destination name SHOULD uniquely identify a specific queue, topic or other entity within the broker. If
4688/// the broker doesn't have such notion, the destination name SHOULD uniquely identify the broker.
4689///
4690/// # Examples
4691///
4692/// - `"MyQueue"`
4693/// - `"MyTopic"`
4694#[cfg(feature = "semconv_experimental")]
4695pub const MESSAGING_DESTINATION_NAME: &str = "messaging.destination.name";
4696
4697/// The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`.
4698///
4699/// ## Notes
4700///
4701/// # Examples
4702///
4703/// - `"1"`
4704#[cfg(feature = "semconv_experimental")]
4705pub const MESSAGING_DESTINATION_PARTITION_ID: &str = "messaging.destination.partition.id";
4706
4707/// The name of the destination subscription from which a message is consumed.
4708///
4709/// ## Notes
4710///
4711/// 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.
4712///
4713/// # Examples
4714///
4715/// - `"subscription-a"`
4716#[cfg(feature = "semconv_experimental")]
4717pub const MESSAGING_DESTINATION_SUBSCRIPTION_NAME: &str = "messaging.destination.subscription.name";
4718
4719/// Low cardinality representation of the messaging destination name
4720///
4721/// ## Notes
4722///
4723/// 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.
4724///
4725/// # Examples
4726///
4727/// - `"/customers/{customerId}"`
4728#[cfg(feature = "semconv_experimental")]
4729pub const MESSAGING_DESTINATION_TEMPLATE: &str = "messaging.destination.template";
4730
4731/// A boolean that is true if the message destination is temporary and might not exist anymore after messages are processed.
4732///
4733/// ## Notes
4734#[cfg(feature = "semconv_experimental")]
4735pub const MESSAGING_DESTINATION_TEMPORARY: &str = "messaging.destination.temporary";
4736
4737/// Deprecated, no replacement at this time.
4738///
4739/// ## Notes
4740#[cfg(feature = "semconv_experimental")]
4741pub const MESSAGING_DESTINATION_PUBLISH_ANONYMOUS: &str = "messaging.destination_publish.anonymous";
4742
4743/// Deprecated, no replacement at this time.
4744///
4745/// ## Notes
4746///
4747/// # Examples
4748///
4749/// - `"MyQueue"`
4750/// - `"MyTopic"`
4751#[cfg(feature = "semconv_experimental")]
4752pub const MESSAGING_DESTINATION_PUBLISH_NAME: &str = "messaging.destination_publish.name";
4753
4754/// Deprecated, use `messaging.consumer.group.name` instead.
4755///
4756/// ## Notes
4757///
4758/// # Examples
4759///
4760/// - `"$Default"`
4761#[cfg(feature = "semconv_experimental")]
4762pub const MESSAGING_EVENTHUBS_CONSUMER_GROUP: &str = "messaging.eventhubs.consumer.group";
4763
4764/// The UTC epoch seconds at which the message has been accepted and stored in the entity.
4765///
4766/// ## Notes
4767///
4768/// # Examples
4769///
4770/// - `1701393730`
4771#[cfg(feature = "semconv_experimental")]
4772pub const MESSAGING_EVENTHUBS_MESSAGE_ENQUEUED_TIME: &str =
4773    "messaging.eventhubs.message.enqueued_time";
4774
4775/// The ack deadline in seconds set for the modify ack deadline request.
4776///
4777/// ## Notes
4778///
4779/// # Examples
4780///
4781/// - `10`
4782#[cfg(feature = "semconv_experimental")]
4783pub const MESSAGING_GCP_PUBSUB_MESSAGE_ACK_DEADLINE: &str =
4784    "messaging.gcp_pubsub.message.ack_deadline";
4785
4786/// The ack id for a given message.
4787///
4788/// ## Notes
4789///
4790/// # Examples
4791///
4792/// - `"ack_id"`
4793#[cfg(feature = "semconv_experimental")]
4794pub const MESSAGING_GCP_PUBSUB_MESSAGE_ACK_ID: &str = "messaging.gcp_pubsub.message.ack_id";
4795
4796/// The delivery attempt for a given message.
4797///
4798/// ## Notes
4799///
4800/// # Examples
4801///
4802/// - `2`
4803#[cfg(feature = "semconv_experimental")]
4804pub const MESSAGING_GCP_PUBSUB_MESSAGE_DELIVERY_ATTEMPT: &str =
4805    "messaging.gcp_pubsub.message.delivery_attempt";
4806
4807/// The ordering key for a given message. If the attribute is not present, the message does not have an ordering key.
4808///
4809/// ## Notes
4810///
4811/// # Examples
4812///
4813/// - `"ordering_key"`
4814#[cfg(feature = "semconv_experimental")]
4815pub const MESSAGING_GCP_PUBSUB_MESSAGE_ORDERING_KEY: &str =
4816    "messaging.gcp_pubsub.message.ordering_key";
4817
4818/// Deprecated, use `messaging.consumer.group.name` instead.
4819///
4820/// ## Notes
4821///
4822/// # Examples
4823///
4824/// - `"my-group"`
4825#[cfg(feature = "semconv_experimental")]
4826pub const MESSAGING_KAFKA_CONSUMER_GROUP: &str = "messaging.kafka.consumer.group";
4827
4828/// Deprecated, use `messaging.destination.partition.id` instead.
4829///
4830/// ## Notes
4831///
4832/// # Examples
4833///
4834/// - `2`
4835#[cfg(feature = "semconv_experimental")]
4836pub const MESSAGING_KAFKA_DESTINATION_PARTITION: &str = "messaging.kafka.destination.partition";
4837
4838/// 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.
4839///
4840/// ## Notes
4841///
4842/// 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.
4843///
4844/// # Examples
4845///
4846/// - `"myKey"`
4847#[cfg(feature = "semconv_experimental")]
4848pub const MESSAGING_KAFKA_MESSAGE_KEY: &str = "messaging.kafka.message.key";
4849
4850/// Deprecated, use `messaging.kafka.offset` instead.
4851///
4852/// ## Notes
4853///
4854/// # Examples
4855///
4856/// - `42`
4857#[cfg(feature = "semconv_experimental")]
4858pub const MESSAGING_KAFKA_MESSAGE_OFFSET: &str = "messaging.kafka.message.offset";
4859
4860/// A boolean that is true if the message is a tombstone.
4861///
4862/// ## Notes
4863#[cfg(feature = "semconv_experimental")]
4864pub const MESSAGING_KAFKA_MESSAGE_TOMBSTONE: &str = "messaging.kafka.message.tombstone";
4865
4866/// The offset of a record in the corresponding Kafka partition.
4867///
4868/// ## Notes
4869///
4870/// # Examples
4871///
4872/// - `42`
4873#[cfg(feature = "semconv_experimental")]
4874pub const MESSAGING_KAFKA_OFFSET: &str = "messaging.kafka.offset";
4875
4876/// The size of the message body in bytes.
4877///
4878/// ## Notes
4879///
4880/// This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed
4881/// body size should be used.
4882///
4883/// # Examples
4884///
4885/// - `1439`
4886#[cfg(feature = "semconv_experimental")]
4887pub const MESSAGING_MESSAGE_BODY_SIZE: &str = "messaging.message.body.size";
4888
4889/// The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".
4890///
4891/// ## Notes
4892///
4893/// # Examples
4894///
4895/// - `"MyConversationId"`
4896#[cfg(feature = "semconv_experimental")]
4897pub const MESSAGING_MESSAGE_CONVERSATION_ID: &str = "messaging.message.conversation_id";
4898
4899/// The size of the message body and metadata in bytes.
4900///
4901/// ## Notes
4902///
4903/// This can refer to both the compressed or uncompressed size. If both sizes are known, the uncompressed
4904/// size should be used.
4905///
4906/// # Examples
4907///
4908/// - `2738`
4909#[cfg(feature = "semconv_experimental")]
4910pub const MESSAGING_MESSAGE_ENVELOPE_SIZE: &str = "messaging.message.envelope.size";
4911
4912/// A value used by the messaging system as an identifier for the message, represented as a string.
4913///
4914/// ## Notes
4915///
4916/// # Examples
4917///
4918/// - `"452a7c7c7c7048c2f887f61572b18fc2"`
4919#[cfg(feature = "semconv_experimental")]
4920pub const MESSAGING_MESSAGE_ID: &str = "messaging.message.id";
4921
4922/// Deprecated, use `messaging.operation.type` instead.
4923///
4924/// ## Notes
4925///
4926/// # Examples
4927///
4928/// - `"publish"`
4929/// - `"create"`
4930/// - `"process"`
4931#[cfg(feature = "semconv_experimental")]
4932pub const MESSAGING_OPERATION: &str = "messaging.operation";
4933
4934/// The system-specific name of the messaging operation.
4935///
4936/// ## Notes
4937///
4938/// # Examples
4939///
4940/// - `"ack"`
4941/// - `"nack"`
4942/// - `"send"`
4943#[cfg(feature = "semconv_experimental")]
4944pub const MESSAGING_OPERATION_NAME: &str = "messaging.operation.name";
4945
4946/// A string identifying the type of the messaging operation.
4947///
4948/// ## Notes
4949///
4950/// If a custom value is used, it MUST be of low cardinality
4951#[cfg(feature = "semconv_experimental")]
4952pub const MESSAGING_OPERATION_TYPE: &str = "messaging.operation.type";
4953
4954/// RabbitMQ message routing key.
4955///
4956/// ## Notes
4957///
4958/// # Examples
4959///
4960/// - `"myKey"`
4961#[cfg(feature = "semconv_experimental")]
4962pub const MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY: &str =
4963    "messaging.rabbitmq.destination.routing_key";
4964
4965/// RabbitMQ message delivery tag
4966///
4967/// ## Notes
4968///
4969/// # Examples
4970///
4971/// - `123`
4972#[cfg(feature = "semconv_experimental")]
4973pub const MESSAGING_RABBITMQ_MESSAGE_DELIVERY_TAG: &str = "messaging.rabbitmq.message.delivery_tag";
4974
4975/// Deprecated, use `messaging.consumer.group.name` instead.
4976///
4977/// ## Notes
4978///
4979/// # Examples
4980///
4981/// - `"myConsumerGroup"`
4982#[cfg(feature = "semconv_experimental")]
4983pub const MESSAGING_ROCKETMQ_CLIENT_GROUP: &str = "messaging.rocketmq.client_group";
4984
4985/// Model of message consumption. This only applies to consumer spans.
4986///
4987/// ## Notes
4988#[cfg(feature = "semconv_experimental")]
4989pub const MESSAGING_ROCKETMQ_CONSUMPTION_MODEL: &str = "messaging.rocketmq.consumption_model";
4990
4991/// The delay time level for delay message, which determines the message delay time.
4992///
4993/// ## Notes
4994///
4995/// # Examples
4996///
4997/// - `3`
4998#[cfg(feature = "semconv_experimental")]
4999pub const MESSAGING_ROCKETMQ_MESSAGE_DELAY_TIME_LEVEL: &str =
5000    "messaging.rocketmq.message.delay_time_level";
5001
5002/// The timestamp in milliseconds that the delay message is expected to be delivered to consumer.
5003///
5004/// ## Notes
5005///
5006/// # Examples
5007///
5008/// - `1665987217045`
5009#[cfg(feature = "semconv_experimental")]
5010pub const MESSAGING_ROCKETMQ_MESSAGE_DELIVERY_TIMESTAMP: &str =
5011    "messaging.rocketmq.message.delivery_timestamp";
5012
5013/// 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.
5014///
5015/// ## Notes
5016///
5017/// # Examples
5018///
5019/// - `"myMessageGroup"`
5020#[cfg(feature = "semconv_experimental")]
5021pub const MESSAGING_ROCKETMQ_MESSAGE_GROUP: &str = "messaging.rocketmq.message.group";
5022
5023/// Key(s) of message, another way to mark message besides message id.
5024///
5025/// ## Notes
5026///
5027/// # Examples
5028///
5029/// - `[
5030///  "keyA",
5031///  "keyB",
5032/// ]`
5033#[cfg(feature = "semconv_experimental")]
5034pub const MESSAGING_ROCKETMQ_MESSAGE_KEYS: &str = "messaging.rocketmq.message.keys";
5035
5036/// The secondary classifier of message besides topic.
5037///
5038/// ## Notes
5039///
5040/// # Examples
5041///
5042/// - `"tagA"`
5043#[cfg(feature = "semconv_experimental")]
5044pub const MESSAGING_ROCKETMQ_MESSAGE_TAG: &str = "messaging.rocketmq.message.tag";
5045
5046/// Type of message.
5047///
5048/// ## Notes
5049#[cfg(feature = "semconv_experimental")]
5050pub const MESSAGING_ROCKETMQ_MESSAGE_TYPE: &str = "messaging.rocketmq.message.type";
5051
5052/// Namespace of RocketMQ resources, resources in different namespaces are individual.
5053///
5054/// ## Notes
5055///
5056/// # Examples
5057///
5058/// - `"myNamespace"`
5059#[cfg(feature = "semconv_experimental")]
5060pub const MESSAGING_ROCKETMQ_NAMESPACE: &str = "messaging.rocketmq.namespace";
5061
5062/// Deprecated, use `messaging.destination.subscription.name` instead.
5063///
5064/// ## Notes
5065///
5066/// # Examples
5067///
5068/// - `"subscription-a"`
5069#[cfg(feature = "semconv_experimental")]
5070pub const MESSAGING_SERVICEBUS_DESTINATION_SUBSCRIPTION_NAME: &str =
5071    "messaging.servicebus.destination.subscription_name";
5072
5073/// Describes the [settlement type](https://learn.microsoft.com/azure/service-bus-messaging/message-transfers-locks-settlement#peeklock).
5074///
5075/// ## Notes
5076#[cfg(feature = "semconv_experimental")]
5077pub const MESSAGING_SERVICEBUS_DISPOSITION_STATUS: &str = "messaging.servicebus.disposition_status";
5078
5079/// Number of deliveries that have been attempted for this message.
5080///
5081/// ## Notes
5082///
5083/// # Examples
5084///
5085/// - `2`
5086#[cfg(feature = "semconv_experimental")]
5087pub const MESSAGING_SERVICEBUS_MESSAGE_DELIVERY_COUNT: &str =
5088    "messaging.servicebus.message.delivery_count";
5089
5090/// The UTC epoch seconds at which the message has been accepted and stored in the entity.
5091///
5092/// ## Notes
5093///
5094/// # Examples
5095///
5096/// - `1701393730`
5097#[cfg(feature = "semconv_experimental")]
5098pub const MESSAGING_SERVICEBUS_MESSAGE_ENQUEUED_TIME: &str =
5099    "messaging.servicebus.message.enqueued_time";
5100
5101/// The messaging system as identified by the client instrumentation.
5102///
5103/// ## Notes
5104///
5105/// 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
5106#[cfg(feature = "semconv_experimental")]
5107pub const MESSAGING_SYSTEM: &str = "messaging.system";
5108
5109/// Deprecated, use `network.local.address`.
5110///
5111/// ## Notes
5112///
5113/// # Examples
5114///
5115/// - `"192.168.0.1"`
5116#[cfg(feature = "semconv_experimental")]
5117pub const NET_HOST_IP: &str = "net.host.ip";
5118
5119/// Deprecated, use `server.address`.
5120///
5121/// ## Notes
5122///
5123/// # Examples
5124///
5125/// - `"example.com"`
5126#[cfg(feature = "semconv_experimental")]
5127pub const NET_HOST_NAME: &str = "net.host.name";
5128
5129/// Deprecated, use `server.port`.
5130///
5131/// ## Notes
5132///
5133/// # Examples
5134///
5135/// - `8080`
5136#[cfg(feature = "semconv_experimental")]
5137pub const NET_HOST_PORT: &str = "net.host.port";
5138
5139/// Deprecated, use `network.peer.address`.
5140///
5141/// ## Notes
5142///
5143/// # Examples
5144///
5145/// - `"127.0.0.1"`
5146#[cfg(feature = "semconv_experimental")]
5147pub const NET_PEER_IP: &str = "net.peer.ip";
5148
5149/// Deprecated, use `server.address` on client spans and `client.address` on server spans.
5150///
5151/// ## Notes
5152///
5153/// # Examples
5154///
5155/// - `"example.com"`
5156#[cfg(feature = "semconv_experimental")]
5157pub const NET_PEER_NAME: &str = "net.peer.name";
5158
5159/// Deprecated, use `server.port` on client spans and `client.port` on server spans.
5160///
5161/// ## Notes
5162///
5163/// # Examples
5164///
5165/// - `8080`
5166#[cfg(feature = "semconv_experimental")]
5167pub const NET_PEER_PORT: &str = "net.peer.port";
5168
5169/// Deprecated, use `network.protocol.name`.
5170///
5171/// ## Notes
5172///
5173/// # Examples
5174///
5175/// - `"amqp"`
5176/// - `"http"`
5177/// - `"mqtt"`
5178#[cfg(feature = "semconv_experimental")]
5179pub const NET_PROTOCOL_NAME: &str = "net.protocol.name";
5180
5181/// Deprecated, use `network.protocol.version`.
5182///
5183/// ## Notes
5184///
5185/// # Examples
5186///
5187/// - `"3.1.1"`
5188#[cfg(feature = "semconv_experimental")]
5189pub const NET_PROTOCOL_VERSION: &str = "net.protocol.version";
5190
5191/// Deprecated, use `network.transport` and `network.type`.
5192///
5193/// ## Notes
5194#[cfg(feature = "semconv_experimental")]
5195pub const NET_SOCK_FAMILY: &str = "net.sock.family";
5196
5197/// Deprecated, use `network.local.address`.
5198///
5199/// ## Notes
5200///
5201/// # Examples
5202///
5203/// - `"/var/my.sock"`
5204#[cfg(feature = "semconv_experimental")]
5205pub const NET_SOCK_HOST_ADDR: &str = "net.sock.host.addr";
5206
5207/// Deprecated, use `network.local.port`.
5208///
5209/// ## Notes
5210///
5211/// # Examples
5212///
5213/// - `8080`
5214#[cfg(feature = "semconv_experimental")]
5215pub const NET_SOCK_HOST_PORT: &str = "net.sock.host.port";
5216
5217/// Deprecated, use `network.peer.address`.
5218///
5219/// ## Notes
5220///
5221/// # Examples
5222///
5223/// - `"192.168.0.1"`
5224#[cfg(feature = "semconv_experimental")]
5225pub const NET_SOCK_PEER_ADDR: &str = "net.sock.peer.addr";
5226
5227/// Deprecated, no replacement at this time.
5228///
5229/// ## Notes
5230///
5231/// # Examples
5232///
5233/// - `"/var/my.sock"`
5234#[cfg(feature = "semconv_experimental")]
5235pub const NET_SOCK_PEER_NAME: &str = "net.sock.peer.name";
5236
5237/// Deprecated, use `network.peer.port`.
5238///
5239/// ## Notes
5240///
5241/// # Examples
5242///
5243/// - `65531`
5244#[cfg(feature = "semconv_experimental")]
5245pub const NET_SOCK_PEER_PORT: &str = "net.sock.peer.port";
5246
5247/// Deprecated, use `network.transport`.
5248///
5249/// ## Notes
5250#[cfg(feature = "semconv_experimental")]
5251pub const NET_TRANSPORT: &str = "net.transport";
5252
5253/// The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.
5254///
5255/// ## Notes
5256///
5257/// # Examples
5258///
5259/// - `"DE"`
5260#[cfg(feature = "semconv_experimental")]
5261pub const NETWORK_CARRIER_ICC: &str = "network.carrier.icc";
5262
5263/// The mobile carrier country code.
5264///
5265/// ## Notes
5266///
5267/// # Examples
5268///
5269/// - `"310"`
5270#[cfg(feature = "semconv_experimental")]
5271pub const NETWORK_CARRIER_MCC: &str = "network.carrier.mcc";
5272
5273/// The mobile carrier network code.
5274///
5275/// ## Notes
5276///
5277/// # Examples
5278///
5279/// - `"001"`
5280#[cfg(feature = "semconv_experimental")]
5281pub const NETWORK_CARRIER_MNC: &str = "network.carrier.mnc";
5282
5283/// The name of the mobile carrier.
5284///
5285/// ## Notes
5286///
5287/// # Examples
5288///
5289/// - `"sprint"`
5290#[cfg(feature = "semconv_experimental")]
5291pub const NETWORK_CARRIER_NAME: &str = "network.carrier.name";
5292
5293/// The state of network connection
5294///
5295/// ## Notes
5296///
5297/// Connection states are defined as part of the [rfc9293](https://datatracker.ietf.org/doc/html/rfc9293#section-3.3.2)
5298///
5299/// # Examples
5300///
5301/// - `"close_wait"`
5302#[cfg(feature = "semconv_experimental")]
5303pub const NETWORK_CONNECTION_STATE: &str = "network.connection.state";
5304
5305/// 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.
5306///
5307/// ## Notes
5308///
5309/// # Examples
5310///
5311/// - `"LTE"`
5312#[cfg(feature = "semconv_experimental")]
5313pub const NETWORK_CONNECTION_SUBTYPE: &str = "network.connection.subtype";
5314
5315/// The internet connection type.
5316///
5317/// ## Notes
5318///
5319/// # Examples
5320///
5321/// - `"wifi"`
5322#[cfg(feature = "semconv_experimental")]
5323pub const NETWORK_CONNECTION_TYPE: &str = "network.connection.type";
5324
5325/// The network interface name.
5326///
5327/// ## Notes
5328///
5329/// # Examples
5330///
5331/// - `"lo"`
5332/// - `"eth0"`
5333#[cfg(feature = "semconv_experimental")]
5334pub const NETWORK_INTERFACE_NAME: &str = "network.interface.name";
5335
5336/// The network IO operation direction.
5337///
5338/// ## Notes
5339///
5340/// # Examples
5341///
5342/// - `"transmit"`
5343#[cfg(feature = "semconv_experimental")]
5344pub const NETWORK_IO_DIRECTION: &str = "network.io.direction";
5345
5346/// Local address of the network connection - IP address or Unix domain socket name.
5347///
5348/// ## Notes
5349///
5350/// # Examples
5351///
5352/// - `"10.1.2.80"`
5353/// - `"/tmp/my.sock"`
5354pub const NETWORK_LOCAL_ADDRESS: &str = "network.local.address";
5355
5356/// Local port number of the network connection.
5357///
5358/// ## Notes
5359///
5360/// # Examples
5361///
5362/// - `65123`
5363pub const NETWORK_LOCAL_PORT: &str = "network.local.port";
5364
5365/// Peer address of the network connection - IP address or Unix domain socket name.
5366///
5367/// ## Notes
5368///
5369/// # Examples
5370///
5371/// - `"10.1.2.80"`
5372/// - `"/tmp/my.sock"`
5373pub const NETWORK_PEER_ADDRESS: &str = "network.peer.address";
5374
5375/// Peer port number of the network connection.
5376///
5377/// ## Notes
5378///
5379/// # Examples
5380///
5381/// - `65123`
5382pub const NETWORK_PEER_PORT: &str = "network.peer.port";
5383
5384/// [OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.
5385///
5386/// ## Notes
5387///
5388/// The value SHOULD be normalized to lowercase.
5389///
5390/// # Examples
5391///
5392/// - `"amqp"`
5393/// - `"http"`
5394/// - `"mqtt"`
5395pub const NETWORK_PROTOCOL_NAME: &str = "network.protocol.name";
5396
5397/// The actual version of the protocol used for network communication.
5398///
5399/// ## Notes
5400///
5401/// 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.
5402///
5403/// # Examples
5404///
5405/// - `"1.1"`
5406/// - `"2"`
5407pub const NETWORK_PROTOCOL_VERSION: &str = "network.protocol.version";
5408
5409/// [OSI transport layer](https://wikipedia.org/wiki/Transport_layer) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication).
5410///
5411/// ## Notes
5412///
5413/// The value SHOULD be normalized to lowercase.
5414///
5415/// Consider always setting the transport when setting a port number, since
5416/// a port number is ambiguous without knowing the transport. For example
5417/// different processes could be listening on TCP port 12345 and UDP port 12345.
5418///
5419/// # Examples
5420///
5421/// - `"tcp"`
5422/// - `"udp"`
5423pub const NETWORK_TRANSPORT: &str = "network.transport";
5424
5425/// [OSI network layer](https://wikipedia.org/wiki/Network_layer) or non-OSI equivalent.
5426///
5427/// ## Notes
5428///
5429/// The value SHOULD be normalized to lowercase.
5430///
5431/// # Examples
5432///
5433/// - `"ipv4"`
5434/// - `"ipv6"`
5435pub const NETWORK_TYPE: &str = "network.type";
5436
5437/// The state of event loop time.
5438///
5439/// ## Notes
5440#[cfg(feature = "semconv_experimental")]
5441pub const NODEJS_EVENTLOOP_STATE: &str = "nodejs.eventloop.state";
5442
5443/// The digest of the OCI image manifest. For container images specifically is the digest by which the container image is known.
5444///
5445/// ## Notes
5446///
5447/// 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).
5448/// An example can be found in [Example Image Manifest](https://github.com/opencontainers/image-spec/blob/main/manifest.md#example-image-manifest).
5449///
5450/// # Examples
5451///
5452/// - `"sha256:e4ca62c0d62f3e886e684806dfe9d4e0cda60d54986898173c1083856cfda0f4"`
5453#[cfg(feature = "semconv_experimental")]
5454pub const OCI_MANIFEST_DIGEST: &str = "oci.manifest.digest";
5455
5456/// Parent-child Reference type
5457///
5458/// ## Notes
5459///
5460/// The causal relationship between a child Span and a parent Span
5461#[cfg(feature = "semconv_experimental")]
5462pub const OPENTRACING_REF_TYPE: &str = "opentracing.ref_type";
5463
5464/// Unique identifier for a particular build or compilation of the operating system.
5465///
5466/// ## Notes
5467///
5468/// # Examples
5469///
5470/// - `"TQ3C.230805.001.B2"`
5471/// - `"20E247"`
5472/// - `"22621"`
5473#[cfg(feature = "semconv_experimental")]
5474pub const OS_BUILD_ID: &str = "os.build_id";
5475
5476/// Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands.
5477///
5478/// ## Notes
5479///
5480/// # Examples
5481///
5482/// - `"Microsoft Windows [Version 10.0.18363.778]"`
5483/// - `"Ubuntu 18.04.1 LTS"`
5484#[cfg(feature = "semconv_experimental")]
5485pub const OS_DESCRIPTION: &str = "os.description";
5486
5487/// Human readable operating system name.
5488///
5489/// ## Notes
5490///
5491/// # Examples
5492///
5493/// - `"iOS"`
5494/// - `"Android"`
5495/// - `"Ubuntu"`
5496#[cfg(feature = "semconv_experimental")]
5497pub const OS_NAME: &str = "os.name";
5498
5499/// The operating system type.
5500///
5501/// ## Notes
5502#[cfg(feature = "semconv_experimental")]
5503pub const OS_TYPE: &str = "os.type";
5504
5505/// The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
5506///
5507/// ## Notes
5508///
5509/// # Examples
5510///
5511/// - `"14.2.1"`
5512/// - `"18.04.1"`
5513#[cfg(feature = "semconv_experimental")]
5514pub const OS_VERSION: &str = "os.version";
5515
5516/// A name uniquely identifying the instance of the OpenTelemetry component within its containing SDK instance.
5517///
5518/// ## Notes
5519///
5520/// Implementations SHOULD ensure a low cardinality for this attribute, even across application or SDK restarts.
5521/// E.g. implementations MUST NOT use UUIDs as values for this attribute.
5522///
5523/// Implementations MAY achieve these goals by following a `[otel.component.type]/[instance-counter]` pattern, e.g. `batching_span_processor/0`.
5524/// Hereby `otel.component.type` refers to the corresponding attribute value of the component.
5525///
5526/// The value of `instance-counter` MAY be automatically assigned by the component and uniqueness within the enclosing SDK instance MUST be guaranteed.
5527/// For example, `[instance-counter]` MAY be implemented by using a monotonically increasing counter (starting with `0`), which is incremented every time an
5528/// instance of the given component type is started.
5529///
5530/// With this implementation, for example the first Batching Span Processor would have `batching_span_processor/0`
5531/// as `otel.component.name`, the second one `batching_span_processor/1` and so on.
5532/// These values will therefore be reused in the case of an application restart.
5533///
5534/// # Examples
5535///
5536/// - `"otlp_grpc_span_exporter/0"`
5537/// - `"custom-name"`
5538#[cfg(feature = "semconv_experimental")]
5539pub const OTEL_COMPONENT_NAME: &str = "otel.component.name";
5540
5541/// A name identifying the type of the OpenTelemetry component.
5542///
5543/// ## Notes
5544///
5545/// If none of the standardized values apply, implementations SHOULD use the language-defined name of the type.
5546/// E.g. for Java the fully qualified classname SHOULD be used in this case.
5547///
5548/// # Examples
5549///
5550/// - `"batching_span_processor"`
5551/// - `"com.example.MySpanExporter"`
5552#[cfg(feature = "semconv_experimental")]
5553pub const OTEL_COMPONENT_TYPE: &str = "otel.component.type";
5554
5555/// Deprecated. Use the `otel.scope.name` attribute
5556///
5557/// ## Notes
5558///
5559/// # Examples
5560///
5561/// - `"io.opentelemetry.contrib.mongodb"`
5562#[cfg(feature = "semconv_experimental")]
5563pub const OTEL_LIBRARY_NAME: &str = "otel.library.name";
5564
5565/// Deprecated. Use the `otel.scope.version` attribute.
5566///
5567/// ## Notes
5568///
5569/// # Examples
5570///
5571/// - `"1.0.0"`
5572#[cfg(feature = "semconv_experimental")]
5573pub const OTEL_LIBRARY_VERSION: &str = "otel.library.version";
5574
5575/// The name of the instrumentation scope - (`InstrumentationScope.Name` in OTLP).
5576///
5577/// ## Notes
5578///
5579/// # Examples
5580///
5581/// - `"io.opentelemetry.contrib.mongodb"`
5582pub const OTEL_SCOPE_NAME: &str = "otel.scope.name";
5583
5584/// The version of the instrumentation scope - (`InstrumentationScope.Version` in OTLP).
5585///
5586/// ## Notes
5587///
5588/// # Examples
5589///
5590/// - `"1.0.0"`
5591pub const OTEL_SCOPE_VERSION: &str = "otel.scope.version";
5592
5593/// The result value of the sampler for this span
5594///
5595/// ## Notes
5596#[cfg(feature = "semconv_experimental")]
5597pub const OTEL_SPAN_SAMPLING_RESULT: &str = "otel.span.sampling_result";
5598
5599/// Name of the code, either "OK" or "ERROR". MUST NOT be set if the status code is UNSET.
5600///
5601/// ## Notes
5602pub const OTEL_STATUS_CODE: &str = "otel.status_code";
5603
5604/// Description of the Status if it has a value, otherwise not set.
5605///
5606/// ## Notes
5607///
5608/// # Examples
5609///
5610/// - `"resource not found"`
5611pub const OTEL_STATUS_DESCRIPTION: &str = "otel.status_description";
5612
5613/// Deprecated, use `db.client.connection.state` instead.
5614///
5615/// ## Notes
5616///
5617/// # Examples
5618///
5619/// - `"idle"`
5620#[cfg(feature = "semconv_experimental")]
5621pub const STATE: &str = "state";
5622
5623/// 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.
5624///
5625/// ## Notes
5626///
5627/// # Examples
5628///
5629/// - `"AuthTokenCache"`
5630#[cfg(feature = "semconv_experimental")]
5631pub const PEER_SERVICE: &str = "peer.service";
5632
5633/// Deprecated, use `db.client.connection.pool.name` instead.
5634///
5635/// ## Notes
5636///
5637/// # Examples
5638///
5639/// - `"myDataSource"`
5640#[cfg(feature = "semconv_experimental")]
5641pub const POOL_NAME: &str = "pool.name";
5642
5643/// Length of the process.command_args array
5644///
5645/// ## Notes
5646///
5647/// 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.
5648///
5649/// # Examples
5650///
5651/// - `4`
5652#[cfg(feature = "semconv_experimental")]
5653pub const PROCESS_ARGS_COUNT: &str = "process.args_count";
5654
5655/// 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`.
5656///
5657/// ## Notes
5658///
5659/// # Examples
5660///
5661/// - `"cmd/otelcol"`
5662#[cfg(feature = "semconv_experimental")]
5663pub const PROCESS_COMMAND: &str = "process.command";
5664
5665/// 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`.
5666///
5667/// ## Notes
5668///
5669/// # Examples
5670///
5671/// - `[
5672///  "cmd/otecol",
5673///  "--config=config.yaml",
5674/// ]`
5675#[cfg(feature = "semconv_experimental")]
5676pub const PROCESS_COMMAND_ARGS: &str = "process.command_args";
5677
5678/// 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.
5679///
5680/// ## Notes
5681///
5682/// # Examples
5683///
5684/// - `"C:\\cmd\\otecol --config=\"my directory\\config.yaml\""`
5685#[cfg(feature = "semconv_experimental")]
5686pub const PROCESS_COMMAND_LINE: &str = "process.command_line";
5687
5688/// Specifies whether the context switches for this data point were voluntary or involuntary.
5689///
5690/// ## Notes
5691#[cfg(feature = "semconv_experimental")]
5692pub const PROCESS_CONTEXT_SWITCH_TYPE: &str = "process.context_switch_type";
5693
5694/// Deprecated, use `cpu.mode` instead.
5695///
5696/// ## Notes
5697#[cfg(feature = "semconv_experimental")]
5698pub const PROCESS_CPU_STATE: &str = "process.cpu.state";
5699
5700/// The date and time the process was created, in ISO 8601 format.
5701///
5702/// ## Notes
5703///
5704/// # Examples
5705///
5706/// - `"2023-11-21T09:25:34.853Z"`
5707#[cfg(feature = "semconv_experimental")]
5708pub const PROCESS_CREATION_TIME: &str = "process.creation.time";
5709
5710/// The GNU build ID as found in the `.note.gnu.build-id` ELF section (hex string).
5711///
5712/// ## Notes
5713///
5714/// # Examples
5715///
5716/// - `"c89b11207f6479603b0d49bf291c092c2b719293"`
5717#[cfg(feature = "semconv_experimental")]
5718pub const PROCESS_EXECUTABLE_BUILD_ID_GNU: &str = "process.executable.build_id.gnu";
5719
5720/// The Go build ID as retrieved by `go tool buildid <go executable>`.
5721///
5722/// ## Notes
5723///
5724/// # Examples
5725///
5726/// - `"foh3mEXu7BLZjsN9pOwG/kATcXlYVCDEFouRMQed_/WwRFB1hPo9LBkekthSPG/x8hMC8emW2cCjXD0_1aY"`
5727#[cfg(feature = "semconv_experimental")]
5728pub const PROCESS_EXECUTABLE_BUILD_ID_GO: &str = "process.executable.build_id.go";
5729
5730/// Profiling specific build ID for executables. See the OTel specification for Profiles for more information.
5731///
5732/// ## Notes
5733///
5734/// # Examples
5735///
5736/// - `"600DCAFE4A110000F2BF38C493F5FB92"`
5737#[cfg(feature = "semconv_experimental")]
5738pub const PROCESS_EXECUTABLE_BUILD_ID_HTLHASH: &str = "process.executable.build_id.htlhash";
5739
5740/// "Deprecated, use `process.executable.build_id.htlhash` instead."
5741///
5742/// ## Notes
5743///
5744/// # Examples
5745///
5746/// - `"600DCAFE4A110000F2BF38C493F5FB92"`
5747#[cfg(feature = "semconv_experimental")]
5748pub const PROCESS_EXECUTABLE_BUILD_ID_PROFILING: &str = "process.executable.build_id.profiling";
5749
5750/// 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`.
5751///
5752/// ## Notes
5753///
5754/// # Examples
5755///
5756/// - `"otelcol"`
5757#[cfg(feature = "semconv_experimental")]
5758pub const PROCESS_EXECUTABLE_NAME: &str = "process.executable.name";
5759
5760/// 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`.
5761///
5762/// ## Notes
5763///
5764/// # Examples
5765///
5766/// - `"/usr/bin/cmd/otelcol"`
5767#[cfg(feature = "semconv_experimental")]
5768pub const PROCESS_EXECUTABLE_PATH: &str = "process.executable.path";
5769
5770/// The exit code of the process.
5771///
5772/// ## Notes
5773///
5774/// # Examples
5775///
5776/// - `127`
5777#[cfg(feature = "semconv_experimental")]
5778pub const PROCESS_EXIT_CODE: &str = "process.exit.code";
5779
5780/// The date and time the process exited, in ISO 8601 format.
5781///
5782/// ## Notes
5783///
5784/// # Examples
5785///
5786/// - `"2023-11-21T09:26:12.315Z"`
5787#[cfg(feature = "semconv_experimental")]
5788pub const PROCESS_EXIT_TIME: &str = "process.exit.time";
5789
5790/// The PID of the process's group leader. This is also the process group ID (PGID) of the process.
5791///
5792/// ## Notes
5793///
5794/// # Examples
5795///
5796/// - `23`
5797#[cfg(feature = "semconv_experimental")]
5798pub const PROCESS_GROUP_LEADER_PID: &str = "process.group_leader.pid";
5799
5800/// Whether the process is connected to an interactive shell.
5801///
5802/// ## Notes
5803#[cfg(feature = "semconv_experimental")]
5804pub const PROCESS_INTERACTIVE: &str = "process.interactive";
5805
5806/// The control group associated with the process.
5807///
5808/// ## Notes
5809///
5810/// 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.
5811///
5812/// # Examples
5813///
5814/// - `"1:name=systemd:/user.slice/user-1000.slice/session-3.scope"`
5815/// - `"0::/user.slice/user-1000.slice/user@1000.service/tmux-spawn-0267755b-4639-4a27-90ed-f19f88e53748.scope"`
5816#[cfg(feature = "semconv_experimental")]
5817pub const PROCESS_LINUX_CGROUP: &str = "process.linux.cgroup";
5818
5819/// The username of the user that owns the process.
5820///
5821/// ## Notes
5822///
5823/// # Examples
5824///
5825/// - `"root"`
5826#[cfg(feature = "semconv_experimental")]
5827pub const PROCESS_OWNER: &str = "process.owner";
5828
5829/// The type of page fault for this data point. Type `major` is for major/hard page faults, and `minor` is for minor/soft page faults.
5830///
5831/// ## Notes
5832#[cfg(feature = "semconv_experimental")]
5833pub const PROCESS_PAGING_FAULT_TYPE: &str = "process.paging.fault_type";
5834
5835/// Parent Process identifier (PPID).
5836///
5837/// ## Notes
5838///
5839/// # Examples
5840///
5841/// - `111`
5842#[cfg(feature = "semconv_experimental")]
5843pub const PROCESS_PARENT_PID: &str = "process.parent_pid";
5844
5845/// Process identifier (PID).
5846///
5847/// ## Notes
5848///
5849/// # Examples
5850///
5851/// - `1234`
5852#[cfg(feature = "semconv_experimental")]
5853pub const PROCESS_PID: &str = "process.pid";
5854
5855/// The real user ID (RUID) of the process.
5856///
5857/// ## Notes
5858///
5859/// # Examples
5860///
5861/// - `1000`
5862#[cfg(feature = "semconv_experimental")]
5863pub const PROCESS_REAL_USER_ID: &str = "process.real_user.id";
5864
5865/// The username of the real user of the process.
5866///
5867/// ## Notes
5868///
5869/// # Examples
5870///
5871/// - `"operator"`
5872#[cfg(feature = "semconv_experimental")]
5873pub const PROCESS_REAL_USER_NAME: &str = "process.real_user.name";
5874
5875/// An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.
5876///
5877/// ## Notes
5878///
5879/// # Examples
5880///
5881/// - `"Eclipse OpenJ9 Eclipse OpenJ9 VM openj9-0.21.0"`
5882#[cfg(feature = "semconv_experimental")]
5883pub const PROCESS_RUNTIME_DESCRIPTION: &str = "process.runtime.description";
5884
5885/// The name of the runtime of this process.
5886///
5887/// ## Notes
5888///
5889/// # Examples
5890///
5891/// - `"OpenJDK Runtime Environment"`
5892#[cfg(feature = "semconv_experimental")]
5893pub const PROCESS_RUNTIME_NAME: &str = "process.runtime.name";
5894
5895/// The version of the runtime of this process, as returned by the runtime without modification.
5896///
5897/// ## Notes
5898///
5899/// # Examples
5900///
5901/// - `"14.0.2"`
5902#[cfg(feature = "semconv_experimental")]
5903pub const PROCESS_RUNTIME_VERSION: &str = "process.runtime.version";
5904
5905/// The saved user ID (SUID) of the process.
5906///
5907/// ## Notes
5908///
5909/// # Examples
5910///
5911/// - `1002`
5912#[cfg(feature = "semconv_experimental")]
5913pub const PROCESS_SAVED_USER_ID: &str = "process.saved_user.id";
5914
5915/// The username of the saved user.
5916///
5917/// ## Notes
5918///
5919/// # Examples
5920///
5921/// - `"operator"`
5922#[cfg(feature = "semconv_experimental")]
5923pub const PROCESS_SAVED_USER_NAME: &str = "process.saved_user.name";
5924
5925/// The PID of the process's session leader. This is also the session ID (SID) of the process.
5926///
5927/// ## Notes
5928///
5929/// # Examples
5930///
5931/// - `14`
5932#[cfg(feature = "semconv_experimental")]
5933pub const PROCESS_SESSION_LEADER_PID: &str = "process.session_leader.pid";
5934
5935/// Process title (proctitle)
5936///
5937/// ## Notes
5938///
5939/// 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.
5940///
5941/// # Examples
5942///
5943/// - `"cat /etc/hostname"`
5944/// - `"xfce4-session"`
5945/// - `"bash"`
5946#[cfg(feature = "semconv_experimental")]
5947pub const PROCESS_TITLE: &str = "process.title";
5948
5949/// The effective user ID (EUID) of the process.
5950///
5951/// ## Notes
5952///
5953/// # Examples
5954///
5955/// - `1001`
5956#[cfg(feature = "semconv_experimental")]
5957pub const PROCESS_USER_ID: &str = "process.user.id";
5958
5959/// The username of the effective user of the process.
5960///
5961/// ## Notes
5962///
5963/// # Examples
5964///
5965/// - `"root"`
5966#[cfg(feature = "semconv_experimental")]
5967pub const PROCESS_USER_NAME: &str = "process.user.name";
5968
5969/// Virtual process identifier.
5970///
5971/// ## Notes
5972///
5973/// 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.
5974///
5975/// # Examples
5976///
5977/// - `12`
5978#[cfg(feature = "semconv_experimental")]
5979pub const PROCESS_VPID: &str = "process.vpid";
5980
5981/// The working directory of the process.
5982///
5983/// ## Notes
5984///
5985/// # Examples
5986///
5987/// - `"/root"`
5988#[cfg(feature = "semconv_experimental")]
5989pub const PROCESS_WORKING_DIRECTORY: &str = "process.working_directory";
5990
5991/// Describes the interpreter or compiler of a single frame.
5992///
5993/// ## Notes
5994///
5995/// # Examples
5996///
5997/// - `"cpython"`
5998#[cfg(feature = "semconv_experimental")]
5999pub const PROFILE_FRAME_TYPE: &str = "profile.frame.type";
6000
6001/// The [error codes](https://connectrpc.com//docs/protocol/#error-codes) of the Connect request. Error codes are always string values.
6002///
6003/// ## Notes
6004#[cfg(feature = "semconv_experimental")]
6005pub const RPC_CONNECT_RPC_ERROR_CODE: &str = "rpc.connect_rpc.error_code";
6006
6007/// Connect request metadata, `<key>` being the normalized Connect Metadata key (lowercase), the value being the metadata values.
6008///
6009/// ## Notes
6010///
6011/// 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.
6012///
6013/// # Examples
6014///
6015/// - `"rpc.request.metadata.my-custom-metadata-attribute=[\"1.2.3.4\", \"1.2.3.5\"]"`
6016#[cfg(feature = "semconv_experimental")]
6017pub const RPC_CONNECT_RPC_REQUEST_METADATA: &str = "rpc.connect_rpc.request.metadata";
6018
6019/// Connect response metadata, `<key>` being the normalized Connect Metadata key (lowercase), the value being the metadata values.
6020///
6021/// ## Notes
6022///
6023/// 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.
6024///
6025/// # Examples
6026///
6027/// - `"rpc.response.metadata.my-custom-metadata-attribute=[\"attribute_value\"]"`
6028#[cfg(feature = "semconv_experimental")]
6029pub const RPC_CONNECT_RPC_RESPONSE_METADATA: &str = "rpc.connect_rpc.response.metadata";
6030
6031/// gRPC request metadata, `<key>` being the normalized gRPC Metadata key (lowercase), the value being the metadata values.
6032///
6033/// ## Notes
6034///
6035/// 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.
6036///
6037/// # Examples
6038///
6039/// - `"rpc.grpc.request.metadata.my-custom-metadata-attribute=[\"1.2.3.4\", \"1.2.3.5\"]"`
6040#[cfg(feature = "semconv_experimental")]
6041pub const RPC_GRPC_REQUEST_METADATA: &str = "rpc.grpc.request.metadata";
6042
6043/// gRPC response metadata, `<key>` being the normalized gRPC Metadata key (lowercase), the value being the metadata values.
6044///
6045/// ## Notes
6046///
6047/// 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.
6048///
6049/// # Examples
6050///
6051/// - `"rpc.grpc.response.metadata.my-custom-metadata-attribute=[\"attribute_value\"]"`
6052#[cfg(feature = "semconv_experimental")]
6053pub const RPC_GRPC_RESPONSE_METADATA: &str = "rpc.grpc.response.metadata";
6054
6055/// The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.
6056///
6057/// ## Notes
6058#[cfg(feature = "semconv_experimental")]
6059pub const RPC_GRPC_STATUS_CODE: &str = "rpc.grpc.status_code";
6060
6061/// `error.code` property of response if it is an error response.
6062///
6063/// ## Notes
6064///
6065/// # Examples
6066///
6067/// - `-32700`
6068/// - `100`
6069#[cfg(feature = "semconv_experimental")]
6070pub const RPC_JSONRPC_ERROR_CODE: &str = "rpc.jsonrpc.error_code";
6071
6072/// `error.message` property of response if it is an error response.
6073///
6074/// ## Notes
6075///
6076/// # Examples
6077///
6078/// - `"Parse error"`
6079/// - `"User already exists"`
6080#[cfg(feature = "semconv_experimental")]
6081pub const RPC_JSONRPC_ERROR_MESSAGE: &str = "rpc.jsonrpc.error_message";
6082
6083/// `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.
6084///
6085/// ## Notes
6086///
6087/// # Examples
6088///
6089/// - `"10"`
6090/// - `"request-7"`
6091/// - `""`
6092#[cfg(feature = "semconv_experimental")]
6093pub const RPC_JSONRPC_REQUEST_ID: &str = "rpc.jsonrpc.request_id";
6094
6095/// Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 doesn't specify this, the value can be omitted.
6096///
6097/// ## Notes
6098///
6099/// # Examples
6100///
6101/// - `"2.0"`
6102/// - `"1.0"`
6103#[cfg(feature = "semconv_experimental")]
6104pub const RPC_JSONRPC_VERSION: &str = "rpc.jsonrpc.version";
6105
6106/// Compressed size of the message in bytes.
6107///
6108/// ## Notes
6109#[cfg(feature = "semconv_experimental")]
6110pub const RPC_MESSAGE_COMPRESSED_SIZE: &str = "rpc.message.compressed_size";
6111
6112/// MUST be calculated as two different counters starting from `1` one for sent messages and one for received message.
6113///
6114/// ## Notes
6115///
6116/// This way we guarantee that the values will be consistent between different implementations
6117#[cfg(feature = "semconv_experimental")]
6118pub const RPC_MESSAGE_ID: &str = "rpc.message.id";
6119
6120/// Whether this is a received or sent message.
6121///
6122/// ## Notes
6123#[cfg(feature = "semconv_experimental")]
6124pub const RPC_MESSAGE_TYPE: &str = "rpc.message.type";
6125
6126/// Uncompressed size of the message in bytes.
6127///
6128/// ## Notes
6129#[cfg(feature = "semconv_experimental")]
6130pub const RPC_MESSAGE_UNCOMPRESSED_SIZE: &str = "rpc.message.uncompressed_size";
6131
6132/// The name of the (logical) method being called, must be equal to the $method part in the span name.
6133///
6134/// ## Notes
6135///
6136/// 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).
6137///
6138/// # Examples
6139///
6140/// - `"exampleMethod"`
6141#[cfg(feature = "semconv_experimental")]
6142pub const RPC_METHOD: &str = "rpc.method";
6143
6144/// The full (logical) name of the service being called, including its package name, if applicable.
6145///
6146/// ## Notes
6147///
6148/// 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).
6149///
6150/// # Examples
6151///
6152/// - `"myservice.EchoService"`
6153#[cfg(feature = "semconv_experimental")]
6154pub const RPC_SERVICE: &str = "rpc.service";
6155
6156/// A string identifying the remoting system. See below for a list of well-known identifiers.
6157///
6158/// ## Notes
6159#[cfg(feature = "semconv_experimental")]
6160pub const RPC_SYSTEM: &str = "rpc.system";
6161
6162/// A categorization value keyword used by the entity using the rule for detection of this event
6163///
6164/// ## Notes
6165///
6166/// # Examples
6167///
6168/// - `"Attempted Information Leak"`
6169#[cfg(feature = "semconv_experimental")]
6170pub const SECURITY_RULE_CATEGORY: &str = "security_rule.category";
6171
6172/// The description of the rule generating the event.
6173///
6174/// ## Notes
6175///
6176/// # Examples
6177///
6178/// - `"Block requests to public DNS over HTTPS / TLS protocols"`
6179#[cfg(feature = "semconv_experimental")]
6180pub const SECURITY_RULE_DESCRIPTION: &str = "security_rule.description";
6181
6182/// Name of the license under which the rule used to generate this event is made available.
6183///
6184/// ## Notes
6185///
6186/// # Examples
6187///
6188/// - `"Apache 2.0"`
6189#[cfg(feature = "semconv_experimental")]
6190pub const SECURITY_RULE_LICENSE: &str = "security_rule.license";
6191
6192/// The name of the rule or signature generating the event.
6193///
6194/// ## Notes
6195///
6196/// # Examples
6197///
6198/// - `"BLOCK_DNS_over_TLS"`
6199#[cfg(feature = "semconv_experimental")]
6200pub const SECURITY_RULE_NAME: &str = "security_rule.name";
6201
6202/// Reference URL to additional information about the rule used to generate this event.
6203///
6204/// ## Notes
6205///
6206/// 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.
6207///
6208/// # Examples
6209///
6210/// - `"https://en.wikipedia.org/wiki/DNS_over_TLS"`
6211#[cfg(feature = "semconv_experimental")]
6212pub const SECURITY_RULE_REFERENCE: &str = "security_rule.reference";
6213
6214/// Name of the ruleset, policy, group, or parent category in which the rule used to generate this event is a member.
6215///
6216/// ## Notes
6217///
6218/// # Examples
6219///
6220/// - `"Standard_Protocol_Filters"`
6221#[cfg(feature = "semconv_experimental")]
6222pub const SECURITY_RULE_RULESET_NAME: &str = "security_rule.ruleset.name";
6223
6224/// 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.
6225///
6226/// ## Notes
6227///
6228/// # Examples
6229///
6230/// - `"550e8400-e29b-41d4-a716-446655440000"`
6231/// - `"1100110011"`
6232#[cfg(feature = "semconv_experimental")]
6233pub const SECURITY_RULE_UUID: &str = "security_rule.uuid";
6234
6235/// The version / revision of the rule being used for analysis.
6236///
6237/// ## Notes
6238///
6239/// # Examples
6240///
6241/// - `"1.0.0"`
6242#[cfg(feature = "semconv_experimental")]
6243pub const SECURITY_RULE_VERSION: &str = "security_rule.version";
6244
6245/// Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
6246///
6247/// ## Notes
6248///
6249/// 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.
6250///
6251/// # Examples
6252///
6253/// - `"example.com"`
6254/// - `"10.1.2.80"`
6255/// - `"/tmp/my.sock"`
6256pub const SERVER_ADDRESS: &str = "server.address";
6257
6258/// Server port number.
6259///
6260/// ## Notes
6261///
6262/// 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.
6263///
6264/// # Examples
6265///
6266/// - `80`
6267/// - `8080`
6268/// - `443`
6269pub const SERVER_PORT: &str = "server.port";
6270
6271/// The string ID of the service instance.
6272///
6273/// ## Notes
6274///
6275/// MUST be unique for each instance of the same `service.namespace,service.name` pair (in other words
6276/// `service.namespace,service.name,service.instance.id` triplet MUST be globally unique). The ID helps to
6277/// distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled
6278/// service).
6279///
6280/// Implementations, such as SDKs, are recommended to generate a random Version 1 or Version 4 [RFC
6281/// 4122](https://www.ietf.org/rfc/rfc4122.txt) UUID, but are free to use an inherent unique ID as the source of
6282/// this value if stability is desirable. In that case, the ID SHOULD be used as source of a UUID Version 5 and
6283/// SHOULD use the following UUID as the namespace: `4d63009a-8d0f-11ee-aad7-4c796ed8e320`.
6284///
6285/// UUIDs are typically recommended, as only an opaque value for the purposes of identifying a service instance is
6286/// needed. Similar to what can be seen in the man page for the
6287/// [`/etc/machine-id`](https://www.freedesktop.org/software/systemd/man/latest/machine-id.html) file, the underlying
6288/// data, such as pod name and namespace should be treated as confidential, being the user's choice to expose it
6289/// or not via another resource attribute.
6290///
6291/// For applications running behind an application server (like unicorn), we do not recommend using one identifier
6292/// for all processes participating in the application. Instead, it's recommended each division (e.g. a worker
6293/// thread in unicorn) to have its own instance.id.
6294///
6295/// It's not recommended for a Collector to set `service.instance.id` if it can't unambiguously determine the
6296/// service instance that is generating that telemetry. For instance, creating an UUID based on `pod.name` will
6297/// likely be wrong, as the Collector might not know from which container within that pod the telemetry originated.
6298/// However, Collectors can set the `service.instance.id` if they can unambiguously determine the service instance
6299/// for that telemetry. This is typically the case for scraping receivers, as they know the target address and
6300/// port.
6301///
6302/// # Examples
6303///
6304/// - `"627cc493-f310-47de-96bd-71410b7dec09"`
6305#[cfg(feature = "semconv_experimental")]
6306pub const SERVICE_INSTANCE_ID: &str = "service.instance.id";
6307
6308/// Logical name of the service.
6309///
6310/// ## Notes
6311///
6312/// 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`.
6313///
6314/// # Examples
6315///
6316/// - `"shoppingcart"`
6317pub const SERVICE_NAME: &str = "service.name";
6318
6319/// A namespace for `service.name`.
6320///
6321/// ## Notes
6322///
6323/// 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.
6324///
6325/// # Examples
6326///
6327/// - `"Shop"`
6328#[cfg(feature = "semconv_experimental")]
6329pub const SERVICE_NAMESPACE: &str = "service.namespace";
6330
6331/// The version string of the service API or implementation. The format is not defined by these conventions.
6332///
6333/// ## Notes
6334///
6335/// # Examples
6336///
6337/// - `"2.0.0"`
6338/// - `"a01dbef8a"`
6339pub const SERVICE_VERSION: &str = "service.version";
6340
6341/// A unique id to identify a session.
6342///
6343/// ## Notes
6344///
6345/// # Examples
6346///
6347/// - `"00112233-4455-6677-8899-aabbccddeeff"`
6348#[cfg(feature = "semconv_experimental")]
6349pub const SESSION_ID: &str = "session.id";
6350
6351/// The previous `session.id` for this user, when known.
6352///
6353/// ## Notes
6354///
6355/// # Examples
6356///
6357/// - `"00112233-4455-6677-8899-aabbccddeeff"`
6358#[cfg(feature = "semconv_experimental")]
6359pub const SESSION_PREVIOUS_ID: &str = "session.previous_id";
6360
6361/// SignalR HTTP connection closure status.
6362///
6363/// ## Notes
6364///
6365/// # Examples
6366///
6367/// - `"app_shutdown"`
6368/// - `"timeout"`
6369pub const SIGNALR_CONNECTION_STATUS: &str = "signalr.connection.status";
6370
6371/// [SignalR transport type](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/TransportProtocols.md)
6372///
6373/// ## Notes
6374///
6375/// # Examples
6376///
6377/// - `"web_sockets"`
6378/// - `"long_polling"`
6379pub const SIGNALR_TRANSPORT: &str = "signalr.transport";
6380
6381/// Source address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
6382///
6383/// ## Notes
6384///
6385/// 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.
6386///
6387/// # Examples
6388///
6389/// - `"source.example.com"`
6390/// - `"10.1.2.80"`
6391/// - `"/tmp/my.sock"`
6392#[cfg(feature = "semconv_experimental")]
6393pub const SOURCE_ADDRESS: &str = "source.address";
6394
6395/// Source port number
6396///
6397/// ## Notes
6398///
6399/// # Examples
6400///
6401/// - `3389`
6402/// - `2888`
6403#[cfg(feature = "semconv_experimental")]
6404pub const SOURCE_PORT: &str = "source.port";
6405
6406/// Deprecated, use `cpu.logical_number` instead.
6407///
6408/// ## Notes
6409///
6410/// # Examples
6411///
6412/// - `1`
6413#[cfg(feature = "semconv_experimental")]
6414pub const SYSTEM_CPU_LOGICAL_NUMBER: &str = "system.cpu.logical_number";
6415
6416/// Deprecated, use `cpu.mode` instead.
6417///
6418/// ## Notes
6419///
6420/// # Examples
6421///
6422/// - `"idle"`
6423/// - `"interrupt"`
6424#[cfg(feature = "semconv_experimental")]
6425pub const SYSTEM_CPU_STATE: &str = "system.cpu.state";
6426
6427/// The device identifier
6428///
6429/// ## Notes
6430///
6431/// # Examples
6432///
6433/// - `"(identifier)"`
6434#[cfg(feature = "semconv_experimental")]
6435pub const SYSTEM_DEVICE: &str = "system.device";
6436
6437/// The filesystem mode
6438///
6439/// ## Notes
6440///
6441/// # Examples
6442///
6443/// - `"rw, ro"`
6444#[cfg(feature = "semconv_experimental")]
6445pub const SYSTEM_FILESYSTEM_MODE: &str = "system.filesystem.mode";
6446
6447/// The filesystem mount path
6448///
6449/// ## Notes
6450///
6451/// # Examples
6452///
6453/// - `"/mnt/data"`
6454#[cfg(feature = "semconv_experimental")]
6455pub const SYSTEM_FILESYSTEM_MOUNTPOINT: &str = "system.filesystem.mountpoint";
6456
6457/// The filesystem state
6458///
6459/// ## Notes
6460///
6461/// # Examples
6462///
6463/// - `"used"`
6464#[cfg(feature = "semconv_experimental")]
6465pub const SYSTEM_FILESYSTEM_STATE: &str = "system.filesystem.state";
6466
6467/// The filesystem type
6468///
6469/// ## Notes
6470///
6471/// # Examples
6472///
6473/// - `"ext4"`
6474#[cfg(feature = "semconv_experimental")]
6475pub const SYSTEM_FILESYSTEM_TYPE: &str = "system.filesystem.type";
6476
6477/// The memory state
6478///
6479/// ## Notes
6480///
6481/// # Examples
6482///
6483/// - `"free"`
6484/// - `"cached"`
6485#[cfg(feature = "semconv_experimental")]
6486pub const SYSTEM_MEMORY_STATE: &str = "system.memory.state";
6487
6488/// Deprecated, use `network.connection.state` instead.
6489///
6490/// ## Notes
6491///
6492/// # Examples
6493///
6494/// - `"close_wait"`
6495#[cfg(feature = "semconv_experimental")]
6496pub const SYSTEM_NETWORK_STATE: &str = "system.network.state";
6497
6498/// The paging access direction
6499///
6500/// ## Notes
6501///
6502/// # Examples
6503///
6504/// - `"in"`
6505#[cfg(feature = "semconv_experimental")]
6506pub const SYSTEM_PAGING_DIRECTION: &str = "system.paging.direction";
6507
6508/// The memory paging state
6509///
6510/// ## Notes
6511///
6512/// # Examples
6513///
6514/// - `"free"`
6515#[cfg(feature = "semconv_experimental")]
6516pub const SYSTEM_PAGING_STATE: &str = "system.paging.state";
6517
6518/// The memory paging type
6519///
6520/// ## Notes
6521///
6522/// # Examples
6523///
6524/// - `"minor"`
6525#[cfg(feature = "semconv_experimental")]
6526pub const SYSTEM_PAGING_TYPE: &str = "system.paging.type";
6527
6528/// The process state, e.g., [Linux Process State Codes](https://man7.org/linux/man-pages/man1/ps.1.html#PROCESS_STATE_CODES)
6529///
6530/// ## Notes
6531///
6532/// # Examples
6533///
6534/// - `"running"`
6535#[cfg(feature = "semconv_experimental")]
6536pub const SYSTEM_PROCESS_STATUS: &str = "system.process.status";
6537
6538/// Deprecated, use `system.process.status` instead.
6539///
6540/// ## Notes
6541///
6542/// # Examples
6543///
6544/// - `"running"`
6545#[cfg(feature = "semconv_experimental")]
6546pub const SYSTEM_PROCESSES_STATUS: &str = "system.processes.status";
6547
6548/// The name of the auto instrumentation agent or distribution, if used.
6549///
6550/// ## Notes
6551///
6552/// Official auto instrumentation agents and distributions SHOULD set the `telemetry.distro.name` attribute to
6553/// a string starting with `opentelemetry-`, e.g. `opentelemetry-java-instrumentation`.
6554///
6555/// # Examples
6556///
6557/// - `"parts-unlimited-java"`
6558#[cfg(feature = "semconv_experimental")]
6559pub const TELEMETRY_DISTRO_NAME: &str = "telemetry.distro.name";
6560
6561/// The version string of the auto instrumentation agent or distribution, if used.
6562///
6563/// ## Notes
6564///
6565/// # Examples
6566///
6567/// - `"1.2.3"`
6568#[cfg(feature = "semconv_experimental")]
6569pub const TELEMETRY_DISTRO_VERSION: &str = "telemetry.distro.version";
6570
6571/// The language of the telemetry SDK.
6572///
6573/// ## Notes
6574pub const TELEMETRY_SDK_LANGUAGE: &str = "telemetry.sdk.language";
6575
6576/// The name of the telemetry SDK as defined above.
6577///
6578/// ## Notes
6579///
6580/// The OpenTelemetry SDK MUST set the `telemetry.sdk.name` attribute to `opentelemetry`.
6581/// If another SDK, like a fork or a vendor-provided implementation, is used, this SDK MUST set the
6582/// `telemetry.sdk.name` attribute to the fully-qualified class or module name of this SDK's main entry point
6583/// or another suitable identifier depending on the language.
6584/// The identifier `opentelemetry` is reserved and MUST NOT be used in this case.
6585/// All custom identifiers SHOULD be stable across different versions of an implementation.
6586///
6587/// # Examples
6588///
6589/// - `"opentelemetry"`
6590pub const TELEMETRY_SDK_NAME: &str = "telemetry.sdk.name";
6591
6592/// The version string of the telemetry SDK.
6593///
6594/// ## Notes
6595///
6596/// # Examples
6597///
6598/// - `"1.2.3"`
6599pub const TELEMETRY_SDK_VERSION: &str = "telemetry.sdk.version";
6600
6601/// The fully qualified human readable name of the [test case](https://wikipedia.org/wiki/Test_case).
6602///
6603/// ## Notes
6604///
6605/// # Examples
6606///
6607/// - `"org.example.TestCase1.test1"`
6608/// - `"example/tests/TestCase1.test1"`
6609/// - `"ExampleTestCase1_test1"`
6610#[cfg(feature = "semconv_experimental")]
6611pub const TEST_CASE_NAME: &str = "test.case.name";
6612
6613/// The status of the actual test case result from test execution.
6614///
6615/// ## Notes
6616///
6617/// # Examples
6618///
6619/// - `"pass"`
6620/// - `"fail"`
6621#[cfg(feature = "semconv_experimental")]
6622pub const TEST_CASE_RESULT_STATUS: &str = "test.case.result.status";
6623
6624/// The human readable name of a [test suite](https://wikipedia.org/wiki/Test_suite).
6625///
6626/// ## Notes
6627///
6628/// # Examples
6629///
6630/// - `"TestSuite1"`
6631#[cfg(feature = "semconv_experimental")]
6632pub const TEST_SUITE_NAME: &str = "test.suite.name";
6633
6634/// The status of the test suite run.
6635///
6636/// ## Notes
6637///
6638/// # Examples
6639///
6640/// - `"success"`
6641/// - `"failure"`
6642/// - `"skipped"`
6643/// - `"aborted"`
6644/// - `"timed_out"`
6645/// - `"in_progress"`
6646#[cfg(feature = "semconv_experimental")]
6647pub const TEST_SUITE_RUN_STATUS: &str = "test.suite.run.status";
6648
6649/// Current "managed" thread ID (as opposed to OS thread ID).
6650///
6651/// ## Notes
6652///
6653/// # Examples
6654///
6655/// - `42`
6656#[cfg(feature = "semconv_experimental")]
6657pub const THREAD_ID: &str = "thread.id";
6658
6659/// Current thread name.
6660///
6661/// ## Notes
6662///
6663/// # Examples
6664///
6665/// - `"main"`
6666#[cfg(feature = "semconv_experimental")]
6667pub const THREAD_NAME: &str = "thread.name";
6668
6669/// String indicating the [cipher](https://datatracker.ietf.org/doc/html/rfc5246#appendix-A.5) used during the current connection.
6670///
6671/// ## Notes
6672///
6673/// 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).
6674///
6675/// # Examples
6676///
6677/// - `"TLS_RSA_WITH_3DES_EDE_CBC_SHA"`
6678/// - `"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"`
6679#[cfg(feature = "semconv_experimental")]
6680pub const TLS_CIPHER: &str = "tls.cipher";
6681
6682/// 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.
6683///
6684/// ## Notes
6685///
6686/// # Examples
6687///
6688/// - `"MII..."`
6689#[cfg(feature = "semconv_experimental")]
6690pub const TLS_CLIENT_CERTIFICATE: &str = "tls.client.certificate";
6691
6692/// 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.
6693///
6694/// ## Notes
6695///
6696/// # Examples
6697///
6698/// - `[
6699///  "MII...",
6700///  "MI...",
6701/// ]`
6702#[cfg(feature = "semconv_experimental")]
6703pub const TLS_CLIENT_CERTIFICATE_CHAIN: &str = "tls.client.certificate_chain";
6704
6705/// 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.
6706///
6707/// ## Notes
6708///
6709/// # Examples
6710///
6711/// - `"0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC"`
6712#[cfg(feature = "semconv_experimental")]
6713pub const TLS_CLIENT_HASH_MD5: &str = "tls.client.hash.md5";
6714
6715/// 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.
6716///
6717/// ## Notes
6718///
6719/// # Examples
6720///
6721/// - `"9E393D93138888D288266C2D915214D1D1CCEB2A"`
6722#[cfg(feature = "semconv_experimental")]
6723pub const TLS_CLIENT_HASH_SHA1: &str = "tls.client.hash.sha1";
6724
6725/// 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.
6726///
6727/// ## Notes
6728///
6729/// # Examples
6730///
6731/// - `"0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0"`
6732#[cfg(feature = "semconv_experimental")]
6733pub const TLS_CLIENT_HASH_SHA256: &str = "tls.client.hash.sha256";
6734
6735/// 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.
6736///
6737/// ## Notes
6738///
6739/// # Examples
6740///
6741/// - `"CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com"`
6742#[cfg(feature = "semconv_experimental")]
6743pub const TLS_CLIENT_ISSUER: &str = "tls.client.issuer";
6744
6745/// A hash that identifies clients based on how they perform an SSL/TLS handshake.
6746///
6747/// ## Notes
6748///
6749/// # Examples
6750///
6751/// - `"d4e5b18d6b55c71272893221c96ba240"`
6752#[cfg(feature = "semconv_experimental")]
6753pub const TLS_CLIENT_JA3: &str = "tls.client.ja3";
6754
6755/// Date/Time indicating when client certificate is no longer considered valid.
6756///
6757/// ## Notes
6758///
6759/// # Examples
6760///
6761/// - `"2021-01-01T00:00:00.000Z"`
6762#[cfg(feature = "semconv_experimental")]
6763pub const TLS_CLIENT_NOT_AFTER: &str = "tls.client.not_after";
6764
6765/// Date/Time indicating when client certificate is first considered valid.
6766///
6767/// ## Notes
6768///
6769/// # Examples
6770///
6771/// - `"1970-01-01T00:00:00.000Z"`
6772#[cfg(feature = "semconv_experimental")]
6773pub const TLS_CLIENT_NOT_BEFORE: &str = "tls.client.not_before";
6774
6775/// Deprecated, use `server.address` instead.
6776///
6777/// ## Notes
6778///
6779/// # Examples
6780///
6781/// - `"opentelemetry.io"`
6782#[cfg(feature = "semconv_experimental")]
6783pub const TLS_CLIENT_SERVER_NAME: &str = "tls.client.server_name";
6784
6785/// Distinguished name of subject of the x.509 certificate presented by the client.
6786///
6787/// ## Notes
6788///
6789/// # Examples
6790///
6791/// - `"CN=myclient, OU=Documentation Team, DC=example, DC=com"`
6792#[cfg(feature = "semconv_experimental")]
6793pub const TLS_CLIENT_SUBJECT: &str = "tls.client.subject";
6794
6795/// Array of ciphers offered by the client during the client hello.
6796///
6797/// ## Notes
6798///
6799/// # Examples
6800///
6801/// - `[
6802///  "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
6803///  "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
6804/// ]`
6805#[cfg(feature = "semconv_experimental")]
6806pub const TLS_CLIENT_SUPPORTED_CIPHERS: &str = "tls.client.supported_ciphers";
6807
6808/// String indicating the curve used for the given cipher, when applicable
6809///
6810/// ## Notes
6811///
6812/// # Examples
6813///
6814/// - `"secp256r1"`
6815#[cfg(feature = "semconv_experimental")]
6816pub const TLS_CURVE: &str = "tls.curve";
6817
6818/// Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel.
6819///
6820/// ## Notes
6821///
6822/// # Examples
6823///
6824/// - `true`
6825#[cfg(feature = "semconv_experimental")]
6826pub const TLS_ESTABLISHED: &str = "tls.established";
6827
6828/// 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.
6829///
6830/// ## Notes
6831///
6832/// # Examples
6833///
6834/// - `"http/1.1"`
6835#[cfg(feature = "semconv_experimental")]
6836pub const TLS_NEXT_PROTOCOL: &str = "tls.next_protocol";
6837
6838/// 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)
6839///
6840/// ## Notes
6841#[cfg(feature = "semconv_experimental")]
6842pub const TLS_PROTOCOL_NAME: &str = "tls.protocol.name";
6843
6844/// 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)
6845///
6846/// ## Notes
6847///
6848/// # Examples
6849///
6850/// - `"1.2"`
6851/// - `"3"`
6852#[cfg(feature = "semconv_experimental")]
6853pub const TLS_PROTOCOL_VERSION: &str = "tls.protocol.version";
6854
6855/// Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation.
6856///
6857/// ## Notes
6858///
6859/// # Examples
6860///
6861/// - `true`
6862#[cfg(feature = "semconv_experimental")]
6863pub const TLS_RESUMED: &str = "tls.resumed";
6864
6865/// 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.
6866///
6867/// ## Notes
6868///
6869/// # Examples
6870///
6871/// - `"MII..."`
6872#[cfg(feature = "semconv_experimental")]
6873pub const TLS_SERVER_CERTIFICATE: &str = "tls.server.certificate";
6874
6875/// 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.
6876///
6877/// ## Notes
6878///
6879/// # Examples
6880///
6881/// - `[
6882///  "MII...",
6883///  "MI...",
6884/// ]`
6885#[cfg(feature = "semconv_experimental")]
6886pub const TLS_SERVER_CERTIFICATE_CHAIN: &str = "tls.server.certificate_chain";
6887
6888/// 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.
6889///
6890/// ## Notes
6891///
6892/// # Examples
6893///
6894/// - `"0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC"`
6895#[cfg(feature = "semconv_experimental")]
6896pub const TLS_SERVER_HASH_MD5: &str = "tls.server.hash.md5";
6897
6898/// 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.
6899///
6900/// ## Notes
6901///
6902/// # Examples
6903///
6904/// - `"9E393D93138888D288266C2D915214D1D1CCEB2A"`
6905#[cfg(feature = "semconv_experimental")]
6906pub const TLS_SERVER_HASH_SHA1: &str = "tls.server.hash.sha1";
6907
6908/// 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.
6909///
6910/// ## Notes
6911///
6912/// # Examples
6913///
6914/// - `"0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0"`
6915#[cfg(feature = "semconv_experimental")]
6916pub const TLS_SERVER_HASH_SHA256: &str = "tls.server.hash.sha256";
6917
6918/// 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.
6919///
6920/// ## Notes
6921///
6922/// # Examples
6923///
6924/// - `"CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com"`
6925#[cfg(feature = "semconv_experimental")]
6926pub const TLS_SERVER_ISSUER: &str = "tls.server.issuer";
6927
6928/// A hash that identifies servers based on how they perform an SSL/TLS handshake.
6929///
6930/// ## Notes
6931///
6932/// # Examples
6933///
6934/// - `"d4e5b18d6b55c71272893221c96ba240"`
6935#[cfg(feature = "semconv_experimental")]
6936pub const TLS_SERVER_JA3S: &str = "tls.server.ja3s";
6937
6938/// Date/Time indicating when server certificate is no longer considered valid.
6939///
6940/// ## Notes
6941///
6942/// # Examples
6943///
6944/// - `"2021-01-01T00:00:00.000Z"`
6945#[cfg(feature = "semconv_experimental")]
6946pub const TLS_SERVER_NOT_AFTER: &str = "tls.server.not_after";
6947
6948/// Date/Time indicating when server certificate is first considered valid.
6949///
6950/// ## Notes
6951///
6952/// # Examples
6953///
6954/// - `"1970-01-01T00:00:00.000Z"`
6955#[cfg(feature = "semconv_experimental")]
6956pub const TLS_SERVER_NOT_BEFORE: &str = "tls.server.not_before";
6957
6958/// Distinguished name of subject of the x.509 certificate presented by the server.
6959///
6960/// ## Notes
6961///
6962/// # Examples
6963///
6964/// - `"CN=myserver, OU=Documentation Team, DC=example, DC=com"`
6965#[cfg(feature = "semconv_experimental")]
6966pub const TLS_SERVER_SUBJECT: &str = "tls.server.subject";
6967
6968/// Domain extracted from the `url.full`, such as "opentelemetry.io".
6969///
6970/// ## Notes
6971///
6972/// 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.
6973///
6974/// # Examples
6975///
6976/// - `"www.foo.bar"`
6977/// - `"opentelemetry.io"`
6978/// - `"3.12.167.2"`
6979/// - `"[1080:0:0:0:8:800:200C:417A]"`
6980#[cfg(feature = "semconv_experimental")]
6981pub const URL_DOMAIN: &str = "url.domain";
6982
6983/// The file extension extracted from the `url.full`, excluding the leading dot.
6984///
6985/// ## Notes
6986///
6987/// 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`.
6988///
6989/// # Examples
6990///
6991/// - `"png"`
6992/// - `"gz"`
6993#[cfg(feature = "semconv_experimental")]
6994pub const URL_EXTENSION: &str = "url.extension";
6995
6996/// The [URI fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component
6997///
6998/// ## Notes
6999///
7000/// # Examples
7001///
7002/// - `"SemConv"`
7003pub const URL_FRAGMENT: &str = "url.fragment";
7004
7005/// Absolute URL describing a network resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986)
7006///
7007/// ## Notes
7008///
7009/// For network calls, URL usually has `scheme://host[:port][path][?query][#fragment]` format, where the fragment
7010/// is not transmitted over HTTP, but if it is known, it SHOULD be included nevertheless.
7011///
7012/// `url.full` MUST NOT contain credentials passed via URL in form of `https://username:password@www.example.com/`.
7013/// In such case username and password SHOULD be redacted and attribute's value SHOULD be `https://REDACTED:REDACTED@www.example.com/`.
7014///
7015/// `url.full` SHOULD capture the absolute URL when it is available (or can be reconstructed).
7016///
7017/// Sensitive content provided in `url.full` SHOULD be scrubbed when instrumentations can identify it.
7018///
7019///
7020/// Query string values for the following keys SHOULD be redacted by default and replaced by the
7021/// value `REDACTED`:
7022///
7023/// - [`AWSAccessKeyId`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)
7024/// - [`Signature`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)
7025/// - [`sig`](https://learn.microsoft.com/azure/storage/common/storage-sas-overview#sas-token)
7026/// - [`X-Goog-Signature`](https://cloud.google.com/storage/docs/access-control/signed-urls)
7027///
7028/// This list is subject to change over time.
7029///
7030/// When a query string value is redacted, the query string key SHOULD still be preserved, e.g.
7031/// `https://www.example.com/path?color=blue&sig=REDACTED`.
7032///
7033/// # Examples
7034///
7035/// - `"https://www.foo.bar/search?q=OpenTelemetry#SemConv"`
7036/// - `"//localhost"`
7037pub const URL_FULL: &str = "url.full";
7038
7039/// Unmodified original URL as seen in the event source.
7040///
7041/// ## Notes
7042///
7043/// 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.
7044/// `url.original` might contain credentials passed via URL in form of `https://username:password@www.example.com/`. In such case password and username SHOULD NOT be redacted and attribute's value SHOULD remain the same.
7045///
7046/// # Examples
7047///
7048/// - `"https://www.foo.bar/search?q=OpenTelemetry#SemConv"`
7049/// - `"search?q=OpenTelemetry"`
7050#[cfg(feature = "semconv_experimental")]
7051pub const URL_ORIGINAL: &str = "url.original";
7052
7053/// The [URI path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component
7054///
7055/// ## Notes
7056///
7057/// Sensitive content provided in `url.path` SHOULD be scrubbed when instrumentations can identify it.
7058///
7059/// # Examples
7060///
7061/// - `"/search"`
7062pub const URL_PATH: &str = "url.path";
7063
7064/// Port extracted from the `url.full`
7065///
7066/// ## Notes
7067///
7068/// # Examples
7069///
7070/// - `443`
7071#[cfg(feature = "semconv_experimental")]
7072pub const URL_PORT: &str = "url.port";
7073
7074/// The [URI query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component
7075///
7076/// ## Notes
7077///
7078/// Sensitive content provided in `url.query` SHOULD be scrubbed when instrumentations can identify it.
7079///
7080///
7081/// Query string values for the following keys SHOULD be redacted by default and replaced by the value `REDACTED`:
7082///
7083/// - [`AWSAccessKeyId`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)
7084/// - [`Signature`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)
7085/// - [`sig`](https://learn.microsoft.com/azure/storage/common/storage-sas-overview#sas-token)
7086/// - [`X-Goog-Signature`](https://cloud.google.com/storage/docs/access-control/signed-urls)
7087///
7088/// This list is subject to change over time.
7089///
7090/// When a query string value is redacted, the query string key SHOULD still be preserved, e.g.
7091/// `q=OpenTelemetry&sig=REDACTED`.
7092///
7093/// # Examples
7094///
7095/// - `"q=OpenTelemetry"`
7096pub const URL_QUERY: &str = "url.query";
7097
7098/// The highest registered url domain, stripped of the subdomain.
7099///
7100/// ## Notes
7101///
7102/// 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`.
7103///
7104/// # Examples
7105///
7106/// - `"example.com"`
7107/// - `"foo.co.uk"`
7108#[cfg(feature = "semconv_experimental")]
7109pub const URL_REGISTERED_DOMAIN: &str = "url.registered_domain";
7110
7111/// The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
7112///
7113/// ## Notes
7114///
7115/// # Examples
7116///
7117/// - `"https"`
7118/// - `"ftp"`
7119/// - `"telnet"`
7120pub const URL_SCHEME: &str = "url.scheme";
7121
7122/// 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.
7123///
7124/// ## Notes
7125///
7126/// 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.
7127///
7128/// # Examples
7129///
7130/// - `"east"`
7131/// - `"sub2.sub1"`
7132#[cfg(feature = "semconv_experimental")]
7133pub const URL_SUBDOMAIN: &str = "url.subdomain";
7134
7135/// The low-cardinality template of an [absolute path reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2).
7136///
7137/// ## Notes
7138///
7139/// # Examples
7140///
7141/// - `"/users/{id}"`
7142/// - `"/users/:id"`
7143/// - `"/users?id={id}"`
7144#[cfg(feature = "semconv_experimental")]
7145pub const URL_TEMPLATE: &str = "url.template";
7146
7147/// 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`.
7148///
7149/// ## Notes
7150///
7151/// This value can be determined precisely with the [public suffix list](https://publicsuffix.org/).
7152///
7153/// # Examples
7154///
7155/// - `"com"`
7156/// - `"co.uk"`
7157#[cfg(feature = "semconv_experimental")]
7158pub const URL_TOP_LEVEL_DOMAIN: &str = "url.top_level_domain";
7159
7160/// User email address.
7161///
7162/// ## Notes
7163///
7164/// # Examples
7165///
7166/// - `"a.einstein@example.com"`
7167#[cfg(feature = "semconv_experimental")]
7168pub const USER_EMAIL: &str = "user.email";
7169
7170/// User's full name
7171///
7172/// ## Notes
7173///
7174/// # Examples
7175///
7176/// - `"Albert Einstein"`
7177#[cfg(feature = "semconv_experimental")]
7178pub const USER_FULL_NAME: &str = "user.full_name";
7179
7180/// Unique user hash to correlate information for a user in anonymized form.
7181///
7182/// ## Notes
7183///
7184/// Useful if `user.id` or `user.name` contain confidential information and cannot be used.
7185///
7186/// # Examples
7187///
7188/// - `"364fc68eaf4c8acec74a4e52d7d1feaa"`
7189#[cfg(feature = "semconv_experimental")]
7190pub const USER_HASH: &str = "user.hash";
7191
7192/// Unique identifier of the user.
7193///
7194/// ## Notes
7195///
7196/// # Examples
7197///
7198/// - `"S-1-5-21-202424912787-2692429404-2351956786-1000"`
7199#[cfg(feature = "semconv_experimental")]
7200pub const USER_ID: &str = "user.id";
7201
7202/// Short name or login/username of the user.
7203///
7204/// ## Notes
7205///
7206/// # Examples
7207///
7208/// - `"a.einstein"`
7209#[cfg(feature = "semconv_experimental")]
7210pub const USER_NAME: &str = "user.name";
7211
7212/// Array of user roles at the time of the event.
7213///
7214/// ## Notes
7215///
7216/// # Examples
7217///
7218/// - `[
7219///  "admin",
7220///  "reporting_user",
7221/// ]`
7222#[cfg(feature = "semconv_experimental")]
7223pub const USER_ROLES: &str = "user.roles";
7224
7225/// Name of the user-agent extracted from original. Usually refers to the browser's name.
7226///
7227/// ## Notes
7228///
7229/// [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`
7230///
7231/// # Examples
7232///
7233/// - `"Safari"`
7234/// - `"YourApp"`
7235#[cfg(feature = "semconv_experimental")]
7236pub const USER_AGENT_NAME: &str = "user_agent.name";
7237
7238/// Value of the [HTTP User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent) header sent by the client.
7239///
7240/// ## Notes
7241///
7242/// # Examples
7243///
7244/// - `"CERN-LineMode/2.15 libwww/2.17b3"`
7245/// - `"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"`
7246/// - `"YourApp/1.0.0 grpc-java-okhttp/1.27.2"`
7247pub const USER_AGENT_ORIGINAL: &str = "user_agent.original";
7248
7249/// Human readable operating system name.
7250///
7251/// ## Notes
7252///
7253/// For mapping user agent strings to OS names, libraries such as [ua-parser](https://github.com/ua-parser) can be utilized.
7254///
7255/// # Examples
7256///
7257/// - `"iOS"`
7258/// - `"Android"`
7259/// - `"Ubuntu"`
7260#[cfg(feature = "semconv_experimental")]
7261pub const USER_AGENT_OS_NAME: &str = "user_agent.os.name";
7262
7263/// The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
7264///
7265/// ## Notes
7266///
7267/// For mapping user agent strings to OS versions, libraries such as [ua-parser](https://github.com/ua-parser) can be utilized.
7268///
7269/// # Examples
7270///
7271/// - `"14.2.1"`
7272/// - `"18.04.1"`
7273#[cfg(feature = "semconv_experimental")]
7274pub const USER_AGENT_OS_VERSION: &str = "user_agent.os.version";
7275
7276/// Specifies the category of synthetic traffic, such as tests or bots.
7277///
7278/// ## Notes
7279///
7280/// 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
7281#[cfg(feature = "semconv_experimental")]
7282pub const USER_AGENT_SYNTHETIC_TYPE: &str = "user_agent.synthetic.type";
7283
7284/// Version of the user-agent extracted from original. Usually refers to the browser's version
7285///
7286/// ## Notes
7287///
7288/// [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`
7289///
7290/// # Examples
7291///
7292/// - `"14.1.2"`
7293/// - `"1.0.0"`
7294#[cfg(feature = "semconv_experimental")]
7295pub const USER_AGENT_VERSION: &str = "user_agent.version";
7296
7297/// The type of garbage collection.
7298///
7299/// ## Notes
7300#[cfg(feature = "semconv_experimental")]
7301pub const V8JS_GC_TYPE: &str = "v8js.gc.type";
7302
7303/// The name of the space type of heap memory.
7304///
7305/// ## Notes
7306///
7307/// Value can be retrieved from value `space_name` of [`v8.getHeapSpaceStatistics()`](https://nodejs.org/api/v8.html#v8getheapspacestatistics)
7308#[cfg(feature = "semconv_experimental")]
7309pub const V8JS_HEAP_SPACE_NAME: &str = "v8js.heap.space.name";
7310
7311/// 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.
7312///
7313/// ## Notes
7314///
7315/// # Examples
7316///
7317/// - `"123"`
7318#[cfg(feature = "semconv_experimental")]
7319pub const VCS_CHANGE_ID: &str = "vcs.change.id";
7320
7321/// The state of the change (pull request/merge request/changelist).
7322///
7323/// ## Notes
7324///
7325/// # Examples
7326///
7327/// - `"open"`
7328/// - `"closed"`
7329/// - `"merged"`
7330#[cfg(feature = "semconv_experimental")]
7331pub const VCS_CHANGE_STATE: &str = "vcs.change.state";
7332
7333/// 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.
7334///
7335/// ## Notes
7336///
7337/// # Examples
7338///
7339/// - `"Fixes broken thing"`
7340/// - `"feat: add my new feature"`
7341/// - `"[chore] update dependency"`
7342#[cfg(feature = "semconv_experimental")]
7343pub const VCS_CHANGE_TITLE: &str = "vcs.change.title";
7344
7345/// The type of line change being measured on a branch or change.
7346///
7347/// ## Notes
7348///
7349/// # Examples
7350///
7351/// - `"added"`
7352/// - `"removed"`
7353#[cfg(feature = "semconv_experimental")]
7354pub const VCS_LINE_CHANGE_TYPE: &str = "vcs.line_change.type";
7355
7356/// The name of the [reference](https://git-scm.com/docs/gitglossary#def_ref) such as **branch** or **tag** in the repository.
7357///
7358/// ## Notes
7359///
7360/// `base` refers to the starting point of a change. For example, `main`
7361/// would be the base reference of type branch if you've created a new
7362/// reference of type branch from it and created new commits.
7363///
7364/// # Examples
7365///
7366/// - `"my-feature-branch"`
7367/// - `"tag-1-test"`
7368#[cfg(feature = "semconv_experimental")]
7369pub const VCS_REF_BASE_NAME: &str = "vcs.ref.base.name";
7370
7371/// 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.
7372///
7373/// ## Notes
7374///
7375/// `base` refers to the starting point of a change. For example, `main`
7376/// would be the base reference of type branch if you've created a new
7377/// reference of type branch from it and created new commits. The
7378/// revision can be a full [hash value (see
7379/// glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf),
7380/// of the recorded change to a ref within a repository pointing to a
7381/// commit [commit](https://git-scm.com/docs/git-commit) object. It does
7382/// not necessarily have to be a hash; it can simply define a [revision
7383/// number](https://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html)
7384/// which is an integer that is monotonically increasing. In cases where
7385/// it is identical to the `ref.base.name`, it SHOULD still be included.
7386/// It is up to the implementer to decide which value to set as the
7387/// revision based on the VCS system and situational context.
7388///
7389/// # Examples
7390///
7391/// - `"9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc"`
7392/// - `"main"`
7393/// - `"123"`
7394/// - `"HEAD"`
7395#[cfg(feature = "semconv_experimental")]
7396pub const VCS_REF_BASE_REVISION: &str = "vcs.ref.base.revision";
7397
7398/// The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository.
7399///
7400/// ## Notes
7401///
7402/// `base` refers to the starting point of a change. For example, `main`
7403/// would be the base reference of type branch if you've created a new
7404/// reference of type branch from it and created new commits.
7405///
7406/// # Examples
7407///
7408/// - `"branch"`
7409/// - `"tag"`
7410#[cfg(feature = "semconv_experimental")]
7411pub const VCS_REF_BASE_TYPE: &str = "vcs.ref.base.type";
7412
7413/// The name of the [reference](https://git-scm.com/docs/gitglossary#def_ref) such as **branch** or **tag** in the repository.
7414///
7415/// ## Notes
7416///
7417/// `head` refers to where you are right now; the current reference at a
7418/// given time.
7419///
7420/// # Examples
7421///
7422/// - `"my-feature-branch"`
7423/// - `"tag-1-test"`
7424#[cfg(feature = "semconv_experimental")]
7425pub const VCS_REF_HEAD_NAME: &str = "vcs.ref.head.name";
7426
7427/// 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.
7428///
7429/// ## Notes
7430///
7431/// `head` refers to where you are right now; the current reference at a
7432/// given time.The revision can be a full [hash value (see
7433/// glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf),
7434/// of the recorded change to a ref within a repository pointing to a
7435/// commit [commit](https://git-scm.com/docs/git-commit) object. It does
7436/// not necessarily have to be a hash; it can simply define a [revision
7437/// number](https://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html)
7438/// which is an integer that is monotonically increasing. In cases where
7439/// it is identical to the `ref.head.name`, it SHOULD still be included.
7440/// It is up to the implementer to decide which value to set as the
7441/// revision based on the VCS system and situational context.
7442///
7443/// # Examples
7444///
7445/// - `"9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc"`
7446/// - `"main"`
7447/// - `"123"`
7448/// - `"HEAD"`
7449#[cfg(feature = "semconv_experimental")]
7450pub const VCS_REF_HEAD_REVISION: &str = "vcs.ref.head.revision";
7451
7452/// The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository.
7453///
7454/// ## Notes
7455///
7456/// `head` refers to where you are right now; the current reference at a
7457/// given time.
7458///
7459/// # Examples
7460///
7461/// - `"branch"`
7462/// - `"tag"`
7463#[cfg(feature = "semconv_experimental")]
7464pub const VCS_REF_HEAD_TYPE: &str = "vcs.ref.head.type";
7465
7466/// The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository.
7467///
7468/// ## Notes
7469///
7470/// # Examples
7471///
7472/// - `"branch"`
7473/// - `"tag"`
7474#[cfg(feature = "semconv_experimental")]
7475pub const VCS_REF_TYPE: &str = "vcs.ref.type";
7476
7477/// Deprecated, use `vcs.change.id` instead.
7478///
7479/// ## Notes
7480///
7481/// # Examples
7482///
7483/// - `"123"`
7484#[cfg(feature = "semconv_experimental")]
7485pub const VCS_REPOSITORY_CHANGE_ID: &str = "vcs.repository.change.id";
7486
7487/// Deprecated, use `vcs.change.title` instead.
7488///
7489/// ## Notes
7490///
7491/// # Examples
7492///
7493/// - `"Fixes broken thing"`
7494/// - `"feat: add my new feature"`
7495/// - `"[chore] update dependency"`
7496#[cfg(feature = "semconv_experimental")]
7497pub const VCS_REPOSITORY_CHANGE_TITLE: &str = "vcs.repository.change.title";
7498
7499/// The human readable name of the repository. It SHOULD NOT include any additional identifier like Group/SubGroup in GitLab or organization in GitHub.
7500///
7501/// ## Notes
7502///
7503/// Due to it only being the name, it can clash with forks of the same
7504/// repository if collecting telemetry across multiple orgs or groups in
7505/// the same backends.
7506///
7507/// # Examples
7508///
7509/// - `"semantic-conventions"`
7510/// - `"my-cool-repo"`
7511#[cfg(feature = "semconv_experimental")]
7512pub const VCS_REPOSITORY_NAME: &str = "vcs.repository.name";
7513
7514/// Deprecated, use `vcs.ref.head.name` instead.
7515///
7516/// ## Notes
7517///
7518/// # Examples
7519///
7520/// - `"my-feature-branch"`
7521/// - `"tag-1-test"`
7522#[cfg(feature = "semconv_experimental")]
7523pub const VCS_REPOSITORY_REF_NAME: &str = "vcs.repository.ref.name";
7524
7525/// Deprecated, use `vcs.ref.head.revision` instead.
7526///
7527/// ## Notes
7528///
7529/// # Examples
7530///
7531/// - `"9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc"`
7532/// - `"main"`
7533/// - `"123"`
7534/// - `"HEAD"`
7535#[cfg(feature = "semconv_experimental")]
7536pub const VCS_REPOSITORY_REF_REVISION: &str = "vcs.repository.ref.revision";
7537
7538/// Deprecated, use `vcs.ref.head.type` instead.
7539///
7540/// ## Notes
7541///
7542/// # Examples
7543///
7544/// - `"branch"`
7545/// - `"tag"`
7546#[cfg(feature = "semconv_experimental")]
7547pub const VCS_REPOSITORY_REF_TYPE: &str = "vcs.repository.ref.type";
7548
7549/// The [canonical URL](https://support.google.com/webmasters/answer/10347851?hl=en#:~:text=A%20canonical%20URL%20is%20the,Google%20chooses%20one%20as%20canonical.) of the repository providing the complete HTTP(S) address in order to locate and identify the repository through a browser.
7550///
7551/// ## Notes
7552///
7553/// In Git Version Control Systems, the canonical URL SHOULD NOT include
7554/// the `.git` extension.
7555///
7556/// # Examples
7557///
7558/// - `"https://github.com/opentelemetry/open-telemetry-collector-contrib"`
7559/// - `"https://gitlab.com/my-org/my-project/my-projects-project/repo"`
7560#[cfg(feature = "semconv_experimental")]
7561pub const VCS_REPOSITORY_URL_FULL: &str = "vcs.repository.url.full";
7562
7563/// The type of revision comparison.
7564///
7565/// ## Notes
7566///
7567/// # Examples
7568///
7569/// - `"ahead"`
7570/// - `"behind"`
7571#[cfg(feature = "semconv_experimental")]
7572pub const VCS_REVISION_DELTA_DIRECTION: &str = "vcs.revision_delta.direction";
7573
7574/// Additional description of the web engine (e.g. detailed version and edition information).
7575///
7576/// ## Notes
7577///
7578/// # Examples
7579///
7580/// - `"WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) - 2.2.2.Final"`
7581#[cfg(feature = "semconv_experimental")]
7582pub const WEBENGINE_DESCRIPTION: &str = "webengine.description";
7583
7584/// The name of the web engine.
7585///
7586/// ## Notes
7587///
7588/// # Examples
7589///
7590/// - `"WildFly"`
7591#[cfg(feature = "semconv_experimental")]
7592pub const WEBENGINE_NAME: &str = "webengine.name";
7593
7594/// The version of the web engine.
7595///
7596/// ## Notes
7597///
7598/// # Examples
7599///
7600/// - `"21.0.0"`
7601#[cfg(feature = "semconv_experimental")]
7602pub const WEBENGINE_VERSION: &str = "webengine.version";