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