opentelemetry_semantic_conventions/
attribute.rs

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