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