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#lifecycle-callbacks), 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 in the [Android API levels documentation](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` attribute instead.
35///
36/// ## Notes
37#[cfg(feature = "semconv_experimental")]
38#[deprecated(
39 note = "{note: Replaced by `android.app.state`., reason: renamed, renamed_to: android.app.state}"
40)]
41pub const ANDROID_STATE: &str = "android.state";
42
43/// Unique identifier for a particular build or compilation of the application.
44///
45/// ## Notes
46///
47/// # Examples
48///
49/// - `"6cff0a7e-cefc-4668-96f5-1273d8b334d0"`
50/// - `"9f2b833506aa6973a92fde9733e6271f"`
51/// - `"my-app-1.0.0-code-123"`
52#[cfg(feature = "semconv_experimental")]
53pub const APP_BUILD_ID: &str = "app.build_id";
54
55/// A unique identifier representing an instance of an end-user facing app crash.
56///
57/// ## Notes
58///
59/// Its value MAY be meaningful and be used as a reference for telemetry and metadata recorded by
60/// the same instrumentation (e.g. it is an ID generated by an external source that captured the crash).
61/// It MAY come from a source external to the instrumentation such that it can be used to look up additional
62/// data from other sources as well as facilitate deduplication.
63///
64/// # Examples
65///
66/// - `"083d3d2d-9a0e-47f8-be3d-bc3c5538ba38"`
67#[cfg(feature = "semconv_experimental")]
68pub const APP_CRASH_ID: &str = "app.crash.id";
69
70/// A unique identifier representing the installation of an application on a specific device
71///
72/// ## Notes
73///
74/// Its value SHOULD persist across launches of the same application installation, including through application upgrades.
75/// It SHOULD change if the application is uninstalled or if all applications of the vendor are uninstalled.
76/// Additionally, users might be able to reset this value (e.g. by clearing application data).
77/// 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.
78/// If multiple OpenTelemetry SDKs are used within the same application, they SHOULD use the same value for `app.installation.id`.
79/// Hardware IDs (e.g. serial number, IMEI, MAC address) MUST NOT be used as the `app.installation.id`.
80///
81/// For iOS, this value SHOULD be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/identifierforvendor).
82///
83/// For Android, examples of `app.installation.id` implementations include:
84///
85/// - [Firebase Installation ID](https://firebase.google.com/docs/projects/manage-installations).
86/// - A globally unique UUID which is persisted across sessions in your application.
87/// - [App set ID](https://developer.android.com/identity/app-set-id).
88/// - [`Settings.getString(Settings.Secure.ANDROID_ID)`](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID).
89///
90/// More information about Android identifier best practices can be found in the [Android user data IDs guide](https://developer.android.com/training/articles/user-data-ids).
91///
92/// # Examples
93///
94/// - `"2ab2916d-a51f-4ac8-80ee-45ac31a28092"`
95#[cfg(feature = "semconv_experimental")]
96pub const APP_INSTALLATION_ID: &str = "app.installation.id";
97
98/// A number of frame renders that experienced jank.
99///
100/// ## Notes
101///
102/// Depending on platform limitations, the value provided MAY be approximation.
103///
104/// # Examples
105///
106/// - `9`
107/// - `42`
108#[cfg(feature = "semconv_experimental")]
109pub const APP_JANK_FRAME_COUNT: &str = "app.jank.frame_count";
110
111/// The time period, in seconds, for which this jank is being reported.
112///
113/// ## Notes
114///
115/// # Examples
116///
117/// - `1.0`
118/// - `5.0`
119/// - `10.24`
120#[cfg(feature = "semconv_experimental")]
121pub const APP_JANK_PERIOD: &str = "app.jank.period";
122
123/// The minimum rendering threshold for this jank, in seconds.
124///
125/// ## Notes
126///
127/// # Examples
128///
129/// - `0.016`
130/// - `0.7`
131/// - `1.024`
132#[cfg(feature = "semconv_experimental")]
133pub const APP_JANK_THRESHOLD: &str = "app.jank.threshold";
134
135/// The x (horizontal) coordinate of a screen coordinate, in screen pixels.
136///
137/// ## Notes
138///
139/// # Examples
140///
141/// - `0`
142/// - `131`
143#[cfg(feature = "semconv_experimental")]
144pub const APP_SCREEN_COORDINATE_X: &str = "app.screen.coordinate.x";
145
146/// The y (vertical) component of a screen coordinate, in screen pixels.
147///
148/// ## Notes
149///
150/// # Examples
151///
152/// - `12`
153/// - `99`
154#[cfg(feature = "semconv_experimental")]
155pub const APP_SCREEN_COORDINATE_Y: &str = "app.screen.coordinate.y";
156
157/// An identifier that uniquely differentiates this screen from other screens in the same application.
158///
159/// ## Notes
160///
161/// A screen represents only the part of the device display drawn by the app. It typically contains multiple widgets or UI components and is larger in scope than individual widgets. Multiple screens can coexist on the same display simultaneously (e.g., split view on tablets).
162///
163/// # Examples
164///
165/// - `"f9bc787d-ff05-48ad-90e1-fca1d46130b3"`
166/// - `"com.example.app.MainActivity"`
167/// - `"com.example.shop.ProductDetailFragment"`
168/// - `"MyApp.ProfileView"`
169/// - `"MyApp.ProfileViewController"`
170#[cfg(feature = "semconv_experimental")]
171pub const APP_SCREEN_ID: &str = "app.screen.id";
172
173/// The name of an application screen.
174///
175/// ## Notes
176///
177/// A screen represents only the part of the device display drawn by the app. It typically contains multiple widgets or UI components and is larger in scope than individual widgets. Multiple screens can coexist on the same display simultaneously (e.g., split view on tablets).
178///
179/// # Examples
180///
181/// - `"MainActivity"`
182/// - `"ProductDetailFragment"`
183/// - `"ProfileView"`
184/// - `"ProfileViewController"`
185#[cfg(feature = "semconv_experimental")]
186pub const APP_SCREEN_NAME: &str = "app.screen.name";
187
188/// An identifier that uniquely differentiates this widget from other widgets in the same application.
189///
190/// ## Notes
191///
192/// A widget is an application component, typically an on-screen visual GUI element.
193///
194/// # Examples
195///
196/// - `"f9bc787d-ff05-48ad-90e1-fca1d46130b3"`
197/// - `"submit_order_1829"`
198#[cfg(feature = "semconv_experimental")]
199pub const APP_WIDGET_ID: &str = "app.widget.id";
200
201/// The name of an application widget.
202///
203/// ## Notes
204///
205/// A widget is an application component, typically an on-screen visual GUI element.
206///
207/// # Examples
208///
209/// - `"submit"`
210/// - `"attack"`
211/// - `"Clear Cart"`
212#[cfg(feature = "semconv_experimental")]
213pub const APP_WIDGET_NAME: &str = "app.widget.name";
214
215/// 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.
216///
217/// ## Notes
218///
219/// # Examples
220///
221/// - `"golang-binary-amd64-v0.1.0.attestation"`
222/// - `"docker-image-amd64-v0.1.0.intoto.json1"`
223/// - `"release-1.tar.gz.attestation"`
224/// - `"file-name-package.tar.gz.intoto.json1"`
225#[cfg(feature = "semconv_experimental")]
226pub const ARTIFACT_ATTESTATION_FILENAME: &str = "artifact.attestation.filename";
227
228/// 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**.
229///
230/// ## Notes
231///
232/// # Examples
233///
234/// - `"1b31dfcd5b7f9267bf2ff47651df1cfb9147b9e4df1f335accf65b4cda498408"`
235#[cfg(feature = "semconv_experimental")]
236pub const ARTIFACT_ATTESTATION_HASH: &str = "artifact.attestation.hash";
237
238/// The id of the build [software attestation](https://slsa.dev/attestation-model).
239///
240/// ## Notes
241///
242/// # Examples
243///
244/// - `"123"`
245#[cfg(feature = "semconv_experimental")]
246pub const ARTIFACT_ATTESTATION_ID: &str = "artifact.attestation.id";
247
248/// 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.
249///
250/// ## Notes
251///
252/// This file name can also act as the [Package Name](https://slsa.dev/spec/v1.0/terminology#package-model)
253/// in cases where the package ecosystem maps accordingly.
254/// Additionally, the artifact [can be published](https://slsa.dev/spec/v1.0/terminology#software-supply-chain)
255/// for others, but that is not a guarantee.
256///
257/// # Examples
258///
259/// - `"golang-binary-amd64-v0.1.0"`
260/// - `"docker-image-amd64-v0.1.0"`
261/// - `"release-1.tar.gz"`
262/// - `"file-name-package.tar.gz"`
263#[cfg(feature = "semconv_experimental")]
264pub const ARTIFACT_FILENAME: &str = "artifact.filename";
265
266/// 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.
267///
268/// ## Notes
269///
270/// The specific algorithm used to create the cryptographic hash value is
271/// not defined. In situations where an artifact has multiple
272/// cryptographic hashes, it is up to the implementer to choose which
273/// hash value to set here; this should be the most secure hash algorithm
274/// that is suitable for the situation and consistent with the
275/// corresponding attestation. The implementer can then provide the other
276/// hash values through an additional set of attribute extensions as they
277/// deem necessary.
278///
279/// # Examples
280///
281/// - `"9ff4c52759e2c4ac70b7d517bc7fcdc1cda631ca0045271ddd1b192544f8a3e9"`
282#[cfg(feature = "semconv_experimental")]
283pub const ARTIFACT_HASH: &str = "artifact.hash";
284
285/// 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.
286///
287/// ## Notes
288///
289/// # Examples
290///
291/// - `"pkg:github/package-url/purl-spec@1209109710924"`
292/// - `"pkg:npm/foo@12.12.3"`
293#[cfg(feature = "semconv_experimental")]
294pub const ARTIFACT_PURL: &str = "artifact.purl";
295
296/// The version of the artifact.
297///
298/// ## Notes
299///
300/// # Examples
301///
302/// - `"v0.1.0"`
303/// - `"1.2.1"`
304/// - `"122691-build"`
305#[cfg(feature = "semconv_experimental")]
306pub const ARTIFACT_VERSION: &str = "artifact.version";
307
308/// The result of the authentication operation.
309///
310/// ## Notes
311///
312/// # Examples
313///
314/// - `"success"`
315/// - `"failure"`
316#[cfg(feature = "semconv_experimental")]
317pub const ASPNETCORE_AUTHENTICATION_RESULT: &str = "aspnetcore.authentication.result";
318
319/// The identifier that names a particular authentication handler.
320///
321/// ## Notes
322///
323/// # Examples
324///
325/// - `"Cookies"`
326/// - `"Bearer"`
327/// - `"Identity.Application"`
328#[cfg(feature = "semconv_experimental")]
329pub const ASPNETCORE_AUTHENTICATION_SCHEME: &str = "aspnetcore.authentication.scheme";
330
331/// The name of the authorization policy.
332///
333/// ## Notes
334///
335/// # Examples
336///
337/// - `"RequireAdminRole"`
338#[cfg(feature = "semconv_experimental")]
339pub const ASPNETCORE_AUTHORIZATION_POLICY: &str = "aspnetcore.authorization.policy";
340
341/// The result of calling the authorization service.
342///
343/// ## Notes
344///
345/// # Examples
346///
347/// - `"success"`
348/// - `"failure"`
349#[cfg(feature = "semconv_experimental")]
350pub const ASPNETCORE_AUTHORIZATION_RESULT: &str = "aspnetcore.authorization.result";
351
352/// ASP.NET Core exception middleware handling result.
353///
354/// ## Notes
355///
356/// # Examples
357///
358/// - `"handled"`
359/// - `"unhandled"`
360pub const ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT: &str = "aspnetcore.diagnostics.exception.result";
361
362/// Full type name of the [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler) implementation that handled the exception.
363///
364/// ## Notes
365///
366/// # Examples
367///
368/// - `"Contoso.MyHandler"`
369pub const ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE: &str = "aspnetcore.diagnostics.handler.type";
370
371/// The error code for a failed identity operation.
372///
373/// ## Notes
374///
375/// # Examples
376///
377/// - `"DefaultError"`
378/// - `"PasswordMismatch"`
379#[cfg(feature = "semconv_experimental")]
380pub const ASPNETCORE_IDENTITY_ERROR_CODE: &str = "aspnetcore.identity.error_code";
381
382/// The result from checking the password.
383///
384/// ## Notes
385///
386/// # Examples
387///
388/// - `"success"`
389/// - `"failure"`
390#[cfg(feature = "semconv_experimental")]
391pub const ASPNETCORE_IDENTITY_PASSWORD_CHECK_RESULT: &str =
392 "aspnetcore.identity.password_check_result";
393
394/// The result of the identity operation.
395///
396/// ## Notes
397///
398/// # Examples
399///
400/// - `"success"`
401/// - `"failure"`
402#[cfg(feature = "semconv_experimental")]
403pub const ASPNETCORE_IDENTITY_RESULT: &str = "aspnetcore.identity.result";
404
405/// Whether the sign in result was success or failure.
406///
407/// ## Notes
408///
409/// # Examples
410///
411/// - `"password"`
412/// - `"two_factor"`
413#[cfg(feature = "semconv_experimental")]
414pub const ASPNETCORE_IDENTITY_SIGN_IN_RESULT: &str = "aspnetcore.identity.sign_in.result";
415
416/// The authentication type.
417///
418/// ## Notes
419///
420/// # Examples
421///
422/// - `"password"`
423/// - `"two_factor"`
424#[cfg(feature = "semconv_experimental")]
425pub const ASPNETCORE_IDENTITY_SIGN_IN_TYPE: &str = "aspnetcore.identity.sign_in.type";
426
427/// What the token will be used for.
428///
429/// ## Notes
430///
431/// # Examples
432///
433/// - `"success"`
434/// - `"failure"`
435#[cfg(feature = "semconv_experimental")]
436pub const ASPNETCORE_IDENTITY_TOKEN_PURPOSE: &str = "aspnetcore.identity.token_purpose";
437
438/// The result of token verification.
439///
440/// ## Notes
441///
442/// # Examples
443///
444/// - `"success"`
445/// - `"failure"`
446#[cfg(feature = "semconv_experimental")]
447pub const ASPNETCORE_IDENTITY_TOKEN_VERIFIED: &str = "aspnetcore.identity.token_verified";
448
449/// The user update type.
450///
451/// ## Notes
452///
453/// # Examples
454///
455/// - `"update"`
456/// - `"user_name"`
457/// - `"reset_password"`
458#[cfg(feature = "semconv_experimental")]
459pub const ASPNETCORE_IDENTITY_USER_UPDATE_TYPE: &str = "aspnetcore.identity.user.update_type";
460
461/// The full name of the identity user type.
462///
463/// ## Notes
464///
465/// # Examples
466///
467/// - `"Contoso.ContosoUser"`
468#[cfg(feature = "semconv_experimental")]
469pub const ASPNETCORE_IDENTITY_USER_TYPE: &str = "aspnetcore.identity.user_type";
470
471/// The name of the library or subsystem using the memory pool instance.
472///
473/// ## Notes
474///
475/// # Examples
476///
477/// - `"kestrel"`
478/// - `"iis"`
479#[cfg(feature = "semconv_experimental")]
480pub const ASPNETCORE_MEMORY_POOL_OWNER: &str = "aspnetcore.memory_pool.owner";
481
482/// Rate limiting policy name.
483///
484/// ## Notes
485///
486/// # Examples
487///
488/// - `"fixed"`
489/// - `"sliding"`
490/// - `"token"`
491pub const ASPNETCORE_RATE_LIMITING_POLICY: &str = "aspnetcore.rate_limiting.policy";
492
493/// Rate-limiting result, shows whether the lease was acquired or contains a rejection reason
494///
495/// ## Notes
496///
497/// # Examples
498///
499/// - `"acquired"`
500/// - `"request_canceled"`
501pub const ASPNETCORE_RATE_LIMITING_RESULT: &str = "aspnetcore.rate_limiting.result";
502
503/// Flag indicating if request was handled by the application pipeline.
504///
505/// ## Notes
506///
507/// # Examples
508///
509/// - `true`
510pub const ASPNETCORE_REQUEST_IS_UNHANDLED: &str = "aspnetcore.request.is_unhandled";
511
512/// A value that indicates whether the matched route is a fallback route.
513///
514/// ## Notes
515///
516/// # Examples
517///
518/// - `true`
519pub const ASPNETCORE_ROUTING_IS_FALLBACK: &str = "aspnetcore.routing.is_fallback";
520
521/// Match result - success or failure
522///
523/// ## Notes
524///
525/// # Examples
526///
527/// - `"success"`
528/// - `"failure"`
529pub const ASPNETCORE_ROUTING_MATCH_STATUS: &str = "aspnetcore.routing.match_status";
530
531/// A flag indicating whether the sign in is persistent.
532///
533/// ## Notes
534#[cfg(feature = "semconv_experimental")]
535pub const ASPNETCORE_SIGN_IN_IS_PERSISTENT: &str = "aspnetcore.sign_in.is_persistent";
536
537/// A value that indicates whether the user is authenticated.
538///
539/// ## Notes
540///
541/// # Examples
542///
543/// - `true`
544pub const ASPNETCORE_USER_IS_AUTHENTICATED: &str = "aspnetcore.user.is_authenticated";
545
546/// 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.
547///
548/// ## Notes
549///
550/// # Examples
551///
552/// - `"sgi5gkybzqak"`
553#[cfg(feature = "semconv_experimental")]
554pub const AWS_BEDROCK_GUARDRAIL_ID: &str = "aws.bedrock.guardrail.id";
555
556/// 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.
557///
558/// ## Notes
559///
560/// # Examples
561///
562/// - `"XFWUPB9PAW"`
563#[cfg(feature = "semconv_experimental")]
564pub const AWS_BEDROCK_KNOWLEDGE_BASE_ID: &str = "aws.bedrock.knowledge_base.id";
565
566/// The JSON-serialized value of each item in the `AttributeDefinitions` request field.
567///
568/// ## Notes
569///
570/// # Examples
571///
572/// - `[
573/// "{ \"AttributeName\": \"string\", \"AttributeType\": \"string\" }",
574/// ]`
575#[cfg(feature = "semconv_experimental")]
576pub const AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS: &str = "aws.dynamodb.attribute_definitions";
577
578/// The value of the `AttributesToGet` request parameter.
579///
580/// ## Notes
581///
582/// # Examples
583///
584/// - `[
585/// "lives",
586/// "id",
587/// ]`
588#[cfg(feature = "semconv_experimental")]
589pub const AWS_DYNAMODB_ATTRIBUTES_TO_GET: &str = "aws.dynamodb.attributes_to_get";
590
591/// The value of the `ConsistentRead` request parameter.
592///
593/// ## Notes
594#[cfg(feature = "semconv_experimental")]
595pub const AWS_DYNAMODB_CONSISTENT_READ: &str = "aws.dynamodb.consistent_read";
596
597/// The JSON-serialized value of each item in the `ConsumedCapacity` response field.
598///
599/// ## Notes
600///
601/// # Examples
602///
603/// - `[
604/// "{ \"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 }",
605/// ]`
606#[cfg(feature = "semconv_experimental")]
607pub const AWS_DYNAMODB_CONSUMED_CAPACITY: &str = "aws.dynamodb.consumed_capacity";
608
609/// The value of the `Count` response parameter.
610///
611/// ## Notes
612///
613/// # Examples
614///
615/// - `10`
616#[cfg(feature = "semconv_experimental")]
617pub const AWS_DYNAMODB_COUNT: &str = "aws.dynamodb.count";
618
619/// The value of the `ExclusiveStartTableName` request parameter.
620///
621/// ## Notes
622///
623/// # Examples
624///
625/// - `"Users"`
626/// - `"CatsTable"`
627#[cfg(feature = "semconv_experimental")]
628pub const AWS_DYNAMODB_EXCLUSIVE_START_TABLE: &str = "aws.dynamodb.exclusive_start_table";
629
630/// The JSON-serialized value of each item in the `GlobalSecondaryIndexUpdates` request field.
631///
632/// ## Notes
633///
634/// # Examples
635///
636/// - `[
637/// "{ \"Create\": { \"IndexName\": \"string\", \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" }, \"ProvisionedThroughput\": { \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }",
638/// ]`
639#[cfg(feature = "semconv_experimental")]
640pub const AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES: &str =
641 "aws.dynamodb.global_secondary_index_updates";
642
643/// The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field
644///
645/// ## Notes
646///
647/// # Examples
648///
649/// - `[
650/// "{ \"IndexName\": \"string\", \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" }, \"ProvisionedThroughput\": { \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }",
651/// ]`
652#[cfg(feature = "semconv_experimental")]
653pub const AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES: &str = "aws.dynamodb.global_secondary_indexes";
654
655/// The value of the `IndexName` request parameter.
656///
657/// ## Notes
658///
659/// # Examples
660///
661/// - `"name_to_group"`
662#[cfg(feature = "semconv_experimental")]
663pub const AWS_DYNAMODB_INDEX_NAME: &str = "aws.dynamodb.index_name";
664
665/// The JSON-serialized value of the `ItemCollectionMetrics` response field.
666///
667/// ## Notes
668///
669/// # Examples
670///
671/// - `"{ \"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 ] } ] }"`
672#[cfg(feature = "semconv_experimental")]
673pub const AWS_DYNAMODB_ITEM_COLLECTION_METRICS: &str = "aws.dynamodb.item_collection_metrics";
674
675/// The value of the `Limit` request parameter.
676///
677/// ## Notes
678///
679/// # Examples
680///
681/// - `10`
682#[cfg(feature = "semconv_experimental")]
683pub const AWS_DYNAMODB_LIMIT: &str = "aws.dynamodb.limit";
684
685/// The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.
686///
687/// ## Notes
688///
689/// # Examples
690///
691/// - `[
692/// "{ \"IndexArn\": \"string\", \"IndexName\": \"string\", \"IndexSizeBytes\": number, \"ItemCount\": number, \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" } }",
693/// ]`
694#[cfg(feature = "semconv_experimental")]
695pub const AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES: &str = "aws.dynamodb.local_secondary_indexes";
696
697/// The value of the `ProjectionExpression` request parameter.
698///
699/// ## Notes
700///
701/// # Examples
702///
703/// - `"Title"`
704/// - `"Title, Price, Color"`
705/// - `"Title, Description, RelatedItems, ProductReviews"`
706#[cfg(feature = "semconv_experimental")]
707pub const AWS_DYNAMODB_PROJECTION: &str = "aws.dynamodb.projection";
708
709/// The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.
710///
711/// ## Notes
712///
713/// # Examples
714///
715/// - `1.0`
716/// - `2.0`
717#[cfg(feature = "semconv_experimental")]
718pub const AWS_DYNAMODB_PROVISIONED_READ_CAPACITY: &str = "aws.dynamodb.provisioned_read_capacity";
719
720/// The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.
721///
722/// ## Notes
723///
724/// # Examples
725///
726/// - `1.0`
727/// - `2.0`
728#[cfg(feature = "semconv_experimental")]
729pub const AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY: &str = "aws.dynamodb.provisioned_write_capacity";
730
731/// The value of the `ScanIndexForward` request parameter.
732///
733/// ## Notes
734#[cfg(feature = "semconv_experimental")]
735pub const AWS_DYNAMODB_SCAN_FORWARD: &str = "aws.dynamodb.scan_forward";
736
737/// The value of the `ScannedCount` response parameter.
738///
739/// ## Notes
740///
741/// # Examples
742///
743/// - `50`
744#[cfg(feature = "semconv_experimental")]
745pub const AWS_DYNAMODB_SCANNED_COUNT: &str = "aws.dynamodb.scanned_count";
746
747/// The value of the `Segment` request parameter.
748///
749/// ## Notes
750///
751/// # Examples
752///
753/// - `10`
754#[cfg(feature = "semconv_experimental")]
755pub const AWS_DYNAMODB_SEGMENT: &str = "aws.dynamodb.segment";
756
757/// The value of the `Select` request parameter.
758///
759/// ## Notes
760///
761/// # Examples
762///
763/// - `"ALL_ATTRIBUTES"`
764/// - `"COUNT"`
765#[cfg(feature = "semconv_experimental")]
766pub const AWS_DYNAMODB_SELECT: &str = "aws.dynamodb.select";
767
768/// The number of items in the `TableNames` response parameter.
769///
770/// ## Notes
771///
772/// # Examples
773///
774/// - `20`
775#[cfg(feature = "semconv_experimental")]
776pub const AWS_DYNAMODB_TABLE_COUNT: &str = "aws.dynamodb.table_count";
777
778/// The keys in the `RequestItems` object field.
779///
780/// ## Notes
781///
782/// # Examples
783///
784/// - `[
785/// "Users",
786/// "Cats",
787/// ]`
788#[cfg(feature = "semconv_experimental")]
789pub const AWS_DYNAMODB_TABLE_NAMES: &str = "aws.dynamodb.table_names";
790
791/// The value of the `TotalSegments` request parameter.
792///
793/// ## Notes
794///
795/// # Examples
796///
797/// - `100`
798#[cfg(feature = "semconv_experimental")]
799pub const AWS_DYNAMODB_TOTAL_SEGMENTS: &str = "aws.dynamodb.total_segments";
800
801/// The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).
802///
803/// ## Notes
804///
805/// # Examples
806///
807/// - `"arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster"`
808#[cfg(feature = "semconv_experimental")]
809pub const AWS_ECS_CLUSTER_ARN: &str = "aws.ecs.cluster.arn";
810
811/// The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).
812///
813/// ## Notes
814///
815/// # Examples
816///
817/// - `"arn:aws:ecs:us-west-1:123456789123:container/32624152-9086-4f0e-acae-1a75b14fe4d9"`
818#[cfg(feature = "semconv_experimental")]
819pub const AWS_ECS_CONTAINER_ARN: &str = "aws.ecs.container.arn";
820
821/// The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.
822///
823/// ## Notes
824#[cfg(feature = "semconv_experimental")]
825pub const AWS_ECS_LAUNCHTYPE: &str = "aws.ecs.launchtype";
826
827/// The ARN of a running [ECS task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids).
828///
829/// ## Notes
830///
831/// # Examples
832///
833/// - `"arn:aws:ecs:us-west-1:123456789123:task/10838bed-421f-43ef-870a-f43feacbbb5b"`
834/// - `"arn:aws:ecs:us-west-1:123456789123:task/my-cluster/task-id/23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd"`
835#[cfg(feature = "semconv_experimental")]
836pub const AWS_ECS_TASK_ARN: &str = "aws.ecs.task.arn";
837
838/// 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.
839///
840/// ## Notes
841///
842/// # Examples
843///
844/// - `"opentelemetry-family"`
845#[cfg(feature = "semconv_experimental")]
846pub const AWS_ECS_TASK_FAMILY: &str = "aws.ecs.task.family";
847
848/// The ID of a running ECS task. The ID MUST be extracted from `task.arn`.
849///
850/// ## Notes
851///
852/// # Examples
853///
854/// - `"10838bed-421f-43ef-870a-f43feacbbb5b"`
855/// - `"23ebb8ac-c18f-46c6-8bbe-d55d0e37cfbd"`
856#[cfg(feature = "semconv_experimental")]
857pub const AWS_ECS_TASK_ID: &str = "aws.ecs.task.id";
858
859/// The revision for the task definition used to create the ECS task.
860///
861/// ## Notes
862///
863/// # Examples
864///
865/// - `"8"`
866/// - `"26"`
867#[cfg(feature = "semconv_experimental")]
868pub const AWS_ECS_TASK_REVISION: &str = "aws.ecs.task.revision";
869
870/// The ARN of an EKS cluster.
871///
872/// ## Notes
873///
874/// # Examples
875///
876/// - `"arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster"`
877#[cfg(feature = "semconv_experimental")]
878pub const AWS_EKS_CLUSTER_ARN: &str = "aws.eks.cluster.arn";
879
880/// The AWS extended request ID as returned in the response header `x-amz-id-2`.
881///
882/// ## Notes
883///
884/// # Examples
885///
886/// - `"wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ="`
887#[cfg(feature = "semconv_experimental")]
888pub const AWS_EXTENDED_REQUEST_ID: &str = "aws.extended_request_id";
889
890/// 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.
891///
892/// ## Notes
893///
894/// # Examples
895///
896/// - `"some-stream-name"`
897#[cfg(feature = "semconv_experimental")]
898pub const AWS_KINESIS_STREAM_NAME: &str = "aws.kinesis.stream_name";
899
900/// 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).
901///
902/// ## Notes
903///
904/// This may be different from `cloud.resource_id` if an alias is involved.
905///
906/// # Examples
907///
908/// - `"arn:aws:lambda:us-east-1:123456:function:myfunction:myalias"`
909#[cfg(feature = "semconv_experimental")]
910pub const AWS_LAMBDA_INVOKED_ARN: &str = "aws.lambda.invoked_arn";
911
912/// 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 environment. 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.
913///
914/// ## Notes
915///
916/// # Examples
917///
918/// - `"587ad24b-03b9-4413-8202-bbd56b36e5b7"`
919#[cfg(feature = "semconv_experimental")]
920pub const AWS_LAMBDA_RESOURCE_MAPPING_ID: &str = "aws.lambda.resource_mapping.id";
921
922/// The Amazon Resource Name(s) (ARN) of the AWS log group(s).
923///
924/// ## Notes
925///
926/// See the [log group ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).
927///
928/// # Examples
929///
930/// - `[
931/// "arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:*",
932/// ]`
933#[cfg(feature = "semconv_experimental")]
934pub const AWS_LOG_GROUP_ARNS: &str = "aws.log.group.arns";
935
936/// The name(s) of the AWS log group(s) an application is writing to.
937///
938/// ## Notes
939///
940/// 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.
941///
942/// # Examples
943///
944/// - `[
945/// "/aws/lambda/my-function",
946/// "opentelemetry-service",
947/// ]`
948#[cfg(feature = "semconv_experimental")]
949pub const AWS_LOG_GROUP_NAMES: &str = "aws.log.group.names";
950
951/// The ARN(s) of the AWS log stream(s).
952///
953/// ## Notes
954///
955/// 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.
956///
957/// # Examples
958///
959/// - `[
960/// "arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:log-stream:logs/main/10838bed-421f-43ef-870a-f43feacbbb5b",
961/// ]`
962#[cfg(feature = "semconv_experimental")]
963pub const AWS_LOG_STREAM_ARNS: &str = "aws.log.stream.arns";
964
965/// The name(s) of the AWS log stream(s) an application is writing to.
966///
967/// ## Notes
968///
969/// # Examples
970///
971/// - `[
972/// "logs/main/10838bed-421f-43ef-870a-f43feacbbb5b",
973/// ]`
974#[cfg(feature = "semconv_experimental")]
975pub const AWS_LOG_STREAM_NAMES: &str = "aws.log.stream.names";
976
977/// The AWS request ID as returned in the response headers `x-amzn-requestid`, `x-amzn-request-id` or `x-amz-request-id`.
978///
979/// ## Notes
980///
981/// # Examples
982///
983/// - `"79b9da39-b7ae-508a-a6bc-864b2829c622"`
984/// - `"C9ER4AJX75574TDJ"`
985#[cfg(feature = "semconv_experimental")]
986pub const AWS_REQUEST_ID: &str = "aws.request_id";
987
988/// 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.
989///
990/// ## Notes
991///
992/// The `bucket` attribute is applicable to all S3 operations that reference a bucket, i.e. that require the bucket name as a mandatory parameter.
993/// This applies to almost all S3 operations except `list-buckets`.
994///
995/// # Examples
996///
997/// - `"some-bucket-name"`
998#[cfg(feature = "semconv_experimental")]
999pub const AWS_S3_BUCKET: &str = "aws.s3.bucket";
1000
1001/// The source object (in the form `bucket`/`key`) for the copy operation.
1002///
1003/// ## Notes
1004///
1005/// The `copy_source` attribute applies to S3 copy operations and corresponds to the `--copy-source` parameter
1006/// of the [copy-object operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html).
1007/// This applies in particular to the following operations:
1008///
1009/// - [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
1010/// - [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
1011///
1012/// # Examples
1013///
1014/// - `"someFile.yml"`
1015#[cfg(feature = "semconv_experimental")]
1016pub const AWS_S3_COPY_SOURCE: &str = "aws.s3.copy_source";
1017
1018/// The delete request container that specifies the objects to be deleted.
1019///
1020/// ## Notes
1021///
1022/// The `delete` attribute is only applicable to the [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html) operation.
1023/// The `delete` attribute corresponds to the `--delete` parameter of the
1024/// [delete-objects operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-objects.html).
1025///
1026/// # Examples
1027///
1028/// - `"Objects=[{Key=string,VersionId=string},{Key=string,VersionId=string}],Quiet=boolean"`
1029#[cfg(feature = "semconv_experimental")]
1030pub const AWS_S3_DELETE: &str = "aws.s3.delete";
1031
1032/// 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.
1033///
1034/// ## Notes
1035///
1036/// The `key` attribute is applicable to all object-related S3 operations, i.e. that require the object key as a mandatory parameter.
1037/// This applies in particular to the following operations:
1038///
1039/// - [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)
1040/// - [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)
1041/// - [get-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html)
1042/// - [head-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html)
1043/// - [put-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html)
1044/// - [restore-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/restore-object.html)
1045/// - [select-object-content](https://docs.aws.amazon.com/cli/latest/reference/s3api/select-object-content.html)
1046/// - [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)
1047/// - [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)
1048/// - [create-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-multipart-upload.html)
1049/// - [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)
1050/// - [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
1051/// - [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
1052///
1053/// # Examples
1054///
1055/// - `"someFile.yml"`
1056#[cfg(feature = "semconv_experimental")]
1057pub const AWS_S3_KEY: &str = "aws.s3.key";
1058
1059/// The part number of the part being uploaded in a multipart-upload operation. This is a positive integer between 1 and 10,000.
1060///
1061/// ## Notes
1062///
1063/// The `part_number` attribute is only applicable to the [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
1064/// and [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) operations.
1065/// The `part_number` attribute corresponds to the `--part-number` parameter of the
1066/// [upload-part operation within the S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html).
1067///
1068/// # Examples
1069///
1070/// - `3456`
1071#[cfg(feature = "semconv_experimental")]
1072pub const AWS_S3_PART_NUMBER: &str = "aws.s3.part_number";
1073
1074/// Upload ID that identifies the multipart upload.
1075///
1076/// ## Notes
1077///
1078/// The `upload_id` attribute applies to S3 multipart-upload operations and corresponds to the `--upload-id` parameter
1079/// of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) multipart operations.
1080/// This applies in particular to the following operations:
1081///
1082/// - [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)
1083/// - [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)
1084/// - [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)
1085/// - [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)
1086/// - [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)
1087///
1088/// # Examples
1089///
1090/// - `"dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ"`
1091#[cfg(feature = "semconv_experimental")]
1092pub const AWS_S3_UPLOAD_ID: &str = "aws.s3.upload_id";
1093
1094/// The ARN of the Secret stored in the Secrets Manager
1095///
1096/// ## Notes
1097///
1098/// # Examples
1099///
1100/// - `"arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretName-6RandomCharacters"`
1101#[cfg(feature = "semconv_experimental")]
1102pub const AWS_SECRETSMANAGER_SECRET_ARN: &str = "aws.secretsmanager.secret.arn";
1103
1104/// 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.
1105///
1106/// ## Notes
1107///
1108/// # Examples
1109///
1110/// - `"arn:aws:sns:us-east-1:123456789012:mystack-mytopic-NZJ5JSMVGFIE"`
1111#[cfg(feature = "semconv_experimental")]
1112pub const AWS_SNS_TOPIC_ARN: &str = "aws.sns.topic.arn";
1113
1114/// 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.
1115///
1116/// ## Notes
1117///
1118/// # Examples
1119///
1120/// - `"https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue"`
1121#[cfg(feature = "semconv_experimental")]
1122pub const AWS_SQS_QUEUE_URL: &str = "aws.sqs.queue.url";
1123
1124/// The ARN of the AWS Step Functions Activity.
1125///
1126/// ## Notes
1127///
1128/// # Examples
1129///
1130/// - `"arn:aws:states:us-east-1:123456789012:activity:get-greeting"`
1131#[cfg(feature = "semconv_experimental")]
1132pub const AWS_STEP_FUNCTIONS_ACTIVITY_ARN: &str = "aws.step_functions.activity.arn";
1133
1134/// The ARN of the AWS Step Functions State Machine.
1135///
1136/// ## Notes
1137///
1138/// # Examples
1139///
1140/// - `"arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:1"`
1141#[cfg(feature = "semconv_experimental")]
1142pub const AWS_STEP_FUNCTIONS_STATE_MACHINE_ARN: &str = "aws.step_functions.state_machine.arn";
1143
1144/// Deprecated, use `azure.resource_provider.namespace` instead.
1145///
1146/// ## Notes
1147///
1148/// # Examples
1149///
1150/// - `"Microsoft.Storage"`
1151/// - `"Microsoft.KeyVault"`
1152/// - `"Microsoft.ServiceBus"`
1153#[cfg(feature = "semconv_experimental")]
1154#[deprecated(
1155 note = "{note: Replaced by `azure.resource_provider.namespace`., reason: renamed, renamed_to: azure.resource_provider.namespace}"
1156)]
1157pub const AZ_NAMESPACE: &str = "az.namespace";
1158
1159/// Deprecated, use `azure.service.request.id` instead.
1160///
1161/// ## Notes
1162///
1163/// # Examples
1164///
1165/// - `"00000000-0000-0000-0000-000000000000"`
1166#[cfg(feature = "semconv_experimental")]
1167#[deprecated(
1168 note = "{note: Replaced by `azure.service.request.id`., reason: renamed, renamed_to: azure.service.request.id}"
1169)]
1170pub const AZ_SERVICE_REQUEST_ID: &str = "az.service_request_id";
1171
1172/// The unique identifier of the client instance.
1173///
1174/// ## Notes
1175///
1176/// # Examples
1177///
1178/// - `"3ba4827d-4422-483f-b59f-85b74211c11d"`
1179/// - `"storage-client-1"`
1180#[cfg(feature = "semconv_experimental")]
1181pub const AZURE_CLIENT_ID: &str = "azure.client.id";
1182
1183/// Cosmos client connection mode.
1184///
1185/// ## Notes
1186#[cfg(feature = "semconv_experimental")]
1187pub const AZURE_COSMOSDB_CONNECTION_MODE: &str = "azure.cosmosdb.connection.mode";
1188
1189/// Account or request [consistency level](https://learn.microsoft.com/azure/cosmos-db/consistency-levels).
1190///
1191/// ## Notes
1192///
1193/// # Examples
1194///
1195/// - `"Eventual"`
1196/// - `"ConsistentPrefix"`
1197/// - `"BoundedStaleness"`
1198/// - `"Strong"`
1199/// - `"Session"`
1200#[cfg(feature = "semconv_experimental")]
1201pub const AZURE_COSMOSDB_CONSISTENCY_LEVEL: &str = "azure.cosmosdb.consistency.level";
1202
1203/// 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.
1204///
1205/// ## Notes
1206///
1207/// Region name matches the format of `displayName` in [Azure Location API](https://learn.microsoft.com/rest/api/resources/subscriptions/list-locations)
1208///
1209/// # Examples
1210///
1211/// - `[
1212/// "North Central US",
1213/// "Australia East",
1214/// "Australia Southeast",
1215/// ]`
1216#[cfg(feature = "semconv_experimental")]
1217pub const AZURE_COSMOSDB_OPERATION_CONTACTED_REGIONS: &str =
1218 "azure.cosmosdb.operation.contacted_regions";
1219
1220/// The number of request units consumed by the operation.
1221///
1222/// ## Notes
1223///
1224/// # Examples
1225///
1226/// - `46.18`
1227/// - `1.0`
1228#[cfg(feature = "semconv_experimental")]
1229pub const AZURE_COSMOSDB_OPERATION_REQUEST_CHARGE: &str = "azure.cosmosdb.operation.request_charge";
1230
1231/// Request payload size in bytes.
1232///
1233/// ## Notes
1234#[cfg(feature = "semconv_experimental")]
1235pub const AZURE_COSMOSDB_REQUEST_BODY_SIZE: &str = "azure.cosmosdb.request.body.size";
1236
1237/// Cosmos DB sub status code.
1238///
1239/// ## Notes
1240///
1241/// # Examples
1242///
1243/// - `1000`
1244/// - `1002`
1245#[cfg(feature = "semconv_experimental")]
1246pub const AZURE_COSMOSDB_RESPONSE_SUB_STATUS_CODE: &str = "azure.cosmosdb.response.sub_status_code";
1247
1248/// [Azure Resource Provider Namespace](https://learn.microsoft.com/azure/azure-resource-manager/management/azure-services-resource-providers) as recognized by the client.
1249///
1250/// ## Notes
1251///
1252/// # Examples
1253///
1254/// - `"Microsoft.Storage"`
1255/// - `"Microsoft.KeyVault"`
1256/// - `"Microsoft.ServiceBus"`
1257#[cfg(feature = "semconv_experimental")]
1258pub const AZURE_RESOURCE_PROVIDER_NAMESPACE: &str = "azure.resource_provider.namespace";
1259
1260/// The unique identifier of the service request. It's generated by the Azure service and returned with the response.
1261///
1262/// ## Notes
1263///
1264/// # Examples
1265///
1266/// - `"00000000-0000-0000-0000-000000000000"`
1267#[cfg(feature = "semconv_experimental")]
1268pub const AZURE_SERVICE_REQUEST_ID: &str = "azure.service.request.id";
1269
1270/// Array of brand name and version separated by a space
1271///
1272/// ## Notes
1273///
1274/// This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.brands`).
1275///
1276/// # Examples
1277///
1278/// - `[
1279/// " Not A;Brand 99",
1280/// "Chromium 99",
1281/// "Chrome 99",
1282/// ]`
1283#[cfg(feature = "semconv_experimental")]
1284pub const BROWSER_BRANDS: &str = "browser.brands";
1285
1286/// Absolute URL of the current browser document according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986).
1287///
1288/// ## Notes
1289///
1290/// # Examples
1291///
1292/// - `"https://www.example.com/search?q=OpenTelemetry#SemConv"`
1293#[cfg(feature = "semconv_experimental")]
1294pub const BROWSER_DOCUMENT_URL_FULL: &str = "browser.document.url.full";
1295
1296/// Preferred language of the user using the browser
1297///
1298/// ## Notes
1299///
1300/// This value is intended to be taken from the Navigator API `navigator.language`.
1301///
1302/// # Examples
1303///
1304/// - `"en"`
1305/// - `"en-US"`
1306/// - `"fr"`
1307/// - `"fr-FR"`
1308#[cfg(feature = "semconv_experimental")]
1309pub const BROWSER_LANGUAGE: &str = "browser.language";
1310
1311/// A boolean that is true if the browser is running on a mobile device
1312///
1313/// ## Notes
1314///
1315/// 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
1316#[cfg(feature = "semconv_experimental")]
1317pub const BROWSER_MOBILE: &str = "browser.mobile";
1318
1319/// The platform on which the browser is running
1320///
1321/// ## Notes
1322///
1323/// 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.
1324/// 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.
1325///
1326/// # Examples
1327///
1328/// - `"Windows"`
1329/// - `"macOS"`
1330/// - `"Android"`
1331#[cfg(feature = "semconv_experimental")]
1332pub const BROWSER_PLATFORM: &str = "browser.platform";
1333
1334/// 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).
1335///
1336/// ## Notes
1337#[cfg(feature = "semconv_experimental")]
1338pub const CASSANDRA_CONSISTENCY_LEVEL: &str = "cassandra.consistency.level";
1339
1340/// The data center of the coordinating node for a query.
1341///
1342/// ## Notes
1343///
1344/// # Examples
1345///
1346/// - `"us-west-2"`
1347#[cfg(feature = "semconv_experimental")]
1348pub const CASSANDRA_COORDINATOR_DC: &str = "cassandra.coordinator.dc";
1349
1350/// The ID of the coordinating node for a query.
1351///
1352/// ## Notes
1353///
1354/// # Examples
1355///
1356/// - `"be13faa2-8574-4d71-926d-27f16cf8a7af"`
1357#[cfg(feature = "semconv_experimental")]
1358pub const CASSANDRA_COORDINATOR_ID: &str = "cassandra.coordinator.id";
1359
1360/// The fetch size used for paging, i.e. how many rows will be returned at once.
1361///
1362/// ## Notes
1363///
1364/// # Examples
1365///
1366/// - `5000`
1367#[cfg(feature = "semconv_experimental")]
1368pub const CASSANDRA_PAGE_SIZE: &str = "cassandra.page.size";
1369
1370/// Whether or not the query is idempotent.
1371///
1372/// ## Notes
1373#[cfg(feature = "semconv_experimental")]
1374pub const CASSANDRA_QUERY_IDEMPOTENT: &str = "cassandra.query.idempotent";
1375
1376/// The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively.
1377///
1378/// ## Notes
1379///
1380/// # Examples
1381///
1382/// - `0`
1383/// - `2`
1384#[cfg(feature = "semconv_experimental")]
1385pub const CASSANDRA_SPECULATIVE_EXECUTION_COUNT: &str = "cassandra.speculative_execution.count";
1386
1387/// The kind of action a pipeline run is performing.
1388///
1389/// ## Notes
1390///
1391/// # Examples
1392///
1393/// - `"BUILD"`
1394/// - `"RUN"`
1395/// - `"SYNC"`
1396#[cfg(feature = "semconv_experimental")]
1397pub const CICD_PIPELINE_ACTION_NAME: &str = "cicd.pipeline.action.name";
1398
1399/// The human readable name of the pipeline within a CI/CD system.
1400///
1401/// ## Notes
1402///
1403/// # Examples
1404///
1405/// - `"Build and Test"`
1406/// - `"Lint"`
1407/// - `"Deploy Go Project"`
1408/// - `"deploy_to_environment"`
1409#[cfg(feature = "semconv_experimental")]
1410pub const CICD_PIPELINE_NAME: &str = "cicd.pipeline.name";
1411
1412/// The result of a pipeline run.
1413///
1414/// ## Notes
1415///
1416/// # Examples
1417///
1418/// - `"success"`
1419/// - `"failure"`
1420/// - `"timeout"`
1421/// - `"skipped"`
1422#[cfg(feature = "semconv_experimental")]
1423pub const CICD_PIPELINE_RESULT: &str = "cicd.pipeline.result";
1424
1425/// The unique identifier of a pipeline run within a CI/CD system.
1426///
1427/// ## Notes
1428///
1429/// # Examples
1430///
1431/// - `"120912"`
1432#[cfg(feature = "semconv_experimental")]
1433pub const CICD_PIPELINE_RUN_ID: &str = "cicd.pipeline.run.id";
1434
1435/// The pipeline run goes through these states during its lifecycle.
1436///
1437/// ## Notes
1438///
1439/// # Examples
1440///
1441/// - `"pending"`
1442/// - `"executing"`
1443/// - `"finalizing"`
1444#[cfg(feature = "semconv_experimental")]
1445pub const CICD_PIPELINE_RUN_STATE: &str = "cicd.pipeline.run.state";
1446
1447/// The [URL](https://wikipedia.org/wiki/URL) of the pipeline run, providing the complete address in order to locate and identify the pipeline run.
1448///
1449/// ## Notes
1450///
1451/// # Examples
1452///
1453/// - `"https://github.com/open-telemetry/semantic-conventions/actions/runs/9753949763?pr=1075"`
1454#[cfg(feature = "semconv_experimental")]
1455pub const CICD_PIPELINE_RUN_URL_FULL: &str = "cicd.pipeline.run.url.full";
1456
1457/// 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.
1458///
1459/// ## Notes
1460///
1461/// # Examples
1462///
1463/// - `"Run GoLang Linter"`
1464/// - `"Go Build"`
1465/// - `"go-test"`
1466/// - `"deploy_binary"`
1467#[cfg(feature = "semconv_experimental")]
1468pub const CICD_PIPELINE_TASK_NAME: &str = "cicd.pipeline.task.name";
1469
1470/// The unique identifier of a task run within a pipeline.
1471///
1472/// ## Notes
1473///
1474/// For a given pipeline run and task, the `cicd.pipeline.task.run.id` MUST be unique within that run. For the same task across different runs of the same pipeline, the `cicd.pipeline.task.run.id` MAY remain the same, enabling correlation of `cicd.pipeline.task.run.result` values across multiple pipeline runs.
1475///
1476/// # Examples
1477///
1478/// - `"12097"`
1479#[cfg(feature = "semconv_experimental")]
1480pub const CICD_PIPELINE_TASK_RUN_ID: &str = "cicd.pipeline.task.run.id";
1481
1482/// The result of a task run.
1483///
1484/// ## Notes
1485///
1486/// # Examples
1487///
1488/// - `"success"`
1489/// - `"failure"`
1490/// - `"timeout"`
1491/// - `"skipped"`
1492#[cfg(feature = "semconv_experimental")]
1493pub const CICD_PIPELINE_TASK_RUN_RESULT: &str = "cicd.pipeline.task.run.result";
1494
1495/// 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.
1496///
1497/// ## Notes
1498///
1499/// # Examples
1500///
1501/// - `"https://github.com/open-telemetry/semantic-conventions/actions/runs/9753949763/job/26920038674?pr=1075"`
1502#[cfg(feature = "semconv_experimental")]
1503pub const CICD_PIPELINE_TASK_RUN_URL_FULL: &str = "cicd.pipeline.task.run.url.full";
1504
1505/// The type of the task within a pipeline.
1506///
1507/// ## Notes
1508///
1509/// # Examples
1510///
1511/// - `"build"`
1512/// - `"test"`
1513/// - `"deploy"`
1514#[cfg(feature = "semconv_experimental")]
1515pub const CICD_PIPELINE_TASK_TYPE: &str = "cicd.pipeline.task.type";
1516
1517/// The name of a component of the CI/CD system.
1518///
1519/// ## Notes
1520///
1521/// # Examples
1522///
1523/// - `"controller"`
1524/// - `"scheduler"`
1525/// - `"agent"`
1526#[cfg(feature = "semconv_experimental")]
1527pub const CICD_SYSTEM_COMPONENT: &str = "cicd.system.component";
1528
1529/// The unique identifier of a worker within a CI/CD system.
1530///
1531/// ## Notes
1532///
1533/// # Examples
1534///
1535/// - `"abc123"`
1536/// - `"10.0.1.2"`
1537/// - `"controller"`
1538#[cfg(feature = "semconv_experimental")]
1539pub const CICD_WORKER_ID: &str = "cicd.worker.id";
1540
1541/// The name of a worker within a CI/CD system.
1542///
1543/// ## Notes
1544///
1545/// # Examples
1546///
1547/// - `"agent-abc"`
1548/// - `"controller"`
1549/// - `"Ubuntu LTS"`
1550#[cfg(feature = "semconv_experimental")]
1551pub const CICD_WORKER_NAME: &str = "cicd.worker.name";
1552
1553/// The state of a CI/CD worker / agent.
1554///
1555/// ## Notes
1556///
1557/// # Examples
1558///
1559/// - `"idle"`
1560/// - `"busy"`
1561/// - `"down"`
1562#[cfg(feature = "semconv_experimental")]
1563pub const CICD_WORKER_STATE: &str = "cicd.worker.state";
1564
1565/// The [URL](https://wikipedia.org/wiki/URL) of the worker, providing the complete address in order to locate and identify the worker.
1566///
1567/// ## Notes
1568///
1569/// # Examples
1570///
1571/// - `"https://cicd.example.org/worker/abc123"`
1572#[cfg(feature = "semconv_experimental")]
1573pub const CICD_WORKER_URL_FULL: &str = "cicd.worker.url.full";
1574
1575/// Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
1576///
1577/// ## Notes
1578///
1579/// 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.
1580///
1581/// # Examples
1582///
1583/// - `"client.example.com"`
1584/// - `"10.1.2.80"`
1585/// - `"/tmp/my.sock"`
1586pub const CLIENT_ADDRESS: &str = "client.address";
1587
1588/// Client port number.
1589///
1590/// ## Notes
1591///
1592/// 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.
1593///
1594/// # Examples
1595///
1596/// - `65123`
1597pub const CLIENT_PORT: &str = "client.port";
1598
1599/// The cloud account ID the resource is assigned to.
1600///
1601/// ## Notes
1602///
1603/// # Examples
1604///
1605/// - `"111111111111"`
1606/// - `"opentelemetry"`
1607#[cfg(feature = "semconv_experimental")]
1608pub const CLOUD_ACCOUNT_ID: &str = "cloud.account.id";
1609
1610/// Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.
1611///
1612/// ## Notes
1613///
1614/// Availability zones are called "zones" on Alibaba Cloud and Google Cloud.
1615///
1616/// # Examples
1617///
1618/// - `"us-east-1c"`
1619#[cfg(feature = "semconv_experimental")]
1620pub const CLOUD_AVAILABILITY_ZONE: &str = "cloud.availability_zone";
1621
1622/// The cloud platform in use.
1623///
1624/// ## Notes
1625///
1626/// The prefix of the service SHOULD match the one specified in `cloud.provider`
1627#[cfg(feature = "semconv_experimental")]
1628pub const CLOUD_PLATFORM: &str = "cloud.platform";
1629
1630/// Name of the cloud provider.
1631///
1632/// ## Notes
1633#[cfg(feature = "semconv_experimental")]
1634pub const CLOUD_PROVIDER: &str = "cloud.provider";
1635
1636/// 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.
1637///
1638/// ## Notes
1639///
1640/// 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).
1641///
1642/// # Examples
1643///
1644/// - `"us-central1"`
1645/// - `"us-east-1"`
1646#[cfg(feature = "semconv_experimental")]
1647pub const CLOUD_REGION: &str = "cloud.region";
1648
1649/// 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)
1650///
1651/// ## Notes
1652///
1653/// On some cloud providers, it may not be possible to determine the full ID at startup,
1654/// so it may be necessary to set `cloud.resource_id` as a span attribute instead.
1655///
1656/// The exact value to use for `cloud.resource_id` depends on the cloud provider.
1657/// The following well-known definitions MUST be used if you set this attribute and they apply:
1658///
1659/// - **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
1660/// Take care not to use the "invoked ARN" directly but replace any
1661/// [alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html)
1662/// with the resolved function version, as the same runtime instance may be invocable with
1663/// multiple different aliases.
1664/// - **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names)
1665/// - **Azure:** The [Fully Qualified Resource ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id) of the invoked function,
1666/// *not* the function app, having the form
1667/// `/subscriptions/[SUBSCRIPTION_GUID]/resourceGroups/[RG]/providers/Microsoft.Web/sites/[FUNCAPP]/functions/[FUNC]`.
1668/// This means that a span attribute MUST be used, as an Azure function app can host multiple functions that would usually share
1669/// a TracerProvider.
1670///
1671/// # Examples
1672///
1673/// - `"arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function"`
1674/// - `"//run.googleapis.com/projects/PROJECT_ID/locations/LOCATION_ID/services/SERVICE_ID"`
1675/// - `"/subscriptions/<SUBSCRIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>"`
1676#[cfg(feature = "semconv_experimental")]
1677pub const CLOUD_RESOURCE_ID: &str = "cloud.resource_id";
1678
1679/// The [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id) uniquely identifies the event.
1680///
1681/// ## Notes
1682///
1683/// # Examples
1684///
1685/// - `"123e4567-e89b-12d3-a456-426614174000"`
1686/// - `"0001"`
1687#[cfg(feature = "semconv_experimental")]
1688pub const CLOUDEVENTS_EVENT_ID: &str = "cloudevents.event_id";
1689
1690/// The [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1) identifies the context in which an event happened.
1691///
1692/// ## Notes
1693///
1694/// # Examples
1695///
1696/// - `"https://github.com/cloudevents"`
1697/// - `"/cloudevents/spec/pull/123"`
1698/// - `"my-service"`
1699#[cfg(feature = "semconv_experimental")]
1700pub const CLOUDEVENTS_EVENT_SOURCE: &str = "cloudevents.event_source";
1701
1702/// The [version of the CloudEvents specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion) which the event uses.
1703///
1704/// ## Notes
1705///
1706/// # Examples
1707///
1708/// - `"1.0"`
1709#[cfg(feature = "semconv_experimental")]
1710pub const CLOUDEVENTS_EVENT_SPEC_VERSION: &str = "cloudevents.event_spec_version";
1711
1712/// 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).
1713///
1714/// ## Notes
1715///
1716/// # Examples
1717///
1718/// - `"mynewfile.jpg"`
1719#[cfg(feature = "semconv_experimental")]
1720pub const CLOUDEVENTS_EVENT_SUBJECT: &str = "cloudevents.event_subject";
1721
1722/// 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.
1723///
1724/// ## Notes
1725///
1726/// # Examples
1727///
1728/// - `"com.github.pull_request.opened"`
1729/// - `"com.example.object.deleted.v2"`
1730#[cfg(feature = "semconv_experimental")]
1731pub const CLOUDEVENTS_EVENT_TYPE: &str = "cloudevents.event_type";
1732
1733/// The guid of the application.
1734///
1735/// ## Notes
1736///
1737/// Application instrumentation should use the value from environment
1738/// variable `VCAP_APPLICATION.application_id`. This is the same value as
1739/// reported by `cf app [app-name] --guid`.
1740///
1741/// # Examples
1742///
1743/// - `"218fc5a9-a5f1-4b54-aa05-46717d0ab26d"`
1744#[cfg(feature = "semconv_experimental")]
1745pub const CLOUDFOUNDRY_APP_ID: &str = "cloudfoundry.app.id";
1746
1747/// The index of the application instance. 0 when just one instance is active.
1748///
1749/// ## Notes
1750///
1751/// CloudFoundry defines the `instance_id` in the [Loggregator v2 envelope](https://github.com/cloudfoundry/loggregator-api#v2-envelope).
1752/// It is used for logs and metrics emitted by CloudFoundry. It is
1753/// supposed to contain the application instance index for applications
1754/// deployed on the runtime.
1755///
1756/// Application instrumentation should use the value from environment
1757/// variable `CF_INSTANCE_INDEX`.
1758///
1759/// # Examples
1760///
1761/// - `"0"`
1762/// - `"1"`
1763#[cfg(feature = "semconv_experimental")]
1764pub const CLOUDFOUNDRY_APP_INSTANCE_ID: &str = "cloudfoundry.app.instance.id";
1765
1766/// The name of the application.
1767///
1768/// ## Notes
1769///
1770/// Application instrumentation should use the value from environment
1771/// variable `VCAP_APPLICATION.application_name`. This is the same value
1772/// as reported by `cf apps`.
1773///
1774/// # Examples
1775///
1776/// - `"my-app-name"`
1777#[cfg(feature = "semconv_experimental")]
1778pub const CLOUDFOUNDRY_APP_NAME: &str = "cloudfoundry.app.name";
1779
1780/// The guid of the CloudFoundry org the application is running in.
1781///
1782/// ## Notes
1783///
1784/// Application instrumentation should use the value from environment
1785/// variable `VCAP_APPLICATION.org_id`. This is the same value as
1786/// reported by `cf org [org-name] --guid`.
1787///
1788/// # Examples
1789///
1790/// - `"218fc5a9-a5f1-4b54-aa05-46717d0ab26d"`
1791#[cfg(feature = "semconv_experimental")]
1792pub const CLOUDFOUNDRY_ORG_ID: &str = "cloudfoundry.org.id";
1793
1794/// The name of the CloudFoundry organization the app is running in.
1795///
1796/// ## Notes
1797///
1798/// Application instrumentation should use the value from environment
1799/// variable `VCAP_APPLICATION.org_name`. This is the same value as
1800/// reported by `cf orgs`.
1801///
1802/// # Examples
1803///
1804/// - `"my-org-name"`
1805#[cfg(feature = "semconv_experimental")]
1806pub const CLOUDFOUNDRY_ORG_NAME: &str = "cloudfoundry.org.name";
1807
1808/// The UID identifying the process.
1809///
1810/// ## Notes
1811///
1812/// Application instrumentation should use the value from environment
1813/// variable `VCAP_APPLICATION.process_id`. It is supposed to be equal to
1814/// `VCAP_APPLICATION.app_id` for applications deployed to the runtime.
1815/// For system components, this could be the actual PID.
1816///
1817/// # Examples
1818///
1819/// - `"218fc5a9-a5f1-4b54-aa05-46717d0ab26d"`
1820#[cfg(feature = "semconv_experimental")]
1821pub const CLOUDFOUNDRY_PROCESS_ID: &str = "cloudfoundry.process.id";
1822
1823/// The type of process.
1824///
1825/// ## Notes
1826///
1827/// CloudFoundry applications can consist of multiple jobs. Usually the
1828/// main process will be of type `web`. There can be additional background
1829/// tasks or side-cars with different process types.
1830///
1831/// # Examples
1832///
1833/// - `"web"`
1834#[cfg(feature = "semconv_experimental")]
1835pub const CLOUDFOUNDRY_PROCESS_TYPE: &str = "cloudfoundry.process.type";
1836
1837/// The guid of the CloudFoundry space the application is running in.
1838///
1839/// ## Notes
1840///
1841/// Application instrumentation should use the value from environment
1842/// variable `VCAP_APPLICATION.space_id`. This is the same value as
1843/// reported by `cf space [space-name] --guid`.
1844///
1845/// # Examples
1846///
1847/// - `"218fc5a9-a5f1-4b54-aa05-46717d0ab26d"`
1848#[cfg(feature = "semconv_experimental")]
1849pub const CLOUDFOUNDRY_SPACE_ID: &str = "cloudfoundry.space.id";
1850
1851/// The name of the CloudFoundry space the application is running in.
1852///
1853/// ## Notes
1854///
1855/// Application instrumentation should use the value from environment
1856/// variable `VCAP_APPLICATION.space_name`. This is the same value as
1857/// reported by `cf spaces`.
1858///
1859/// # Examples
1860///
1861/// - `"my-space-name"`
1862#[cfg(feature = "semconv_experimental")]
1863pub const CLOUDFOUNDRY_SPACE_NAME: &str = "cloudfoundry.space.name";
1864
1865/// A guid or another name describing the event source.
1866///
1867/// ## Notes
1868///
1869/// CloudFoundry defines the `source_id` in the [Loggregator v2 envelope](https://github.com/cloudfoundry/loggregator-api#v2-envelope).
1870/// It is used for logs and metrics emitted by CloudFoundry. It is
1871/// supposed to contain the component name, e.g. "gorouter", for
1872/// CloudFoundry components.
1873///
1874/// When system components are instrumented, values from the
1875/// [Bosh spec](https://bosh.io/docs/jobs/#properties-spec)
1876/// should be used. The `system.id` should be set to
1877/// `spec.deployment/spec.name`.
1878///
1879/// # Examples
1880///
1881/// - `"cf/gorouter"`
1882#[cfg(feature = "semconv_experimental")]
1883pub const CLOUDFOUNDRY_SYSTEM_ID: &str = "cloudfoundry.system.id";
1884
1885/// A guid describing the concrete instance of the event source.
1886///
1887/// ## Notes
1888///
1889/// CloudFoundry defines the `instance_id` in the [Loggregator v2 envelope](https://github.com/cloudfoundry/loggregator-api#v2-envelope).
1890/// It is used for logs and metrics emitted by CloudFoundry. It is
1891/// supposed to contain the vm id for CloudFoundry components.
1892///
1893/// When system components are instrumented, values from the
1894/// [Bosh spec](https://bosh.io/docs/jobs/#properties-spec)
1895/// should be used. The `system.instance.id` should be set to `spec.id`.
1896///
1897/// # Examples
1898///
1899/// - `"218fc5a9-a5f1-4b54-aa05-46717d0ab26d"`
1900#[cfg(feature = "semconv_experimental")]
1901pub const CLOUDFOUNDRY_SYSTEM_INSTANCE_ID: &str = "cloudfoundry.system.instance.id";
1902
1903/// Deprecated, use `code.column.number`
1904///
1905/// ## Notes
1906///
1907/// # Examples
1908///
1909/// - `16`
1910#[cfg(feature = "semconv_experimental")]
1911#[deprecated(
1912 note = "{note: Replaced by `code.column.number`., reason: renamed, renamed_to: code.column.number}"
1913)]
1914pub const CODE_COLUMN: &str = "code.column";
1915
1916/// 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.
1917///
1918/// ## Notes
1919///
1920/// # Examples
1921///
1922/// - `16`
1923pub const CODE_COLUMN_NUMBER: &str = "code.column.number";
1924
1925/// 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.
1926///
1927/// ## Notes
1928///
1929/// # Examples
1930///
1931/// - `"/usr/local/MyApplication/content_root/app/index.php"`
1932pub const CODE_FILE_PATH: &str = "code.file.path";
1933
1934/// Deprecated, use `code.file.path` instead
1935///
1936/// ## Notes
1937///
1938/// # Examples
1939///
1940/// - `"/usr/local/MyApplication/content_root/app/index.php"`
1941#[cfg(feature = "semconv_experimental")]
1942#[deprecated(
1943 note = "{note: Replaced by `code.file.path`., reason: renamed, renamed_to: code.file.path}"
1944)]
1945pub const CODE_FILEPATH: &str = "code.filepath";
1946
1947/// Deprecated, use `code.function.name` instead
1948///
1949/// ## Notes
1950///
1951/// # Examples
1952///
1953/// - `"serveRequest"`
1954#[cfg(feature = "semconv_experimental")]
1955#[deprecated(
1956 note = "{note: Value should be included in `code.function.name` which is expected to be a fully-qualified name.\n, reason: uncategorized}"
1957)]
1958pub const CODE_FUNCTION: &str = "code.function";
1959
1960/// 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.
1961///
1962/// ## Notes
1963///
1964/// Values and format depends on each language runtime, thus it is impossible to provide an exhaustive list of examples.
1965/// The values are usually the same (or prefixes of) the ones found in native stack trace representation stored in
1966/// `code.stacktrace` without information on arguments.
1967///
1968/// Examples:
1969///
1970/// - Java method: `com.example.MyHttpService.serveRequest`
1971/// - Java anonymous class method: `com.mycompany.Main$1.myMethod`
1972/// - Java lambda method: `com.mycompany.Main$$Lambda/0x0000748ae4149c00.myMethod`
1973/// - PHP function: `GuzzleHttp\Client::transfer`
1974/// - Go function: `github.com/my/repo/pkg.foo.func5`
1975/// - Elixir: `OpenTelemetry.Ctx.new`
1976/// - Erlang: `opentelemetry_ctx:new`
1977/// - Rust: `playground::my_module::my_cool_func`
1978/// - C function: `fopen`
1979///
1980/// # Examples
1981///
1982/// - `"com.example.MyHttpService.serveRequest"`
1983/// - `"GuzzleHttp\\Client::transfer"`
1984/// - `"fopen"`
1985pub const CODE_FUNCTION_NAME: &str = "code.function.name";
1986
1987/// 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.
1988///
1989/// ## Notes
1990///
1991/// # Examples
1992///
1993/// - `42`
1994pub const CODE_LINE_NUMBER: &str = "code.line.number";
1995
1996/// Deprecated, use `code.line.number` instead
1997///
1998/// ## Notes
1999///
2000/// # Examples
2001///
2002/// - `42`
2003#[cfg(feature = "semconv_experimental")]
2004#[deprecated(
2005 note = "{note: Replaced by `code.line.number`., reason: renamed, renamed_to: code.line.number}"
2006)]
2007pub const CODE_LINENO: &str = "code.lineno";
2008
2009/// Deprecated, namespace is now included into `code.function.name`
2010///
2011/// ## Notes
2012///
2013/// # Examples
2014///
2015/// - `"com.example.MyHttpService"`
2016#[cfg(feature = "semconv_experimental")]
2017#[deprecated(
2018 note = "{note: Value should be included in `code.function.name` which is expected to be a fully-qualified name.\n, reason: uncategorized}"
2019)]
2020pub const CODE_NAMESPACE: &str = "code.namespace";
2021
2022/// 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.
2023///
2024/// ## Notes
2025///
2026/// # Examples
2027///
2028/// - `"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"`
2029pub const CODE_STACKTRACE: &str = "code.stacktrace";
2030
2031/// The command used to run the container (i.e. the command name).
2032///
2033/// ## Notes
2034///
2035/// If using embedded credentials or sensitive data, it is recommended to remove them to prevent potential leakage.
2036///
2037/// # Examples
2038///
2039/// - `"otelcontribcol"`
2040#[cfg(feature = "semconv_experimental")]
2041pub const CONTAINER_COMMAND: &str = "container.command";
2042
2043/// All the command arguments (including the command/executable itself) run by the container.
2044///
2045/// ## Notes
2046///
2047/// # Examples
2048///
2049/// - `[
2050/// "otelcontribcol",
2051/// "--config",
2052/// "config.yaml",
2053/// ]`
2054#[cfg(feature = "semconv_experimental")]
2055pub const CONTAINER_COMMAND_ARGS: &str = "container.command_args";
2056
2057/// The full command run by the container as a single string representing the full command.
2058///
2059/// ## Notes
2060///
2061/// # Examples
2062///
2063/// - `"otelcontribcol --config config.yaml"`
2064#[cfg(feature = "semconv_experimental")]
2065pub const CONTAINER_COMMAND_LINE: &str = "container.command_line";
2066
2067/// Deprecated, use `cpu.mode` instead.
2068///
2069/// ## Notes
2070///
2071/// # Examples
2072///
2073/// - `"user"`
2074/// - `"kernel"`
2075#[cfg(feature = "semconv_experimental")]
2076#[deprecated(note = "{note: Replaced by `cpu.mode`., reason: renamed, renamed_to: cpu.mode}")]
2077pub const CONTAINER_CPU_STATE: &str = "container.cpu.state";
2078
2079/// The name of the CSI ([Container Storage Interface](https://github.com/container-storage-interface/spec)) plugin used by the volume.
2080///
2081/// ## Notes
2082///
2083/// This can sometimes be referred to as a "driver" in CSI implementations. This should represent the `name` field of the GetPluginInfo RPC.
2084///
2085/// # Examples
2086///
2087/// - `"pd.csi.storage.gke.io"`
2088#[cfg(feature = "semconv_experimental")]
2089pub const CONTAINER_CSI_PLUGIN_NAME: &str = "container.csi.plugin.name";
2090
2091/// The unique volume ID returned by the CSI ([Container Storage Interface](https://github.com/container-storage-interface/spec)) plugin.
2092///
2093/// ## Notes
2094///
2095/// This can sometimes be referred to as a "volume handle" in CSI implementations. This should represent the `Volume.volume_id` field in CSI spec.
2096///
2097/// # Examples
2098///
2099/// - `"projects/my-gcp-project/zones/my-gcp-zone/disks/my-gcp-disk"`
2100#[cfg(feature = "semconv_experimental")]
2101pub const CONTAINER_CSI_VOLUME_ID: &str = "container.csi.volume.id";
2102
2103/// 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.
2104///
2105/// ## Notes
2106///
2107/// # Examples
2108///
2109/// - `"a3bf90e006b2"`
2110pub const CONTAINER_ID: &str = "container.id";
2111
2112/// Runtime specific image identifier. Usually a hash algorithm followed by a UUID.
2113///
2114/// ## Notes
2115///
2116/// 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/reference/api/engine/version/v1.52/#tag/Container/operation/ContainerInspect) endpoint.
2117/// K8s defines a link to the container registry repository with digest `"imageID": "registry.azurecr.io /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"`.
2118/// 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.
2119///
2120/// # Examples
2121///
2122/// - `"sha256:19c92d0a00d1b66d897bceaa7319bee0dd38a10a851c60bcec9474aa3f01e50f"`
2123#[cfg(feature = "semconv_experimental")]
2124pub const CONTAINER_IMAGE_ID: &str = "container.image.id";
2125
2126/// Name of the image the container was built on.
2127///
2128/// ## Notes
2129///
2130/// # Examples
2131///
2132/// - `"gcr.io/opentelemetry/operator"`
2133pub const CONTAINER_IMAGE_NAME: &str = "container.image.name";
2134
2135/// Repo digests of the container image as provided by the container runtime.
2136///
2137/// ## Notes
2138///
2139/// [Docker](https://docs.docker.com/reference/api/engine/version/v1.52/#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.
2140///
2141/// # Examples
2142///
2143/// - `[
2144/// "example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb",
2145/// "internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578",
2146/// ]`
2147pub const CONTAINER_IMAGE_REPO_DIGESTS: &str = "container.image.repo_digests";
2148
2149/// Container image tags. An example can be found in [Docker Image Inspect](https://docs.docker.com/reference/api/engine/version/v1.52/#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>`.
2150///
2151/// ## Notes
2152///
2153/// # Examples
2154///
2155/// - `[
2156/// "v1.27.1",
2157/// "3.5.7-0",
2158/// ]`
2159pub const CONTAINER_IMAGE_TAGS: &str = "container.image.tags";
2160
2161/// Container labels, ``key`` being the label name, the value being the label value.
2162///
2163/// ## Notes
2164///
2165/// For example, a docker container label `app` with value `nginx` SHOULD be recorded as the `container.label.app` attribute with value `"nginx"`.
2166///
2167/// # Examples
2168///
2169/// - `"nginx"`
2170#[cfg(feature = "semconv_experimental")]
2171pub const CONTAINER_LABEL: &str = "container.label";
2172
2173/// Deprecated, use `container.label` instead.
2174///
2175/// ## Notes
2176///
2177/// # Examples
2178///
2179/// - `"nginx"`
2180#[cfg(feature = "semconv_experimental")]
2181#[deprecated(
2182 note = "{note: Replaced by `container.label`., reason: renamed, renamed_to: container.label}"
2183)]
2184pub const CONTAINER_LABELS: &str = "container.labels";
2185
2186/// Container name used by container runtime.
2187///
2188/// ## Notes
2189///
2190/// # Examples
2191///
2192/// - `"opentelemetry-autoconf"`
2193#[cfg(feature = "semconv_experimental")]
2194pub const CONTAINER_NAME: &str = "container.name";
2195
2196/// The container runtime managing this container.
2197///
2198/// ## Notes
2199///
2200/// # Examples
2201///
2202/// - `"docker"`
2203/// - `"containerd"`
2204/// - `"rkt"`
2205#[cfg(feature = "semconv_experimental")]
2206#[deprecated(
2207 note = "{note: Replaced by `container.runtime.name`., reason: renamed, renamed_to: container.runtime.name}"
2208)]
2209pub const CONTAINER_RUNTIME: &str = "container.runtime";
2210
2211/// A description about the runtime which could include, for example details about the CRI/API version being used or other customizations.
2212///
2213/// ## Notes
2214///
2215/// # Examples
2216///
2217/// - `"docker://19.3.1 - CRI: 1.22.0"`
2218#[cfg(feature = "semconv_experimental")]
2219pub const CONTAINER_RUNTIME_DESCRIPTION: &str = "container.runtime.description";
2220
2221/// The container runtime managing this container.
2222///
2223/// ## Notes
2224///
2225/// # Examples
2226///
2227/// - `"docker"`
2228/// - `"containerd"`
2229/// - `"rkt"`
2230#[cfg(feature = "semconv_experimental")]
2231pub const CONTAINER_RUNTIME_NAME: &str = "container.runtime.name";
2232
2233/// The version of the runtime of this process, as returned by the runtime without modification.
2234///
2235/// ## Notes
2236///
2237/// # Examples
2238///
2239/// - `"1.0.0"`
2240#[cfg(feature = "semconv_experimental")]
2241pub const CONTAINER_RUNTIME_VERSION: &str = "container.runtime.version";
2242
2243/// The logical CPU number \[0..n-1\]
2244///
2245/// ## Notes
2246///
2247/// # Examples
2248///
2249/// - `1`
2250#[cfg(feature = "semconv_experimental")]
2251pub const CPU_LOGICAL_NUMBER: &str = "cpu.logical_number";
2252
2253/// The mode of the CPU
2254///
2255/// ## Notes
2256///
2257/// # Examples
2258///
2259/// - `"user"`
2260/// - `"system"`
2261#[cfg(feature = "semconv_experimental")]
2262pub const CPU_MODE: &str = "cpu.mode";
2263
2264/// Value of the garbage collector collection generation.
2265///
2266/// ## Notes
2267///
2268/// # Examples
2269///
2270/// - `0`
2271/// - `1`
2272/// - `2`
2273#[cfg(feature = "semconv_experimental")]
2274pub const CPYTHON_GC_GENERATION: &str = "cpython.gc.generation";
2275
2276/// Deprecated, use `cassandra.consistency.level` instead.
2277///
2278/// ## Notes
2279#[cfg(feature = "semconv_experimental")]
2280#[deprecated(
2281 note = "{note: Replaced by `cassandra.consistency.level`., reason: renamed, renamed_to: cassandra.consistency.level}"
2282)]
2283pub const DB_CASSANDRA_CONSISTENCY_LEVEL: &str = "db.cassandra.consistency_level";
2284
2285/// Deprecated, use `cassandra.coordinator.dc` instead.
2286///
2287/// ## Notes
2288///
2289/// # Examples
2290///
2291/// - `"us-west-2"`
2292#[cfg(feature = "semconv_experimental")]
2293#[deprecated(
2294 note = "{note: Replaced by `cassandra.coordinator.dc`., reason: renamed, renamed_to: cassandra.coordinator.dc}"
2295)]
2296pub const DB_CASSANDRA_COORDINATOR_DC: &str = "db.cassandra.coordinator.dc";
2297
2298/// Deprecated, use `cassandra.coordinator.id` instead.
2299///
2300/// ## Notes
2301///
2302/// # Examples
2303///
2304/// - `"be13faa2-8574-4d71-926d-27f16cf8a7af"`
2305#[cfg(feature = "semconv_experimental")]
2306#[deprecated(
2307 note = "{note: Replaced by `cassandra.coordinator.id`., reason: renamed, renamed_to: cassandra.coordinator.id}"
2308)]
2309pub const DB_CASSANDRA_COORDINATOR_ID: &str = "db.cassandra.coordinator.id";
2310
2311/// Deprecated, use `cassandra.query.idempotent` instead.
2312///
2313/// ## Notes
2314#[cfg(feature = "semconv_experimental")]
2315#[deprecated(
2316 note = "{note: Replaced by `cassandra.query.idempotent`., reason: renamed, renamed_to: cassandra.query.idempotent}"
2317)]
2318pub const DB_CASSANDRA_IDEMPOTENCE: &str = "db.cassandra.idempotence";
2319
2320/// Deprecated, use `cassandra.page.size` instead.
2321///
2322/// ## Notes
2323///
2324/// # Examples
2325///
2326/// - `5000`
2327#[cfg(feature = "semconv_experimental")]
2328#[deprecated(
2329 note = "{note: Replaced by `cassandra.page.size`., reason: renamed, renamed_to: cassandra.page.size}"
2330)]
2331pub const DB_CASSANDRA_PAGE_SIZE: &str = "db.cassandra.page_size";
2332
2333/// Deprecated, use `cassandra.speculative_execution.count` instead.
2334///
2335/// ## Notes
2336///
2337/// # Examples
2338///
2339/// - `0`
2340/// - `2`
2341#[cfg(feature = "semconv_experimental")]
2342#[deprecated(
2343 note = "{note: Replaced by `cassandra.speculative_execution.count`., reason: renamed, renamed_to: cassandra.speculative_execution.count}"
2344)]
2345pub const DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT: &str =
2346 "db.cassandra.speculative_execution_count";
2347
2348/// Deprecated, use `db.collection.name` instead.
2349///
2350/// ## Notes
2351///
2352/// # Examples
2353///
2354/// - `"mytable"`
2355#[cfg(feature = "semconv_experimental")]
2356#[deprecated(
2357 note = "{note: Replaced by `db.collection.name`., reason: renamed, renamed_to: db.collection.name}"
2358)]
2359pub const DB_CASSANDRA_TABLE: &str = "db.cassandra.table";
2360
2361/// 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.
2362///
2363/// ## Notes
2364///
2365/// # Examples
2366///
2367/// - `"myDataSource"`
2368#[cfg(feature = "semconv_experimental")]
2369pub const DB_CLIENT_CONNECTION_POOL_NAME: &str = "db.client.connection.pool.name";
2370
2371/// The state of a connection in the pool
2372///
2373/// ## Notes
2374///
2375/// # Examples
2376///
2377/// - `"idle"`
2378#[cfg(feature = "semconv_experimental")]
2379pub const DB_CLIENT_CONNECTION_STATE: &str = "db.client.connection.state";
2380
2381/// Deprecated, use `db.client.connection.pool.name` instead.
2382///
2383/// ## Notes
2384///
2385/// # Examples
2386///
2387/// - `"myDataSource"`
2388#[cfg(feature = "semconv_experimental")]
2389#[deprecated(
2390 note = "{note: Replaced by `db.client.connection.pool.name`., reason: renamed, renamed_to: db.client.connection.pool.name}"
2391)]
2392pub const DB_CLIENT_CONNECTIONS_POOL_NAME: &str = "db.client.connections.pool.name";
2393
2394/// Deprecated, use `db.client.connection.state` instead.
2395///
2396/// ## Notes
2397///
2398/// # Examples
2399///
2400/// - `"idle"`
2401#[cfg(feature = "semconv_experimental")]
2402#[deprecated(
2403 note = "{note: Replaced by `db.client.connection.state`., reason: renamed, renamed_to: db.client.connection.state}"
2404)]
2405pub const DB_CLIENT_CONNECTIONS_STATE: &str = "db.client.connections.state";
2406
2407/// The name of a collection (table, container) within the database.
2408///
2409/// ## Notes
2410///
2411/// It is RECOMMENDED to capture the value as provided by the application
2412/// without attempting to do any case normalization.
2413///
2414/// The collection name SHOULD NOT be extracted from `db.query.text`,
2415/// when the database system supports query text with multiple collections
2416/// in non-batch operations.
2417///
2418/// For batch operations, if the individual operations are known to have the same
2419/// collection name then that collection name SHOULD be used.
2420///
2421/// # Examples
2422///
2423/// - `"public.users"`
2424/// - `"customers"`
2425pub const DB_COLLECTION_NAME: &str = "db.collection.name";
2426
2427/// Deprecated, use `server.address`, `server.port` attributes instead.
2428///
2429/// ## Notes
2430///
2431/// # Examples
2432///
2433/// - `"Server=(localdb)\\v11.0;Integrated Security=true;"`
2434#[cfg(feature = "semconv_experimental")]
2435#[deprecated(
2436 note = "{note: Replaced by `server.address` and `server.port`.\n, reason: uncategorized}"
2437)]
2438pub const DB_CONNECTION_STRING: &str = "db.connection_string";
2439
2440/// Deprecated, use `azure.client.id` instead.
2441///
2442/// ## Notes
2443///
2444/// # Examples
2445///
2446/// - `"3ba4827d-4422-483f-b59f-85b74211c11d"`
2447#[cfg(feature = "semconv_experimental")]
2448#[deprecated(
2449 note = "{note: Replaced by `azure.client.id`., reason: renamed, renamed_to: azure.client.id}"
2450)]
2451pub const DB_COSMOSDB_CLIENT_ID: &str = "db.cosmosdb.client_id";
2452
2453/// Deprecated, use `azure.cosmosdb.connection.mode` instead.
2454///
2455/// ## Notes
2456#[cfg(feature = "semconv_experimental")]
2457#[deprecated(
2458 note = "{note: Replaced by `azure.cosmosdb.connection.mode`., reason: renamed, renamed_to: azure.cosmosdb.connection.mode}"
2459)]
2460pub const DB_COSMOSDB_CONNECTION_MODE: &str = "db.cosmosdb.connection_mode";
2461
2462/// Deprecated, use `cosmosdb.consistency.level` instead.
2463///
2464/// ## Notes
2465///
2466/// # Examples
2467///
2468/// - `"Eventual"`
2469/// - `"ConsistentPrefix"`
2470/// - `"BoundedStaleness"`
2471/// - `"Strong"`
2472/// - `"Session"`
2473#[cfg(feature = "semconv_experimental")]
2474#[deprecated(
2475 note = "{note: Replaced by `azure.cosmosdb.consistency.level`., reason: renamed, renamed_to: azure.cosmosdb.consistency.level}"
2476)]
2477pub const DB_COSMOSDB_CONSISTENCY_LEVEL: &str = "db.cosmosdb.consistency_level";
2478
2479/// Deprecated, use `db.collection.name` instead.
2480///
2481/// ## Notes
2482///
2483/// # Examples
2484///
2485/// - `"mytable"`
2486#[cfg(feature = "semconv_experimental")]
2487#[deprecated(
2488 note = "{note: Replaced by `db.collection.name`., reason: renamed, renamed_to: db.collection.name}"
2489)]
2490pub const DB_COSMOSDB_CONTAINER: &str = "db.cosmosdb.container";
2491
2492/// Deprecated, no replacement at this time.
2493///
2494/// ## Notes
2495#[cfg(feature = "semconv_experimental")]
2496#[deprecated(note = "{note: Removed, no replacement at this time.\n, reason: obsoleted}")]
2497pub const DB_COSMOSDB_OPERATION_TYPE: &str = "db.cosmosdb.operation_type";
2498
2499/// Deprecated, use `azure.cosmosdb.operation.contacted_regions` instead.
2500///
2501/// ## Notes
2502///
2503/// # Examples
2504///
2505/// - `[
2506/// "North Central US",
2507/// "Australia East",
2508/// "Australia Southeast",
2509/// ]`
2510#[cfg(feature = "semconv_experimental")]
2511#[deprecated(
2512 note = "{note: Replaced by `azure.cosmosdb.operation.contacted_regions`., reason: renamed, renamed_to: azure.cosmosdb.operation.contacted_regions}"
2513)]
2514pub const DB_COSMOSDB_REGIONS_CONTACTED: &str = "db.cosmosdb.regions_contacted";
2515
2516/// Deprecated, use `azure.cosmosdb.operation.request_charge` instead.
2517///
2518/// ## Notes
2519///
2520/// # Examples
2521///
2522/// - `46.18`
2523/// - `1.0`
2524#[cfg(feature = "semconv_experimental")]
2525#[deprecated(
2526 note = "{note: Replaced by `azure.cosmosdb.operation.request_charge`., reason: renamed, renamed_to: azure.cosmosdb.operation.request_charge}"
2527)]
2528pub const DB_COSMOSDB_REQUEST_CHARGE: &str = "db.cosmosdb.request_charge";
2529
2530/// Deprecated, use `azure.cosmosdb.request.body.size` instead.
2531///
2532/// ## Notes
2533#[cfg(feature = "semconv_experimental")]
2534#[deprecated(
2535 note = "{note: Replaced by `azure.cosmosdb.request.body.size`., reason: renamed, renamed_to: azure.cosmosdb.request.body.size}"
2536)]
2537pub const DB_COSMOSDB_REQUEST_CONTENT_LENGTH: &str = "db.cosmosdb.request_content_length";
2538
2539/// Deprecated, use `db.response.status_code` instead.
2540///
2541/// ## Notes
2542///
2543/// # Examples
2544///
2545/// - `200`
2546/// - `201`
2547#[cfg(feature = "semconv_experimental")]
2548#[deprecated(note = "{note: Use `db.response.status_code` instead., reason: uncategorized}")]
2549pub const DB_COSMOSDB_STATUS_CODE: &str = "db.cosmosdb.status_code";
2550
2551/// Deprecated, use `azure.cosmosdb.response.sub_status_code` instead.
2552///
2553/// ## Notes
2554///
2555/// # Examples
2556///
2557/// - `1000`
2558/// - `1002`
2559#[cfg(feature = "semconv_experimental")]
2560#[deprecated(
2561 note = "{note: Replaced by `azure.cosmosdb.response.sub_status_code`., reason: renamed, renamed_to: azure.cosmosdb.response.sub_status_code}"
2562)]
2563pub const DB_COSMOSDB_SUB_STATUS_CODE: &str = "db.cosmosdb.sub_status_code";
2564
2565/// Deprecated, use `db.namespace` instead.
2566///
2567/// ## Notes
2568///
2569/// # Examples
2570///
2571/// - `"e9106fc68e3044f0b1475b04bf4ffd5f"`
2572#[cfg(feature = "semconv_experimental")]
2573#[deprecated(
2574 note = "{note: Replaced by `db.namespace`., reason: renamed, renamed_to: db.namespace}"
2575)]
2576pub const DB_ELASTICSEARCH_CLUSTER_NAME: &str = "db.elasticsearch.cluster.name";
2577
2578/// Deprecated, use `elasticsearch.node.name` instead.
2579///
2580/// ## Notes
2581///
2582/// # Examples
2583///
2584/// - `"instance-0000000001"`
2585#[cfg(feature = "semconv_experimental")]
2586#[deprecated(
2587 note = "{note: Replaced by `elasticsearch.node.name`., reason: renamed, renamed_to: elasticsearch.node.name}"
2588)]
2589pub const DB_ELASTICSEARCH_NODE_NAME: &str = "db.elasticsearch.node.name";
2590
2591/// Deprecated, use `db.operation.parameter` instead.
2592///
2593/// ## Notes
2594///
2595/// # Examples
2596///
2597/// - `"test-index"`
2598/// - `"123"`
2599#[cfg(feature = "semconv_experimental")]
2600#[deprecated(
2601 note = "{note: Replaced by `db.operation.parameter`., reason: renamed, renamed_to: db.operation.parameter}"
2602)]
2603pub const DB_ELASTICSEARCH_PATH_PARTS: &str = "db.elasticsearch.path_parts";
2604
2605/// Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead.
2606///
2607/// ## Notes
2608///
2609/// # Examples
2610///
2611/// - `"mysql-e26b99z.example.com"`
2612#[cfg(feature = "semconv_experimental")]
2613#[deprecated(
2614 note = "{note: Removed, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead.\n, reason: obsoleted}"
2615)]
2616pub const DB_INSTANCE_ID: &str = "db.instance.id";
2617
2618/// Removed, no replacement at this time.
2619///
2620/// ## Notes
2621///
2622/// # Examples
2623///
2624/// - `"org.postgresql.Driver"`
2625/// - `"com.microsoft.sqlserver.jdbc.SQLServerDriver"`
2626#[cfg(feature = "semconv_experimental")]
2627#[deprecated(note = "{note: Removed, no replacement at this time.\n, reason: obsoleted}")]
2628pub const DB_JDBC_DRIVER_CLASSNAME: &str = "db.jdbc.driver_classname";
2629
2630/// Deprecated, use `db.collection.name` instead.
2631///
2632/// ## Notes
2633///
2634/// # Examples
2635///
2636/// - `"mytable"`
2637#[cfg(feature = "semconv_experimental")]
2638#[deprecated(
2639 note = "{note: Replaced by `db.collection.name`., reason: renamed, renamed_to: db.collection.name}"
2640)]
2641pub const DB_MONGODB_COLLECTION: &str = "db.mongodb.collection";
2642
2643/// Deprecated, SQL Server instance is now populated as a part of `db.namespace` attribute.
2644///
2645/// ## Notes
2646///
2647/// # Examples
2648///
2649/// - `"MSSQLSERVER"`
2650#[cfg(feature = "semconv_experimental")]
2651#[deprecated(note = "{note: Removed, no replacement at this time., reason: obsoleted}")]
2652pub const DB_MSSQL_INSTANCE_NAME: &str = "db.mssql.instance_name";
2653
2654/// Deprecated, use `db.namespace` instead.
2655///
2656/// ## Notes
2657///
2658/// # Examples
2659///
2660/// - `"customers"`
2661/// - `"main"`
2662#[cfg(feature = "semconv_experimental")]
2663#[deprecated(
2664 note = "{note: Replaced by `db.namespace`., reason: renamed, renamed_to: db.namespace}"
2665)]
2666pub const DB_NAME: &str = "db.name";
2667
2668/// The name of the database, fully qualified within the server address and port.
2669///
2670/// ## Notes
2671///
2672/// 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.
2673/// Semantic conventions for individual database systems SHOULD document what `db.namespace` means in the context of that system.
2674/// It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization.
2675///
2676/// # Examples
2677///
2678/// - `"customers"`
2679/// - `"test.users"`
2680pub const DB_NAMESPACE: &str = "db.namespace";
2681
2682/// Deprecated, use `db.operation.name` instead.
2683///
2684/// ## Notes
2685///
2686/// # Examples
2687///
2688/// - `"findAndModify"`
2689/// - `"HMSET"`
2690/// - `"SELECT"`
2691#[cfg(feature = "semconv_experimental")]
2692#[deprecated(
2693 note = "{note: Replaced by `db.operation.name`., reason: renamed, renamed_to: db.operation.name}"
2694)]
2695pub const DB_OPERATION: &str = "db.operation";
2696
2697/// The number of queries included in a batch operation.
2698///
2699/// ## Notes
2700///
2701/// Operations are only considered batches when they contain two or more operations, and so `db.operation.batch.size` SHOULD never be `1`.
2702///
2703/// # Examples
2704///
2705/// - `2`
2706/// - `3`
2707/// - `4`
2708pub const DB_OPERATION_BATCH_SIZE: &str = "db.operation.batch.size";
2709
2710/// The name of the operation or command being executed.
2711///
2712/// ## Notes
2713///
2714/// It is RECOMMENDED to capture the value as provided by the application
2715/// without attempting to do any case normalization.
2716///
2717/// The operation name SHOULD NOT be extracted from `db.query.text`,
2718/// when the database system supports query text with multiple operations
2719/// in non-batch operations.
2720///
2721/// If spaces can occur in the operation name, multiple consecutive spaces
2722/// SHOULD be normalized to a single space.
2723///
2724/// For batch operations, if the individual operations are known to have the same operation name
2725/// then that operation name SHOULD be used prepended by `BATCH `,
2726/// otherwise `db.operation.name` SHOULD be `BATCH` or some other database
2727/// system specific term if more applicable.
2728///
2729/// # Examples
2730///
2731/// - `"findAndModify"`
2732/// - `"HMSET"`
2733/// - `"SELECT"`
2734pub const DB_OPERATION_NAME: &str = "db.operation.name";
2735
2736/// A database operation parameter, with ``key`` being the parameter name, and the attribute value being a string representation of the parameter value.
2737///
2738/// ## Notes
2739///
2740/// For example, a client-side maximum number of rows to read from the database
2741/// MAY be recorded as the `db.operation.parameter.max_rows` attribute.
2742///
2743/// `db.query.text` parameters SHOULD be captured using `db.query.parameter.[key]`
2744/// instead of `db.operation.parameter.[key]`.
2745///
2746/// # Examples
2747///
2748/// - `"someval"`
2749/// - `"55"`
2750#[cfg(feature = "semconv_experimental")]
2751pub const DB_OPERATION_PARAMETER: &str = "db.operation.parameter";
2752
2753/// A database query parameter, with ``key`` being the parameter name, and the attribute value being a string representation of the parameter value.
2754///
2755/// ## Notes
2756///
2757/// If a query parameter has no name and instead is referenced only by index,
2758/// then `[key]` SHOULD be the 0-based index.
2759///
2760/// `db.query.parameter.[key]` SHOULD match
2761/// up with the parameterized placeholders present in `db.query.text`.
2762///
2763/// It is RECOMMENDED to capture the value as provided by the application
2764/// without attempting to do any case normalization.
2765///
2766/// `db.query.parameter.[key]` SHOULD NOT be captured on batch operations.
2767///
2768/// Examples:
2769///
2770/// - For a query `SELECT * FROM users where username = %s` with the parameter `"jdoe"`,
2771/// the attribute `db.query.parameter.0` SHOULD be set to `"jdoe"`.
2772/// - For a query `"SELECT * FROM users WHERE username = %(userName)s;` with parameter
2773/// `userName = "jdoe"`, the attribute `db.query.parameter.userName` SHOULD be set to `"jdoe"`.
2774///
2775/// # Examples
2776///
2777/// - `"someval"`
2778/// - `"55"`
2779#[cfg(feature = "semconv_experimental")]
2780pub const DB_QUERY_PARAMETER: &str = "db.query.parameter";
2781
2782/// Low cardinality summary of a database query.
2783///
2784/// ## Notes
2785///
2786/// The query summary describes a class of database queries and is useful
2787/// as a grouping key, especially when analyzing telemetry for database
2788/// calls involving complex queries.
2789///
2790/// Summary may be available to the instrumentation through
2791/// instrumentation hooks or other means. If it is not available, instrumentations
2792/// that support query parsing SHOULD generate a summary following
2793/// [Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query)
2794/// section.
2795///
2796/// For batch operations, if the individual operations are known to have the same query summary
2797/// then that query summary SHOULD be used prepended by `BATCH `,
2798/// otherwise `db.query.summary` SHOULD be `BATCH` or some other database
2799/// system specific term if more applicable.
2800///
2801/// # Examples
2802///
2803/// - `"SELECT wuser_table"`
2804/// - `"INSERT shipping_details SELECT orders"`
2805/// - `"get user by id"`
2806pub const DB_QUERY_SUMMARY: &str = "db.query.summary";
2807
2808/// The database query being executed.
2809///
2810/// ## Notes
2811///
2812/// For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext).
2813/// 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.
2814/// 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.
2815///
2816/// # Examples
2817///
2818/// - `"SELECT * FROM wuser_table where username = ?"`
2819/// - `"SET mykey ?"`
2820pub const DB_QUERY_TEXT: &str = "db.query.text";
2821
2822/// Deprecated, use `db.namespace` instead.
2823///
2824/// ## Notes
2825///
2826/// # Examples
2827///
2828/// - `0`
2829/// - `1`
2830/// - `15`
2831#[cfg(feature = "semconv_experimental")]
2832#[deprecated(note = "{note: Uncategorized., reason: uncategorized}")]
2833pub const DB_REDIS_DATABASE_INDEX: &str = "db.redis.database_index";
2834
2835/// Number of rows returned by the operation.
2836///
2837/// ## Notes
2838///
2839/// # Examples
2840///
2841/// - `10`
2842/// - `30`
2843/// - `1000`
2844#[cfg(feature = "semconv_experimental")]
2845pub const DB_RESPONSE_RETURNED_ROWS: &str = "db.response.returned_rows";
2846
2847/// Database response status code.
2848///
2849/// ## Notes
2850///
2851/// 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.
2852/// Semantic conventions for individual database systems SHOULD document what `db.response.status_code` means in the context of that system.
2853///
2854/// # Examples
2855///
2856/// - `"102"`
2857/// - `"ORA-17002"`
2858/// - `"08P01"`
2859/// - `"404"`
2860pub const DB_RESPONSE_STATUS_CODE: &str = "db.response.status_code";
2861
2862/// Deprecated, use `db.collection.name` instead.
2863///
2864/// ## Notes
2865///
2866/// # Examples
2867///
2868/// - `"mytable"`
2869#[cfg(feature = "semconv_experimental")]
2870#[deprecated(
2871 note = "{note: Replaced by `db.collection.name`, but only if not extracting the value from `db.query.text`., reason: uncategorized}"
2872)]
2873pub const DB_SQL_TABLE: &str = "db.sql.table";
2874
2875/// The database statement being executed.
2876///
2877/// ## Notes
2878///
2879/// # Examples
2880///
2881/// - `"SELECT * FROM wuser_table"`
2882/// - `"SET mykey \"WuValue\""`
2883#[cfg(feature = "semconv_experimental")]
2884#[deprecated(
2885 note = "{note: Replaced by `db.query.text`., reason: renamed, renamed_to: db.query.text}"
2886)]
2887pub const DB_STATEMENT: &str = "db.statement";
2888
2889/// The name of a stored procedure within the database.
2890///
2891/// ## Notes
2892///
2893/// It is RECOMMENDED to capture the value as provided by the application
2894/// without attempting to do any case normalization.
2895///
2896/// For batch operations, if the individual operations are known to have the same
2897/// stored procedure name then that stored procedure name SHOULD be used.
2898///
2899/// # Examples
2900///
2901/// - `"GetCustomer"`
2902pub const DB_STORED_PROCEDURE_NAME: &str = "db.stored_procedure.name";
2903
2904/// Deprecated, use `db.system.name` instead.
2905///
2906/// ## Notes
2907#[cfg(feature = "semconv_experimental")]
2908#[deprecated(
2909 note = "{note: Replaced by `db.system.name`., reason: renamed, renamed_to: db.system.name}"
2910)]
2911pub const DB_SYSTEM: &str = "db.system";
2912
2913/// The database management system (DBMS) product as identified by the client instrumentation.
2914///
2915/// ## Notes
2916///
2917/// 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
2918pub const DB_SYSTEM_NAME: &str = "db.system.name";
2919
2920/// Deprecated, no replacement at this time.
2921///
2922/// ## Notes
2923///
2924/// # Examples
2925///
2926/// - `"readonly_user"`
2927/// - `"reporting_user"`
2928#[cfg(feature = "semconv_experimental")]
2929#[deprecated(note = "{note: Removed, no replacement at this time., reason: obsoleted}")]
2930pub const DB_USER: &str = "db.user";
2931
2932/// Deprecated, use `deployment.environment.name` instead.
2933///
2934/// ## Notes
2935///
2936/// # Examples
2937///
2938/// - `"staging"`
2939/// - `"production"`
2940#[cfg(feature = "semconv_experimental")]
2941#[deprecated(
2942 note = "{note: Replaced by `deployment.environment.name`., reason: renamed, renamed_to: deployment.environment.name}"
2943)]
2944pub const DEPLOYMENT_ENVIRONMENT: &str = "deployment.environment";
2945
2946/// Name of the [deployment environment](https://wikipedia.org/wiki/Deployment_environment) (aka deployment tier).
2947///
2948/// ## Notes
2949///
2950/// `deployment.environment.name` does not affect the uniqueness constraints defined through
2951/// the `service.namespace`, `service.name` and `service.instance.id` resource attributes.
2952/// This implies that resources carrying the following attribute combinations MUST be
2953/// considered to be identifying the same service:
2954///
2955/// - `service.name=frontend`, `deployment.environment.name=production`
2956/// - `service.name=frontend`, `deployment.environment.name=staging`.
2957///
2958/// # Examples
2959///
2960/// - `"staging"`
2961/// - `"production"`
2962pub const DEPLOYMENT_ENVIRONMENT_NAME: &str = "deployment.environment.name";
2963
2964/// The id of the deployment.
2965///
2966/// ## Notes
2967///
2968/// # Examples
2969///
2970/// - `"1208"`
2971#[cfg(feature = "semconv_experimental")]
2972pub const DEPLOYMENT_ID: &str = "deployment.id";
2973
2974/// The name of the deployment.
2975///
2976/// ## Notes
2977///
2978/// # Examples
2979///
2980/// - `"deploy my app"`
2981/// - `"deploy-frontend"`
2982#[cfg(feature = "semconv_experimental")]
2983pub const DEPLOYMENT_NAME: &str = "deployment.name";
2984
2985/// The status of the deployment.
2986///
2987/// ## Notes
2988#[cfg(feature = "semconv_experimental")]
2989pub const DEPLOYMENT_STATUS: &str = "deployment.status";
2990
2991/// Destination address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
2992///
2993/// ## Notes
2994///
2995/// 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.
2996///
2997/// # Examples
2998///
2999/// - `"destination.example.com"`
3000/// - `"10.1.2.80"`
3001/// - `"/tmp/my.sock"`
3002#[cfg(feature = "semconv_experimental")]
3003pub const DESTINATION_ADDRESS: &str = "destination.address";
3004
3005/// Destination port number
3006///
3007/// ## Notes
3008///
3009/// # Examples
3010///
3011/// - `3389`
3012/// - `2888`
3013#[cfg(feature = "semconv_experimental")]
3014pub const DESTINATION_PORT: &str = "destination.port";
3015
3016/// A unique identifier representing the device
3017///
3018/// ## Notes
3019///
3020/// Its value SHOULD be identical for all apps on a device and it SHOULD NOT change if an app is uninstalled and re-installed.
3021/// However, it might be resettable by the user for all apps on a device.
3022/// Hardware IDs (e.g. vendor-specific serial number, IMEI or MAC address) MAY be used as values.
3023///
3024/// More information about Android identifier best practices can be found in the [Android user data IDs guide](https://developer.android.com/training/articles/user-data-ids).
3025///
3026/// \] \[!WARNING\]
3027/// \]
3028/// \] 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,
3029/// \] ensure you do your own due diligence.
3030/// \]
3031/// \] 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.
3032/// \] However, it may be appropriate for specific enterprise scenarios, such as kiosk devices or enterprise-managed devices, with appropriate compliance clearance.
3033/// \] Any instrumentation providing this identifier MUST implement it as an opt-in feature.
3034/// \]
3035/// \] See [`app.installation.id`](/docs/registry/attributes/app.md#app-installation-id) for a more privacy-preserving alternative.
3036///
3037/// # Examples
3038///
3039/// - `"123456789012345"`
3040/// - `"01:23:45:67:89:AB"`
3041#[cfg(feature = "semconv_experimental")]
3042pub const DEVICE_ID: &str = "device.id";
3043
3044/// The name of the device manufacturer
3045///
3046/// ## Notes
3047///
3048/// The Android OS provides this field via [Build](https://developer.android.com/reference/android/os/Build#MANUFACTURER). iOS apps SHOULD hardcode the value `Apple`.
3049///
3050/// # Examples
3051///
3052/// - `"Apple"`
3053/// - `"Samsung"`
3054#[cfg(feature = "semconv_experimental")]
3055pub const DEVICE_MANUFACTURER: &str = "device.manufacturer";
3056
3057/// The model identifier for the device
3058///
3059/// ## Notes
3060///
3061/// 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.
3062///
3063/// # Examples
3064///
3065/// - `"iPhone3,4"`
3066/// - `"SM-G920F"`
3067#[cfg(feature = "semconv_experimental")]
3068pub const DEVICE_MODEL_IDENTIFIER: &str = "device.model.identifier";
3069
3070/// The marketing name for the device model
3071///
3072/// ## Notes
3073///
3074/// It's recommended this value represents a human-readable version of the device model rather than a machine-readable alternative.
3075///
3076/// # Examples
3077///
3078/// - `"iPhone 6s Plus"`
3079/// - `"Samsung Galaxy S6"`
3080#[cfg(feature = "semconv_experimental")]
3081pub const DEVICE_MODEL_NAME: &str = "device.model.name";
3082
3083/// The disk IO operation direction.
3084///
3085/// ## Notes
3086///
3087/// # Examples
3088///
3089/// - `"read"`
3090#[cfg(feature = "semconv_experimental")]
3091pub const DISK_IO_DIRECTION: &str = "disk.io.direction";
3092
3093/// The list of IPv4 or IPv6 addresses resolved during DNS lookup.
3094///
3095/// ## Notes
3096///
3097/// # Examples
3098///
3099/// - `[
3100/// "10.0.0.1",
3101/// "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
3102/// ]`
3103#[cfg(feature = "semconv_experimental")]
3104pub const DNS_ANSWERS: &str = "dns.answers";
3105
3106/// The name being queried.
3107///
3108/// ## Notes
3109///
3110/// The name represents the queried domain name as it appears in the DNS query without any additional normalization.
3111///
3112/// # Examples
3113///
3114/// - `"www.example.com"`
3115/// - `"opentelemetry.io"`
3116#[cfg(feature = "semconv_experimental")]
3117pub const DNS_QUESTION_NAME: &str = "dns.question.name";
3118
3119/// Name of the garbage collector managed heap generation.
3120///
3121/// ## Notes
3122///
3123/// # Examples
3124///
3125/// - `"gen0"`
3126/// - `"gen1"`
3127/// - `"gen2"`
3128pub const DOTNET_GC_HEAP_GENERATION: &str = "dotnet.gc.heap.generation";
3129
3130/// Represents the human-readable identifier of the node/instance to which a request was routed.
3131///
3132/// ## Notes
3133///
3134/// # Examples
3135///
3136/// - `"instance-0000000001"`
3137#[cfg(feature = "semconv_experimental")]
3138pub const ELASTICSEARCH_NODE_NAME: &str = "elasticsearch.node.name";
3139
3140/// Unique identifier of an end user in the system. It maybe a username, email address, or other identifier.
3141///
3142/// ## Notes
3143///
3144/// Unique identifier of an end user in the system.
3145///
3146/// \] \[!Warning\]
3147/// \] This field contains sensitive (PII) information.
3148///
3149/// # Examples
3150///
3151/// - `"username"`
3152#[cfg(feature = "semconv_experimental")]
3153pub const ENDUSER_ID: &str = "enduser.id";
3154
3155/// 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.
3156///
3157/// ## Notes
3158///
3159/// Pseudonymous identifier of an end user.
3160///
3161/// \] \[!Warning\]
3162/// \] This field contains sensitive (linkable PII) information.
3163///
3164/// # Examples
3165///
3166/// - `"QdH5CAWJgqVT4rOr0qtumf"`
3167#[cfg(feature = "semconv_experimental")]
3168pub const ENDUSER_PSEUDO_ID: &str = "enduser.pseudo.id";
3169
3170/// Deprecated, use `user.roles` instead.
3171///
3172/// ## Notes
3173///
3174/// # Examples
3175///
3176/// - `"admin"`
3177#[cfg(feature = "semconv_experimental")]
3178#[deprecated(note = "{note: Use `user.roles` instead., reason: uncategorized}")]
3179pub const ENDUSER_ROLE: &str = "enduser.role";
3180
3181/// Deprecated, no replacement at this time.
3182///
3183/// ## Notes
3184///
3185/// # Examples
3186///
3187/// - `"read:message, write:files"`
3188#[cfg(feature = "semconv_experimental")]
3189#[deprecated(note = "{note: Removed, no replacement at this time., reason: obsoleted}")]
3190pub const ENDUSER_SCOPE: &str = "enduser.scope";
3191
3192/// A message providing more detail about an error in human-readable form.
3193///
3194/// ## Notes
3195///
3196/// `error.message` should provide additional context and detail about an error.
3197/// It is NOT RECOMMENDED to duplicate the value of `error.type` in `error.message`.
3198/// It is also NOT RECOMMENDED to duplicate the value of `exception.message` in `error.message`.
3199///
3200/// `error.message` is NOT RECOMMENDED for metrics or spans due to its unbounded cardinality and overlap with span status.
3201///
3202/// # Examples
3203///
3204/// - `"Unexpected input type: string"`
3205/// - `"The user has exceeded their storage quota"`
3206#[cfg(feature = "semconv_experimental")]
3207#[deprecated(
3208 note = "{note: Use domain-specific error message attribute. For example, use `feature_flag.error.message` for feature flag errors., reason: obsoleted}"
3209)]
3210pub const ERROR_MESSAGE: &str = "error.message";
3211
3212/// Describes a class of error the operation ended with.
3213///
3214/// ## Notes
3215///
3216/// The `error.type` SHOULD be predictable, and SHOULD have low cardinality.
3217///
3218/// When `error.type` is set to a type (e.g., an exception type), its
3219/// canonical class name identifying the type within the artifact SHOULD be used.
3220///
3221/// If the recorded error type is a wrapper that is not meaningful for
3222/// failure classification, instrumentation MAY use the type of the inner
3223/// error instead. For example, in Go, errors created with `fmt.Errorf`
3224/// using `%w` MAY be unwrapped when the wrapper type does not help
3225/// classify the failure.
3226///
3227/// Instrumentations SHOULD document the list of errors they report.
3228///
3229/// The cardinality of `error.type` within one instrumentation library SHOULD be low.
3230/// Telemetry consumers that aggregate data from multiple instrumentation libraries and applications
3231/// should be prepared for `error.type` to have high cardinality at query time when no
3232/// additional filters are applied.
3233///
3234/// If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`.
3235///
3236/// If a specific domain defines its own set of error identifiers (such as HTTP or RPC status codes),
3237/// it's RECOMMENDED to:
3238///
3239/// - Use a domain-specific attribute
3240/// - Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not.
3241///
3242/// # Examples
3243///
3244/// - `"timeout"`
3245/// - `"java.net.UnknownHostException"`
3246/// - `"server_certificate_invalid"`
3247/// - `"500"`
3248pub const ERROR_TYPE: &str = "error.type";
3249
3250/// Identifies the class / type of event.
3251///
3252/// ## Notes
3253///
3254/// # Examples
3255///
3256/// - `"browser.mouse.click"`
3257/// - `"device.app.lifecycle"`
3258#[cfg(feature = "semconv_experimental")]
3259#[deprecated(
3260 note = "{note: The value of this attribute MUST now be set as the value of the EventName field on the LogRecord to indicate that the LogRecord represents an Event.\n, reason: uncategorized}"
3261)]
3262pub const EVENT_NAME: &str = "event.name";
3263
3264/// Indicates that the exception is escaping the scope of the span.
3265///
3266/// ## Notes
3267#[deprecated(
3268 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}"
3269)]
3270pub const EXCEPTION_ESCAPED: &str = "exception.escaped";
3271
3272/// The exception message.
3273///
3274/// ## Notes
3275///
3276/// \] \[!WARNING\]
3277/// \]
3278/// \] This attribute may contain sensitive information.
3279///
3280/// # Examples
3281///
3282/// - `"Division by zero"`
3283/// - `"Can't convert 'int' object to str implicitly"`
3284pub const EXCEPTION_MESSAGE: &str = "exception.message";
3285
3286/// 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.
3287///
3288/// ## Notes
3289///
3290/// # Examples
3291///
3292/// - `"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"`
3293pub const EXCEPTION_STACKTRACE: &str = "exception.stacktrace";
3294
3295/// 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.
3296///
3297/// ## Notes
3298///
3299/// If the recorded exception type is a wrapper that is not meaningful for
3300/// failure classification, instrumentation MAY use the type of the inner
3301/// exception instead. For example, in Go, errors created with `fmt.Errorf`
3302/// using `%w` MAY be unwrapped when the wrapper type does not help
3303/// classify the failure.
3304///
3305/// # Examples
3306///
3307/// - `"java.net.ConnectException"`
3308/// - `"OSError"`
3309pub const EXCEPTION_TYPE: &str = "exception.type";
3310
3311/// A boolean that is true if the serverless function is executed for the first time (aka cold-start).
3312///
3313/// ## Notes
3314#[cfg(feature = "semconv_experimental")]
3315pub const FAAS_COLDSTART: &str = "faas.coldstart";
3316
3317/// A string containing the schedule period as [Cron Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).
3318///
3319/// ## Notes
3320///
3321/// # Examples
3322///
3323/// - `"0/5 * * * ? *"`
3324#[cfg(feature = "semconv_experimental")]
3325pub const FAAS_CRON: &str = "faas.cron";
3326
3327/// 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.
3328///
3329/// ## Notes
3330///
3331/// # Examples
3332///
3333/// - `"myBucketName"`
3334/// - `"myDbName"`
3335#[cfg(feature = "semconv_experimental")]
3336pub const FAAS_DOCUMENT_COLLECTION: &str = "faas.document.collection";
3337
3338/// 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.
3339///
3340/// ## Notes
3341///
3342/// # Examples
3343///
3344/// - `"myFile.txt"`
3345/// - `"myTableName"`
3346#[cfg(feature = "semconv_experimental")]
3347pub const FAAS_DOCUMENT_NAME: &str = "faas.document.name";
3348
3349/// Describes the type of the operation that was performed on the data.
3350///
3351/// ## Notes
3352#[cfg(feature = "semconv_experimental")]
3353pub const FAAS_DOCUMENT_OPERATION: &str = "faas.document.operation";
3354
3355/// 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).
3356///
3357/// ## Notes
3358///
3359/// # Examples
3360///
3361/// - `"2020-01-23T13:47:06Z"`
3362#[cfg(feature = "semconv_experimental")]
3363pub const FAAS_DOCUMENT_TIME: &str = "faas.document.time";
3364
3365/// The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.
3366///
3367/// ## Notes
3368///
3369/// - **AWS Lambda:** Use the (full) log stream name.
3370///
3371/// # Examples
3372///
3373/// - `"2021/06/28/[$LATEST]2f399eb14537447da05ab2a2e39309de"`
3374#[cfg(feature = "semconv_experimental")]
3375pub const FAAS_INSTANCE: &str = "faas.instance";
3376
3377/// The invocation ID of the current function invocation.
3378///
3379/// ## Notes
3380///
3381/// # Examples
3382///
3383/// - `"af9d5aa4-a685-4c5f-a22b-444f80b3cc28"`
3384#[cfg(feature = "semconv_experimental")]
3385pub const FAAS_INVOCATION_ID: &str = "faas.invocation_id";
3386
3387/// The name of the invoked function.
3388///
3389/// ## Notes
3390///
3391/// SHOULD be equal to the `faas.name` resource attribute of the invoked function.
3392///
3393/// # Examples
3394///
3395/// - `"my-function"`
3396#[cfg(feature = "semconv_experimental")]
3397pub const FAAS_INVOKED_NAME: &str = "faas.invoked_name";
3398
3399/// The cloud provider of the invoked function.
3400///
3401/// ## Notes
3402///
3403/// SHOULD be equal to the `cloud.provider` resource attribute of the invoked function
3404#[cfg(feature = "semconv_experimental")]
3405pub const FAAS_INVOKED_PROVIDER: &str = "faas.invoked_provider";
3406
3407/// The cloud region of the invoked function.
3408///
3409/// ## Notes
3410///
3411/// SHOULD be equal to the `cloud.region` resource attribute of the invoked function.
3412///
3413/// # Examples
3414///
3415/// - `"eu-central-1"`
3416#[cfg(feature = "semconv_experimental")]
3417pub const FAAS_INVOKED_REGION: &str = "faas.invoked_region";
3418
3419/// The amount of memory available to the serverless function converted to Bytes.
3420///
3421/// ## Notes
3422///
3423/// 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).
3424///
3425/// # Examples
3426///
3427/// - `134217728`
3428#[cfg(feature = "semconv_experimental")]
3429pub const FAAS_MAX_MEMORY: &str = "faas.max_memory";
3430
3431/// The name of the single function that this runtime instance executes.
3432///
3433/// ## Notes
3434///
3435/// This is the name of the function as configured/deployed on the FaaS
3436/// platform and is usually different from the name of the callback
3437/// function (which may be stored in the
3438/// [`code.namespace`/`code.function.name`](/docs/general/attributes.md#source-code-attributes)
3439/// span attributes).
3440///
3441/// For some cloud providers, the above definition is ambiguous. The following
3442/// definition of function name MUST be used for this attribute
3443/// (and consequently the span name) for the listed cloud providers/products:
3444///
3445/// - **Azure:** The full name `[FUNCAPP]/[FUNC]`, i.e., function app name
3446/// followed by a forward slash followed by the function name (this form
3447/// can also be seen in the resource JSON for the function).
3448/// This means that a span attribute MUST be used, as an Azure function
3449/// app can host multiple functions that would usually share
3450/// a TracerProvider (see also the `cloud.resource_id` attribute).
3451///
3452/// # Examples
3453///
3454/// - `"my-function"`
3455/// - `"myazurefunctionapp/some-function-name"`
3456#[cfg(feature = "semconv_experimental")]
3457pub const FAAS_NAME: &str = "faas.name";
3458
3459/// 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).
3460///
3461/// ## Notes
3462///
3463/// # Examples
3464///
3465/// - `"2020-01-23T13:47:06Z"`
3466#[cfg(feature = "semconv_experimental")]
3467pub const FAAS_TIME: &str = "faas.time";
3468
3469/// Type of the trigger which caused this function invocation.
3470///
3471/// ## Notes
3472#[cfg(feature = "semconv_experimental")]
3473pub const FAAS_TRIGGER: &str = "faas.trigger";
3474
3475/// The immutable version of the function being executed.
3476///
3477/// ## Notes
3478///
3479/// Depending on the cloud provider and platform, use:
3480///
3481/// - **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)
3482/// (an integer represented as a decimal string).
3483/// - **Google Cloud Run (Services):** The [revision](https://cloud.google.com/run/docs/managing/revisions)
3484/// (i.e., the function name plus the revision suffix).
3485/// - **Google Cloud Functions:** The value of the
3486/// [`K_REVISION` environment variable](https://cloud.google.com/run/docs/container-contract#services-env-vars).
3487/// - **Azure Functions:** Not applicable. Do not set this attribute.
3488///
3489/// # Examples
3490///
3491/// - `"26"`
3492/// - `"pinkfroid-00002"`
3493#[cfg(feature = "semconv_experimental")]
3494pub const FAAS_VERSION: &str = "faas.version";
3495
3496/// The unique identifier for the flag evaluation context. For example, the targeting key.
3497///
3498/// ## Notes
3499///
3500/// # Examples
3501///
3502/// - `"5157782b-2203-4c80-a857-dbbd5e7761db"`
3503#[cfg(feature = "semconv_experimental")]
3504pub const FEATURE_FLAG_CONTEXT_ID: &str = "feature_flag.context.id";
3505
3506/// A message providing more detail about an error that occurred during feature flag evaluation in human-readable form.
3507///
3508/// ## Notes
3509///
3510/// # Examples
3511///
3512/// - `"Unexpected input type: string"`
3513/// - `"The user has exceeded their storage quota"`
3514#[cfg(feature = "semconv_experimental")]
3515pub const FEATURE_FLAG_ERROR_MESSAGE: &str = "feature_flag.error.message";
3516
3517/// Deprecated, use `feature_flag.error.message` instead.
3518///
3519/// ## Notes
3520///
3521/// # Examples
3522///
3523/// - `"Flag `header-color`expected type`string`but found type`number`"`
3524#[cfg(feature = "semconv_experimental")]
3525#[deprecated(
3526 note = "{note: Replaced by `feature_flag.error.message`., reason: renamed, renamed_to: feature_flag.error.message}"
3527)]
3528pub const FEATURE_FLAG_EVALUATION_ERROR_MESSAGE: &str = "feature_flag.evaluation.error.message";
3529
3530/// Deprecated, use `feature_flag.result.reason` instead.
3531///
3532/// ## Notes
3533///
3534/// # Examples
3535///
3536/// - `"static"`
3537/// - `"targeting_match"`
3538/// - `"error"`
3539/// - `"default"`
3540#[cfg(feature = "semconv_experimental")]
3541#[deprecated(
3542 note = "{note: Replaced by `feature_flag.result.reason`., reason: renamed, renamed_to: feature_flag.result.reason}"
3543)]
3544pub const FEATURE_FLAG_EVALUATION_REASON: &str = "feature_flag.evaluation.reason";
3545
3546/// The lookup key of the feature flag.
3547///
3548/// ## Notes
3549///
3550/// # Examples
3551///
3552/// - `"logo-color"`
3553#[cfg(feature = "semconv_experimental")]
3554pub const FEATURE_FLAG_KEY: &str = "feature_flag.key";
3555
3556/// Identifies the feature flag provider.
3557///
3558/// ## Notes
3559///
3560/// # Examples
3561///
3562/// - `"Flag Manager"`
3563#[cfg(feature = "semconv_experimental")]
3564pub const FEATURE_FLAG_PROVIDER_NAME: &str = "feature_flag.provider.name";
3565
3566/// The reason code which shows how a feature flag value was determined.
3567///
3568/// ## Notes
3569///
3570/// # Examples
3571///
3572/// - `"static"`
3573/// - `"targeting_match"`
3574/// - `"error"`
3575/// - `"default"`
3576#[cfg(feature = "semconv_experimental")]
3577pub const FEATURE_FLAG_RESULT_REASON: &str = "feature_flag.result.reason";
3578
3579/// The evaluated value of the feature flag.
3580///
3581/// ## Notes
3582///
3583/// With some feature flag providers, feature flag results can be quite large or contain private or sensitive details.
3584/// Because of this, `feature_flag.result.variant` is often the preferred attribute if it is available.
3585///
3586/// It may be desirable to redact or otherwise limit the size and scope of `feature_flag.result.value` if possible.
3587/// 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.
3588///
3589/// # Examples
3590///
3591/// - `"#ff0000"`
3592/// - `true`
3593/// - `3`
3594#[cfg(feature = "semconv_experimental")]
3595pub const FEATURE_FLAG_RESULT_VALUE: &str = "feature_flag.result.value";
3596
3597/// A semantic identifier for an evaluated flag value.
3598///
3599/// ## Notes
3600///
3601/// A semantic identifier, commonly referred to as a variant, provides a means
3602/// for referring to a value without including the value itself. This can
3603/// provide additional context for understanding the meaning behind a value.
3604/// For example, the variant `red` maybe be used for the value `#c05543`.
3605///
3606/// # Examples
3607///
3608/// - `"red"`
3609/// - `"true"`
3610/// - `"on"`
3611#[cfg(feature = "semconv_experimental")]
3612pub const FEATURE_FLAG_RESULT_VARIANT: &str = "feature_flag.result.variant";
3613
3614/// The identifier of the [flag set](https://openfeature.dev/specification/glossary/#flag-set) to which the feature flag belongs.
3615///
3616/// ## Notes
3617///
3618/// # Examples
3619///
3620/// - `"proj-1"`
3621/// - `"ab98sgs"`
3622/// - `"service1/dev"`
3623#[cfg(feature = "semconv_experimental")]
3624pub const FEATURE_FLAG_SET_ID: &str = "feature_flag.set.id";
3625
3626/// Deprecated, use `feature_flag.result.variant` instead.
3627///
3628/// ## Notes
3629///
3630/// # Examples
3631///
3632/// - `"red"`
3633/// - `"true"`
3634/// - `"on"`
3635#[cfg(feature = "semconv_experimental")]
3636#[deprecated(
3637 note = "{note: Replaced by `feature_flag.result.variant`., reason: renamed, renamed_to: feature_flag.result.variant}"
3638)]
3639pub const FEATURE_FLAG_VARIANT: &str = "feature_flag.variant";
3640
3641/// The version of the ruleset used during the evaluation. This may be any stable value which uniquely identifies the ruleset.
3642///
3643/// ## Notes
3644///
3645/// # Examples
3646///
3647/// - `"1"`
3648/// - `"01ABCDEF"`
3649#[cfg(feature = "semconv_experimental")]
3650pub const FEATURE_FLAG_VERSION: &str = "feature_flag.version";
3651
3652/// Time when the file was last accessed, in ISO 8601 format.
3653///
3654/// ## Notes
3655///
3656/// This attribute might not be supported by some file systems — NFS, FAT32, in embedded OS, etc.
3657///
3658/// # Examples
3659///
3660/// - `"2021-01-01T12:00:00Z"`
3661#[cfg(feature = "semconv_experimental")]
3662pub const FILE_ACCESSED: &str = "file.accessed";
3663
3664/// Array of file attributes.
3665///
3666/// ## Notes
3667///
3668/// 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`.
3669///
3670/// # Examples
3671///
3672/// - `[
3673/// "readonly",
3674/// "hidden",
3675/// ]`
3676#[cfg(feature = "semconv_experimental")]
3677pub const FILE_ATTRIBUTES: &str = "file.attributes";
3678
3679/// Time when the file attributes or metadata was last changed, in ISO 8601 format.
3680///
3681/// ## Notes
3682///
3683/// `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.
3684///
3685/// # Examples
3686///
3687/// - `"2021-01-01T12:00:00Z"`
3688#[cfg(feature = "semconv_experimental")]
3689pub const FILE_CHANGED: &str = "file.changed";
3690
3691/// Time when the file was created, in ISO 8601 format.
3692///
3693/// ## Notes
3694///
3695/// This attribute might not be supported by some file systems — NFS, FAT32, in embedded OS, etc.
3696///
3697/// # Examples
3698///
3699/// - `"2021-01-01T12:00:00Z"`
3700#[cfg(feature = "semconv_experimental")]
3701pub const FILE_CREATED: &str = "file.created";
3702
3703/// Directory where the file is located. It should include the drive letter, when appropriate.
3704///
3705/// ## Notes
3706///
3707/// # Examples
3708///
3709/// - `"/home/user"`
3710/// - `"C:\\Program Files\\MyApp"`
3711#[cfg(feature = "semconv_experimental")]
3712pub const FILE_DIRECTORY: &str = "file.directory";
3713
3714/// File extension, excluding the leading dot.
3715///
3716/// ## Notes
3717///
3718/// When the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz").
3719///
3720/// # Examples
3721///
3722/// - `"png"`
3723/// - `"gz"`
3724#[cfg(feature = "semconv_experimental")]
3725pub const FILE_EXTENSION: &str = "file.extension";
3726
3727/// Name of the fork. A fork is additional data associated with a filesystem object.
3728///
3729/// ## Notes
3730///
3731/// 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.
3732/// 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.
3733///
3734/// # Examples
3735///
3736/// - `"Zone.Identifier"`
3737#[cfg(feature = "semconv_experimental")]
3738pub const FILE_FORK_NAME: &str = "file.fork_name";
3739
3740/// Primary Group ID (GID) of the file.
3741///
3742/// ## Notes
3743///
3744/// # Examples
3745///
3746/// - `"1000"`
3747#[cfg(feature = "semconv_experimental")]
3748pub const FILE_GROUP_ID: &str = "file.group.id";
3749
3750/// Primary group name of the file.
3751///
3752/// ## Notes
3753///
3754/// # Examples
3755///
3756/// - `"users"`
3757#[cfg(feature = "semconv_experimental")]
3758pub const FILE_GROUP_NAME: &str = "file.group.name";
3759
3760/// Inode representing the file in the filesystem.
3761///
3762/// ## Notes
3763///
3764/// # Examples
3765///
3766/// - `"256383"`
3767#[cfg(feature = "semconv_experimental")]
3768pub const FILE_INODE: &str = "file.inode";
3769
3770/// The lock mechanism such as noted by [POSIX](https://pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html)
3771///
3772/// ## Notes
3773///
3774/// # Examples
3775///
3776/// - `"POSIX"`
3777/// - `"FLOCK"`
3778/// - `"DELEG"`
3779/// - `"LEASE"`
3780#[cfg(feature = "semconv_experimental")]
3781pub const FILE_LOCK_MECHANISM: &str = "file.lock.mechanism";
3782
3783/// Mode of lock or operation such as documented by [POSIX](https://pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html)
3784///
3785/// ## Notes
3786///
3787/// # Examples
3788///
3789/// - `"ADVISORY"`
3790/// - `"MANDATORY"`
3791/// - `"BREAKING"`
3792/// - `"ACTIVE"`
3793/// - `"BREAKER"`
3794#[cfg(feature = "semconv_experimental")]
3795pub const FILE_LOCK_MODE: &str = "file.lock.mode";
3796
3797/// The lock type as represented by i.e. [POSIX](https://pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html)'s l_type.
3798///
3799/// ## Notes
3800///
3801/// # Examples
3802///
3803/// - `"read"`
3804#[cfg(feature = "semconv_experimental")]
3805pub const FILE_LOCK_TYPE: &str = "file.lock.type";
3806
3807/// Mode of the file in octal representation.
3808///
3809/// ## Notes
3810///
3811/// # Examples
3812///
3813/// - `"0640"`
3814#[cfg(feature = "semconv_experimental")]
3815pub const FILE_MODE: &str = "file.mode";
3816
3817/// Time when the file content was last modified, in ISO 8601 format.
3818///
3819/// ## Notes
3820///
3821/// # Examples
3822///
3823/// - `"2021-01-01T12:00:00Z"`
3824#[cfg(feature = "semconv_experimental")]
3825pub const FILE_MODIFIED: &str = "file.modified";
3826
3827/// Name of the file including the extension, without the directory.
3828///
3829/// ## Notes
3830///
3831/// # Examples
3832///
3833/// - `"example.png"`
3834#[cfg(feature = "semconv_experimental")]
3835pub const FILE_NAME: &str = "file.name";
3836
3837/// The user ID (UID) or security identifier (SID) of the file owner.
3838///
3839/// ## Notes
3840///
3841/// # Examples
3842///
3843/// - `"1000"`
3844#[cfg(feature = "semconv_experimental")]
3845pub const FILE_OWNER_ID: &str = "file.owner.id";
3846
3847/// Username of the file owner.
3848///
3849/// ## Notes
3850///
3851/// # Examples
3852///
3853/// - `"root"`
3854#[cfg(feature = "semconv_experimental")]
3855pub const FILE_OWNER_NAME: &str = "file.owner.name";
3856
3857/// Full path to the file, including the file name. It should include the drive letter, when appropriate.
3858///
3859/// ## Notes
3860///
3861/// # Examples
3862///
3863/// - `"/home/alice/example.png"`
3864/// - `"C:\\Program Files\\MyApp\\myapp.exe"`
3865#[cfg(feature = "semconv_experimental")]
3866pub const FILE_PATH: &str = "file.path";
3867
3868/// File size in bytes.
3869///
3870/// ## Notes
3871#[cfg(feature = "semconv_experimental")]
3872pub const FILE_SIZE: &str = "file.size";
3873
3874/// Path to the target of a symbolic link.
3875///
3876/// ## Notes
3877///
3878/// This attribute is only applicable to symbolic links.
3879///
3880/// # Examples
3881///
3882/// - `"/usr/bin/python3"`
3883#[cfg(feature = "semconv_experimental")]
3884pub const FILE_SYMBOLIC_LINK_TARGET_PATH: &str = "file.symbolic_link.target_path";
3885
3886/// The container within GCP where the AppHub application is defined.
3887///
3888/// ## Notes
3889///
3890/// # Examples
3891///
3892/// - `"projects/my-container-project"`
3893#[cfg(feature = "semconv_experimental")]
3894pub const GCP_APPHUB_APPLICATION_CONTAINER: &str = "gcp.apphub.application.container";
3895
3896/// The name of the application as configured in AppHub.
3897///
3898/// ## Notes
3899///
3900/// # Examples
3901///
3902/// - `"my-application"`
3903#[cfg(feature = "semconv_experimental")]
3904pub const GCP_APPHUB_APPLICATION_ID: &str = "gcp.apphub.application.id";
3905
3906/// The GCP zone or region where the application is defined.
3907///
3908/// ## Notes
3909///
3910/// # Examples
3911///
3912/// - `"us-central1"`
3913#[cfg(feature = "semconv_experimental")]
3914pub const GCP_APPHUB_APPLICATION_LOCATION: &str = "gcp.apphub.application.location";
3915
3916/// Criticality of a service indicates its importance to the business.
3917///
3918/// ## Notes
3919///
3920/// [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type)
3921#[cfg(feature = "semconv_experimental")]
3922pub const GCP_APPHUB_SERVICE_CRITICALITY_TYPE: &str = "gcp.apphub.service.criticality_type";
3923
3924/// Environment of a service is the stage of a software lifecycle.
3925///
3926/// ## Notes
3927///
3928/// [See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type_1)
3929#[cfg(feature = "semconv_experimental")]
3930pub const GCP_APPHUB_SERVICE_ENVIRONMENT_TYPE: &str = "gcp.apphub.service.environment_type";
3931
3932/// The name of the service as configured in AppHub.
3933///
3934/// ## Notes
3935///
3936/// # Examples
3937///
3938/// - `"my-service"`
3939#[cfg(feature = "semconv_experimental")]
3940pub const GCP_APPHUB_SERVICE_ID: &str = "gcp.apphub.service.id";
3941
3942/// Criticality of a workload indicates its importance to the business.
3943///
3944/// ## Notes
3945///
3946/// [See AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type)
3947#[cfg(feature = "semconv_experimental")]
3948pub const GCP_APPHUB_WORKLOAD_CRITICALITY_TYPE: &str = "gcp.apphub.workload.criticality_type";
3949
3950/// Environment of a workload is the stage of a software lifecycle.
3951///
3952/// ## Notes
3953///
3954/// [See AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type_1)
3955#[cfg(feature = "semconv_experimental")]
3956pub const GCP_APPHUB_WORKLOAD_ENVIRONMENT_TYPE: &str = "gcp.apphub.workload.environment_type";
3957
3958/// The name of the workload as configured in AppHub.
3959///
3960/// ## Notes
3961///
3962/// # Examples
3963///
3964/// - `"my-workload"`
3965#[cfg(feature = "semconv_experimental")]
3966pub const GCP_APPHUB_WORKLOAD_ID: &str = "gcp.apphub.workload.id";
3967
3968/// The container within GCP where the AppHub destination application is defined.
3969///
3970/// ## Notes
3971///
3972/// # Examples
3973///
3974/// - `"projects/my-container-project"`
3975#[cfg(feature = "semconv_experimental")]
3976pub const GCP_APPHUB_DESTINATION_APPLICATION_CONTAINER: &str =
3977 "gcp.apphub_destination.application.container";
3978
3979/// The name of the destination application as configured in AppHub.
3980///
3981/// ## Notes
3982///
3983/// # Examples
3984///
3985/// - `"my-application"`
3986#[cfg(feature = "semconv_experimental")]
3987pub const GCP_APPHUB_DESTINATION_APPLICATION_ID: &str = "gcp.apphub_destination.application.id";
3988
3989/// The GCP zone or region where the destination application is defined.
3990///
3991/// ## Notes
3992///
3993/// # Examples
3994///
3995/// - `"us-central1"`
3996#[cfg(feature = "semconv_experimental")]
3997pub const GCP_APPHUB_DESTINATION_APPLICATION_LOCATION: &str =
3998 "gcp.apphub_destination.application.location";
3999
4000/// Criticality of a destination workload indicates its importance to the business as specified in [AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type)
4001///
4002/// ## Notes
4003#[cfg(feature = "semconv_experimental")]
4004pub const GCP_APPHUB_DESTINATION_SERVICE_CRITICALITY_TYPE: &str =
4005 "gcp.apphub_destination.service.criticality_type";
4006
4007/// Software lifecycle stage of a destination service as defined [AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type_1)
4008///
4009/// ## Notes
4010#[cfg(feature = "semconv_experimental")]
4011pub const GCP_APPHUB_DESTINATION_SERVICE_ENVIRONMENT_TYPE: &str =
4012 "gcp.apphub_destination.service.environment_type";
4013
4014/// The name of the destination service as configured in AppHub.
4015///
4016/// ## Notes
4017///
4018/// # Examples
4019///
4020/// - `"my-service"`
4021#[cfg(feature = "semconv_experimental")]
4022pub const GCP_APPHUB_DESTINATION_SERVICE_ID: &str = "gcp.apphub_destination.service.id";
4023
4024/// Criticality of a destination workload indicates its importance to the business as specified in [AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type)
4025///
4026/// ## Notes
4027#[cfg(feature = "semconv_experimental")]
4028pub const GCP_APPHUB_DESTINATION_WORKLOAD_CRITICALITY_TYPE: &str =
4029 "gcp.apphub_destination.workload.criticality_type";
4030
4031/// Environment of a destination workload is the stage of a software lifecycle as provided in the [AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type_1)
4032///
4033/// ## Notes
4034#[cfg(feature = "semconv_experimental")]
4035pub const GCP_APPHUB_DESTINATION_WORKLOAD_ENVIRONMENT_TYPE: &str =
4036 "gcp.apphub_destination.workload.environment_type";
4037
4038/// The name of the destination workload as configured in AppHub.
4039///
4040/// ## Notes
4041///
4042/// # Examples
4043///
4044/// - `"my-workload"`
4045#[cfg(feature = "semconv_experimental")]
4046pub const GCP_APPHUB_DESTINATION_WORKLOAD_ID: &str = "gcp.apphub_destination.workload.id";
4047
4048/// Identifies the Google Cloud service for which the official client library is intended.
4049///
4050/// ## Notes
4051///
4052/// 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'.
4053///
4054/// # Examples
4055///
4056/// - `"appengine"`
4057/// - `"run"`
4058/// - `"firestore"`
4059/// - `"alloydb"`
4060/// - `"spanner"`
4061#[cfg(feature = "semconv_experimental")]
4062pub const GCP_CLIENT_SERVICE: &str = "gcp.client.service";
4063
4064/// 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.
4065///
4066/// ## Notes
4067///
4068/// # Examples
4069///
4070/// - `"job-name-xxxx"`
4071/// - `"sample-job-mdw84"`
4072#[cfg(feature = "semconv_experimental")]
4073pub const GCP_CLOUD_RUN_JOB_EXECUTION: &str = "gcp.cloud_run.job.execution";
4074
4075/// 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.
4076///
4077/// ## Notes
4078///
4079/// # Examples
4080///
4081/// - `0`
4082/// - `1`
4083#[cfg(feature = "semconv_experimental")]
4084pub const GCP_CLOUD_RUN_JOB_TASK_INDEX: &str = "gcp.cloud_run.job.task_index";
4085
4086/// 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).
4087///
4088/// ## Notes
4089///
4090/// # Examples
4091///
4092/// - `"my-host1234.example.com"`
4093/// - `"sample-vm.us-west1-b.c.my-project.internal"`
4094#[cfg(feature = "semconv_experimental")]
4095pub const GCP_GCE_INSTANCE_HOSTNAME: &str = "gcp.gce.instance.hostname";
4096
4097/// GCE instance labels, ``key`` being the label name and the value being the label value.
4098///
4099/// ## Notes
4100///
4101/// For example, a GCE instance label `team` with value `observability` SHOULD be recorded as the `gcp.gce.instance.labels.team` attribute with value `"observability"`. The `[key]` MUST be the exact GCE instance label key.
4102///
4103/// # Examples
4104///
4105/// - `"observability"`
4106#[cfg(feature = "semconv_experimental")]
4107pub const GCP_GCE_INSTANCE_LABELS: &str = "gcp.gce.instance.labels";
4108
4109/// 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).
4110///
4111/// ## Notes
4112///
4113/// # Examples
4114///
4115/// - `"instance-1"`
4116/// - `"my-vm-name"`
4117#[cfg(feature = "semconv_experimental")]
4118pub const GCP_GCE_INSTANCE_NAME: &str = "gcp.gce.instance.name";
4119
4120/// The name of the Instance Group Manager (IGM) that manages this VM, if any.
4121///
4122/// ## Notes
4123///
4124/// # Examples
4125///
4126/// - `"web-igm"`
4127/// - `"my-managed-group"`
4128#[cfg(feature = "semconv_experimental")]
4129pub const GCP_GCE_INSTANCE_GROUP_MANAGER_NAME: &str = "gcp.gce.instance_group_manager.name";
4130
4131/// The region of a **regional** Instance Group Manager (e.g., `us-central1`). Set this **only** when the IGM is regional.
4132///
4133/// ## Notes
4134///
4135/// # Examples
4136///
4137/// - `"us-central1"`
4138/// - `"europe-west1"`
4139#[cfg(feature = "semconv_experimental")]
4140pub const GCP_GCE_INSTANCE_GROUP_MANAGER_REGION: &str = "gcp.gce.instance_group_manager.region";
4141
4142/// The zone of a **zonal** Instance Group Manager (e.g., `us-central1-a`). Set this **only** when the IGM is zonal.
4143///
4144/// ## Notes
4145///
4146/// # Examples
4147///
4148/// - `"us-central1-a"`
4149/// - `"europe-west1-b"`
4150#[cfg(feature = "semconv_experimental")]
4151pub const GCP_GCE_INSTANCE_GROUP_MANAGER_ZONE: &str = "gcp.gce.instance_group_manager.zone";
4152
4153/// Free-form description of the GenAI agent provided by the application.
4154///
4155/// ## Notes
4156///
4157/// # Examples
4158///
4159/// - `"Helps with math problems"`
4160/// - `"Generates fiction stories"`
4161#[cfg(feature = "semconv_experimental")]
4162#[deprecated(
4163 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4164)]
4165pub const GEN_AI_AGENT_DESCRIPTION: &str = "gen_ai.agent.description";
4166
4167/// The unique identifier of the GenAI agent.
4168///
4169/// ## Notes
4170///
4171/// # Examples
4172///
4173/// - `"asst_5j66UpCpwteGg4YSxUnt7lPY"`
4174#[cfg(feature = "semconv_experimental")]
4175#[deprecated(
4176 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4177)]
4178pub const GEN_AI_AGENT_ID: &str = "gen_ai.agent.id";
4179
4180/// Human-readable name of the GenAI agent provided by the application.
4181///
4182/// ## Notes
4183///
4184/// # Examples
4185///
4186/// - `"Math Tutor"`
4187/// - `"Fiction Writer"`
4188#[cfg(feature = "semconv_experimental")]
4189#[deprecated(
4190 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4191)]
4192pub const GEN_AI_AGENT_NAME: &str = "gen_ai.agent.name";
4193
4194/// The version of the GenAI agent.
4195///
4196/// ## Notes
4197///
4198/// # Examples
4199///
4200/// - `"1.0.0"`
4201/// - `"2025-05-01"`
4202#[cfg(feature = "semconv_experimental")]
4203#[deprecated(
4204 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4205)]
4206pub const GEN_AI_AGENT_VERSION: &str = "gen_ai.agent.version";
4207
4208/// Deprecated, use Event API to report completions contents.
4209///
4210/// ## Notes
4211///
4212/// # Examples
4213///
4214/// - `"[{'role': 'assistant', 'content': 'The capital of France is Paris.'}]"`
4215#[cfg(feature = "semconv_experimental")]
4216#[deprecated(note = "{note: Removed, no replacement at this time., reason: obsoleted}")]
4217pub const GEN_AI_COMPLETION: &str = "gen_ai.completion";
4218
4219/// The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation.
4220///
4221/// ## Notes
4222///
4223/// # Examples
4224///
4225/// - `"conv_5j66UpCpwteGg4YSxUnt7lPY"`
4226#[cfg(feature = "semconv_experimental")]
4227#[deprecated(
4228 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4229)]
4230pub const GEN_AI_CONVERSATION_ID: &str = "gen_ai.conversation.id";
4231
4232/// The data source identifier.
4233///
4234/// ## Notes
4235///
4236/// 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.
4237///
4238/// # Examples
4239///
4240/// - `"H7STPQYOND"`
4241#[cfg(feature = "semconv_experimental")]
4242#[deprecated(
4243 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4244)]
4245pub const GEN_AI_DATA_SOURCE_ID: &str = "gen_ai.data_source.id";
4246
4247/// The number of dimensions the resulting output embeddings should have.
4248///
4249/// ## Notes
4250///
4251/// # Examples
4252///
4253/// - `512`
4254/// - `1024`
4255#[cfg(feature = "semconv_experimental")]
4256#[deprecated(
4257 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4258)]
4259pub const GEN_AI_EMBEDDINGS_DIMENSION_COUNT: &str = "gen_ai.embeddings.dimension.count";
4260
4261/// A free-form explanation for the assigned score provided by the evaluator.
4262///
4263/// ## Notes
4264///
4265/// # Examples
4266///
4267/// - `"The response is factually accurate but lacks sufficient detail to fully address the question."`
4268#[cfg(feature = "semconv_experimental")]
4269#[deprecated(
4270 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4271)]
4272pub const GEN_AI_EVALUATION_EXPLANATION: &str = "gen_ai.evaluation.explanation";
4273
4274/// The name of the evaluation metric used for the GenAI response.
4275///
4276/// ## Notes
4277///
4278/// # Examples
4279///
4280/// - `"Relevance"`
4281/// - `"IntentResolution"`
4282#[cfg(feature = "semconv_experimental")]
4283#[deprecated(
4284 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4285)]
4286pub const GEN_AI_EVALUATION_NAME: &str = "gen_ai.evaluation.name";
4287
4288/// Human readable label for evaluation.
4289///
4290/// ## Notes
4291///
4292/// This attribute provides a human-readable interpretation of the evaluation score produced by an evaluator. For example, a score value of 1 could mean "relevant" in one evaluation system and "not relevant" in another, depending on the scoring range and evaluator. The label SHOULD have low cardinality. Possible values depend on the evaluation metric and evaluator used; implementations SHOULD document the possible values.
4293///
4294/// # Examples
4295///
4296/// - `"relevant"`
4297/// - `"not_relevant"`
4298/// - `"correct"`
4299/// - `"incorrect"`
4300/// - `"pass"`
4301/// - `"fail"`
4302#[cfg(feature = "semconv_experimental")]
4303#[deprecated(
4304 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4305)]
4306pub const GEN_AI_EVALUATION_SCORE_LABEL: &str = "gen_ai.evaluation.score.label";
4307
4308/// The evaluation score returned by the evaluator.
4309///
4310/// ## Notes
4311///
4312/// # Examples
4313///
4314/// - `4.0`
4315#[cfg(feature = "semconv_experimental")]
4316#[deprecated(
4317 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4318)]
4319pub const GEN_AI_EVALUATION_SCORE_VALUE: &str = "gen_ai.evaluation.score.value";
4320
4321/// The chat history provided to the model as an input.
4322///
4323/// ## Notes
4324///
4325/// Instrumentations MUST follow [Input messages JSON schema](https://github.com/open-telemetry/semantic-conventions/blob/v1.41.0/docs/gen-ai/gen-ai-input-messages.json).
4326/// When the attribute is recorded on events, it MUST be recorded in structured
4327/// form. When recorded on spans, it MAY be recorded as a JSON string if structured
4328/// format is not supported and SHOULD be recorded in structured form otherwise.
4329///
4330/// Messages MUST be provided in the order they were sent to the model.
4331/// Instrumentations MAY provide a way for users to filter or truncate
4332/// input messages.
4333///
4334/// \] \[!Warning\]
4335/// \] This attribute is likely to contain sensitive information including user/PII data.
4336///
4337/// See [Recording content on attributes](https://github.com/open-telemetry/semantic-conventions/blob/v1.41.0/docs/gen-ai/gen-ai-spans.md#recording-content-on-attributes)
4338/// section for more details.
4339///
4340/// # Examples
4341///
4342/// - `"[\n {\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"text\",\n \"content\": \"Weather in Paris?\"\n }\n ]\n },\n {\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\",\n \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\",\n \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n ]\n },\n {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\": \"tool_call_response\",\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"result\": \"rainy, 57°F\"\n }\n ]\n }\n]\n"`
4343#[cfg(feature = "semconv_experimental")]
4344#[deprecated(
4345 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4346)]
4347pub const GEN_AI_INPUT_MESSAGES: &str = "gen_ai.input.messages";
4348
4349/// Deprecated, use `gen_ai.output.type`.
4350///
4351/// ## Notes
4352#[cfg(feature = "semconv_experimental")]
4353#[deprecated(
4354 note = "{note: Replaced by `gen_ai.output.type`, which has moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4355)]
4356pub const GEN_AI_OPENAI_REQUEST_RESPONSE_FORMAT: &str = "gen_ai.openai.request.response_format";
4357
4358/// Deprecated, use `gen_ai.request.seed`.
4359///
4360/// ## Notes
4361///
4362/// # Examples
4363///
4364/// - `100`
4365#[cfg(feature = "semconv_experimental")]
4366#[deprecated(
4367 note = "{note: Replaced by `gen_ai.request.seed`, which has moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4368)]
4369pub const GEN_AI_OPENAI_REQUEST_SEED: &str = "gen_ai.openai.request.seed";
4370
4371/// Deprecated, use `openai.request.service_tier`.
4372///
4373/// ## Notes
4374#[cfg(feature = "semconv_experimental")]
4375#[deprecated(
4376 note = "{note: Replaced by `openai.request.service_tier`, which has moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4377)]
4378pub const GEN_AI_OPENAI_REQUEST_SERVICE_TIER: &str = "gen_ai.openai.request.service_tier";
4379
4380/// Deprecated, use `openai.response.service_tier`.
4381///
4382/// ## Notes
4383///
4384/// # Examples
4385///
4386/// - `"scale"`
4387/// - `"default"`
4388#[cfg(feature = "semconv_experimental")]
4389#[deprecated(
4390 note = "{note: Replaced by `openai.response.service_tier`, which has moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4391)]
4392pub const GEN_AI_OPENAI_RESPONSE_SERVICE_TIER: &str = "gen_ai.openai.response.service_tier";
4393
4394/// Deprecated, use `openai.response.system_fingerprint`.
4395///
4396/// ## Notes
4397///
4398/// # Examples
4399///
4400/// - `"fp_44709d6fcb"`
4401#[cfg(feature = "semconv_experimental")]
4402#[deprecated(
4403 note = "{note: Replaced by `openai.response.system_fingerprint`, which has moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4404)]
4405pub const GEN_AI_OPENAI_RESPONSE_SYSTEM_FINGERPRINT: &str =
4406 "gen_ai.openai.response.system_fingerprint";
4407
4408/// The name of the operation being performed.
4409///
4410/// ## Notes
4411///
4412/// 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
4413#[cfg(feature = "semconv_experimental")]
4414#[deprecated(
4415 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4416)]
4417pub const GEN_AI_OPERATION_NAME: &str = "gen_ai.operation.name";
4418
4419/// Messages returned by the model where each message represents a specific model response (choice, candidate).
4420///
4421/// ## Notes
4422///
4423/// Instrumentations MUST follow [Output messages JSON schema](https://github.com/open-telemetry/semantic-conventions/blob/v1.41.0/docs/gen-ai/gen-ai-output-messages.json)
4424///
4425/// Each message represents a single output choice/candidate generated by
4426/// the model. Each message corresponds to exactly one generation
4427/// (choice/candidate) and vice versa - one choice cannot be split across
4428/// multiple messages or one message cannot contain parts from multiple choices.
4429///
4430/// When the attribute is recorded on events, it MUST be recorded in structured
4431/// form. When recorded on spans, it MAY be recorded as a JSON string if structured
4432/// format is not supported and SHOULD be recorded in structured form otherwise.
4433///
4434/// Instrumentations MAY provide a way for users to filter or truncate
4435/// output messages.
4436///
4437/// \] \[!Warning\]
4438/// \] This attribute is likely to contain sensitive information including user/PII data.
4439///
4440/// See [Recording content on attributes](https://github.com/open-telemetry/semantic-conventions/blob/v1.41.0/docs/gen-ai/gen-ai-spans.md#recording-content-on-attributes)
4441/// section for more details.
4442///
4443/// # Examples
4444///
4445/// - `"[\n {\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\": \"text\",\n \"content\": \"The weather in Paris is currently rainy with a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\n }\n]\n"`
4446#[cfg(feature = "semconv_experimental")]
4447#[deprecated(
4448 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4449)]
4450pub const GEN_AI_OUTPUT_MESSAGES: &str = "gen_ai.output.messages";
4451
4452/// Represents the content type requested by the client.
4453///
4454/// ## Notes
4455///
4456/// 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.
4457/// 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.
4458/// Additional output format details may be recorded in the future in the `gen_ai.output.{type}.*` attributes
4459#[cfg(feature = "semconv_experimental")]
4460#[deprecated(
4461 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4462)]
4463pub const GEN_AI_OUTPUT_TYPE: &str = "gen_ai.output.type";
4464
4465/// Deprecated, use Event API to report prompt contents.
4466///
4467/// ## Notes
4468///
4469/// # Examples
4470///
4471/// - `"[{'role': 'user', 'content': 'What is the capital of France?'}]"`
4472#[cfg(feature = "semconv_experimental")]
4473#[deprecated(note = "{note: Removed, no replacement at this time., reason: obsoleted}")]
4474pub const GEN_AI_PROMPT: &str = "gen_ai.prompt";
4475
4476/// The name of the prompt that uniquely identifies it.
4477///
4478/// ## Notes
4479///
4480/// # Examples
4481///
4482/// - `"analyze-code"`
4483#[cfg(feature = "semconv_experimental")]
4484#[deprecated(
4485 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4486)]
4487pub const GEN_AI_PROMPT_NAME: &str = "gen_ai.prompt.name";
4488
4489/// The Generative AI provider as identified by the client or server instrumentation.
4490///
4491/// ## Notes
4492///
4493/// The attribute SHOULD be set based on the instrumentation's best
4494/// knowledge and may differ from the actual model provider.
4495///
4496/// Multiple providers, including Azure OpenAI, Gemini, and AI hosting platforms
4497/// are accessible using the OpenAI REST API and corresponding client libraries,
4498/// but may proxy or host models from different providers.
4499///
4500/// The `gen_ai.request.model`, `gen_ai.response.model`, and `server.address`
4501/// attributes may help identify the actual system in use.
4502///
4503/// The `gen_ai.provider.name` attribute acts as a discriminator that
4504/// identifies the GenAI telemetry format flavor specific to that provider
4505/// within GenAI semantic conventions.
4506/// It SHOULD be set consistently with provider-specific attributes and signals.
4507/// For example, GenAI spans, metrics, and events related to AWS Bedrock
4508/// should have the `gen_ai.provider.name` set to `aws.bedrock` and include
4509/// applicable `aws.bedrock.*` attributes and are not expected to include
4510/// `openai.*` attributes
4511#[cfg(feature = "semconv_experimental")]
4512#[deprecated(
4513 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4514)]
4515pub const GEN_AI_PROVIDER_NAME: &str = "gen_ai.provider.name";
4516
4517/// The target number of candidate completions to return.
4518///
4519/// ## Notes
4520///
4521/// # Examples
4522///
4523/// - `3`
4524#[cfg(feature = "semconv_experimental")]
4525#[deprecated(
4526 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4527)]
4528pub const GEN_AI_REQUEST_CHOICE_COUNT: &str = "gen_ai.request.choice.count";
4529
4530/// The encoding formats requested in an embeddings operation, if specified.
4531///
4532/// ## Notes
4533///
4534/// In some GenAI systems the encoding formats are called embedding types. Also, some GenAI systems only accept a single format per request.
4535///
4536/// # Examples
4537///
4538/// - `[
4539/// "base64",
4540/// ]`
4541/// - `[
4542/// "float",
4543/// "binary",
4544/// ]`
4545#[cfg(feature = "semconv_experimental")]
4546#[deprecated(
4547 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4548)]
4549pub const GEN_AI_REQUEST_ENCODING_FORMATS: &str = "gen_ai.request.encoding_formats";
4550
4551/// The frequency penalty setting for the GenAI request.
4552///
4553/// ## Notes
4554///
4555/// # Examples
4556///
4557/// - `0.1`
4558#[cfg(feature = "semconv_experimental")]
4559#[deprecated(
4560 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4561)]
4562pub const GEN_AI_REQUEST_FREQUENCY_PENALTY: &str = "gen_ai.request.frequency_penalty";
4563
4564/// The maximum number of tokens the model generates for a request.
4565///
4566/// ## Notes
4567///
4568/// # Examples
4569///
4570/// - `100`
4571#[cfg(feature = "semconv_experimental")]
4572#[deprecated(
4573 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4574)]
4575pub const GEN_AI_REQUEST_MAX_TOKENS: &str = "gen_ai.request.max_tokens";
4576
4577/// The name of the GenAI model a request is being made to.
4578///
4579/// ## Notes
4580///
4581/// # Examples
4582///
4583/// - `"gpt-4"`
4584#[cfg(feature = "semconv_experimental")]
4585#[deprecated(
4586 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4587)]
4588pub const GEN_AI_REQUEST_MODEL: &str = "gen_ai.request.model";
4589
4590/// The presence penalty setting for the GenAI request.
4591///
4592/// ## Notes
4593///
4594/// # Examples
4595///
4596/// - `0.1`
4597#[cfg(feature = "semconv_experimental")]
4598#[deprecated(
4599 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4600)]
4601pub const GEN_AI_REQUEST_PRESENCE_PENALTY: &str = "gen_ai.request.presence_penalty";
4602
4603/// Requests with same seed value more likely to return same result.
4604///
4605/// ## Notes
4606///
4607/// # Examples
4608///
4609/// - `100`
4610#[cfg(feature = "semconv_experimental")]
4611#[deprecated(
4612 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4613)]
4614pub const GEN_AI_REQUEST_SEED: &str = "gen_ai.request.seed";
4615
4616/// List of sequences that the model will use to stop generating further tokens.
4617///
4618/// ## Notes
4619///
4620/// # Examples
4621///
4622/// - `[
4623/// "forest",
4624/// "lived",
4625/// ]`
4626#[cfg(feature = "semconv_experimental")]
4627#[deprecated(
4628 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4629)]
4630pub const GEN_AI_REQUEST_STOP_SEQUENCES: &str = "gen_ai.request.stop_sequences";
4631
4632/// Indicates whether the GenAI request was made in streaming mode.
4633///
4634/// ## Notes
4635#[cfg(feature = "semconv_experimental")]
4636#[deprecated(
4637 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4638)]
4639pub const GEN_AI_REQUEST_STREAM: &str = "gen_ai.request.stream";
4640
4641/// The temperature setting for the GenAI request.
4642///
4643/// ## Notes
4644///
4645/// # Examples
4646///
4647/// - `0.0`
4648#[cfg(feature = "semconv_experimental")]
4649#[deprecated(
4650 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4651)]
4652pub const GEN_AI_REQUEST_TEMPERATURE: &str = "gen_ai.request.temperature";
4653
4654/// The top_k sampling setting for the GenAI request.
4655///
4656/// ## Notes
4657///
4658/// # Examples
4659///
4660/// - `1.0`
4661#[cfg(feature = "semconv_experimental")]
4662#[deprecated(
4663 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4664)]
4665pub const GEN_AI_REQUEST_TOP_K: &str = "gen_ai.request.top_k";
4666
4667/// The top_p sampling setting for the GenAI request.
4668///
4669/// ## Notes
4670///
4671/// # Examples
4672///
4673/// - `1.0`
4674#[cfg(feature = "semconv_experimental")]
4675#[deprecated(
4676 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4677)]
4678pub const GEN_AI_REQUEST_TOP_P: &str = "gen_ai.request.top_p";
4679
4680/// Array of reasons the model stopped generating tokens, corresponding to each generation received.
4681///
4682/// ## Notes
4683///
4684/// # Examples
4685///
4686/// - `[
4687/// "stop",
4688/// ]`
4689/// - `[
4690/// "stop",
4691/// "length",
4692/// ]`
4693#[cfg(feature = "semconv_experimental")]
4694#[deprecated(
4695 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4696)]
4697pub const GEN_AI_RESPONSE_FINISH_REASONS: &str = "gen_ai.response.finish_reasons";
4698
4699/// The unique identifier for the completion.
4700///
4701/// ## Notes
4702///
4703/// # Examples
4704///
4705/// - `"chatcmpl-123"`
4706#[cfg(feature = "semconv_experimental")]
4707#[deprecated(
4708 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4709)]
4710pub const GEN_AI_RESPONSE_ID: &str = "gen_ai.response.id";
4711
4712/// The name of the model that generated the response.
4713///
4714/// ## Notes
4715///
4716/// # Examples
4717///
4718/// - `"gpt-4-0613"`
4719#[cfg(feature = "semconv_experimental")]
4720#[deprecated(
4721 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4722)]
4723pub const GEN_AI_RESPONSE_MODEL: &str = "gen_ai.response.model";
4724
4725/// Time to first chunk in a streaming response, measured from request issuance, in seconds. The value is measured from when the client issues the generation request to when the first chunk is received in the response stream.
4726///
4727/// ## Notes
4728///
4729/// # Examples
4730///
4731/// - `0.5`
4732/// - `1.2`
4733#[cfg(feature = "semconv_experimental")]
4734#[deprecated(
4735 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4736)]
4737pub const GEN_AI_RESPONSE_TIME_TO_FIRST_CHUNK: &str = "gen_ai.response.time_to_first_chunk";
4738
4739/// The documents retrieved.
4740///
4741/// ## Notes
4742///
4743/// Instrumentations MUST follow [Retrieval documents JSON schema](https://github.com/open-telemetry/semantic-conventions/blob/v1.41.0/docs/gen-ai/gen-ai-retrieval-documents.json).
4744/// When the attribute is recorded on events, it MUST be recorded in structured
4745/// form. When recorded on spans, it MAY be recorded as a JSON string if structured
4746/// format is not supported and SHOULD be recorded in structured form otherwise.
4747///
4748/// Each document object SHOULD contain at least the following properties:
4749/// `id` (string): A unique identifier for the document, `score` (double): The relevance score of the document
4750///
4751/// # Examples
4752///
4753/// - `"[\n {\n \"id\": \"doc_123\",\n \"score\": 0.95\n },\n {\n \"id\": \"doc_456\",\n \"score\": 0.87\n },\n {\n \"id\": \"doc_789\",\n \"score\": 0.82\n }\n]\n"`
4754#[cfg(feature = "semconv_experimental")]
4755#[deprecated(
4756 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4757)]
4758pub const GEN_AI_RETRIEVAL_DOCUMENTS: &str = "gen_ai.retrieval.documents";
4759
4760/// The query text used for retrieval.
4761///
4762/// ## Notes
4763///
4764/// \] \[!Warning\]
4765/// \] This attribute may contain sensitive information.
4766///
4767/// # Examples
4768///
4769/// - `"What is the capital of France?"`
4770/// - `"weather in Paris"`
4771#[cfg(feature = "semconv_experimental")]
4772#[deprecated(
4773 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4774)]
4775pub const GEN_AI_RETRIEVAL_QUERY_TEXT: &str = "gen_ai.retrieval.query.text";
4776
4777/// Deprecated, use `gen_ai.provider.name` instead.
4778///
4779/// ## Notes
4780#[cfg(feature = "semconv_experimental")]
4781#[deprecated(
4782 note = "{note: Replaced by `gen_ai.provider.name`, which has moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4783)]
4784pub const GEN_AI_SYSTEM: &str = "gen_ai.system";
4785
4786/// The system message or instructions provided to the GenAI model separately from the chat history.
4787///
4788/// ## Notes
4789///
4790/// This attribute SHOULD be used when the corresponding provider or API
4791/// allows to provide system instructions or messages separately from the
4792/// chat history.
4793///
4794/// Instructions that are part of the chat history SHOULD be recorded in
4795/// `gen_ai.input.messages` attribute instead.
4796///
4797/// Instrumentations MUST follow [System instructions JSON schema](https://github.com/open-telemetry/semantic-conventions/blob/v1.41.0/docs/gen-ai/gen-ai-system-instructions.json).
4798///
4799/// When recorded on spans, it MAY be recorded as a JSON string if structured
4800/// format is not supported and SHOULD be recorded in structured form otherwise.
4801///
4802/// Instrumentations MAY provide a way for users to filter or truncate
4803/// system instructions.
4804///
4805/// \] \[!Warning\]
4806/// \] This attribute may contain sensitive information.
4807///
4808/// See [Recording content on attributes](https://github.com/open-telemetry/semantic-conventions/blob/v1.41.0/docs/gen-ai/gen-ai-spans.md#recording-content-on-attributes)
4809/// section for more details.
4810///
4811/// # Examples
4812///
4813/// - `"[\n {\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet users, always use greetings tool to respond\"\n }\n]\n"`
4814/// - `"[\n {\n \"type\": \"text\",\n \"content\": \"You are a language translator.\"\n },\n {\n \"type\": \"text\",\n \"content\": \"Your mission is to translate text in English to French.\"\n }\n]\n"`
4815#[cfg(feature = "semconv_experimental")]
4816#[deprecated(
4817 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4818)]
4819pub const GEN_AI_SYSTEM_INSTRUCTIONS: &str = "gen_ai.system_instructions";
4820
4821/// The type of token being counted.
4822///
4823/// ## Notes
4824///
4825/// # Examples
4826///
4827/// - `"input"`
4828/// - `"output"`
4829#[cfg(feature = "semconv_experimental")]
4830#[deprecated(
4831 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4832)]
4833pub const GEN_AI_TOKEN_TYPE: &str = "gen_ai.token.type";
4834
4835/// Parameters passed to the tool call.
4836///
4837/// ## Notes
4838///
4839/// \] \[!WARNING\]
4840/// \] This attribute may contain sensitive information.
4841///
4842/// It's expected to be an object - in case a serialized string is available
4843/// to the instrumentation, the instrumentation SHOULD do the best effort to
4844/// deserialize it to an object. When recorded on spans, it MAY be recorded as a JSON string if structured format is not supported and SHOULD be recorded in structured form otherwise.
4845///
4846/// # Examples
4847///
4848/// - `"{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\n}\n"`
4849#[cfg(feature = "semconv_experimental")]
4850#[deprecated(
4851 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4852)]
4853pub const GEN_AI_TOOL_CALL_ARGUMENTS: &str = "gen_ai.tool.call.arguments";
4854
4855/// The tool call identifier.
4856///
4857/// ## Notes
4858///
4859/// # Examples
4860///
4861/// - `"call_mszuSIzqtI65i1wAUOE8w5H4"`
4862#[cfg(feature = "semconv_experimental")]
4863#[deprecated(
4864 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4865)]
4866pub const GEN_AI_TOOL_CALL_ID: &str = "gen_ai.tool.call.id";
4867
4868/// The result returned by the tool call (if any and if execution was successful).
4869///
4870/// ## Notes
4871///
4872/// \] \[!WARNING\]
4873/// \] This attribute may contain sensitive information.
4874///
4875/// It's expected to be an object - in case a serialized string is available
4876/// to the instrumentation, the instrumentation SHOULD do the best effort to
4877/// deserialize it to an object. When recorded on spans, it MAY be recorded as a JSON string if structured format is not supported and SHOULD be recorded in structured form otherwise.
4878///
4879/// # Examples
4880///
4881/// - `"{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n },\n \"conditions\": \"sunny\"\n}\n"`
4882#[cfg(feature = "semconv_experimental")]
4883#[deprecated(
4884 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4885)]
4886pub const GEN_AI_TOOL_CALL_RESULT: &str = "gen_ai.tool.call.result";
4887
4888/// The list of tool definitions available to the GenAI agent or model.
4889///
4890/// ## Notes
4891///
4892/// Instrumentations MUST follow [Tool Definitions JSON Schema](https://github.com/open-telemetry/semantic-conventions/blob/v1.41.0/docs/gen-ai/gen-ai-tool-definitions.json).
4893///
4894/// When the attribute is recorded on events, it MUST be recorded in structured
4895/// form. When recorded on spans, it MAY be recorded as a JSON string if structured
4896/// format is not supported and SHOULD be recorded in structured form otherwise.
4897///
4898/// Since this attribute could be large, it's NOT RECOMMENDED to populate
4899/// non-required properties by default. Instrumentations MAY provide a way
4900/// to enable populating optional properties.
4901///
4902/// # Examples
4903///
4904/// - `"[\n {\n \"type\": \"function\",\n \"name\": \"get_current_weather\",\n \"description\": \"Get the current weather in a given location\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n \"type\": \"string\",\n \"description\": \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\": {\n \"type\": \"string\",\n \"enum\": [\n \"celsius\",\n \"fahrenheit\"\n ]\n }\n },\n \"required\": [\n \"location\",\n \"unit\"\n ]\n }\n }\n]\n"`
4905#[cfg(feature = "semconv_experimental")]
4906#[deprecated(
4907 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4908)]
4909pub const GEN_AI_TOOL_DEFINITIONS: &str = "gen_ai.tool.definitions";
4910
4911/// The tool description.
4912///
4913/// ## Notes
4914///
4915/// # Examples
4916///
4917/// - `"Multiply two numbers"`
4918#[cfg(feature = "semconv_experimental")]
4919#[deprecated(
4920 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4921)]
4922pub const GEN_AI_TOOL_DESCRIPTION: &str = "gen_ai.tool.description";
4923
4924/// Name of the tool utilized by the agent.
4925///
4926/// ## Notes
4927///
4928/// # Examples
4929///
4930/// - `"Flights"`
4931#[cfg(feature = "semconv_experimental")]
4932#[deprecated(
4933 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4934)]
4935pub const GEN_AI_TOOL_NAME: &str = "gen_ai.tool.name";
4936
4937/// Type of the tool utilized by the agent
4938///
4939/// ## Notes
4940///
4941/// Extension: A tool executed on the agent-side to directly call external APIs, bridging the gap between the agent and real-world systems.
4942/// Agent-side operations involve actions that are performed by the agent on the server or within the agent's controlled environment.
4943/// Function: A tool executed on the client-side, where the agent generates parameters for a predefined function, and the client executes the logic.
4944/// Client-side operations are actions taken on the user's end or within the client application.
4945/// Datastore: A tool used by the agent to access and query structured or unstructured external data for retrieval-augmented tasks or knowledge updates.
4946///
4947/// # Examples
4948///
4949/// - `"function"`
4950/// - `"extension"`
4951/// - `"datastore"`
4952#[cfg(feature = "semconv_experimental")]
4953#[deprecated(
4954 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4955)]
4956pub const GEN_AI_TOOL_TYPE: &str = "gen_ai.tool.type";
4957
4958/// The number of input tokens written to a provider-managed cache.
4959///
4960/// ## Notes
4961///
4962/// The value SHOULD be included in `gen_ai.usage.input_tokens`.
4963///
4964/// # Examples
4965///
4966/// - `25`
4967#[cfg(feature = "semconv_experimental")]
4968#[deprecated(
4969 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4970)]
4971pub const GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS: &str =
4972 "gen_ai.usage.cache_creation.input_tokens";
4973
4974/// The number of input tokens served from a provider-managed cache.
4975///
4976/// ## Notes
4977///
4978/// The value SHOULD be included in `gen_ai.usage.input_tokens`.
4979///
4980/// # Examples
4981///
4982/// - `50`
4983#[cfg(feature = "semconv_experimental")]
4984#[deprecated(
4985 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4986)]
4987pub const GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS: &str = "gen_ai.usage.cache_read.input_tokens";
4988
4989/// Deprecated, use `gen_ai.usage.output_tokens` instead.
4990///
4991/// ## Notes
4992///
4993/// # Examples
4994///
4995/// - `42`
4996#[cfg(feature = "semconv_experimental")]
4997#[deprecated(
4998 note = "{note: Replaced by `gen_ai.usage.output_tokens`, which has moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
4999)]
5000pub const GEN_AI_USAGE_COMPLETION_TOKENS: &str = "gen_ai.usage.completion_tokens";
5001
5002/// The number of tokens used in the GenAI input (prompt).
5003///
5004/// ## Notes
5005///
5006/// This value SHOULD include all types of input tokens, including cached tokens.
5007/// Instrumentations SHOULD make a best effort to populate this value, using a total
5008/// provided by the provider when available or, depending on the provider API,
5009/// by summing different token types parsed from the provider output.
5010///
5011/// # Examples
5012///
5013/// - `100`
5014#[cfg(feature = "semconv_experimental")]
5015#[deprecated(
5016 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
5017)]
5018pub const GEN_AI_USAGE_INPUT_TOKENS: &str = "gen_ai.usage.input_tokens";
5019
5020/// The number of tokens used in the GenAI response (completion).
5021///
5022/// ## Notes
5023///
5024/// # Examples
5025///
5026/// - `180`
5027#[cfg(feature = "semconv_experimental")]
5028#[deprecated(
5029 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
5030)]
5031pub const GEN_AI_USAGE_OUTPUT_TOKENS: &str = "gen_ai.usage.output_tokens";
5032
5033/// Deprecated, use `gen_ai.usage.input_tokens` instead.
5034///
5035/// ## Notes
5036///
5037/// # Examples
5038///
5039/// - `42`
5040#[cfg(feature = "semconv_experimental")]
5041#[deprecated(
5042 note = "{note: Replaced by `gen_ai.usage.input_tokens`, which has moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
5043)]
5044pub const GEN_AI_USAGE_PROMPT_TOKENS: &str = "gen_ai.usage.prompt_tokens";
5045
5046/// The number of output tokens used for reasoning (e.g. chain-of-thought, extended thinking).
5047///
5048/// ## Notes
5049///
5050/// The value SHOULD be included in `gen_ai.usage.output_tokens`.
5051///
5052/// # Examples
5053///
5054/// - `50`
5055#[cfg(feature = "semconv_experimental")]
5056#[deprecated(
5057 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
5058)]
5059pub const GEN_AI_USAGE_REASONING_OUTPUT_TOKENS: &str = "gen_ai.usage.reasoning.output_tokens";
5060
5061/// Human-readable name of the GenAI workflow provided by the application.
5062///
5063/// ## Notes
5064///
5065/// This attribute can be populated in different frameworks eg: name of the first chain in LangChain OR name of the crew in CrewAI.
5066///
5067/// # Examples
5068///
5069/// - `"multi_agent_rag"`
5070/// - `"customer_support_pipeline"`
5071#[cfg(feature = "semconv_experimental")]
5072#[deprecated(
5073 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
5074)]
5075pub const GEN_AI_WORKFLOW_NAME: &str = "gen_ai.workflow.name";
5076
5077/// Two-letter code representing continent’s name.
5078///
5079/// ## Notes
5080#[cfg(feature = "semconv_experimental")]
5081pub const GEO_CONTINENT_CODE: &str = "geo.continent.code";
5082
5083/// Two-letter ISO Country Code ([ISO 3166-1 alpha2](https://wikipedia.org/wiki/ISO_3166-1#Codes)).
5084///
5085/// ## Notes
5086///
5087/// # Examples
5088///
5089/// - `"CA"`
5090#[cfg(feature = "semconv_experimental")]
5091pub const GEO_COUNTRY_ISO_CODE: &str = "geo.country.iso_code";
5092
5093/// Locality name. Represents the name of a city, town, village, or similar populated place.
5094///
5095/// ## Notes
5096///
5097/// # Examples
5098///
5099/// - `"Montreal"`
5100/// - `"Berlin"`
5101#[cfg(feature = "semconv_experimental")]
5102pub const GEO_LOCALITY_NAME: &str = "geo.locality.name";
5103
5104/// Latitude of the geo location in [WGS84](https://wikipedia.org/wiki/World_Geodetic_System#WGS84).
5105///
5106/// ## Notes
5107///
5108/// # Examples
5109///
5110/// - `45.505918`
5111#[cfg(feature = "semconv_experimental")]
5112pub const GEO_LOCATION_LAT: &str = "geo.location.lat";
5113
5114/// Longitude of the geo location in [WGS84](https://wikipedia.org/wiki/World_Geodetic_System#WGS84).
5115///
5116/// ## Notes
5117///
5118/// # Examples
5119///
5120/// - `-73.61483`
5121#[cfg(feature = "semconv_experimental")]
5122pub const GEO_LOCATION_LON: &str = "geo.location.lon";
5123
5124/// 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.
5125///
5126/// ## Notes
5127///
5128/// # Examples
5129///
5130/// - `"94040"`
5131#[cfg(feature = "semconv_experimental")]
5132pub const GEO_POSTAL_CODE: &str = "geo.postal_code";
5133
5134/// Region ISO code ([ISO 3166-2](https://wikipedia.org/wiki/ISO_3166-2)).
5135///
5136/// ## Notes
5137///
5138/// # Examples
5139///
5140/// - `"CA-QC"`
5141#[cfg(feature = "semconv_experimental")]
5142pub const GEO_REGION_ISO_CODE: &str = "geo.region.iso_code";
5143
5144/// The detailed state of the CPU.
5145///
5146/// ## Notes
5147///
5148/// Value SHOULD match the specific CPU class reported by the Go runtime under `/cpu/classes/...`. The list of possible values is subject to change with the Go version used.
5149///
5150/// # Examples
5151///
5152/// - `"gc/pause"`
5153/// - `"gc/mark/assist"`
5154#[cfg(feature = "semconv_experimental")]
5155pub const GO_CPU_DETAILED_STATE: &str = "go.cpu.detailed_state";
5156
5157/// The state of the CPU.
5158///
5159/// ## Notes
5160///
5161/// # Examples
5162///
5163/// - `"user"`
5164/// - `"gc"`
5165#[cfg(feature = "semconv_experimental")]
5166pub const GO_CPU_STATE: &str = "go.cpu.state";
5167
5168/// The detailed type of memory.
5169///
5170/// ## Notes
5171///
5172/// Value SHOULD match the specific memory class reported by the Go runtime under `/memory/classes/...`. The list of possible values is subject to change with the Go version used.
5173///
5174/// # Examples
5175///
5176/// - `"heap/objects"`
5177/// - `"heap/free"`
5178#[cfg(feature = "semconv_experimental")]
5179pub const GO_MEMORY_DETAILED_TYPE: &str = "go.memory.detailed_type";
5180
5181/// The type of memory.
5182///
5183/// ## Notes
5184///
5185/// # Examples
5186///
5187/// - `"other"`
5188/// - `"stack"`
5189#[cfg(feature = "semconv_experimental")]
5190pub const GO_MEMORY_TYPE: &str = "go.memory.type";
5191
5192/// The GraphQL document being executed.
5193///
5194/// ## Notes
5195///
5196/// If instrumentation can reliably identify and redact sensitive information it SHOULD do it.
5197///
5198/// # Examples
5199///
5200/// - `"query findBookById { bookById(id: ?) { name } }"`
5201#[cfg(feature = "semconv_experimental")]
5202pub const GRAPHQL_DOCUMENT: &str = "graphql.document";
5203
5204/// The name of the operation being executed.
5205///
5206/// ## Notes
5207///
5208/// # Examples
5209///
5210/// - `"findBookById"`
5211#[cfg(feature = "semconv_experimental")]
5212pub const GRAPHQL_OPERATION_NAME: &str = "graphql.operation.name";
5213
5214/// The type of the operation being executed.
5215///
5216/// ## Notes
5217///
5218/// # Examples
5219///
5220/// - `"query"`
5221/// - `"mutation"`
5222/// - `"subscription"`
5223#[cfg(feature = "semconv_experimental")]
5224pub const GRAPHQL_OPERATION_TYPE: &str = "graphql.operation.type";
5225
5226/// Unique identifier for the application
5227///
5228/// ## Notes
5229///
5230/// # Examples
5231///
5232/// - `"2daa2797-e42b-4624-9322-ec3f968df4da"`
5233#[cfg(feature = "semconv_experimental")]
5234pub const HEROKU_APP_ID: &str = "heroku.app.id";
5235
5236/// Commit hash for the current release
5237///
5238/// ## Notes
5239///
5240/// # Examples
5241///
5242/// - `"e6134959463efd8966b20e75b913cafe3f5ec"`
5243#[cfg(feature = "semconv_experimental")]
5244pub const HEROKU_RELEASE_COMMIT: &str = "heroku.release.commit";
5245
5246/// Time and date the release was created
5247///
5248/// ## Notes
5249///
5250/// # Examples
5251///
5252/// - `"2022-10-23T18:00:42Z"`
5253#[cfg(feature = "semconv_experimental")]
5254pub const HEROKU_RELEASE_CREATION_TIMESTAMP: &str = "heroku.release.creation_timestamp";
5255
5256/// The CPU architecture the host system is running on.
5257///
5258/// ## Notes
5259#[cfg(feature = "semconv_experimental")]
5260pub const HOST_ARCH: &str = "host.arch";
5261
5262/// The amount of level 2 memory cache available to the processor (in Bytes).
5263///
5264/// ## Notes
5265///
5266/// # Examples
5267///
5268/// - `12288000`
5269#[cfg(feature = "semconv_experimental")]
5270pub const HOST_CPU_CACHE_L2_SIZE: &str = "host.cpu.cache.l2.size";
5271
5272/// Family or generation of the CPU.
5273///
5274/// ## Notes
5275///
5276/// # Examples
5277///
5278/// - `"6"`
5279/// - `"PA-RISC 1.1e"`
5280#[cfg(feature = "semconv_experimental")]
5281pub const HOST_CPU_FAMILY: &str = "host.cpu.family";
5282
5283/// Model identifier. It provides more granular information about the CPU, distinguishing it from other CPUs within the same family.
5284///
5285/// ## Notes
5286///
5287/// # Examples
5288///
5289/// - `"6"`
5290/// - `"9000/778/B180L"`
5291#[cfg(feature = "semconv_experimental")]
5292pub const HOST_CPU_MODEL_ID: &str = "host.cpu.model.id";
5293
5294/// Model designation of the processor.
5295///
5296/// ## Notes
5297///
5298/// # Examples
5299///
5300/// - `"11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz"`
5301#[cfg(feature = "semconv_experimental")]
5302pub const HOST_CPU_MODEL_NAME: &str = "host.cpu.model.name";
5303
5304/// Stepping or core revisions.
5305///
5306/// ## Notes
5307///
5308/// # Examples
5309///
5310/// - `"1"`
5311/// - `"r1p1"`
5312#[cfg(feature = "semconv_experimental")]
5313pub const HOST_CPU_STEPPING: &str = "host.cpu.stepping";
5314
5315/// Processor manufacturer identifier. A maximum 12-character string.
5316///
5317/// ## Notes
5318///
5319/// [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.
5320///
5321/// # Examples
5322///
5323/// - `"GenuineIntel"`
5324#[cfg(feature = "semconv_experimental")]
5325pub const HOST_CPU_VENDOR_ID: &str = "host.cpu.vendor.id";
5326
5327/// 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.
5328///
5329/// ## Notes
5330///
5331/// # Examples
5332///
5333/// - `"fdbf79e8af94cb7f9e8df36789187052"`
5334#[cfg(feature = "semconv_experimental")]
5335pub const HOST_ID: &str = "host.id";
5336
5337/// VM image ID or host OS image ID. For Cloud, this value is from the provider.
5338///
5339/// ## Notes
5340///
5341/// # Examples
5342///
5343/// - `"ami-07b06b442921831e5"`
5344#[cfg(feature = "semconv_experimental")]
5345pub const HOST_IMAGE_ID: &str = "host.image.id";
5346
5347/// Name of the VM image or OS install the host was instantiated from.
5348///
5349/// ## Notes
5350///
5351/// # Examples
5352///
5353/// - `"infra-ami-eks-worker-node-7d4ec78312"`
5354/// - `"CentOS-8-x86_64-1905"`
5355#[cfg(feature = "semconv_experimental")]
5356pub const HOST_IMAGE_NAME: &str = "host.image.name";
5357
5358/// The version string of the VM image or host OS as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
5359///
5360/// ## Notes
5361///
5362/// # Examples
5363///
5364/// - `"0.1"`
5365#[cfg(feature = "semconv_experimental")]
5366pub const HOST_IMAGE_VERSION: &str = "host.image.version";
5367
5368/// Available IP addresses of the host, excluding loopback interfaces.
5369///
5370/// ## Notes
5371///
5372/// 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.
5373///
5374/// # Examples
5375///
5376/// - `[
5377/// "192.168.1.140",
5378/// "fe80::abc2:4a28:737a:609e",
5379/// ]`
5380#[cfg(feature = "semconv_experimental")]
5381pub const HOST_IP: &str = "host.ip";
5382
5383/// Available MAC addresses of the host, excluding loopback interfaces.
5384///
5385/// ## Notes
5386///
5387/// 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.
5388///
5389/// # Examples
5390///
5391/// - `[
5392/// "AC-DE-48-23-45-67",
5393/// "AC-DE-48-23-45-67-01-9F",
5394/// ]`
5395#[cfg(feature = "semconv_experimental")]
5396pub const HOST_MAC: &str = "host.mac";
5397
5398/// 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.
5399///
5400/// ## Notes
5401///
5402/// # Examples
5403///
5404/// - `"opentelemetry-test"`
5405#[cfg(feature = "semconv_experimental")]
5406pub const HOST_NAME: &str = "host.name";
5407
5408/// Type of host. For Cloud, this must be the machine type.
5409///
5410/// ## Notes
5411///
5412/// # Examples
5413///
5414/// - `"n1-standard-1"`
5415#[cfg(feature = "semconv_experimental")]
5416pub const HOST_TYPE: &str = "host.type";
5417
5418/// Deprecated, use `client.address` instead.
5419///
5420/// ## Notes
5421///
5422/// # Examples
5423///
5424/// - `"83.164.160.102"`
5425#[cfg(feature = "semconv_experimental")]
5426#[deprecated(
5427 note = "{note: Replaced by `client.address`., reason: renamed, renamed_to: client.address}"
5428)]
5429pub const HTTP_CLIENT_IP: &str = "http.client_ip";
5430
5431/// State of the HTTP connection in the HTTP connection pool.
5432///
5433/// ## Notes
5434///
5435/// # Examples
5436///
5437/// - `"active"`
5438/// - `"idle"`
5439#[cfg(feature = "semconv_experimental")]
5440pub const HTTP_CONNECTION_STATE: &str = "http.connection.state";
5441
5442/// Deprecated, use `network.protocol.name` and `network.protocol.version` instead.
5443///
5444/// ## Notes
5445#[cfg(feature = "semconv_experimental")]
5446#[deprecated(
5447 note = "{note: Split into `network.protocol.name` and `network.protocol.version`, reason: uncategorized}"
5448)]
5449pub const HTTP_FLAVOR: &str = "http.flavor";
5450
5451/// Deprecated, use one of `server.address`, `client.address` or `http.request.header.host` instead, depending on the usage.
5452///
5453/// ## Notes
5454///
5455/// # Examples
5456///
5457/// - `"www.example.org"`
5458#[cfg(feature = "semconv_experimental")]
5459#[deprecated(
5460 note = "{note: Replaced by one of `server.address`, `client.address` or `http.request.header.host`, depending on the usage.\n, reason: uncategorized}"
5461)]
5462pub const HTTP_HOST: &str = "http.host";
5463
5464/// Deprecated, use `http.request.method` instead.
5465///
5466/// ## Notes
5467///
5468/// # Examples
5469///
5470/// - `"GET"`
5471/// - `"POST"`
5472/// - `"HEAD"`
5473#[cfg(feature = "semconv_experimental")]
5474#[deprecated(
5475 note = "{note: Replaced by `http.request.method`., reason: renamed, renamed_to: http.request.method}"
5476)]
5477pub const HTTP_METHOD: &str = "http.method";
5478
5479/// 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.
5480///
5481/// ## Notes
5482///
5483/// # Examples
5484///
5485/// - `3495`
5486#[cfg(feature = "semconv_experimental")]
5487pub const HTTP_REQUEST_BODY_SIZE: &str = "http.request.body.size";
5488
5489/// HTTP request headers, ``key`` being the normalized HTTP Header name (lowercase), the value being the header values.
5490///
5491/// ## Notes
5492///
5493/// Instrumentations SHOULD require an explicit configuration of which headers are to be captured.
5494/// Including all request headers can be a security risk - explicit configuration helps avoid leaking sensitive information.
5495///
5496/// The `User-Agent` header is already captured in the `user_agent.original` attribute.
5497/// Users MAY explicitly configure instrumentations to capture them even though it is not recommended.
5498///
5499/// The attribute value MUST consist of either multiple header values as an array of strings
5500/// or a single-item array containing a possibly comma-concatenated string, depending on the way
5501/// the HTTP library provides access to headers.
5502///
5503/// Examples:
5504///
5505/// - A header `Content-Type: application/json` SHOULD be recorded as the `http.request.header.content-type`
5506/// attribute with value `["application/json"]`.
5507/// - A header `X-Forwarded-For: 1.2.3.4, 1.2.3.5` SHOULD be recorded as the `http.request.header.x-forwarded-for`
5508/// 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.
5509///
5510/// # Examples
5511///
5512/// - `[
5513/// "application/json",
5514/// ]`
5515/// - `[
5516/// "1.2.3.4",
5517/// "1.2.3.5",
5518/// ]`
5519pub const HTTP_REQUEST_HEADER: &str = "http.request.header";
5520
5521/// HTTP request method.
5522///
5523/// ## Notes
5524///
5525/// HTTP request method value SHOULD be "known" to the instrumentation.
5526/// By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
5527/// the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
5528/// and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).
5529///
5530/// If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
5531///
5532/// If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
5533/// the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
5534/// OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods.
5535///
5536///
5537/// If this override is done via declarative configuration, then the list MUST be configurable via the `known_methods` property
5538/// (an array of case-sensitive strings with minimum items 0) under `.instrumentation/development.general.http.client` and/or
5539/// `.instrumentation/development.general.http.server`.
5540///
5541/// In either case, this list MUST be a full override of the default known methods,
5542/// it is not a list of known methods in addition to the defaults.
5543///
5544/// HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
5545/// Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
5546/// Tracing instrumentations that do so, MUST also set `http.request.method_original` to the original value.
5547///
5548/// # Examples
5549///
5550/// - `"GET"`
5551/// - `"POST"`
5552/// - `"HEAD"`
5553pub const HTTP_REQUEST_METHOD: &str = "http.request.method";
5554
5555/// Original HTTP method sent by the client in the request line.
5556///
5557/// ## Notes
5558///
5559/// # Examples
5560///
5561/// - `"GeT"`
5562/// - `"ACL"`
5563/// - `"foo"`
5564pub const HTTP_REQUEST_METHOD_ORIGINAL: &str = "http.request.method_original";
5565
5566/// The ordinal number of request resending attempt (for any reason, including redirects).
5567///
5568/// ## Notes
5569///
5570/// 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).
5571///
5572/// # Examples
5573///
5574/// - `3`
5575pub const HTTP_REQUEST_RESEND_COUNT: &str = "http.request.resend_count";
5576
5577/// 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.
5578///
5579/// ## Notes
5580///
5581/// # Examples
5582///
5583/// - `1437`
5584#[cfg(feature = "semconv_experimental")]
5585pub const HTTP_REQUEST_SIZE: &str = "http.request.size";
5586
5587/// Deprecated, use `http.request.header.content-length` instead.
5588///
5589/// ## Notes
5590///
5591/// # Examples
5592///
5593/// - `3495`
5594#[cfg(feature = "semconv_experimental")]
5595#[deprecated(
5596 note = "{note: Replaced by `http.request.header.content-length`., reason: uncategorized}"
5597)]
5598pub const HTTP_REQUEST_CONTENT_LENGTH: &str = "http.request_content_length";
5599
5600/// Deprecated, use `http.request.body.size` instead.
5601///
5602/// ## Notes
5603///
5604/// # Examples
5605///
5606/// - `5493`
5607#[cfg(feature = "semconv_experimental")]
5608#[deprecated(
5609 note = "{note: Replaced by `http.request.body.size`., reason: renamed, renamed_to: http.request.body.size}"
5610)]
5611pub const HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED: &str =
5612 "http.request_content_length_uncompressed";
5613
5614/// 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.
5615///
5616/// ## Notes
5617///
5618/// # Examples
5619///
5620/// - `3495`
5621#[cfg(feature = "semconv_experimental")]
5622pub const HTTP_RESPONSE_BODY_SIZE: &str = "http.response.body.size";
5623
5624/// HTTP response headers, ``key`` being the normalized HTTP Header name (lowercase), the value being the header values.
5625///
5626/// ## Notes
5627///
5628/// Instrumentations SHOULD require an explicit configuration of which headers are to be captured.
5629/// Including all response headers can be a security risk - explicit configuration helps avoid leaking sensitive information.
5630///
5631/// Users MAY explicitly configure instrumentations to capture them even though it is not recommended.
5632///
5633/// The attribute value MUST consist of either multiple header values as an array of strings
5634/// or a single-item array containing a possibly comma-concatenated string, depending on the way
5635/// the HTTP library provides access to headers.
5636///
5637/// Examples:
5638///
5639/// - A header `Content-Type: application/json` header SHOULD be recorded as the `http.request.response.content-type`
5640/// attribute with value `["application/json"]`.
5641/// - A header `My-custom-header: abc, def` header SHOULD be recorded as the `http.response.header.my-custom-header`
5642/// attribute with value `["abc", "def"]` or `["abc, def"]` depending on the HTTP library.
5643///
5644/// # Examples
5645///
5646/// - `[
5647/// "application/json",
5648/// ]`
5649/// - `[
5650/// "abc",
5651/// "def",
5652/// ]`
5653pub const HTTP_RESPONSE_HEADER: &str = "http.response.header";
5654
5655/// 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.
5656///
5657/// ## Notes
5658///
5659/// # Examples
5660///
5661/// - `1437`
5662#[cfg(feature = "semconv_experimental")]
5663pub const HTTP_RESPONSE_SIZE: &str = "http.response.size";
5664
5665/// [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).
5666///
5667/// ## Notes
5668///
5669/// # Examples
5670///
5671/// - `200`
5672pub const HTTP_RESPONSE_STATUS_CODE: &str = "http.response.status_code";
5673
5674/// Deprecated, use `http.response.header.content-length` instead.
5675///
5676/// ## Notes
5677///
5678/// # Examples
5679///
5680/// - `3495`
5681#[cfg(feature = "semconv_experimental")]
5682#[deprecated(
5683 note = "{note: Replaced by `http.response.header.content-length`., reason: uncategorized}"
5684)]
5685pub const HTTP_RESPONSE_CONTENT_LENGTH: &str = "http.response_content_length";
5686
5687/// Deprecated, use `http.response.body.size` instead.
5688///
5689/// ## Notes
5690///
5691/// # Examples
5692///
5693/// - `5493`
5694#[cfg(feature = "semconv_experimental")]
5695#[deprecated(
5696 note = "{note: Replaced by `http.response.body.size`., reason: renamed, renamed_to: http.response.body.size}"
5697)]
5698pub const HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED: &str =
5699 "http.response_content_length_uncompressed";
5700
5701/// The matched route template for the request. This MUST be low-cardinality and include all static path segments, with dynamic path segments represented with placeholders.
5702///
5703/// ## Notes
5704///
5705/// 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.
5706/// SHOULD include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one.
5707///
5708/// A static path segment is a part of the route template with a fixed, low-cardinality value. This includes literal strings like `/users/` and placeholders that
5709/// are constrained to a finite, predefined set of values, e.g. `{controller}` or `{action}`.
5710///
5711/// A dynamic path segment is a placeholder for a value that can have high cardinality and is not constrained to a predefined list like static path segments.
5712///
5713/// Instrumentations SHOULD use routing information provided by the corresponding web framework. They SHOULD pick the most precise source of routing information and MAY
5714/// support custom route formatting. Instrumentations SHOULD document the format and the API used to obtain the route string.
5715///
5716/// # Examples
5717///
5718/// - `"/users/:userID?"`
5719/// - `"my-controller/my-action/{id?}"`
5720pub const HTTP_ROUTE: &str = "http.route";
5721
5722/// Deprecated, use `url.scheme` instead.
5723///
5724/// ## Notes
5725///
5726/// # Examples
5727///
5728/// - `"http"`
5729/// - `"https"`
5730#[cfg(feature = "semconv_experimental")]
5731#[deprecated(note = "{note: Replaced by `url.scheme`., reason: renamed, renamed_to: url.scheme}")]
5732pub const HTTP_SCHEME: &str = "http.scheme";
5733
5734/// Deprecated, use `server.address` instead.
5735///
5736/// ## Notes
5737///
5738/// # Examples
5739///
5740/// - `"example.com"`
5741#[cfg(feature = "semconv_experimental")]
5742#[deprecated(
5743 note = "{note: Replaced by `server.address`., reason: renamed, renamed_to: server.address}"
5744)]
5745pub const HTTP_SERVER_NAME: &str = "http.server_name";
5746
5747/// Deprecated, use `http.response.status_code` instead.
5748///
5749/// ## Notes
5750///
5751/// # Examples
5752///
5753/// - `200`
5754#[cfg(feature = "semconv_experimental")]
5755#[deprecated(
5756 note = "{note: Replaced by `http.response.status_code`., reason: renamed, renamed_to: http.response.status_code}"
5757)]
5758pub const HTTP_STATUS_CODE: &str = "http.status_code";
5759
5760/// Deprecated, use `url.path` and `url.query` instead.
5761///
5762/// ## Notes
5763///
5764/// # Examples
5765///
5766/// - `"/search?q=OpenTelemetry#SemConv"`
5767#[cfg(feature = "semconv_experimental")]
5768#[deprecated(note = "{note: Split to `url.path` and `url.query`., reason: obsoleted}")]
5769pub const HTTP_TARGET: &str = "http.target";
5770
5771/// Deprecated, use `url.full` instead.
5772///
5773/// ## Notes
5774///
5775/// # Examples
5776///
5777/// - `"https://www.foo.bar/search?q=OpenTelemetry#SemConv"`
5778#[cfg(feature = "semconv_experimental")]
5779#[deprecated(note = "{note: Replaced by `url.full`., reason: renamed, renamed_to: url.full}")]
5780pub const HTTP_URL: &str = "http.url";
5781
5782/// Deprecated, use `user_agent.original` instead.
5783///
5784/// ## Notes
5785///
5786/// # Examples
5787///
5788/// - `"CERN-LineMode/2.15 libwww/2.17b3"`
5789/// - `"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"`
5790#[cfg(feature = "semconv_experimental")]
5791#[deprecated(
5792 note = "{note: Replaced by `user_agent.original`., reason: renamed, renamed_to: user_agent.original}"
5793)]
5794pub const HTTP_USER_AGENT: &str = "http.user_agent";
5795
5796/// Design capacity in Watts-hours or Ampere-hours
5797///
5798/// ## Notes
5799///
5800/// # Examples
5801///
5802/// - `"9.3Ah"`
5803/// - `"50Wh"`
5804#[cfg(feature = "semconv_experimental")]
5805pub const HW_BATTERY_CAPACITY: &str = "hw.battery.capacity";
5806
5807/// Battery [chemistry](https://schemas.dmtf.org/wbem/cim-html/2.31.0/CIM_Battery.html), e.g. Lithium-Ion, Nickel-Cadmium, etc.
5808///
5809/// ## Notes
5810///
5811/// # Examples
5812///
5813/// - `"Li-ion"`
5814/// - `"NiMH"`
5815#[cfg(feature = "semconv_experimental")]
5816pub const HW_BATTERY_CHEMISTRY: &str = "hw.battery.chemistry";
5817
5818/// The current state of the battery
5819///
5820/// ## Notes
5821#[cfg(feature = "semconv_experimental")]
5822pub const HW_BATTERY_STATE: &str = "hw.battery.state";
5823
5824/// BIOS version of the hardware component
5825///
5826/// ## Notes
5827///
5828/// # Examples
5829///
5830/// - `"1.2.3"`
5831#[cfg(feature = "semconv_experimental")]
5832pub const HW_BIOS_VERSION: &str = "hw.bios_version";
5833
5834/// Driver version for the hardware component
5835///
5836/// ## Notes
5837///
5838/// # Examples
5839///
5840/// - `"10.2.1-3"`
5841#[cfg(feature = "semconv_experimental")]
5842pub const HW_DRIVER_VERSION: &str = "hw.driver_version";
5843
5844/// Type of the enclosure (useful for modular systems)
5845///
5846/// ## Notes
5847///
5848/// # Examples
5849///
5850/// - `"Computer"`
5851/// - `"Storage"`
5852/// - `"Switch"`
5853#[cfg(feature = "semconv_experimental")]
5854pub const HW_ENCLOSURE_TYPE: &str = "hw.enclosure.type";
5855
5856/// Firmware version of the hardware component
5857///
5858/// ## Notes
5859///
5860/// # Examples
5861///
5862/// - `"2.0.1"`
5863#[cfg(feature = "semconv_experimental")]
5864pub const HW_FIRMWARE_VERSION: &str = "hw.firmware_version";
5865
5866/// Type of task the GPU is performing
5867///
5868/// ## Notes
5869#[cfg(feature = "semconv_experimental")]
5870pub const HW_GPU_TASK: &str = "hw.gpu.task";
5871
5872/// An identifier for the hardware component, unique within the monitored host
5873///
5874/// ## Notes
5875///
5876/// # Examples
5877///
5878/// - `"win32battery_battery_testsysa33_1"`
5879#[cfg(feature = "semconv_experimental")]
5880pub const HW_ID: &str = "hw.id";
5881
5882/// Type of limit for hardware components
5883///
5884/// ## Notes
5885#[cfg(feature = "semconv_experimental")]
5886pub const HW_LIMIT_TYPE: &str = "hw.limit_type";
5887
5888/// RAID Level of the logical disk
5889///
5890/// ## Notes
5891///
5892/// # Examples
5893///
5894/// - `"RAID0+1"`
5895/// - `"RAID5"`
5896/// - `"RAID10"`
5897#[cfg(feature = "semconv_experimental")]
5898pub const HW_LOGICAL_DISK_RAID_LEVEL: &str = "hw.logical_disk.raid_level";
5899
5900/// State of the logical disk space usage
5901///
5902/// ## Notes
5903#[cfg(feature = "semconv_experimental")]
5904pub const HW_LOGICAL_DISK_STATE: &str = "hw.logical_disk.state";
5905
5906/// Type of the memory module
5907///
5908/// ## Notes
5909///
5910/// # Examples
5911///
5912/// - `"DDR4"`
5913/// - `"DDR5"`
5914/// - `"LPDDR5"`
5915#[cfg(feature = "semconv_experimental")]
5916pub const HW_MEMORY_TYPE: &str = "hw.memory.type";
5917
5918/// Descriptive model name of the hardware component
5919///
5920/// ## Notes
5921///
5922/// # Examples
5923///
5924/// - `"PERC H740P"`
5925/// - `"Intel(R) Core(TM) i7-10700K"`
5926/// - `"Dell XPS 15 Battery"`
5927#[cfg(feature = "semconv_experimental")]
5928pub const HW_MODEL: &str = "hw.model";
5929
5930/// An easily-recognizable name for the hardware component
5931///
5932/// ## Notes
5933///
5934/// # Examples
5935///
5936/// - `"eth0"`
5937#[cfg(feature = "semconv_experimental")]
5938pub const HW_NAME: &str = "hw.name";
5939
5940/// Logical addresses of the adapter (e.g. IP address, or WWPN)
5941///
5942/// ## Notes
5943///
5944/// # Examples
5945///
5946/// - `[
5947/// "172.16.8.21",
5948/// "57.11.193.42",
5949/// ]`
5950#[cfg(feature = "semconv_experimental")]
5951pub const HW_NETWORK_LOGICAL_ADDRESSES: &str = "hw.network.logical_addresses";
5952
5953/// Physical address of the adapter (e.g. MAC address, or WWNN)
5954///
5955/// ## Notes
5956///
5957/// # Examples
5958///
5959/// - `"00-90-F5-E9-7B-36"`
5960#[cfg(feature = "semconv_experimental")]
5961pub const HW_NETWORK_PHYSICAL_ADDRESS: &str = "hw.network.physical_address";
5962
5963/// Unique identifier of the parent component (typically the `hw.id` attribute of the enclosure, or disk controller)
5964///
5965/// ## Notes
5966///
5967/// # Examples
5968///
5969/// - `"dellStorage_perc_0"`
5970#[cfg(feature = "semconv_experimental")]
5971pub const HW_PARENT: &str = "hw.parent";
5972
5973/// [S.M.A.R.T.](https://wikipedia.org/wiki/S.M.A.R.T.) (Self-Monitoring, Analysis, and Reporting Technology) attribute of the physical disk
5974///
5975/// ## Notes
5976///
5977/// # Examples
5978///
5979/// - `"Spin Retry Count"`
5980/// - `"Seek Error Rate"`
5981/// - `"Raw Read Error Rate"`
5982#[cfg(feature = "semconv_experimental")]
5983pub const HW_PHYSICAL_DISK_SMART_ATTRIBUTE: &str = "hw.physical_disk.smart_attribute";
5984
5985/// State of the physical disk endurance utilization
5986///
5987/// ## Notes
5988#[cfg(feature = "semconv_experimental")]
5989pub const HW_PHYSICAL_DISK_STATE: &str = "hw.physical_disk.state";
5990
5991/// Type of the physical disk
5992///
5993/// ## Notes
5994///
5995/// # Examples
5996///
5997/// - `"HDD"`
5998/// - `"SSD"`
5999/// - `"10K"`
6000#[cfg(feature = "semconv_experimental")]
6001pub const HW_PHYSICAL_DISK_TYPE: &str = "hw.physical_disk.type";
6002
6003/// Location of the sensor
6004///
6005/// ## Notes
6006///
6007/// # Examples
6008///
6009/// - `"cpu0"`
6010/// - `"ps1"`
6011/// - `"INLET"`
6012/// - `"CPU0_DIE"`
6013/// - `"AMBIENT"`
6014/// - `"MOTHERBOARD"`
6015/// - `"PS0 V3_3"`
6016/// - `"MAIN_12V"`
6017/// - `"CPU_VCORE"`
6018#[cfg(feature = "semconv_experimental")]
6019pub const HW_SENSOR_LOCATION: &str = "hw.sensor_location";
6020
6021/// Serial number of the hardware component
6022///
6023/// ## Notes
6024///
6025/// # Examples
6026///
6027/// - `"CNFCP0123456789"`
6028#[cfg(feature = "semconv_experimental")]
6029pub const HW_SERIAL_NUMBER: &str = "hw.serial_number";
6030
6031/// The current state of the component
6032///
6033/// ## Notes
6034#[cfg(feature = "semconv_experimental")]
6035pub const HW_STATE: &str = "hw.state";
6036
6037/// Type of tape drive operation
6038///
6039/// ## Notes
6040#[cfg(feature = "semconv_experimental")]
6041pub const HW_TAPE_DRIVE_OPERATION_TYPE: &str = "hw.tape_drive.operation_type";
6042
6043/// Type of the component
6044///
6045/// ## Notes
6046///
6047/// 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`
6048#[cfg(feature = "semconv_experimental")]
6049pub const HW_TYPE: &str = "hw.type";
6050
6051/// Vendor name of the hardware component
6052///
6053/// ## Notes
6054///
6055/// # Examples
6056///
6057/// - `"Dell"`
6058/// - `"HP"`
6059/// - `"Intel"`
6060/// - `"AMD"`
6061/// - `"LSI"`
6062/// - `"Lenovo"`
6063#[cfg(feature = "semconv_experimental")]
6064pub const HW_VENDOR: &str = "hw.vendor";
6065
6066/// This attribute represents the state of the application.
6067///
6068/// ## Notes
6069///
6070/// 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
6071#[cfg(feature = "semconv_experimental")]
6072pub const IOS_APP_STATE: &str = "ios.app.state";
6073
6074/// Deprecated. Use the `ios.app.state` attribute.
6075///
6076/// ## Notes
6077///
6078/// 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
6079#[cfg(feature = "semconv_experimental")]
6080#[deprecated(
6081 note = "{note: Replaced by `ios.app.state`., reason: renamed, renamed_to: ios.app.state}"
6082)]
6083pub const IOS_STATE: &str = "ios.state";
6084
6085/// Protocol version, as specified in the `jsonrpc` property of the request and its corresponding response.
6086///
6087/// ## Notes
6088///
6089/// # Examples
6090///
6091/// - `"2.0"`
6092/// - `"1.0"`
6093#[cfg(feature = "semconv_experimental")]
6094pub const JSONRPC_PROTOCOL_VERSION: &str = "jsonrpc.protocol.version";
6095
6096/// A string representation of the `id` property of the request and its corresponding response.
6097///
6098/// ## Notes
6099///
6100/// Under the [JSON-RPC specification](https://www.jsonrpc.org/specification), the `id` property may be a string, number, null, or omitted entirely. When omitted, the request is treated as a notification. Using `null` is not equivalent to omitting the `id`, but it is discouraged.
6101/// Instrumentations SHOULD NOT capture this attribute when the `id` is `null` or omitted.
6102///
6103/// # Examples
6104///
6105/// - `"10"`
6106/// - `"request-7"`
6107#[cfg(feature = "semconv_experimental")]
6108pub const JSONRPC_REQUEST_ID: &str = "jsonrpc.request.id";
6109
6110/// Name of the buffer pool.
6111///
6112/// ## Notes
6113///
6114/// 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()).
6115///
6116/// # Examples
6117///
6118/// - `"mapped"`
6119/// - `"direct"`
6120#[cfg(feature = "semconv_experimental")]
6121pub const JVM_BUFFER_POOL_NAME: &str = "jvm.buffer.pool.name";
6122
6123/// Name of the garbage collector action.
6124///
6125/// ## Notes
6126///
6127/// 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()).
6128///
6129/// # Examples
6130///
6131/// - `"end of minor GC"`
6132/// - `"end of major GC"`
6133pub const JVM_GC_ACTION: &str = "jvm.gc.action";
6134
6135/// Name of the garbage collector cause.
6136///
6137/// ## Notes
6138///
6139/// 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()).
6140///
6141/// # Examples
6142///
6143/// - `"System.gc()"`
6144/// - `"Allocation Failure"`
6145#[cfg(feature = "semconv_experimental")]
6146pub const JVM_GC_CAUSE: &str = "jvm.gc.cause";
6147
6148/// Name of the garbage collector.
6149///
6150/// ## Notes
6151///
6152/// 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()).
6153///
6154/// # Examples
6155///
6156/// - `"G1 Young Generation"`
6157/// - `"G1 Old Generation"`
6158pub const JVM_GC_NAME: &str = "jvm.gc.name";
6159
6160/// Name of the memory pool.
6161///
6162/// ## Notes
6163///
6164/// 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()).
6165///
6166/// # Examples
6167///
6168/// - `"G1 Old Gen"`
6169/// - `"G1 Eden space"`
6170/// - `"G1 Survivor Space"`
6171pub const JVM_MEMORY_POOL_NAME: &str = "jvm.memory.pool.name";
6172
6173/// The type of memory.
6174///
6175/// ## Notes
6176///
6177/// # Examples
6178///
6179/// - `"heap"`
6180/// - `"non_heap"`
6181pub const JVM_MEMORY_TYPE: &str = "jvm.memory.type";
6182
6183/// Whether the thread is daemon or not.
6184///
6185/// ## Notes
6186pub const JVM_THREAD_DAEMON: &str = "jvm.thread.daemon";
6187
6188/// State of the thread.
6189///
6190/// ## Notes
6191///
6192/// # Examples
6193///
6194/// - `"runnable"`
6195/// - `"blocked"`
6196pub const JVM_THREAD_STATE: &str = "jvm.thread.state";
6197
6198/// The name of the cluster.
6199///
6200/// ## Notes
6201///
6202/// # Examples
6203///
6204/// - `"opentelemetry-cluster"`
6205pub const K8S_CLUSTER_NAME: &str = "k8s.cluster.name";
6206
6207/// A pseudo-ID for the cluster, set to the UID of the `kube-system` namespace.
6208///
6209/// ## Notes
6210///
6211/// K8s doesn't have support for obtaining a cluster ID. If this is ever
6212/// added, we will recommend collecting the `k8s.cluster.uid` through the
6213/// official APIs. In the meantime, we are able to use the `uid` of the
6214/// `kube-system` namespace as a proxy for cluster ID. Read on for the
6215/// rationale.
6216///
6217/// Every object created in a K8s cluster is assigned a distinct UID. The
6218/// `kube-system` namespace is used by Kubernetes itself and will exist
6219/// for the lifetime of the cluster. Using the `uid` of the `kube-system`
6220/// namespace is a reasonable proxy for the K8s ClusterID as it will only
6221/// change if the cluster is rebuilt. Furthermore, Kubernetes UIDs are
6222/// UUIDs as standardized by
6223/// [ISO/IEC 9834-8 and ITU-T X.667](https://www.itu.int/ITU-T/studygroups/com17/oid.html).
6224/// Which states:
6225///
6226/// \] If generated according to one of the mechanisms defined in Rec.
6227/// \] ITU-T X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be
6228/// \] different from all other UUIDs generated before 3603 A.D., or is
6229/// \] extremely likely to be different (depending on the mechanism chosen).
6230///
6231/// Therefore, UIDs between clusters should be extremely unlikely to
6232/// conflict.
6233///
6234/// # Examples
6235///
6236/// - `"218fc5a9-a5f1-4b54-aa05-46717d0ab26d"`
6237pub const K8S_CLUSTER_UID: &str = "k8s.cluster.uid";
6238
6239/// The type of file system component for ephemeral storage.
6240///
6241/// ## Notes
6242///
6243/// Eviction decisions based on ephemeral-storage resource limits are made based on the total container usage.
6244///
6245/// # Examples
6246///
6247/// - `"rootfs"`
6248/// - `"logs"`
6249#[cfg(feature = "semconv_experimental")]
6250pub const K8S_CONTAINER_EPHEMERAL_STORAGE_FS_TYPE: &str = "k8s.container.ephemeral_storage.fs_type";
6251
6252/// The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (`container.name`).
6253///
6254/// ## Notes
6255///
6256/// # Examples
6257///
6258/// - `"redis"`
6259pub const K8S_CONTAINER_NAME: &str = "k8s.container.name";
6260
6261/// Number of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec.
6262///
6263/// ## Notes
6264pub const K8S_CONTAINER_RESTART_COUNT: &str = "k8s.container.restart_count";
6265
6266/// Last terminated reason of the Container.
6267///
6268/// ## Notes
6269///
6270/// # Examples
6271///
6272/// - `"Evicted"`
6273/// - `"Error"`
6274#[cfg(feature = "semconv_experimental")]
6275pub const K8S_CONTAINER_STATUS_LAST_TERMINATED_REASON: &str =
6276 "k8s.container.status.last_terminated_reason";
6277
6278/// The reason for the container state. Corresponds to the `reason` field of the: [K8s ContainerStateWaiting](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#containerstatewaiting-v1-core) or [K8s ContainerStateTerminated](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#containerstateterminated-v1-core)
6279///
6280/// ## Notes
6281///
6282/// # Examples
6283///
6284/// - `"ContainerCreating"`
6285/// - `"CrashLoopBackOff"`
6286/// - `"CreateContainerConfigError"`
6287/// - `"ErrImagePull"`
6288/// - `"ImagePullBackOff"`
6289/// - `"OOMKilled"`
6290/// - `"Completed"`
6291/// - `"Error"`
6292/// - `"ContainerCannotRun"`
6293#[cfg(feature = "semconv_experimental")]
6294pub const K8S_CONTAINER_STATUS_REASON: &str = "k8s.container.status.reason";
6295
6296/// The state of the container. [K8s ContainerState](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#containerstate-v1-core)
6297///
6298/// ## Notes
6299///
6300/// # Examples
6301///
6302/// - `"terminated"`
6303/// - `"running"`
6304/// - `"waiting"`
6305#[cfg(feature = "semconv_experimental")]
6306pub const K8S_CONTAINER_STATUS_STATE: &str = "k8s.container.status.state";
6307
6308/// The cronjob annotation placed on the CronJob, the ``key`` being the annotation name, the value being the annotation value.
6309///
6310/// ## Notes
6311///
6312/// Examples:
6313///
6314/// - An annotation `retries` with value `4` SHOULD be recorded as the
6315/// `k8s.cronjob.annotation.retries` attribute with value `"4"`.
6316/// - An annotation `data` with empty string value SHOULD be recorded as
6317/// the `k8s.cronjob.annotation.data` attribute with value `""`.
6318///
6319/// # Examples
6320///
6321/// - `"4"`
6322/// - `""`
6323pub const K8S_CRONJOB_ANNOTATION: &str = "k8s.cronjob.annotation";
6324
6325/// The label placed on the CronJob, the ``key`` being the label name, the value being the label value.
6326///
6327/// ## Notes
6328///
6329/// Examples:
6330///
6331/// - A label `type` with value `weekly` SHOULD be recorded as the
6332/// `k8s.cronjob.label.type` attribute with value `"weekly"`.
6333/// - A label `automated` with empty string value SHOULD be recorded as
6334/// the `k8s.cronjob.label.automated` attribute with value `""`.
6335///
6336/// # Examples
6337///
6338/// - `"weekly"`
6339/// - `""`
6340pub const K8S_CRONJOB_LABEL: &str = "k8s.cronjob.label";
6341
6342/// The name of the CronJob.
6343///
6344/// ## Notes
6345///
6346/// # Examples
6347///
6348/// - `"opentelemetry"`
6349pub const K8S_CRONJOB_NAME: &str = "k8s.cronjob.name";
6350
6351/// The UID of the CronJob.
6352///
6353/// ## Notes
6354///
6355/// # Examples
6356///
6357/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
6358pub const K8S_CRONJOB_UID: &str = "k8s.cronjob.uid";
6359
6360/// The annotation placed on the DaemonSet, the ``key`` being the annotation name, the value being the annotation value, even if the value is empty.
6361///
6362/// ## Notes
6363///
6364/// Examples:
6365///
6366/// - A label `replicas` with value `1` SHOULD be recorded
6367/// as the `k8s.daemonset.annotation.replicas` attribute with value `"1"`.
6368/// - A label `data` with empty string value SHOULD be recorded as
6369/// the `k8s.daemonset.annotation.data` attribute with value `""`.
6370///
6371/// # Examples
6372///
6373/// - `"1"`
6374/// - `""`
6375pub const K8S_DAEMONSET_ANNOTATION: &str = "k8s.daemonset.annotation";
6376
6377/// The label placed on the DaemonSet, the ``key`` being the label name, the value being the label value, even if the value is empty.
6378///
6379/// ## Notes
6380///
6381/// Examples:
6382///
6383/// - A label `app` with value `guestbook` SHOULD be recorded
6384/// as the `k8s.daemonset.label.app` attribute with value `"guestbook"`.
6385/// - A label `data` with empty string value SHOULD be recorded as
6386/// the `k8s.daemonset.label.injected` attribute with value `""`.
6387///
6388/// # Examples
6389///
6390/// - `"guestbook"`
6391/// - `""`
6392pub const K8S_DAEMONSET_LABEL: &str = "k8s.daemonset.label";
6393
6394/// The name of the DaemonSet.
6395///
6396/// ## Notes
6397///
6398/// # Examples
6399///
6400/// - `"opentelemetry"`
6401pub const K8S_DAEMONSET_NAME: &str = "k8s.daemonset.name";
6402
6403/// The UID of the DaemonSet.
6404///
6405/// ## Notes
6406///
6407/// # Examples
6408///
6409/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
6410pub const K8S_DAEMONSET_UID: &str = "k8s.daemonset.uid";
6411
6412/// The annotation placed on the Deployment, the ``key`` being the annotation name, the value being the annotation value, even if the value is empty.
6413///
6414/// ## Notes
6415///
6416/// Examples:
6417///
6418/// - A label `replicas` with value `1` SHOULD be recorded
6419/// as the `k8s.deployment.annotation.replicas` attribute with value `"1"`.
6420/// - A label `data` with empty string value SHOULD be recorded as
6421/// the `k8s.deployment.annotation.data` attribute with value `""`.
6422///
6423/// # Examples
6424///
6425/// - `"1"`
6426/// - `""`
6427pub const K8S_DEPLOYMENT_ANNOTATION: &str = "k8s.deployment.annotation";
6428
6429/// The label placed on the Deployment, the ``key`` being the label name, the value being the label value, even if the value is empty.
6430///
6431/// ## Notes
6432///
6433/// Examples:
6434///
6435/// - A label `replicas` with value `0` SHOULD be recorded
6436/// as the `k8s.deployment.label.app` attribute with value `"guestbook"`.
6437/// - A label `injected` with empty string value SHOULD be recorded as
6438/// the `k8s.deployment.label.injected` attribute with value `""`.
6439///
6440/// # Examples
6441///
6442/// - `"guestbook"`
6443/// - `""`
6444pub const K8S_DEPLOYMENT_LABEL: &str = "k8s.deployment.label";
6445
6446/// The name of the Deployment.
6447///
6448/// ## Notes
6449///
6450/// # Examples
6451///
6452/// - `"opentelemetry"`
6453pub const K8S_DEPLOYMENT_NAME: &str = "k8s.deployment.name";
6454
6455/// The UID of the Deployment.
6456///
6457/// ## Notes
6458///
6459/// # Examples
6460///
6461/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
6462pub const K8S_DEPLOYMENT_UID: &str = "k8s.deployment.uid";
6463
6464/// The type of metric source for the horizontal pod autoscaler.
6465///
6466/// ## Notes
6467///
6468/// This attribute reflects the `type` field of spec.metrics\[\] in the HPA.
6469///
6470/// # Examples
6471///
6472/// - `"Resource"`
6473/// - `"ContainerResource"`
6474#[cfg(feature = "semconv_experimental")]
6475pub const K8S_HPA_METRIC_TYPE: &str = "k8s.hpa.metric.type";
6476
6477/// The name of the horizontal pod autoscaler.
6478///
6479/// ## Notes
6480///
6481/// # Examples
6482///
6483/// - `"opentelemetry"`
6484#[cfg(feature = "semconv_experimental")]
6485pub const K8S_HPA_NAME: &str = "k8s.hpa.name";
6486
6487/// The API version of the target resource to scale for the HorizontalPodAutoscaler.
6488///
6489/// ## Notes
6490///
6491/// This maps to the `apiVersion` field in the `scaleTargetRef` of the HPA spec.
6492///
6493/// # Examples
6494///
6495/// - `"apps/v1"`
6496/// - `"autoscaling/v2"`
6497#[cfg(feature = "semconv_experimental")]
6498pub const K8S_HPA_SCALETARGETREF_API_VERSION: &str = "k8s.hpa.scaletargetref.api_version";
6499
6500/// The kind of the target resource to scale for the HorizontalPodAutoscaler.
6501///
6502/// ## Notes
6503///
6504/// This maps to the `kind` field in the `scaleTargetRef` of the HPA spec.
6505///
6506/// # Examples
6507///
6508/// - `"Deployment"`
6509/// - `"StatefulSet"`
6510#[cfg(feature = "semconv_experimental")]
6511pub const K8S_HPA_SCALETARGETREF_KIND: &str = "k8s.hpa.scaletargetref.kind";
6512
6513/// The name of the target resource to scale for the HorizontalPodAutoscaler.
6514///
6515/// ## Notes
6516///
6517/// This maps to the `name` field in the `scaleTargetRef` of the HPA spec.
6518///
6519/// # Examples
6520///
6521/// - `"my-deployment"`
6522/// - `"my-statefulset"`
6523#[cfg(feature = "semconv_experimental")]
6524pub const K8S_HPA_SCALETARGETREF_NAME: &str = "k8s.hpa.scaletargetref.name";
6525
6526/// The UID of the horizontal pod autoscaler.
6527///
6528/// ## Notes
6529///
6530/// # Examples
6531///
6532/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
6533#[cfg(feature = "semconv_experimental")]
6534pub const K8S_HPA_UID: &str = "k8s.hpa.uid";
6535
6536/// The size (identifier) of the K8s huge page.
6537///
6538/// ## Notes
6539///
6540/// # Examples
6541///
6542/// - `"2Mi"`
6543#[cfg(feature = "semconv_experimental")]
6544pub const K8S_HUGEPAGE_SIZE: &str = "k8s.hugepage.size";
6545
6546/// The annotation placed on the Job, the ``key`` being the annotation name, the value being the annotation value, even if the value is empty.
6547///
6548/// ## Notes
6549///
6550/// Examples:
6551///
6552/// - A label `number` with value `1` SHOULD be recorded
6553/// as the `k8s.job.annotation.number` attribute with value `"1"`.
6554/// - A label `data` with empty string value SHOULD be recorded as
6555/// the `k8s.job.annotation.data` attribute with value `""`.
6556///
6557/// # Examples
6558///
6559/// - `"1"`
6560/// - `""`
6561pub const K8S_JOB_ANNOTATION: &str = "k8s.job.annotation";
6562
6563/// The label placed on the Job, the ``key`` being the label name, the value being the label value, even if the value is empty.
6564///
6565/// ## Notes
6566///
6567/// Examples:
6568///
6569/// - A label `jobtype` with value `ci` SHOULD be recorded
6570/// as the `k8s.job.label.jobtype` attribute with value `"ci"`.
6571/// - A label `data` with empty string value SHOULD be recorded as
6572/// the `k8s.job.label.automated` attribute with value `""`.
6573///
6574/// # Examples
6575///
6576/// - `"ci"`
6577/// - `""`
6578pub const K8S_JOB_LABEL: &str = "k8s.job.label";
6579
6580/// The name of the Job.
6581///
6582/// ## Notes
6583///
6584/// # Examples
6585///
6586/// - `"opentelemetry"`
6587pub const K8S_JOB_NAME: &str = "k8s.job.name";
6588
6589/// The UID of the Job.
6590///
6591/// ## Notes
6592///
6593/// # Examples
6594///
6595/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
6596pub const K8S_JOB_UID: &str = "k8s.job.uid";
6597
6598/// The annotation placed on the Namespace, the ``key`` being the annotation name, the value being the annotation value, even if the value is empty.
6599///
6600/// ## Notes
6601///
6602/// Examples:
6603///
6604/// - A label `ttl` with value `0` SHOULD be recorded
6605/// as the `k8s.namespace.annotation.ttl` attribute with value `"0"`.
6606/// - A label `data` with empty string value SHOULD be recorded as
6607/// the `k8s.namespace.annotation.data` attribute with value `""`.
6608///
6609/// # Examples
6610///
6611/// - `"0"`
6612/// - `""`
6613pub const K8S_NAMESPACE_ANNOTATION: &str = "k8s.namespace.annotation";
6614
6615/// The label placed on the Namespace, the ``key`` being the label name, the value being the label value, even if the value is empty.
6616///
6617/// ## Notes
6618///
6619/// Examples:
6620///
6621/// - A label `kubernetes.io/metadata.name` with value `default` SHOULD be recorded
6622/// as the `k8s.namespace.label.kubernetes.io/metadata.name` attribute with value `"default"`.
6623/// - A label `data` with empty string value SHOULD be recorded as
6624/// the `k8s.namespace.label.data` attribute with value `""`.
6625///
6626/// # Examples
6627///
6628/// - `"default"`
6629/// - `""`
6630pub const K8S_NAMESPACE_LABEL: &str = "k8s.namespace.label";
6631
6632/// The name of the namespace that the pod is running in.
6633///
6634/// ## Notes
6635///
6636/// # Examples
6637///
6638/// - `"default"`
6639pub const K8S_NAMESPACE_NAME: &str = "k8s.namespace.name";
6640
6641/// The phase of the K8s namespace.
6642///
6643/// ## Notes
6644///
6645/// This attribute aligns with the `phase` field of the
6646/// [K8s NamespaceStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#namespacestatus-v1-core)
6647///
6648/// # Examples
6649///
6650/// - `"active"`
6651/// - `"terminating"`
6652#[cfg(feature = "semconv_experimental")]
6653pub const K8S_NAMESPACE_PHASE: &str = "k8s.namespace.phase";
6654
6655/// The annotation placed on the Node, the ``key`` being the annotation name, the value being the annotation value, even if the value is empty.
6656///
6657/// ## Notes
6658///
6659/// Examples:
6660///
6661/// - An annotation `node.alpha.kubernetes.io/ttl` with value `0` SHOULD be recorded as
6662/// the `k8s.node.annotation.node.alpha.kubernetes.io/ttl` attribute with value `"0"`.
6663/// - An annotation `data` with empty string value SHOULD be recorded as
6664/// the `k8s.node.annotation.data` attribute with value `""`.
6665///
6666/// # Examples
6667///
6668/// - `"0"`
6669/// - `""`
6670pub const K8S_NODE_ANNOTATION: &str = "k8s.node.annotation";
6671
6672/// The status of the condition, one of True, False, Unknown.
6673///
6674/// ## Notes
6675///
6676/// This attribute aligns with the `status` field of the
6677/// [NodeCondition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodecondition-v1-core)
6678///
6679/// # Examples
6680///
6681/// - `"true"`
6682/// - `"false"`
6683/// - `"unknown"`
6684#[cfg(feature = "semconv_experimental")]
6685pub const K8S_NODE_CONDITION_STATUS: &str = "k8s.node.condition.status";
6686
6687/// The condition type of a K8s Node.
6688///
6689/// ## Notes
6690///
6691/// K8s Node conditions as described
6692/// by [K8s documentation](https://kubernetes.io/docs/reference/node/node-status/#condition).
6693///
6694/// This attribute aligns with the `type` field of the
6695/// [NodeCondition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodecondition-v1-core)
6696///
6697/// The set of possible values is not limited to those listed here. Managed Kubernetes environments,
6698/// or custom controllers MAY introduce additional node condition types.
6699/// When this occurs, the exact value as reported by the Kubernetes API SHOULD be used.
6700///
6701/// # Examples
6702///
6703/// - `"Ready"`
6704/// - `"DiskPressure"`
6705#[cfg(feature = "semconv_experimental")]
6706pub const K8S_NODE_CONDITION_TYPE: &str = "k8s.node.condition.type";
6707
6708/// The label placed on the Node, the ``key`` being the label name, the value being the label value, even if the value is empty.
6709///
6710/// ## Notes
6711///
6712/// Examples:
6713///
6714/// - A label `kubernetes.io/arch` with value `arm64` SHOULD be recorded
6715/// as the `k8s.node.label.kubernetes.io/arch` attribute with value `"arm64"`.
6716/// - A label `data` with empty string value SHOULD be recorded as
6717/// the `k8s.node.label.data` attribute with value `""`.
6718///
6719/// # Examples
6720///
6721/// - `"arm64"`
6722/// - `""`
6723pub const K8S_NODE_LABEL: &str = "k8s.node.label";
6724
6725/// The name of the Node.
6726///
6727/// ## Notes
6728///
6729/// # Examples
6730///
6731/// - `"node-1"`
6732pub const K8S_NODE_NAME: &str = "k8s.node.name";
6733
6734/// The name of the system container running on the K8s Node.
6735///
6736/// ## Notes
6737///
6738/// # Examples
6739///
6740/// - `"kubelet"`
6741/// - `"runtime"`
6742/// - `"pods"`
6743/// - `"misc"`
6744#[cfg(feature = "semconv_experimental")]
6745pub const K8S_NODE_SYSTEM_CONTAINER_NAME: &str = "k8s.node.system_container.name";
6746
6747/// The UID of the Node.
6748///
6749/// ## Notes
6750///
6751/// # Examples
6752///
6753/// - `"1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2"`
6754pub const K8S_NODE_UID: &str = "k8s.node.uid";
6755
6756/// The annotation placed on the PersistentVolume, the ``key`` being the annotation name, the value being the annotation value, even if the value is empty.
6757///
6758/// ## Notes
6759///
6760/// Examples:
6761///
6762/// - An annotation `pv.kubernetes.io/provisioned-by` with value `kubernetes.io/aws-ebs` SHOULD be recorded as
6763/// the `k8s.persistentvolume.annotation.pv.kubernetes.io/provisioned-by` attribute with value `"kubernetes.io/aws-ebs"`.
6764/// - An annotation `data` with empty string value SHOULD be recorded as
6765/// the `k8s.persistentvolume.annotation.data` attribute with value `""`.
6766///
6767/// # Examples
6768///
6769/// - `"kubernetes.io/aws-ebs"`
6770/// - `""`
6771#[cfg(feature = "semconv_experimental")]
6772pub const K8S_PERSISTENTVOLUME_ANNOTATION: &str = "k8s.persistentvolume.annotation";
6773
6774/// The label placed on the PersistentVolume, the ``key`` being the label name, the value being the label value, even if the value is empty.
6775///
6776/// ## Notes
6777///
6778/// Examples:
6779///
6780/// - A label `type` with value `ssd` SHOULD be recorded as
6781/// the `k8s.persistentvolume.label.type` attribute with value `"ssd"`.
6782/// - A label `data` with empty string value SHOULD be recorded as
6783/// the `k8s.persistentvolume.label.data` attribute with value `""`.
6784///
6785/// # Examples
6786///
6787/// - `"ssd"`
6788/// - `""`
6789#[cfg(feature = "semconv_experimental")]
6790pub const K8S_PERSISTENTVOLUME_LABEL: &str = "k8s.persistentvolume.label";
6791
6792/// The name of the PersistentVolume.
6793///
6794/// ## Notes
6795///
6796/// # Examples
6797///
6798/// - `"pv-data-01"`
6799#[cfg(feature = "semconv_experimental")]
6800pub const K8S_PERSISTENTVOLUME_NAME: &str = "k8s.persistentvolume.name";
6801
6802/// The reclaim policy of the PersistentVolume.
6803///
6804/// ## Notes
6805///
6806/// This attribute aligns with the `persistentVolumeReclaimPolicy` field of the
6807/// [K8s PersistentVolumeSpec](https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-v1/#PersistentVolumeSpec).
6808///
6809/// # Examples
6810///
6811/// - `"Delete"`
6812/// - `"Retain"`
6813/// - `"Recycle"`
6814#[cfg(feature = "semconv_experimental")]
6815pub const K8S_PERSISTENTVOLUME_RECLAIM_POLICY: &str = "k8s.persistentvolume.reclaim_policy";
6816
6817/// The phase of the PersistentVolume.
6818///
6819/// ## Notes
6820///
6821/// This attribute aligns with the `phase` field of the
6822/// [K8s PersistentVolumeStatus](https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-v1/#PersistentVolumeStatus).
6823///
6824/// # Examples
6825///
6826/// - `"Pending"`
6827/// - `"Available"`
6828/// - `"Bound"`
6829/// - `"Released"`
6830/// - `"Failed"`
6831#[cfg(feature = "semconv_experimental")]
6832pub const K8S_PERSISTENTVOLUME_STATUS_PHASE: &str = "k8s.persistentvolume.status.phase";
6833
6834/// The UID of the PersistentVolume.
6835///
6836/// ## Notes
6837///
6838/// # Examples
6839///
6840/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
6841#[cfg(feature = "semconv_experimental")]
6842pub const K8S_PERSISTENTVOLUME_UID: &str = "k8s.persistentvolume.uid";
6843
6844/// The annotation placed on the PersistentVolumeClaim, the ``key`` being the annotation name, the value being the annotation value, even if the value is empty.
6845///
6846/// ## Notes
6847///
6848/// Examples:
6849///
6850/// - An annotation `volume.beta.kubernetes.io/storage-provisioner` with value `kubernetes.io/aws-ebs` SHOULD be recorded as
6851/// the `k8s.persistentvolumeclaim.annotation.volume.beta.kubernetes.io/storage-provisioner` attribute with value `"kubernetes.io/aws-ebs"`.
6852/// - An annotation `data` with empty string value SHOULD be recorded as
6853/// the `k8s.persistentvolumeclaim.annotation.data` attribute with value `""`.
6854///
6855/// # Examples
6856///
6857/// - `"kubernetes.io/aws-ebs"`
6858/// - `""`
6859#[cfg(feature = "semconv_experimental")]
6860pub const K8S_PERSISTENTVOLUMECLAIM_ANNOTATION: &str = "k8s.persistentvolumeclaim.annotation";
6861
6862/// The label placed on the PersistentVolumeClaim, the ``key`` being the label name, the value being the label value, even if the value is empty.
6863///
6864/// ## Notes
6865///
6866/// Examples:
6867///
6868/// - A label `app` with value `my-app` SHOULD be recorded as
6869/// the `k8s.persistentvolumeclaim.label.app` attribute with value `"my-app"`.
6870/// - A label `data` with empty string value SHOULD be recorded as
6871/// the `k8s.persistentvolumeclaim.label.data` attribute with value `""`.
6872///
6873/// # Examples
6874///
6875/// - `"my-app"`
6876/// - `""`
6877#[cfg(feature = "semconv_experimental")]
6878pub const K8S_PERSISTENTVOLUMECLAIM_LABEL: &str = "k8s.persistentvolumeclaim.label";
6879
6880/// The name of the PersistentVolumeClaim.
6881///
6882/// ## Notes
6883///
6884/// # Examples
6885///
6886/// - `"pvc-data-01"`
6887#[cfg(feature = "semconv_experimental")]
6888pub const K8S_PERSISTENTVOLUMECLAIM_NAME: &str = "k8s.persistentvolumeclaim.name";
6889
6890/// The phase of the PersistentVolumeClaim.
6891///
6892/// ## Notes
6893///
6894/// This attribute aligns with the `phase` field of the
6895/// [K8s PersistentVolumeClaimStatus](https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#PersistentVolumeClaimStatus).
6896///
6897/// # Examples
6898///
6899/// - `"Pending"`
6900/// - `"Bound"`
6901/// - `"Lost"`
6902#[cfg(feature = "semconv_experimental")]
6903pub const K8S_PERSISTENTVOLUMECLAIM_STATUS_PHASE: &str = "k8s.persistentvolumeclaim.status.phase";
6904
6905/// The UID of the PersistentVolumeClaim.
6906///
6907/// ## Notes
6908///
6909/// # Examples
6910///
6911/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
6912#[cfg(feature = "semconv_experimental")]
6913pub const K8S_PERSISTENTVOLUMECLAIM_UID: &str = "k8s.persistentvolumeclaim.uid";
6914
6915/// The annotation placed on the Pod, the ``key`` being the annotation name, the value being the annotation value.
6916///
6917/// ## Notes
6918///
6919/// Examples:
6920///
6921/// - An annotation `kubernetes.io/enforce-mountable-secrets` with value `true` SHOULD be recorded as
6922/// the `k8s.pod.annotation.kubernetes.io/enforce-mountable-secrets` attribute with value `"true"`.
6923/// - An annotation `mycompany.io/arch` with value `x64` SHOULD be recorded as
6924/// the `k8s.pod.annotation.mycompany.io/arch` attribute with value `"x64"`.
6925/// - An annotation `data` with empty string value SHOULD be recorded as
6926/// the `k8s.pod.annotation.data` attribute with value `""`.
6927///
6928/// # Examples
6929///
6930/// - `"true"`
6931/// - `"x64"`
6932/// - `""`
6933pub const K8S_POD_ANNOTATION: &str = "k8s.pod.annotation";
6934
6935/// Specifies the hostname of the Pod.
6936///
6937/// ## Notes
6938///
6939/// The K8s Pod spec has an optional hostname field, which can be used to specify a hostname.
6940/// Refer to [K8s docs](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-hostname-and-subdomain-field)
6941/// for more information about this field.
6942///
6943/// This attribute aligns with the `hostname` field of the
6944/// [K8s PodSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podspec-v1-core).
6945///
6946/// # Examples
6947///
6948/// - `"collector-gateway"`
6949pub const K8S_POD_HOSTNAME: &str = "k8s.pod.hostname";
6950
6951/// IP address allocated to the Pod.
6952///
6953/// ## Notes
6954///
6955/// This attribute aligns with the `podIP` field of the
6956/// [K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podstatus-v1-core).
6957///
6958/// # Examples
6959///
6960/// - `"172.18.0.2"`
6961pub const K8S_POD_IP: &str = "k8s.pod.ip";
6962
6963/// The label placed on the Pod, the ``key`` being the label name, the value being the label value.
6964///
6965/// ## Notes
6966///
6967/// Examples:
6968///
6969/// - A label `app` with value `my-app` SHOULD be recorded as
6970/// the `k8s.pod.label.app` attribute with value `"my-app"`.
6971/// - A label `mycompany.io/arch` with value `x64` SHOULD be recorded as
6972/// the `k8s.pod.label.mycompany.io/arch` attribute with value `"x64"`.
6973/// - A label `data` with empty string value SHOULD be recorded as
6974/// the `k8s.pod.label.data` attribute with value `""`.
6975///
6976/// # Examples
6977///
6978/// - `"my-app"`
6979/// - `"x64"`
6980/// - `""`
6981pub const K8S_POD_LABEL: &str = "k8s.pod.label";
6982
6983/// Deprecated, use `k8s.pod.label` instead.
6984///
6985/// ## Notes
6986///
6987/// # Examples
6988///
6989/// - `"my-app"`
6990#[cfg(feature = "semconv_experimental")]
6991#[deprecated(
6992 note = "{note: Replaced by `k8s.pod.label`., reason: renamed, renamed_to: k8s.pod.label}"
6993)]
6994pub const K8S_POD_LABELS: &str = "k8s.pod.labels";
6995
6996/// The name of the Pod.
6997///
6998/// ## Notes
6999///
7000/// # Examples
7001///
7002/// - `"opentelemetry-pod-autoconf"`
7003pub const K8S_POD_NAME: &str = "k8s.pod.name";
7004
7005/// The start timestamp of the Pod.
7006///
7007/// ## Notes
7008///
7009/// Date and time at which the object was acknowledged by the Kubelet.
7010/// This is before the Kubelet pulled the container image(s) for the pod.
7011///
7012/// This attribute aligns with the `startTime` field of the
7013/// [K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podstatus-v1-core),
7014/// in ISO 8601 (RFC 3339 compatible) format.
7015///
7016/// # Examples
7017///
7018/// - `"2025-12-04T08:41:03Z"`
7019pub const K8S_POD_START_TIME: &str = "k8s.pod.start_time";
7020
7021/// The phase for the pod. Corresponds to the `phase` field of the: [K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#podstatus-v1-core)
7022///
7023/// ## Notes
7024///
7025/// # Examples
7026///
7027/// - `"Pending"`
7028/// - `"Running"`
7029#[cfg(feature = "semconv_experimental")]
7030pub const K8S_POD_STATUS_PHASE: &str = "k8s.pod.status.phase";
7031
7032/// The reason for the pod state. Corresponds to the `reason` field of the: [K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#podstatus-v1-core)
7033///
7034/// ## Notes
7035///
7036/// # Examples
7037///
7038/// - `"Evicted"`
7039/// - `"NodeAffinity"`
7040#[cfg(feature = "semconv_experimental")]
7041pub const K8S_POD_STATUS_REASON: &str = "k8s.pod.status.reason";
7042
7043/// The UID of the Pod.
7044///
7045/// ## Notes
7046///
7047/// # Examples
7048///
7049/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
7050pub const K8S_POD_UID: &str = "k8s.pod.uid";
7051
7052/// The annotation placed on the ReplicaSet, the ``key`` being the annotation name, the value being the annotation value, even if the value is empty.
7053///
7054/// ## Notes
7055///
7056/// Examples:
7057///
7058/// - A label `replicas` with value `0` SHOULD be recorded
7059/// as the `k8s.replicaset.annotation.replicas` attribute with value `"0"`.
7060/// - A label `data` with empty string value SHOULD be recorded as
7061/// the `k8s.replicaset.annotation.data` attribute with value `""`.
7062///
7063/// # Examples
7064///
7065/// - `"0"`
7066/// - `""`
7067pub const K8S_REPLICASET_ANNOTATION: &str = "k8s.replicaset.annotation";
7068
7069/// The label placed on the ReplicaSet, the ``key`` being the label name, the value being the label value, even if the value is empty.
7070///
7071/// ## Notes
7072///
7073/// Examples:
7074///
7075/// - A label `app` with value `guestbook` SHOULD be recorded
7076/// as the `k8s.replicaset.label.app` attribute with value `"guestbook"`.
7077/// - A label `injected` with empty string value SHOULD be recorded as
7078/// the `k8s.replicaset.label.injected` attribute with value `""`.
7079///
7080/// # Examples
7081///
7082/// - `"guestbook"`
7083/// - `""`
7084pub const K8S_REPLICASET_LABEL: &str = "k8s.replicaset.label";
7085
7086/// The name of the ReplicaSet.
7087///
7088/// ## Notes
7089///
7090/// # Examples
7091///
7092/// - `"opentelemetry"`
7093pub const K8S_REPLICASET_NAME: &str = "k8s.replicaset.name";
7094
7095/// The UID of the ReplicaSet.
7096///
7097/// ## Notes
7098///
7099/// # Examples
7100///
7101/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
7102pub const K8S_REPLICASET_UID: &str = "k8s.replicaset.uid";
7103
7104/// The name of the replication controller.
7105///
7106/// ## Notes
7107///
7108/// # Examples
7109///
7110/// - `"opentelemetry"`
7111#[cfg(feature = "semconv_experimental")]
7112pub const K8S_REPLICATIONCONTROLLER_NAME: &str = "k8s.replicationcontroller.name";
7113
7114/// The UID of the replication controller.
7115///
7116/// ## Notes
7117///
7118/// # Examples
7119///
7120/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
7121#[cfg(feature = "semconv_experimental")]
7122pub const K8S_REPLICATIONCONTROLLER_UID: &str = "k8s.replicationcontroller.uid";
7123
7124/// The name of the resource quota.
7125///
7126/// ## Notes
7127///
7128/// # Examples
7129///
7130/// - `"opentelemetry"`
7131#[cfg(feature = "semconv_experimental")]
7132pub const K8S_RESOURCEQUOTA_NAME: &str = "k8s.resourcequota.name";
7133
7134/// The name of the K8s resource a resource quota defines.
7135///
7136/// ## Notes
7137///
7138/// 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/#quota-on-object-count) for more details.
7139///
7140/// # Examples
7141///
7142/// - `"count/replicationcontrollers"`
7143#[cfg(feature = "semconv_experimental")]
7144pub const K8S_RESOURCEQUOTA_RESOURCE_NAME: &str = "k8s.resourcequota.resource_name";
7145
7146/// The UID of the resource quota.
7147///
7148/// ## Notes
7149///
7150/// # Examples
7151///
7152/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
7153#[cfg(feature = "semconv_experimental")]
7154pub const K8S_RESOURCEQUOTA_UID: &str = "k8s.resourcequota.uid";
7155
7156/// The annotation placed on the Service, the ``key`` being the annotation name, the value being the annotation value, even if the value is empty.
7157///
7158/// ## Notes
7159///
7160/// Examples:
7161///
7162/// - An annotation `prometheus.io/scrape` with value `true` SHOULD be recorded as
7163/// the `k8s.service.annotation.prometheus.io/scrape` attribute with value `"true"`.
7164/// - An annotation `data` with empty string value SHOULD be recorded as
7165/// the `k8s.service.annotation.data` attribute with value `""`.
7166///
7167/// # Examples
7168///
7169/// - `"true"`
7170/// - `""`
7171#[cfg(feature = "semconv_experimental")]
7172pub const K8S_SERVICE_ANNOTATION: &str = "k8s.service.annotation";
7173
7174/// The address type of the service endpoint.
7175///
7176/// ## Notes
7177///
7178/// The network address family or type of the endpoint.
7179/// This attribute aligns with the `addressType` field of the
7180/// [K8s EndpointSlice](https://kubernetes.io/docs/reference/kubernetes-api/service-resources/endpoint-slice-v1/).
7181/// It is used to differentiate metrics when a Service is backed by multiple address types
7182/// (e.g., in dual-stack clusters).
7183///
7184/// # Examples
7185///
7186/// - `"IPv4"`
7187/// - `"IPv6"`
7188#[cfg(feature = "semconv_experimental")]
7189pub const K8S_SERVICE_ENDPOINT_ADDRESS_TYPE: &str = "k8s.service.endpoint.address_type";
7190
7191/// The condition of the service endpoint.
7192///
7193/// ## Notes
7194///
7195/// The current operational condition of the service endpoint.
7196/// An endpoint can have multiple conditions set at once (e.g., both `serving` and `terminating` during rollout).
7197/// This attribute aligns with the condition fields in the [K8s EndpointSlice](https://kubernetes.io/docs/reference/kubernetes-api/service-resources/endpoint-slice-v1/).
7198///
7199/// # Examples
7200///
7201/// - `"ready"`
7202/// - `"serving"`
7203/// - `"terminating"`
7204#[cfg(feature = "semconv_experimental")]
7205pub const K8S_SERVICE_ENDPOINT_CONDITION: &str = "k8s.service.endpoint.condition";
7206
7207/// The zone of the service endpoint.
7208///
7209/// ## Notes
7210///
7211/// The zone where the endpoint is located, typically corresponding to a failure domain.
7212/// This attribute aligns with the `zone` field of endpoints in the
7213/// [K8s EndpointSlice](https://kubernetes.io/docs/reference/kubernetes-api/service-resources/endpoint-slice-v1/).
7214/// It enables zone-aware monitoring of service endpoint distribution and supports
7215/// features like [Topology Aware Routing](https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/).
7216///
7217/// If the zone is not populated (e.g., nodes without the `topology.kubernetes.io/zone` label),
7218/// the attribute value will be an empty string.
7219///
7220/// # Examples
7221///
7222/// - `"us-east-1a"`
7223/// - `"us-west-2b"`
7224/// - `"zone-a"`
7225/// - `""`
7226#[cfg(feature = "semconv_experimental")]
7227pub const K8S_SERVICE_ENDPOINT_ZONE: &str = "k8s.service.endpoint.zone";
7228
7229/// The label placed on the Service, the ``key`` being the label name, the value being the label value, even if the value is empty.
7230///
7231/// ## Notes
7232///
7233/// Examples:
7234///
7235/// - A label `app` with value `my-service` SHOULD be recorded as
7236/// the `k8s.service.label.app` attribute with value `"my-service"`.
7237/// - A label `data` with empty string value SHOULD be recorded as
7238/// the `k8s.service.label.data` attribute with value `""`.
7239///
7240/// # Examples
7241///
7242/// - `"my-service"`
7243/// - `""`
7244#[cfg(feature = "semconv_experimental")]
7245pub const K8S_SERVICE_LABEL: &str = "k8s.service.label";
7246
7247/// The name of the Service.
7248///
7249/// ## Notes
7250///
7251/// # Examples
7252///
7253/// - `"my-service"`
7254#[cfg(feature = "semconv_experimental")]
7255pub const K8S_SERVICE_NAME: &str = "k8s.service.name";
7256
7257/// Whether the Service publishes not-ready endpoints.
7258///
7259/// ## Notes
7260///
7261/// Whether the Service is configured to publish endpoints before the pods are ready.
7262/// This attribute is typically used to indicate that a Service (such as a headless
7263/// Service for a StatefulSet) allows peer discovery before pods pass their readiness probes.
7264/// It aligns with the `publishNotReadyAddresses` field of the
7265/// [K8s ServiceSpec](https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec).
7266///
7267/// # Examples
7268///
7269/// - `true`
7270/// - `false`
7271#[cfg(feature = "semconv_experimental")]
7272pub const K8S_SERVICE_PUBLISH_NOT_READY_ADDRESSES: &str = "k8s.service.publish_not_ready_addresses";
7273
7274/// The selector key-value pair placed on the Service, the ``key`` being the selector key, the value being the selector value.
7275///
7276/// ## Notes
7277///
7278/// These selectors are used to correlate with pod labels. Each selector key-value pair becomes a separate attribute.
7279///
7280/// Examples:
7281///
7282/// - A selector `app=my-app` SHOULD be recorded as
7283/// the `k8s.service.selector.app` attribute with value `"my-app"`.
7284/// - A selector `version=v1` SHOULD be recorded as
7285/// the `k8s.service.selector.version` attribute with value `"v1"`.
7286///
7287/// # Examples
7288///
7289/// - `"my-app"`
7290/// - `"v1"`
7291#[cfg(feature = "semconv_experimental")]
7292pub const K8S_SERVICE_SELECTOR: &str = "k8s.service.selector";
7293
7294/// The traffic distribution policy for the Service.
7295///
7296/// ## Notes
7297///
7298/// Specifies how traffic is distributed to endpoints for this Service.
7299/// This attribute aligns with the `trafficDistribution` field of the
7300/// [K8s ServiceSpec](https://kubernetes.io/docs/reference/networking/virtual-ips/#traffic-distribution).
7301/// Known values include `PreferSameZone` (prefer endpoints in the same zone as the client) and
7302/// `PreferSameNode` (prefer endpoints on the same node, fallback to same zone, then cluster-wide).
7303/// If this field is not set on the Service, the attribute SHOULD NOT be emitted.
7304/// When not set, Kubernetes distributes traffic evenly across all endpoints cluster-wide.
7305///
7306/// # Examples
7307///
7308/// - `"PreferSameZone"`
7309/// - `"PreferSameNode"`
7310#[cfg(feature = "semconv_experimental")]
7311pub const K8S_SERVICE_TRAFFIC_DISTRIBUTION: &str = "k8s.service.traffic_distribution";
7312
7313/// The type of the Kubernetes Service.
7314///
7315/// ## Notes
7316///
7317/// This attribute aligns with the `type` field of the
7318/// [K8s ServiceSpec](https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec).
7319///
7320/// # Examples
7321///
7322/// - `"ClusterIP"`
7323/// - `"NodePort"`
7324/// - `"LoadBalancer"`
7325#[cfg(feature = "semconv_experimental")]
7326pub const K8S_SERVICE_TYPE: &str = "k8s.service.type";
7327
7328/// The UID of the Service.
7329///
7330/// ## Notes
7331///
7332/// # Examples
7333///
7334/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
7335#[cfg(feature = "semconv_experimental")]
7336pub const K8S_SERVICE_UID: &str = "k8s.service.uid";
7337
7338/// The annotation placed on the StatefulSet, the ``key`` being the annotation name, the value being the annotation value, even if the value is empty.
7339///
7340/// ## Notes
7341///
7342/// Examples:
7343///
7344/// - A label `replicas` with value `1` SHOULD be recorded
7345/// as the `k8s.statefulset.annotation.replicas` attribute with value `"1"`.
7346/// - A label `data` with empty string value SHOULD be recorded as
7347/// the `k8s.statefulset.annotation.data` attribute with value `""`.
7348///
7349/// # Examples
7350///
7351/// - `"1"`
7352/// - `""`
7353pub const K8S_STATEFULSET_ANNOTATION: &str = "k8s.statefulset.annotation";
7354
7355/// The label placed on the StatefulSet, the ``key`` being the label name, the value being the label value, even if the value is empty.
7356///
7357/// ## Notes
7358///
7359/// Examples:
7360///
7361/// - A label `replicas` with value `0` SHOULD be recorded
7362/// as the `k8s.statefulset.label.app` attribute with value `"guestbook"`.
7363/// - A label `injected` with empty string value SHOULD be recorded as
7364/// the `k8s.statefulset.label.injected` attribute with value `""`.
7365///
7366/// # Examples
7367///
7368/// - `"guestbook"`
7369/// - `""`
7370pub const K8S_STATEFULSET_LABEL: &str = "k8s.statefulset.label";
7371
7372/// The name of the StatefulSet.
7373///
7374/// ## Notes
7375///
7376/// # Examples
7377///
7378/// - `"opentelemetry"`
7379pub const K8S_STATEFULSET_NAME: &str = "k8s.statefulset.name";
7380
7381/// The UID of the StatefulSet.
7382///
7383/// ## Notes
7384///
7385/// # Examples
7386///
7387/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
7388pub const K8S_STATEFULSET_UID: &str = "k8s.statefulset.uid";
7389
7390/// The name of K8s [StorageClass](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#storageclass-v1-storage-k8s-io) object.
7391///
7392/// ## Notes
7393///
7394/// # Examples
7395///
7396/// - `"gold.storageclass.storage.k8s.io"`
7397#[cfg(feature = "semconv_experimental")]
7398pub const K8S_STORAGECLASS_NAME: &str = "k8s.storageclass.name";
7399
7400/// The name of the K8s volume.
7401///
7402/// ## Notes
7403///
7404/// # Examples
7405///
7406/// - `"volume0"`
7407#[cfg(feature = "semconv_experimental")]
7408pub const K8S_VOLUME_NAME: &str = "k8s.volume.name";
7409
7410/// The type of the K8s volume.
7411///
7412/// ## Notes
7413///
7414/// # Examples
7415///
7416/// - `"emptyDir"`
7417/// - `"persistentVolumeClaim"`
7418#[cfg(feature = "semconv_experimental")]
7419pub const K8S_VOLUME_TYPE: &str = "k8s.volume.type";
7420
7421/// The Linux Slab memory state
7422///
7423/// ## Notes
7424///
7425/// # Examples
7426///
7427/// - `"reclaimable"`
7428/// - `"unreclaimable"`
7429#[cfg(feature = "semconv_experimental")]
7430#[deprecated(
7431 note = "{note: Replaced by `system.memory.linux.slab.state`., reason: renamed, renamed_to: system.memory.linux.slab.state}"
7432)]
7433pub const LINUX_MEMORY_SLAB_STATE: &str = "linux.memory.slab.state";
7434
7435/// The basename of the file.
7436///
7437/// ## Notes
7438///
7439/// # Examples
7440///
7441/// - `"audit.log"`
7442#[cfg(feature = "semconv_experimental")]
7443pub const LOG_FILE_NAME: &str = "log.file.name";
7444
7445/// The basename of the file, with symlinks resolved.
7446///
7447/// ## Notes
7448///
7449/// # Examples
7450///
7451/// - `"uuid.log"`
7452#[cfg(feature = "semconv_experimental")]
7453pub const LOG_FILE_NAME_RESOLVED: &str = "log.file.name_resolved";
7454
7455/// The full path to the file.
7456///
7457/// ## Notes
7458///
7459/// # Examples
7460///
7461/// - `"/var/log/mysql/audit.log"`
7462#[cfg(feature = "semconv_experimental")]
7463pub const LOG_FILE_PATH: &str = "log.file.path";
7464
7465/// The full path to the file, with symlinks resolved.
7466///
7467/// ## Notes
7468///
7469/// # Examples
7470///
7471/// - `"/var/lib/docker/uuid.log"`
7472#[cfg(feature = "semconv_experimental")]
7473pub const LOG_FILE_PATH_RESOLVED: &str = "log.file.path_resolved";
7474
7475/// The stream associated with the log. See below for a list of well-known values.
7476///
7477/// ## Notes
7478#[cfg(feature = "semconv_experimental")]
7479pub const LOG_IOSTREAM: &str = "log.iostream";
7480
7481/// The complete original Log Record.
7482///
7483/// ## Notes
7484///
7485/// 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.)
7486///
7487/// # Examples
7488///
7489/// - `"77 <86>1 2015-08-06T21:58:59.694Z 192.168.2.133 inactive - - - Something happened"`
7490/// - `"[INFO] 8/3/24 12:34:56 Something happened"`
7491#[cfg(feature = "semconv_experimental")]
7492pub const LOG_RECORD_ORIGINAL: &str = "log.record.original";
7493
7494/// A unique identifier for the Log Record.
7495///
7496/// ## Notes
7497///
7498/// 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.
7499/// 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.
7500///
7501/// # Examples
7502///
7503/// - `"01ARZ3NDEKTSV4RRFFQ69G5FAV"`
7504#[cfg(feature = "semconv_experimental")]
7505pub const LOG_RECORD_UID: &str = "log.record.uid";
7506
7507/// Name of the logical partition that hosts a systems with a mainframe operating system.
7508///
7509/// ## Notes
7510///
7511/// # Examples
7512///
7513/// - `"LPAR01"`
7514#[cfg(feature = "semconv_experimental")]
7515pub const MAINFRAME_LPAR_NAME: &str = "mainframe.lpar.name";
7516
7517/// The name of the request or notification method.
7518///
7519/// ## Notes
7520#[cfg(feature = "semconv_experimental")]
7521#[deprecated(
7522 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
7523)]
7524pub const MCP_METHOD_NAME: &str = "mcp.method.name";
7525
7526/// The [version](https://modelcontextprotocol.io/specification/versioning) of the Model Context Protocol used.
7527///
7528/// ## Notes
7529///
7530/// # Examples
7531///
7532/// - `"2025-06-18"`
7533#[cfg(feature = "semconv_experimental")]
7534#[deprecated(
7535 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
7536)]
7537pub const MCP_PROTOCOL_VERSION: &str = "mcp.protocol.version";
7538
7539/// The value of the resource uri.
7540///
7541/// ## Notes
7542///
7543/// This is a URI of the resource provided in the following requests or notifications: `resources/read`, `resources/subscribe`, `resources/unsubscribe`, or `notifications/resources/updated`.
7544///
7545/// # Examples
7546///
7547/// - `"postgres://database/customers/schema"`
7548/// - `"file:///home/user/documents/report.pdf"`
7549#[cfg(feature = "semconv_experimental")]
7550#[deprecated(
7551 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
7552)]
7553pub const MCP_RESOURCE_URI: &str = "mcp.resource.uri";
7554
7555/// Identifies [MCP session](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#session-management).
7556///
7557/// ## Notes
7558///
7559/// # Examples
7560///
7561/// - `"191c4850af6c49e08843a3f6c80e5046"`
7562#[cfg(feature = "semconv_experimental")]
7563#[deprecated(
7564 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
7565)]
7566pub const MCP_SESSION_ID: &str = "mcp.session.id";
7567
7568/// Deprecated, no replacement at this time.
7569///
7570/// ## Notes
7571#[cfg(feature = "semconv_experimental")]
7572#[deprecated(note = "{note: Deprecated, no replacement at this time., reason: obsoleted}")]
7573pub const MESSAGE_COMPRESSED_SIZE: &str = "message.compressed_size";
7574
7575/// Deprecated, no replacement at this time.
7576///
7577/// ## Notes
7578#[cfg(feature = "semconv_experimental")]
7579#[deprecated(note = "{note: Deprecated, no replacement at this time., reason: obsoleted}")]
7580pub const MESSAGE_ID: &str = "message.id";
7581
7582/// Deprecated, no replacement at this time.
7583///
7584/// ## Notes
7585#[cfg(feature = "semconv_experimental")]
7586#[deprecated(note = "{note: Deprecated, no replacement at this time., reason: obsoleted}")]
7587pub const MESSAGE_TYPE: &str = "message.type";
7588
7589/// Deprecated, no replacement at this time.
7590///
7591/// ## Notes
7592#[cfg(feature = "semconv_experimental")]
7593#[deprecated(note = "{note: Deprecated, no replacement at this time., reason: obsoleted}")]
7594pub const MESSAGE_UNCOMPRESSED_SIZE: &str = "message.uncompressed_size";
7595
7596/// The number of messages sent, received, or processed in the scope of the batching operation.
7597///
7598/// ## Notes
7599///
7600/// 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.
7601///
7602/// # Examples
7603///
7604/// - `0`
7605/// - `1`
7606/// - `2`
7607#[cfg(feature = "semconv_experimental")]
7608pub const MESSAGING_BATCH_MESSAGE_COUNT: &str = "messaging.batch.message_count";
7609
7610/// A unique identifier for the client that consumes or produces a message.
7611///
7612/// ## Notes
7613///
7614/// # Examples
7615///
7616/// - `"client-5"`
7617/// - `"myhost@8742@s8083jm"`
7618#[cfg(feature = "semconv_experimental")]
7619pub const MESSAGING_CLIENT_ID: &str = "messaging.client.id";
7620
7621/// The name of the consumer group with which a consumer is associated.
7622///
7623/// ## Notes
7624///
7625/// 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.
7626///
7627/// # Examples
7628///
7629/// - `"my-group"`
7630/// - `"indexer"`
7631#[cfg(feature = "semconv_experimental")]
7632pub const MESSAGING_CONSUMER_GROUP_NAME: &str = "messaging.consumer.group.name";
7633
7634/// A boolean that is true if the message destination is anonymous (could be unnamed or have auto-generated name).
7635///
7636/// ## Notes
7637#[cfg(feature = "semconv_experimental")]
7638pub const MESSAGING_DESTINATION_ANONYMOUS: &str = "messaging.destination.anonymous";
7639
7640/// The message destination name
7641///
7642/// ## Notes
7643///
7644/// Destination name SHOULD uniquely identify a specific queue, topic or other entity within the broker. If
7645/// the broker doesn't have such notion, the destination name SHOULD uniquely identify the broker.
7646///
7647/// # Examples
7648///
7649/// - `"MyQueue"`
7650/// - `"MyTopic"`
7651#[cfg(feature = "semconv_experimental")]
7652pub const MESSAGING_DESTINATION_NAME: &str = "messaging.destination.name";
7653
7654/// The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`.
7655///
7656/// ## Notes
7657///
7658/// # Examples
7659///
7660/// - `"1"`
7661#[cfg(feature = "semconv_experimental")]
7662pub const MESSAGING_DESTINATION_PARTITION_ID: &str = "messaging.destination.partition.id";
7663
7664/// The name of the destination subscription from which a message is consumed.
7665///
7666/// ## Notes
7667///
7668/// 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.
7669///
7670/// # Examples
7671///
7672/// - `"subscription-a"`
7673#[cfg(feature = "semconv_experimental")]
7674pub const MESSAGING_DESTINATION_SUBSCRIPTION_NAME: &str = "messaging.destination.subscription.name";
7675
7676/// Low cardinality representation of the messaging destination name
7677///
7678/// ## Notes
7679///
7680/// 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.
7681///
7682/// # Examples
7683///
7684/// - `"/customers/{customerId}"`
7685#[cfg(feature = "semconv_experimental")]
7686pub const MESSAGING_DESTINATION_TEMPLATE: &str = "messaging.destination.template";
7687
7688/// A boolean that is true if the message destination is temporary and might not exist anymore after messages are processed.
7689///
7690/// ## Notes
7691#[cfg(feature = "semconv_experimental")]
7692pub const MESSAGING_DESTINATION_TEMPORARY: &str = "messaging.destination.temporary";
7693
7694/// Deprecated, no replacement at this time.
7695///
7696/// ## Notes
7697#[cfg(feature = "semconv_experimental")]
7698#[deprecated(note = "{note: Removed. No replacement at this time., reason: obsoleted}")]
7699pub const MESSAGING_DESTINATION_PUBLISH_ANONYMOUS: &str = "messaging.destination_publish.anonymous";
7700
7701/// Deprecated, no replacement at this time.
7702///
7703/// ## Notes
7704///
7705/// # Examples
7706///
7707/// - `"MyQueue"`
7708/// - `"MyTopic"`
7709#[cfg(feature = "semconv_experimental")]
7710#[deprecated(note = "{note: Removed. No replacement at this time., reason: obsoleted}")]
7711pub const MESSAGING_DESTINATION_PUBLISH_NAME: &str = "messaging.destination_publish.name";
7712
7713/// Deprecated, use `messaging.consumer.group.name` instead.
7714///
7715/// ## Notes
7716///
7717/// # Examples
7718///
7719/// - `"$Default"`
7720#[cfg(feature = "semconv_experimental")]
7721#[deprecated(
7722 note = "{note: Replaced by `messaging.consumer.group.name`., reason: renamed, renamed_to: messaging.consumer.group.name}"
7723)]
7724pub const MESSAGING_EVENTHUBS_CONSUMER_GROUP: &str = "messaging.eventhubs.consumer.group";
7725
7726/// The UTC epoch seconds at which the message has been accepted and stored in the entity.
7727///
7728/// ## Notes
7729///
7730/// # Examples
7731///
7732/// - `1701393730`
7733#[cfg(feature = "semconv_experimental")]
7734pub const MESSAGING_EVENTHUBS_MESSAGE_ENQUEUED_TIME: &str =
7735 "messaging.eventhubs.message.enqueued_time";
7736
7737/// The ack deadline in seconds set for the modify ack deadline request.
7738///
7739/// ## Notes
7740///
7741/// # Examples
7742///
7743/// - `10`
7744#[cfg(feature = "semconv_experimental")]
7745pub const MESSAGING_GCP_PUBSUB_MESSAGE_ACK_DEADLINE: &str =
7746 "messaging.gcp_pubsub.message.ack_deadline";
7747
7748/// The ack id for a given message.
7749///
7750/// ## Notes
7751///
7752/// # Examples
7753///
7754/// - `"ack_id"`
7755#[cfg(feature = "semconv_experimental")]
7756pub const MESSAGING_GCP_PUBSUB_MESSAGE_ACK_ID: &str = "messaging.gcp_pubsub.message.ack_id";
7757
7758/// The delivery attempt for a given message.
7759///
7760/// ## Notes
7761///
7762/// # Examples
7763///
7764/// - `2`
7765#[cfg(feature = "semconv_experimental")]
7766pub const MESSAGING_GCP_PUBSUB_MESSAGE_DELIVERY_ATTEMPT: &str =
7767 "messaging.gcp_pubsub.message.delivery_attempt";
7768
7769/// The ordering key for a given message. If the attribute is not present, the message does not have an ordering key.
7770///
7771/// ## Notes
7772///
7773/// # Examples
7774///
7775/// - `"ordering_key"`
7776#[cfg(feature = "semconv_experimental")]
7777pub const MESSAGING_GCP_PUBSUB_MESSAGE_ORDERING_KEY: &str =
7778 "messaging.gcp_pubsub.message.ordering_key";
7779
7780/// Deprecated, use `messaging.consumer.group.name` instead.
7781///
7782/// ## Notes
7783///
7784/// # Examples
7785///
7786/// - `"my-group"`
7787#[cfg(feature = "semconv_experimental")]
7788#[deprecated(
7789 note = "{note: Replaced by `messaging.consumer.group.name`., reason: renamed, renamed_to: messaging.consumer.group.name}"
7790)]
7791pub const MESSAGING_KAFKA_CONSUMER_GROUP: &str = "messaging.kafka.consumer.group";
7792
7793/// Deprecated, use `messaging.destination.partition.id` instead.
7794///
7795/// ## Notes
7796///
7797/// # Examples
7798///
7799/// - `2`
7800#[cfg(feature = "semconv_experimental")]
7801#[deprecated(
7802 note = "{note: Record string representation of the partition id in `messaging.destination.partition.id` attribute., reason: uncategorized}"
7803)]
7804pub const MESSAGING_KAFKA_DESTINATION_PARTITION: &str = "messaging.kafka.destination.partition";
7805
7806/// 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.
7807///
7808/// ## Notes
7809///
7810/// 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.
7811///
7812/// # Examples
7813///
7814/// - `"myKey"`
7815#[cfg(feature = "semconv_experimental")]
7816pub const MESSAGING_KAFKA_MESSAGE_KEY: &str = "messaging.kafka.message.key";
7817
7818/// Deprecated, use `messaging.kafka.offset` instead.
7819///
7820/// ## Notes
7821///
7822/// # Examples
7823///
7824/// - `42`
7825#[cfg(feature = "semconv_experimental")]
7826#[deprecated(
7827 note = "{note: Replaced by `messaging.kafka.offset`., reason: renamed, renamed_to: messaging.kafka.offset}"
7828)]
7829pub const MESSAGING_KAFKA_MESSAGE_OFFSET: &str = "messaging.kafka.message.offset";
7830
7831/// A boolean that is true if the message is a tombstone.
7832///
7833/// ## Notes
7834#[cfg(feature = "semconv_experimental")]
7835pub const MESSAGING_KAFKA_MESSAGE_TOMBSTONE: &str = "messaging.kafka.message.tombstone";
7836
7837/// The offset of a record in the corresponding Kafka partition.
7838///
7839/// ## Notes
7840///
7841/// # Examples
7842///
7843/// - `42`
7844#[cfg(feature = "semconv_experimental")]
7845pub const MESSAGING_KAFKA_OFFSET: &str = "messaging.kafka.offset";
7846
7847/// The size of the message body in bytes.
7848///
7849/// ## Notes
7850///
7851/// This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed
7852/// body size should be used.
7853///
7854/// # Examples
7855///
7856/// - `1439`
7857#[cfg(feature = "semconv_experimental")]
7858pub const MESSAGING_MESSAGE_BODY_SIZE: &str = "messaging.message.body.size";
7859
7860/// The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".
7861///
7862/// ## Notes
7863///
7864/// # Examples
7865///
7866/// - `"MyConversationId"`
7867#[cfg(feature = "semconv_experimental")]
7868pub const MESSAGING_MESSAGE_CONVERSATION_ID: &str = "messaging.message.conversation_id";
7869
7870/// The size of the message body and metadata in bytes.
7871///
7872/// ## Notes
7873///
7874/// This can refer to both the compressed or uncompressed size. If both sizes are known, the uncompressed
7875/// size should be used.
7876///
7877/// # Examples
7878///
7879/// - `2738`
7880#[cfg(feature = "semconv_experimental")]
7881pub const MESSAGING_MESSAGE_ENVELOPE_SIZE: &str = "messaging.message.envelope.size";
7882
7883/// A value used by the messaging system as an identifier for the message, represented as a string.
7884///
7885/// ## Notes
7886///
7887/// # Examples
7888///
7889/// - `"452a7c7c7c7048c2f887f61572b18fc2"`
7890#[cfg(feature = "semconv_experimental")]
7891pub const MESSAGING_MESSAGE_ID: &str = "messaging.message.id";
7892
7893/// Deprecated, use `messaging.operation.type` instead.
7894///
7895/// ## Notes
7896///
7897/// # Examples
7898///
7899/// - `"publish"`
7900/// - `"create"`
7901/// - `"process"`
7902#[cfg(feature = "semconv_experimental")]
7903#[deprecated(
7904 note = "{note: Replaced by `messaging.operation.type`., reason: renamed, renamed_to: messaging.operation.type}"
7905)]
7906pub const MESSAGING_OPERATION: &str = "messaging.operation";
7907
7908/// The system-specific name of the messaging operation.
7909///
7910/// ## Notes
7911///
7912/// # Examples
7913///
7914/// - `"ack"`
7915/// - `"nack"`
7916/// - `"send"`
7917#[cfg(feature = "semconv_experimental")]
7918pub const MESSAGING_OPERATION_NAME: &str = "messaging.operation.name";
7919
7920/// A string identifying the type of the messaging operation.
7921///
7922/// ## Notes
7923///
7924/// If a custom value is used, it MUST be of low cardinality
7925#[cfg(feature = "semconv_experimental")]
7926pub const MESSAGING_OPERATION_TYPE: &str = "messaging.operation.type";
7927
7928/// RabbitMQ message routing key.
7929///
7930/// ## Notes
7931///
7932/// # Examples
7933///
7934/// - `"myKey"`
7935#[cfg(feature = "semconv_experimental")]
7936pub const MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY: &str =
7937 "messaging.rabbitmq.destination.routing_key";
7938
7939/// RabbitMQ message delivery tag
7940///
7941/// ## Notes
7942///
7943/// # Examples
7944///
7945/// - `123`
7946#[cfg(feature = "semconv_experimental")]
7947pub const MESSAGING_RABBITMQ_MESSAGE_DELIVERY_TAG: &str = "messaging.rabbitmq.message.delivery_tag";
7948
7949/// Deprecated, use `messaging.consumer.group.name` instead.
7950///
7951/// ## Notes
7952///
7953/// # Examples
7954///
7955/// - `"myConsumerGroup"`
7956#[cfg(feature = "semconv_experimental")]
7957#[deprecated(
7958 note = "{note: Replaced by `messaging.consumer.group.name` on the consumer spans. No replacement for producer spans.\n, reason: uncategorized}"
7959)]
7960pub const MESSAGING_ROCKETMQ_CLIENT_GROUP: &str = "messaging.rocketmq.client_group";
7961
7962/// Model of message consumption. This only applies to consumer spans.
7963///
7964/// ## Notes
7965#[cfg(feature = "semconv_experimental")]
7966pub const MESSAGING_ROCKETMQ_CONSUMPTION_MODEL: &str = "messaging.rocketmq.consumption_model";
7967
7968/// The delay time level for delay message, which determines the message delay time.
7969///
7970/// ## Notes
7971///
7972/// # Examples
7973///
7974/// - `3`
7975#[cfg(feature = "semconv_experimental")]
7976pub const MESSAGING_ROCKETMQ_MESSAGE_DELAY_TIME_LEVEL: &str =
7977 "messaging.rocketmq.message.delay_time_level";
7978
7979/// The timestamp in milliseconds that the delay message is expected to be delivered to consumer.
7980///
7981/// ## Notes
7982///
7983/// # Examples
7984///
7985/// - `1665987217045`
7986#[cfg(feature = "semconv_experimental")]
7987pub const MESSAGING_ROCKETMQ_MESSAGE_DELIVERY_TIMESTAMP: &str =
7988 "messaging.rocketmq.message.delivery_timestamp";
7989
7990/// 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.
7991///
7992/// ## Notes
7993///
7994/// # Examples
7995///
7996/// - `"myMessageGroup"`
7997#[cfg(feature = "semconv_experimental")]
7998pub const MESSAGING_ROCKETMQ_MESSAGE_GROUP: &str = "messaging.rocketmq.message.group";
7999
8000/// Key(s) of message, another way to mark message besides message id.
8001///
8002/// ## Notes
8003///
8004/// # Examples
8005///
8006/// - `[
8007/// "keyA",
8008/// "keyB",
8009/// ]`
8010#[cfg(feature = "semconv_experimental")]
8011pub const MESSAGING_ROCKETMQ_MESSAGE_KEYS: &str = "messaging.rocketmq.message.keys";
8012
8013/// The secondary classifier of message besides topic.
8014///
8015/// ## Notes
8016///
8017/// # Examples
8018///
8019/// - `"tagA"`
8020#[cfg(feature = "semconv_experimental")]
8021pub const MESSAGING_ROCKETMQ_MESSAGE_TAG: &str = "messaging.rocketmq.message.tag";
8022
8023/// Type of message.
8024///
8025/// ## Notes
8026#[cfg(feature = "semconv_experimental")]
8027pub const MESSAGING_ROCKETMQ_MESSAGE_TYPE: &str = "messaging.rocketmq.message.type";
8028
8029/// Namespace of RocketMQ resources, resources in different namespaces are individual.
8030///
8031/// ## Notes
8032///
8033/// # Examples
8034///
8035/// - `"myNamespace"`
8036#[cfg(feature = "semconv_experimental")]
8037pub const MESSAGING_ROCKETMQ_NAMESPACE: &str = "messaging.rocketmq.namespace";
8038
8039/// Deprecated, use `messaging.destination.subscription.name` instead.
8040///
8041/// ## Notes
8042///
8043/// # Examples
8044///
8045/// - `"subscription-a"`
8046#[cfg(feature = "semconv_experimental")]
8047#[deprecated(
8048 note = "{note: Replaced by `messaging.destination.subscription.name`., reason: renamed, renamed_to: messaging.destination.subscription.name}"
8049)]
8050pub const MESSAGING_SERVICEBUS_DESTINATION_SUBSCRIPTION_NAME: &str =
8051 "messaging.servicebus.destination.subscription_name";
8052
8053/// Describes the [settlement type](https://learn.microsoft.com/azure/service-bus-messaging/message-transfers-locks-settlement#peeklock).
8054///
8055/// ## Notes
8056#[cfg(feature = "semconv_experimental")]
8057pub const MESSAGING_SERVICEBUS_DISPOSITION_STATUS: &str = "messaging.servicebus.disposition_status";
8058
8059/// Number of deliveries that have been attempted for this message.
8060///
8061/// ## Notes
8062///
8063/// # Examples
8064///
8065/// - `2`
8066#[cfg(feature = "semconv_experimental")]
8067pub const MESSAGING_SERVICEBUS_MESSAGE_DELIVERY_COUNT: &str =
8068 "messaging.servicebus.message.delivery_count";
8069
8070/// The UTC epoch seconds at which the message has been accepted and stored in the entity.
8071///
8072/// ## Notes
8073///
8074/// # Examples
8075///
8076/// - `1701393730`
8077#[cfg(feature = "semconv_experimental")]
8078pub const MESSAGING_SERVICEBUS_MESSAGE_ENQUEUED_TIME: &str =
8079 "messaging.servicebus.message.enqueued_time";
8080
8081/// The messaging system as identified by the client instrumentation.
8082///
8083/// ## Notes
8084///
8085/// 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
8086#[cfg(feature = "semconv_experimental")]
8087pub const MESSAGING_SYSTEM: &str = "messaging.system";
8088
8089/// Deprecated, use `network.local.address`.
8090///
8091/// ## Notes
8092///
8093/// # Examples
8094///
8095/// - `"192.168.0.1"`
8096#[cfg(feature = "semconv_experimental")]
8097#[deprecated(
8098 note = "{note: Replaced by `network.local.address`., reason: renamed, renamed_to: network.local.address}"
8099)]
8100pub const NET_HOST_IP: &str = "net.host.ip";
8101
8102/// Deprecated, use `server.address`.
8103///
8104/// ## Notes
8105///
8106/// # Examples
8107///
8108/// - `"example.com"`
8109#[cfg(feature = "semconv_experimental")]
8110#[deprecated(
8111 note = "{note: Replaced by `server.address`., reason: renamed, renamed_to: server.address}"
8112)]
8113pub const NET_HOST_NAME: &str = "net.host.name";
8114
8115/// Deprecated, use `server.port`.
8116///
8117/// ## Notes
8118///
8119/// # Examples
8120///
8121/// - `8080`
8122#[cfg(feature = "semconv_experimental")]
8123#[deprecated(note = "{note: Replaced by `server.port`., reason: renamed, renamed_to: server.port}")]
8124pub const NET_HOST_PORT: &str = "net.host.port";
8125
8126/// Deprecated, use `network.peer.address`.
8127///
8128/// ## Notes
8129///
8130/// # Examples
8131///
8132/// - `"127.0.0.1"`
8133#[cfg(feature = "semconv_experimental")]
8134#[deprecated(
8135 note = "{note: Replaced by `network.peer.address`., reason: renamed, renamed_to: network.peer.address}"
8136)]
8137pub const NET_PEER_IP: &str = "net.peer.ip";
8138
8139/// Deprecated, use `server.address` on client spans and `client.address` on server spans.
8140///
8141/// ## Notes
8142///
8143/// # Examples
8144///
8145/// - `"example.com"`
8146#[cfg(feature = "semconv_experimental")]
8147#[deprecated(
8148 note = "{note: Replaced by `server.address` on client spans and `client.address` on server spans., reason: uncategorized}"
8149)]
8150pub const NET_PEER_NAME: &str = "net.peer.name";
8151
8152/// Deprecated, use `server.port` on client spans and `client.port` on server spans.
8153///
8154/// ## Notes
8155///
8156/// # Examples
8157///
8158/// - `8080`
8159#[cfg(feature = "semconv_experimental")]
8160#[deprecated(
8161 note = "{note: Replaced by `server.port` on client spans and `client.port` on server spans., reason: uncategorized}"
8162)]
8163pub const NET_PEER_PORT: &str = "net.peer.port";
8164
8165/// Deprecated, use `network.protocol.name`.
8166///
8167/// ## Notes
8168///
8169/// # Examples
8170///
8171/// - `"amqp"`
8172/// - `"http"`
8173/// - `"mqtt"`
8174#[cfg(feature = "semconv_experimental")]
8175#[deprecated(
8176 note = "{note: Replaced by `network.protocol.name`., reason: renamed, renamed_to: network.protocol.name}"
8177)]
8178pub const NET_PROTOCOL_NAME: &str = "net.protocol.name";
8179
8180/// Deprecated, use `network.protocol.version`.
8181///
8182/// ## Notes
8183///
8184/// # Examples
8185///
8186/// - `"3.1.1"`
8187#[cfg(feature = "semconv_experimental")]
8188#[deprecated(
8189 note = "{note: Replaced by `network.protocol.version`., reason: renamed, renamed_to: network.protocol.version}"
8190)]
8191pub const NET_PROTOCOL_VERSION: &str = "net.protocol.version";
8192
8193/// Deprecated, use `network.transport` and `network.type`.
8194///
8195/// ## Notes
8196#[cfg(feature = "semconv_experimental")]
8197#[deprecated(
8198 note = "{note: Split to `network.transport` and `network.type`., reason: uncategorized}"
8199)]
8200pub const NET_SOCK_FAMILY: &str = "net.sock.family";
8201
8202/// Deprecated, use `network.local.address`.
8203///
8204/// ## Notes
8205///
8206/// # Examples
8207///
8208/// - `"/var/my.sock"`
8209#[cfg(feature = "semconv_experimental")]
8210#[deprecated(
8211 note = "{note: Replaced by `network.local.address`., reason: renamed, renamed_to: network.local.address}"
8212)]
8213pub const NET_SOCK_HOST_ADDR: &str = "net.sock.host.addr";
8214
8215/// Deprecated, use `network.local.port`.
8216///
8217/// ## Notes
8218///
8219/// # Examples
8220///
8221/// - `8080`
8222#[cfg(feature = "semconv_experimental")]
8223#[deprecated(
8224 note = "{note: Replaced by `network.local.port`., reason: renamed, renamed_to: network.local.port}"
8225)]
8226pub const NET_SOCK_HOST_PORT: &str = "net.sock.host.port";
8227
8228/// Deprecated, use `network.peer.address`.
8229///
8230/// ## Notes
8231///
8232/// # Examples
8233///
8234/// - `"192.168.0.1"`
8235#[cfg(feature = "semconv_experimental")]
8236#[deprecated(
8237 note = "{note: Replaced by `network.peer.address`., reason: renamed, renamed_to: network.peer.address}"
8238)]
8239pub const NET_SOCK_PEER_ADDR: &str = "net.sock.peer.addr";
8240
8241/// Deprecated, no replacement at this time.
8242///
8243/// ## Notes
8244///
8245/// # Examples
8246///
8247/// - `"/var/my.sock"`
8248#[cfg(feature = "semconv_experimental")]
8249#[deprecated(note = "{note: Removed. No replacement at this time., reason: obsoleted}")]
8250pub const NET_SOCK_PEER_NAME: &str = "net.sock.peer.name";
8251
8252/// Deprecated, use `network.peer.port`.
8253///
8254/// ## Notes
8255///
8256/// # Examples
8257///
8258/// - `65531`
8259#[cfg(feature = "semconv_experimental")]
8260#[deprecated(
8261 note = "{note: Replaced by `network.peer.port`., reason: renamed, renamed_to: network.peer.port}"
8262)]
8263pub const NET_SOCK_PEER_PORT: &str = "net.sock.peer.port";
8264
8265/// Deprecated, use `network.transport`.
8266///
8267/// ## Notes
8268#[cfg(feature = "semconv_experimental")]
8269#[deprecated(
8270 note = "{note: Replaced by `network.transport`., reason: renamed, renamed_to: network.transport}"
8271)]
8272pub const NET_TRANSPORT: &str = "net.transport";
8273
8274/// The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.
8275///
8276/// ## Notes
8277///
8278/// # Examples
8279///
8280/// - `"DE"`
8281#[cfg(feature = "semconv_experimental")]
8282pub const NETWORK_CARRIER_ICC: &str = "network.carrier.icc";
8283
8284/// The mobile carrier country code.
8285///
8286/// ## Notes
8287///
8288/// # Examples
8289///
8290/// - `"310"`
8291#[cfg(feature = "semconv_experimental")]
8292pub const NETWORK_CARRIER_MCC: &str = "network.carrier.mcc";
8293
8294/// The mobile carrier network code.
8295///
8296/// ## Notes
8297///
8298/// # Examples
8299///
8300/// - `"001"`
8301#[cfg(feature = "semconv_experimental")]
8302pub const NETWORK_CARRIER_MNC: &str = "network.carrier.mnc";
8303
8304/// The name of the mobile carrier.
8305///
8306/// ## Notes
8307///
8308/// # Examples
8309///
8310/// - `"sprint"`
8311#[cfg(feature = "semconv_experimental")]
8312pub const NETWORK_CARRIER_NAME: &str = "network.carrier.name";
8313
8314/// The state of network connection
8315///
8316/// ## Notes
8317///
8318/// Connection states are defined as part of the [rfc9293](https://datatracker.ietf.org/doc/html/rfc9293#section-3.3.2)
8319///
8320/// # Examples
8321///
8322/// - `"close_wait"`
8323#[cfg(feature = "semconv_experimental")]
8324pub const NETWORK_CONNECTION_STATE: &str = "network.connection.state";
8325
8326/// 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.
8327///
8328/// ## Notes
8329///
8330/// # Examples
8331///
8332/// - `"LTE"`
8333#[cfg(feature = "semconv_experimental")]
8334pub const NETWORK_CONNECTION_SUBTYPE: &str = "network.connection.subtype";
8335
8336/// The internet connection type.
8337///
8338/// ## Notes
8339///
8340/// # Examples
8341///
8342/// - `"wifi"`
8343#[cfg(feature = "semconv_experimental")]
8344pub const NETWORK_CONNECTION_TYPE: &str = "network.connection.type";
8345
8346/// The network interface name.
8347///
8348/// ## Notes
8349///
8350/// # Examples
8351///
8352/// - `"lo"`
8353/// - `"eth0"`
8354#[cfg(feature = "semconv_experimental")]
8355pub const NETWORK_INTERFACE_NAME: &str = "network.interface.name";
8356
8357/// The network IO operation direction.
8358///
8359/// ## Notes
8360///
8361/// # Examples
8362///
8363/// - `"transmit"`
8364#[cfg(feature = "semconv_experimental")]
8365pub const NETWORK_IO_DIRECTION: &str = "network.io.direction";
8366
8367/// Local address of the network connection - IP address or Unix domain socket name.
8368///
8369/// ## Notes
8370///
8371/// # Examples
8372///
8373/// - `"10.1.2.80"`
8374/// - `"/tmp/my.sock"`
8375pub const NETWORK_LOCAL_ADDRESS: &str = "network.local.address";
8376
8377/// Local port number of the network connection.
8378///
8379/// ## Notes
8380///
8381/// # Examples
8382///
8383/// - `65123`
8384pub const NETWORK_LOCAL_PORT: &str = "network.local.port";
8385
8386/// Peer address of the network connection - IP address or Unix domain socket name.
8387///
8388/// ## Notes
8389///
8390/// # Examples
8391///
8392/// - `"10.1.2.80"`
8393/// - `"/tmp/my.sock"`
8394pub const NETWORK_PEER_ADDRESS: &str = "network.peer.address";
8395
8396/// Peer port number of the network connection.
8397///
8398/// ## Notes
8399///
8400/// # Examples
8401///
8402/// - `65123`
8403pub const NETWORK_PEER_PORT: &str = "network.peer.port";
8404
8405/// [OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.
8406///
8407/// ## Notes
8408///
8409/// The value SHOULD be normalized to lowercase.
8410///
8411/// # Examples
8412///
8413/// - `"amqp"`
8414/// - `"http"`
8415/// - `"mqtt"`
8416pub const NETWORK_PROTOCOL_NAME: &str = "network.protocol.name";
8417
8418/// The actual version of the protocol used for network communication.
8419///
8420/// ## Notes
8421///
8422/// 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.
8423///
8424/// # Examples
8425///
8426/// - `"1.1"`
8427/// - `"2"`
8428pub const NETWORK_PROTOCOL_VERSION: &str = "network.protocol.version";
8429
8430/// [OSI transport layer](https://wikipedia.org/wiki/Transport_layer) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication).
8431///
8432/// ## Notes
8433///
8434/// The value SHOULD be normalized to lowercase.
8435///
8436/// Consider always setting the transport when setting a port number, since
8437/// a port number is ambiguous without knowing the transport. For example
8438/// different processes could be listening on TCP port 12345 and UDP port 12345.
8439///
8440/// # Examples
8441///
8442/// - `"tcp"`
8443/// - `"udp"`
8444pub const NETWORK_TRANSPORT: &str = "network.transport";
8445
8446/// [OSI network layer](https://wikipedia.org/wiki/Network_layer) or non-OSI equivalent.
8447///
8448/// ## Notes
8449///
8450/// The value SHOULD be normalized to lowercase.
8451///
8452/// # Examples
8453///
8454/// - `"ipv4"`
8455/// - `"ipv6"`
8456pub const NETWORK_TYPE: &str = "network.type";
8457
8458/// NFSv4+ operation name.
8459///
8460/// ## Notes
8461///
8462/// # Examples
8463///
8464/// - `"OPEN"`
8465/// - `"READ"`
8466/// - `"GETATTR"`
8467#[cfg(feature = "semconv_experimental")]
8468pub const NFS_OPERATION_NAME: &str = "nfs.operation.name";
8469
8470/// Linux: one of "hit" (NFSD_STATS_RC_HITS), "miss" (NFSD_STATS_RC_MISSES), or "nocache" (NFSD_STATS_RC_NOCACHE -- uncacheable)
8471///
8472/// ## Notes
8473///
8474/// # Examples
8475///
8476/// - `"hit"`
8477#[cfg(feature = "semconv_experimental")]
8478pub const NFS_SERVER_REPCACHE_STATUS: &str = "nfs.server.repcache.status";
8479
8480/// The state of event loop time.
8481///
8482/// ## Notes
8483#[cfg(feature = "semconv_experimental")]
8484pub const NODEJS_EVENTLOOP_STATE: &str = "nodejs.eventloop.state";
8485
8486/// The digest of the OCI image manifest. For container images specifically is the digest by which the container image is known.
8487///
8488/// ## Notes
8489///
8490/// 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).
8491/// An example can be found in [Example Image Manifest](https://github.com/opencontainers/image-spec/blob/main/manifest.md#example-image-manifest).
8492///
8493/// # Examples
8494///
8495/// - `"sha256:e4ca62c0d62f3e886e684806dfe9d4e0cda60d54986898173c1083856cfda0f4"`
8496#[cfg(feature = "semconv_experimental")]
8497pub const OCI_MANIFEST_DIGEST: &str = "oci.manifest.digest";
8498
8499/// ONC/Sun RPC procedure name.
8500///
8501/// ## Notes
8502///
8503/// # Examples
8504///
8505/// - `"OPEN"`
8506/// - `"READ"`
8507/// - `"GETATTR"`
8508#[cfg(feature = "semconv_experimental")]
8509pub const ONC_RPC_PROCEDURE_NAME: &str = "onc_rpc.procedure.name";
8510
8511/// ONC/Sun RPC procedure number.
8512///
8513/// ## Notes
8514#[cfg(feature = "semconv_experimental")]
8515pub const ONC_RPC_PROCEDURE_NUMBER: &str = "onc_rpc.procedure.number";
8516
8517/// ONC/Sun RPC program name.
8518///
8519/// ## Notes
8520///
8521/// # Examples
8522///
8523/// - `"portmapper"`
8524/// - `"nfs"`
8525#[cfg(feature = "semconv_experimental")]
8526pub const ONC_RPC_PROGRAM_NAME: &str = "onc_rpc.program.name";
8527
8528/// ONC/Sun RPC program version.
8529///
8530/// ## Notes
8531#[cfg(feature = "semconv_experimental")]
8532pub const ONC_RPC_VERSION: &str = "onc_rpc.version";
8533
8534/// The type of OpenAI API being used.
8535///
8536/// ## Notes
8537#[cfg(feature = "semconv_experimental")]
8538#[deprecated(
8539 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
8540)]
8541pub const OPENAI_API_TYPE: &str = "openai.api.type";
8542
8543/// The service tier requested. May be a specific tier, default, or auto.
8544///
8545/// ## Notes
8546///
8547/// # Examples
8548///
8549/// - `"auto"`
8550/// - `"default"`
8551#[cfg(feature = "semconv_experimental")]
8552#[deprecated(
8553 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
8554)]
8555pub const OPENAI_REQUEST_SERVICE_TIER: &str = "openai.request.service_tier";
8556
8557/// The service tier used for the response.
8558///
8559/// ## Notes
8560///
8561/// # Examples
8562///
8563/// - `"scale"`
8564/// - `"default"`
8565#[cfg(feature = "semconv_experimental")]
8566#[deprecated(
8567 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
8568)]
8569pub const OPENAI_RESPONSE_SERVICE_TIER: &str = "openai.response.service_tier";
8570
8571/// A fingerprint to track any eventual change in the Generative AI environment.
8572///
8573/// ## Notes
8574///
8575/// # Examples
8576///
8577/// - `"fp_44709d6fcb"`
8578#[cfg(feature = "semconv_experimental")]
8579#[deprecated(
8580 note = "{note: Moved to the [OpenTelemetry GenAI semantic conventions repository](https://github.com/open-telemetry/semantic-conventions-genai).\n, reason: uncategorized}"
8581)]
8582pub const OPENAI_RESPONSE_SYSTEM_FINGERPRINT: &str = "openai.response.system_fingerprint";
8583
8584/// The name of the cluster quota.
8585///
8586/// ## Notes
8587///
8588/// # Examples
8589///
8590/// - `"opentelemetry"`
8591#[cfg(feature = "semconv_experimental")]
8592pub const OPENSHIFT_CLUSTERQUOTA_NAME: &str = "openshift.clusterquota.name";
8593
8594/// The UID of the cluster quota.
8595///
8596/// ## Notes
8597///
8598/// # Examples
8599///
8600/// - `"275ecb36-5aa8-4c2a-9c47-d8bb681b9aff"`
8601#[cfg(feature = "semconv_experimental")]
8602pub const OPENSHIFT_CLUSTERQUOTA_UID: &str = "openshift.clusterquota.uid";
8603
8604/// Parent-child Reference type
8605///
8606/// ## Notes
8607///
8608/// The causal relationship between a child Span and a parent Span
8609#[cfg(feature = "semconv_experimental")]
8610pub const OPENTRACING_REF_TYPE: &str = "opentracing.ref_type";
8611
8612/// The database domain associated with the connection.
8613///
8614/// ## Notes
8615///
8616/// This attribute SHOULD be set to the value of the `DB_DOMAIN` initialization parameter,
8617/// as exposed in `v$parameter`. `DB_DOMAIN` defines the domain portion of the global
8618/// database name and SHOULD be configured when a database is, or may become, part of a
8619/// distributed environment. Its value consists of one or more valid identifiers
8620/// (alphanumeric ASCII characters) separated by periods.
8621///
8622/// # Examples
8623///
8624/// - `"example.com"`
8625/// - `"corp.internal"`
8626/// - `"prod.db.local"`
8627#[cfg(feature = "semconv_experimental")]
8628pub const ORACLE_DB_DOMAIN: &str = "oracle.db.domain";
8629
8630/// The instance name associated with the connection in an Oracle Real Application Clusters environment.
8631///
8632/// ## Notes
8633///
8634/// There can be multiple instances associated with a single database service. It indicates the
8635/// unique instance name to which the connection is currently bound. For non-RAC databases, this value
8636/// defaults to the `oracle.db.name`.
8637///
8638/// # Examples
8639///
8640/// - `"ORCL1"`
8641/// - `"ORCL2"`
8642/// - `"ORCL3"`
8643#[cfg(feature = "semconv_experimental")]
8644pub const ORACLE_DB_INSTANCE_NAME: &str = "oracle.db.instance.name";
8645
8646/// The database name associated with the connection.
8647///
8648/// ## Notes
8649///
8650/// This attribute SHOULD be set to the value of the parameter `DB_NAME` exposed in `v$parameter`.
8651///
8652/// # Examples
8653///
8654/// - `"ORCL1"`
8655/// - `"FREE"`
8656#[cfg(feature = "semconv_experimental")]
8657pub const ORACLE_DB_NAME: &str = "oracle.db.name";
8658
8659/// The pluggable database (PDB) name associated with the connection.
8660///
8661/// ## Notes
8662///
8663/// This attribute SHOULD reflect the PDB that the session is currently connected to.
8664/// If instrumentation cannot reliably obtain the active PDB name for each operation
8665/// without issuing an additional query (such as `SELECT SYS_CONTEXT`), it is
8666/// RECOMMENDED to fall back to the PDB name specified at connection establishment.
8667///
8668/// # Examples
8669///
8670/// - `"PDB1"`
8671/// - `"FREEPDB"`
8672#[cfg(feature = "semconv_experimental")]
8673pub const ORACLE_DB_PDB: &str = "oracle.db.pdb";
8674
8675/// The service name currently associated with the database connection.
8676///
8677/// ## Notes
8678///
8679/// The effective service name for a connection can change during its lifetime,
8680/// for example after executing sql, `ALTER SESSION`. If an instrumentation cannot reliably
8681/// obtain the current service name for each operation without issuing an additional
8682/// query (such as `SELECT SYS_CONTEXT`), it is RECOMMENDED to fall back to the
8683/// service name originally provided at connection establishment.
8684///
8685/// # Examples
8686///
8687/// - `"order-processing-service"`
8688/// - `"db_low.adb.oraclecloud.com"`
8689/// - `"db_high.adb.oraclecloud.com"`
8690#[cfg(feature = "semconv_experimental")]
8691pub const ORACLE_DB_SERVICE: &str = "oracle.db.service";
8692
8693/// The OCI realm identifier that indicates the isolated partition in which the tenancy and its resources reside.
8694///
8695/// ## Notes
8696///
8697/// See [OCI documentation on realms](https://docs.oracle.com/iaas/Content/General/Concepts/regions.htm)
8698///
8699/// # Examples
8700///
8701/// - `"oc1"`
8702/// - `"oc2"`
8703#[cfg(feature = "semconv_experimental")]
8704pub const ORACLE_CLOUD_REALM: &str = "oracle_cloud.realm";
8705
8706/// Unique identifier for a particular build or compilation of the operating system.
8707///
8708/// ## Notes
8709///
8710/// # Examples
8711///
8712/// - `"TQ3C.230805.001.B2"`
8713/// - `"20E247"`
8714/// - `"22621"`
8715#[cfg(feature = "semconv_experimental")]
8716pub const OS_BUILD_ID: &str = "os.build_id";
8717
8718/// Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands.
8719///
8720/// ## Notes
8721///
8722/// # Examples
8723///
8724/// - `"Microsoft Windows [Version 10.0.18363.778]"`
8725/// - `"Ubuntu 18.04.1 LTS"`
8726#[cfg(feature = "semconv_experimental")]
8727pub const OS_DESCRIPTION: &str = "os.description";
8728
8729/// Human readable operating system name.
8730///
8731/// ## Notes
8732///
8733/// # Examples
8734///
8735/// - `"iOS"`
8736/// - `"Android"`
8737/// - `"Ubuntu"`
8738#[cfg(feature = "semconv_experimental")]
8739pub const OS_NAME: &str = "os.name";
8740
8741/// The operating system type.
8742///
8743/// ## Notes
8744#[cfg(feature = "semconv_experimental")]
8745pub const OS_TYPE: &str = "os.type";
8746
8747/// The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
8748///
8749/// ## Notes
8750///
8751/// # Examples
8752///
8753/// - `"14.2.1"`
8754/// - `"18.04.1"`
8755#[cfg(feature = "semconv_experimental")]
8756pub const OS_VERSION: &str = "os.version";
8757
8758/// A name uniquely identifying the instance of the OpenTelemetry component within its containing SDK instance.
8759///
8760/// ## Notes
8761///
8762/// Implementations SHOULD ensure a low cardinality for this attribute, even across application or SDK restarts.
8763/// E.g. implementations MUST NOT use UUIDs as values for this attribute.
8764///
8765/// Implementations MAY achieve these goals by following a `[otel.component.type]/[instance-counter]` pattern, e.g. `batching_span_processor/0`.
8766/// Hereby `otel.component.type` refers to the corresponding attribute value of the component.
8767///
8768/// The value of `instance-counter` MAY be automatically assigned by the component and uniqueness within the enclosing SDK instance MUST be guaranteed.
8769/// For example, `[instance-counter]` MAY be implemented by using a monotonically increasing counter (starting with `0`), which is incremented every time an
8770/// instance of the given component type is started.
8771///
8772/// With this implementation, for example the first Batching Span Processor would have `batching_span_processor/0`
8773/// as `otel.component.name`, the second one `batching_span_processor/1` and so on.
8774/// These values will therefore be reused in the case of an application restart.
8775///
8776/// # Examples
8777///
8778/// - `"otlp_grpc_span_exporter/0"`
8779/// - `"custom-name"`
8780#[cfg(feature = "semconv_experimental")]
8781pub const OTEL_COMPONENT_NAME: &str = "otel.component.name";
8782
8783/// A name identifying the type of the OpenTelemetry component.
8784///
8785/// ## Notes
8786///
8787/// If none of the standardized values apply, implementations SHOULD use the language-defined name of the type.
8788/// E.g. for Java the fully qualified classname SHOULD be used in this case.
8789///
8790/// # Examples
8791///
8792/// - `"batching_span_processor"`
8793/// - `"com.example.MySpanExporter"`
8794#[cfg(feature = "semconv_experimental")]
8795pub const OTEL_COMPONENT_TYPE: &str = "otel.component.type";
8796
8797/// Identifies the class / type of event.
8798///
8799/// ## Notes
8800///
8801/// This attribute SHOULD be used by non-OTLP exporters when destination does not support `EventName` or equivalent field. This attribute MAY be used by applications using existing logging libraries so that it can be used to set the `EventName` field by Collector or SDK components.
8802///
8803/// # Examples
8804///
8805/// - `"browser.mouse.click"`
8806/// - `"device.app.lifecycle"`
8807pub const OTEL_EVENT_NAME: &str = "otel.event.name";
8808
8809/// Deprecated. Use the `otel.scope.name` attribute
8810///
8811/// ## Notes
8812///
8813/// # Examples
8814///
8815/// - `"io.opentelemetry.contrib.mongodb"`
8816#[cfg(feature = "semconv_experimental")]
8817#[deprecated(
8818 note = "{note: Replaced by `otel.scope.name`., reason: renamed, renamed_to: otel.scope.name}"
8819)]
8820pub const OTEL_LIBRARY_NAME: &str = "otel.library.name";
8821
8822/// Deprecated. Use the `otel.scope.version` attribute.
8823///
8824/// ## Notes
8825///
8826/// # Examples
8827///
8828/// - `"1.0.0"`
8829#[cfg(feature = "semconv_experimental")]
8830#[deprecated(
8831 note = "{note: Replaced by `otel.scope.version`., reason: renamed, renamed_to: otel.scope.version}"
8832)]
8833pub const OTEL_LIBRARY_VERSION: &str = "otel.library.version";
8834
8835/// The name of the instrumentation scope - (`InstrumentationScope.Name` in OTLP).
8836///
8837/// ## Notes
8838///
8839/// # Examples
8840///
8841/// - `"io.opentelemetry.contrib.mongodb"`
8842pub const OTEL_SCOPE_NAME: &str = "otel.scope.name";
8843
8844/// The schema URL of the instrumentation scope.
8845///
8846/// ## Notes
8847///
8848/// # Examples
8849///
8850/// - `"https://opentelemetry.io/schemas/1.31.0"`
8851#[cfg(feature = "semconv_experimental")]
8852pub const OTEL_SCOPE_SCHEMA_URL: &str = "otel.scope.schema_url";
8853
8854/// The version of the instrumentation scope - (`InstrumentationScope.Version` in OTLP).
8855///
8856/// ## Notes
8857///
8858/// # Examples
8859///
8860/// - `"1.0.0"`
8861pub const OTEL_SCOPE_VERSION: &str = "otel.scope.version";
8862
8863/// 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)
8864///
8865/// ## Notes
8866#[cfg(feature = "semconv_experimental")]
8867pub const OTEL_SPAN_PARENT_ORIGIN: &str = "otel.span.parent.origin";
8868
8869/// The result value of the sampler for this span
8870///
8871/// ## Notes
8872#[cfg(feature = "semconv_experimental")]
8873pub const OTEL_SPAN_SAMPLING_RESULT: &str = "otel.span.sampling_result";
8874
8875/// Name of the code, either "OK" or "ERROR". MUST NOT be set if the status code is UNSET.
8876///
8877/// ## Notes
8878pub const OTEL_STATUS_CODE: &str = "otel.status_code";
8879
8880/// Description of the Status if it has a value, otherwise not set.
8881///
8882/// ## Notes
8883///
8884/// # Examples
8885///
8886/// - `"resource not found"`
8887pub const OTEL_STATUS_DESCRIPTION: &str = "otel.status_description";
8888
8889/// Deprecated, use `db.client.connection.state` instead.
8890///
8891/// ## Notes
8892///
8893/// # Examples
8894///
8895/// - `"idle"`
8896#[cfg(feature = "semconv_experimental")]
8897#[deprecated(
8898 note = "{note: Replaced by `db.client.connection.state`., reason: renamed, renamed_to: db.client.connection.state}"
8899)]
8900pub const STATE: &str = "state";
8901
8902/// 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.
8903///
8904/// ## Notes
8905///
8906/// Examples of `peer.service` that users may specify:
8907///
8908/// - A Redis cache of auth tokens as `peer.service="AuthTokenCache"`.
8909/// - A gRPC service `rpc.service="io.opentelemetry.AuthService"` may be hosted in both a gateway, `peer.service="ExternalApiService"` and a backend, `peer.service="AuthService"`.
8910///
8911/// # Examples
8912///
8913/// - `"AuthTokenCache"`
8914#[cfg(feature = "semconv_experimental")]
8915#[deprecated(
8916 note = "{note: Replaced by `service.peer.name`., reason: renamed, renamed_to: service.peer.name}"
8917)]
8918pub const PEER_SERVICE: &str = "peer.service";
8919
8920/// Deprecated, use `db.client.connection.pool.name` instead.
8921///
8922/// ## Notes
8923///
8924/// # Examples
8925///
8926/// - `"myDataSource"`
8927#[cfg(feature = "semconv_experimental")]
8928#[deprecated(
8929 note = "{note: Replaced by `db.client.connection.pool.name`., reason: renamed, renamed_to: db.client.connection.pool.name}"
8930)]
8931pub const POOL_NAME: &str = "pool.name";
8932
8933/// Provides an indication that multiple symbols map to this location's address, for example due to identical code folding by the linker. In that case the line information represents one of the multiple symbols. This field must be recomputed when the symbolization state of the profile changes.
8934///
8935/// ## Notes
8936#[cfg(feature = "semconv_experimental")]
8937pub const PPROF_LOCATION_IS_FOLDED: &str = "pprof.location.is_folded";
8938
8939/// Indicates that there are filenames related to this mapping.
8940///
8941/// ## Notes
8942#[cfg(feature = "semconv_experimental")]
8943pub const PPROF_MAPPING_HAS_FILENAMES: &str = "pprof.mapping.has_filenames";
8944
8945/// Indicates that there are functions related to this mapping.
8946///
8947/// ## Notes
8948#[cfg(feature = "semconv_experimental")]
8949pub const PPROF_MAPPING_HAS_FUNCTIONS: &str = "pprof.mapping.has_functions";
8950
8951/// Indicates that there are inline frames related to this mapping.
8952///
8953/// ## Notes
8954#[cfg(feature = "semconv_experimental")]
8955pub const PPROF_MAPPING_HAS_INLINE_FRAMES: &str = "pprof.mapping.has_inline_frames";
8956
8957/// Indicates that there are line numbers related to this mapping.
8958///
8959/// ## Notes
8960#[cfg(feature = "semconv_experimental")]
8961pub const PPROF_MAPPING_HAS_LINE_NUMBERS: &str = "pprof.mapping.has_line_numbers";
8962
8963/// Free-form text associated with the profile. This field should not be used to store any machine-readable information, it is only for human-friendly content.
8964///
8965/// ## Notes
8966///
8967/// # Examples
8968///
8969/// - `[
8970/// "hello world",
8971/// "bazinga",
8972/// ]`
8973#[cfg(feature = "semconv_experimental")]
8974pub const PPROF_PROFILE_COMMENT: &str = "pprof.profile.comment";
8975
8976/// Documentation link for this profile type.
8977///
8978/// ## Notes
8979///
8980/// The URL must be absolute and may be missing if the profile was generated by code that did not supply a link
8981///
8982/// # Examples
8983///
8984/// - `"http://pprof.example.com/cpu-profile.html"`
8985#[cfg(feature = "semconv_experimental")]
8986pub const PPROF_PROFILE_DOC_URL: &str = "pprof.profile.doc_url";
8987
8988/// Frames with Function.function_name fully matching the regexp will be dropped from the samples, along with their successors.
8989///
8990/// ## Notes
8991///
8992/// # Examples
8993///
8994/// - `"/foobar/"`
8995#[cfg(feature = "semconv_experimental")]
8996pub const PPROF_PROFILE_DROP_FRAMES: &str = "pprof.profile.drop_frames";
8997
8998/// Frames with Function.function_name fully matching the regexp will be kept, even if it matches drop_frames.
8999///
9000/// ## Notes
9001///
9002/// # Examples
9003///
9004/// - `"/bazinga/"`
9005#[cfg(feature = "semconv_experimental")]
9006pub const PPROF_PROFILE_KEEP_FRAMES: &str = "pprof.profile.keep_frames";
9007
9008/// Records the pprof's default_sample_type in the original profile. Not set if the default sample type was missing.
9009///
9010/// ## Notes
9011///
9012/// This attribute, if present, MUST be set at the scope level (resource_profiles\[\].scope_profiles\[\].scope.attributes\[\]).
9013///
9014/// # Examples
9015///
9016/// - `"cpu"`
9017#[cfg(feature = "semconv_experimental")]
9018pub const PPROF_SCOPE_DEFAULT_SAMPLE_TYPE: &str = "pprof.scope.default_sample_type";
9019
9020/// Records the indexes of the sample types in the original profile.
9021///
9022/// ## Notes
9023///
9024/// This attribute, if present, MUST be set at the scope level (resource_profiles\[\].scope_profiles\[\].scope.attributes\[\]).
9025///
9026/// # Examples
9027///
9028/// - `[
9029/// 3,
9030/// 0,
9031/// 1,
9032/// 2,
9033/// ]`
9034#[cfg(feature = "semconv_experimental")]
9035pub const PPROF_SCOPE_SAMPLE_TYPE_ORDER: &str = "pprof.scope.sample_type_order";
9036
9037/// Length of the process.command_args array
9038///
9039/// ## Notes
9040///
9041/// 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.
9042///
9043/// # Examples
9044///
9045/// - `4`
9046#[cfg(feature = "semconv_experimental")]
9047pub const PROCESS_ARGS_COUNT: &str = "process.args_count";
9048
9049/// 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`.
9050///
9051/// ## Notes
9052///
9053/// # Examples
9054///
9055/// - `"cmd/otelcol"`
9056#[cfg(feature = "semconv_experimental")]
9057pub const PROCESS_COMMAND: &str = "process.command";
9058
9059/// 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.
9060///
9061/// ## Notes
9062///
9063/// # Examples
9064///
9065/// - `[
9066/// "cmd/otecol",
9067/// "--config=config.yaml",
9068/// ]`
9069#[cfg(feature = "semconv_experimental")]
9070pub const PROCESS_COMMAND_ARGS: &str = "process.command_args";
9071
9072/// 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.
9073///
9074/// ## Notes
9075///
9076/// # Examples
9077///
9078/// - `"C:\\cmd\\otecol --config=\"my directory\\config.yaml\""`
9079#[cfg(feature = "semconv_experimental")]
9080pub const PROCESS_COMMAND_LINE: &str = "process.command_line";
9081
9082/// Specifies whether the context switches for this data point were voluntary or involuntary.
9083///
9084/// ## Notes
9085#[cfg(feature = "semconv_experimental")]
9086pub const PROCESS_CONTEXT_SWITCH_TYPE: &str = "process.context_switch.type";
9087
9088/// Deprecated, use `cpu.mode` instead.
9089///
9090/// ## Notes
9091#[cfg(feature = "semconv_experimental")]
9092#[deprecated(note = "{note: Replaced by `cpu.mode`., reason: renamed, renamed_to: cpu.mode}")]
9093pub const PROCESS_CPU_STATE: &str = "process.cpu.state";
9094
9095/// The date and time the process was created, in ISO 8601 format.
9096///
9097/// ## Notes
9098///
9099/// # Examples
9100///
9101/// - `"2023-11-21T09:25:34.853Z"`
9102#[cfg(feature = "semconv_experimental")]
9103pub const PROCESS_CREATION_TIME: &str = "process.creation.time";
9104
9105/// Process environment variables, ``key`` being the environment variable name, the value being the environment variable value.
9106///
9107/// ## Notes
9108///
9109/// Examples:
9110///
9111/// - an environment variable `USER` with value `"ubuntu"` SHOULD be recorded
9112/// as the `process.environment_variable.USER` attribute with value `"ubuntu"`.
9113/// - an environment variable `PATH` with value `"/usr/local/bin:/usr/bin"`
9114/// SHOULD be recorded as the `process.environment_variable.PATH` attribute
9115/// with value `"/usr/local/bin:/usr/bin"`.
9116///
9117/// # Examples
9118///
9119/// - `"ubuntu"`
9120/// - `"/usr/local/bin:/usr/bin"`
9121#[cfg(feature = "semconv_experimental")]
9122pub const PROCESS_ENVIRONMENT_VARIABLE: &str = "process.environment_variable";
9123
9124/// The GNU build ID as found in the `.note.gnu.build-id` ELF section (hex string).
9125///
9126/// ## Notes
9127///
9128/// # Examples
9129///
9130/// - `"c89b11207f6479603b0d49bf291c092c2b719293"`
9131#[cfg(feature = "semconv_experimental")]
9132pub const PROCESS_EXECUTABLE_BUILD_ID_GNU: &str = "process.executable.build_id.gnu";
9133
9134/// The Go build ID as retrieved by `go tool buildid <go executable>`.
9135///
9136/// ## Notes
9137///
9138/// # Examples
9139///
9140/// - `"foh3mEXu7BLZjsN9pOwG/kATcXlYVCDEFouRMQed_/WwRFB1hPo9LBkekthSPG/x8hMC8emW2cCjXD0_1aY"`
9141#[cfg(feature = "semconv_experimental")]
9142pub const PROCESS_EXECUTABLE_BUILD_ID_GO: &str = "process.executable.build_id.go";
9143
9144/// Deterministic build ID for executables.
9145///
9146/// ## Notes
9147///
9148/// GNU and Go build IDs may be stripped or unavailable in some environments
9149/// (e.g., Alpine Linux, Docker images). This attribute provides a deterministic
9150/// build ID computed by hashing the first and last 4096 bytes of the file
9151/// along with its length:
9152/// ```text
9153/// Input ← Concat(File[:4096], File[-4096:], BigEndianUInt64(Len(File)))
9154/// Digest ← SHA256(Input)
9155/// BuildID ← Digest[:16]
9156/// ```
9157///
9158/// The result is the first 16 bytes (128 bits) of the SHA256 digest,
9159/// represented as a hex string.
9160///
9161/// # Examples
9162///
9163/// - `"600DCAFE4A110000F2BF38C493F5FB92"`
9164#[cfg(feature = "semconv_experimental")]
9165pub const PROCESS_EXECUTABLE_BUILD_ID_HTLHASH: &str = "process.executable.build_id.htlhash";
9166
9167/// "Deprecated, use `process.executable.build_id.htlhash` instead."
9168///
9169/// ## Notes
9170///
9171/// # Examples
9172///
9173/// - `"600DCAFE4A110000F2BF38C493F5FB92"`
9174#[cfg(feature = "semconv_experimental")]
9175#[deprecated(
9176 note = "{note: Replaced by `process.executable.build_id.htlhash`., reason: renamed, renamed_to: process.executable.build_id.htlhash}"
9177)]
9178pub const PROCESS_EXECUTABLE_BUILD_ID_PROFILING: &str = "process.executable.build_id.profiling";
9179
9180/// 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`.
9181///
9182/// ## Notes
9183///
9184/// # Examples
9185///
9186/// - `"otelcol"`
9187#[cfg(feature = "semconv_experimental")]
9188pub const PROCESS_EXECUTABLE_NAME: &str = "process.executable.name";
9189
9190/// 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`.
9191///
9192/// ## Notes
9193///
9194/// # Examples
9195///
9196/// - `"/usr/bin/cmd/otelcol"`
9197#[cfg(feature = "semconv_experimental")]
9198pub const PROCESS_EXECUTABLE_PATH: &str = "process.executable.path";
9199
9200/// The exit code of the process.
9201///
9202/// ## Notes
9203///
9204/// # Examples
9205///
9206/// - `127`
9207#[cfg(feature = "semconv_experimental")]
9208pub const PROCESS_EXIT_CODE: &str = "process.exit.code";
9209
9210/// The date and time the process exited, in ISO 8601 format.
9211///
9212/// ## Notes
9213///
9214/// # Examples
9215///
9216/// - `"2023-11-21T09:26:12.315Z"`
9217#[cfg(feature = "semconv_experimental")]
9218pub const PROCESS_EXIT_TIME: &str = "process.exit.time";
9219
9220/// The PID of the process's group leader. This is also the process group ID (PGID) of the process.
9221///
9222/// ## Notes
9223///
9224/// # Examples
9225///
9226/// - `23`
9227#[cfg(feature = "semconv_experimental")]
9228pub const PROCESS_GROUP_LEADER_PID: &str = "process.group_leader.pid";
9229
9230/// Whether the process is connected to an interactive shell.
9231///
9232/// ## Notes
9233#[cfg(feature = "semconv_experimental")]
9234pub const PROCESS_INTERACTIVE: &str = "process.interactive";
9235
9236/// The control group associated with the process.
9237///
9238/// ## Notes
9239///
9240/// 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.
9241///
9242/// # Examples
9243///
9244/// - `"1:name=systemd:/user.slice/user-1000.slice/session-3.scope"`
9245/// - `"0::/user.slice/user-1000.slice/user@1000.service/tmux-spawn-0267755b-4639-4a27-90ed-f19f88e53748.scope"`
9246#[cfg(feature = "semconv_experimental")]
9247pub const PROCESS_LINUX_CGROUP: &str = "process.linux.cgroup";
9248
9249/// The username of the user that owns the process.
9250///
9251/// ## Notes
9252///
9253/// # Examples
9254///
9255/// - `"root"`
9256#[cfg(feature = "semconv_experimental")]
9257pub const PROCESS_OWNER: &str = "process.owner";
9258
9259/// Deprecated, use `system.paging.fault.type` instead.
9260///
9261/// ## Notes
9262#[cfg(feature = "semconv_experimental")]
9263#[deprecated(
9264 note = "{note: Replaced by `system.paging.fault.type`., reason: renamed, renamed_to: system.paging.fault.type}"
9265)]
9266pub const PROCESS_PAGING_FAULT_TYPE: &str = "process.paging.fault_type";
9267
9268/// Parent Process identifier (PPID).
9269///
9270/// ## Notes
9271///
9272/// # Examples
9273///
9274/// - `111`
9275#[cfg(feature = "semconv_experimental")]
9276pub const PROCESS_PARENT_PID: &str = "process.parent_pid";
9277
9278/// Process identifier (PID).
9279///
9280/// ## Notes
9281///
9282/// # Examples
9283///
9284/// - `1234`
9285#[cfg(feature = "semconv_experimental")]
9286pub const PROCESS_PID: &str = "process.pid";
9287
9288/// The real user ID (RUID) of the process.
9289///
9290/// ## Notes
9291///
9292/// # Examples
9293///
9294/// - `1000`
9295#[cfg(feature = "semconv_experimental")]
9296pub const PROCESS_REAL_USER_ID: &str = "process.real_user.id";
9297
9298/// The username of the real user of the process.
9299///
9300/// ## Notes
9301///
9302/// # Examples
9303///
9304/// - `"operator"`
9305#[cfg(feature = "semconv_experimental")]
9306pub const PROCESS_REAL_USER_NAME: &str = "process.real_user.name";
9307
9308/// An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.
9309///
9310/// ## Notes
9311///
9312/// # Examples
9313///
9314/// - `"Eclipse OpenJ9 Eclipse OpenJ9 VM openj9-0.21.0"`
9315#[cfg(feature = "semconv_experimental")]
9316pub const PROCESS_RUNTIME_DESCRIPTION: &str = "process.runtime.description";
9317
9318/// The name of the runtime of this process.
9319///
9320/// ## Notes
9321///
9322/// # Examples
9323///
9324/// - `"OpenJDK Runtime Environment"`
9325#[cfg(feature = "semconv_experimental")]
9326pub const PROCESS_RUNTIME_NAME: &str = "process.runtime.name";
9327
9328/// The version of the runtime of this process, as returned by the runtime without modification.
9329///
9330/// ## Notes
9331///
9332/// # Examples
9333///
9334/// - `"14.0.2"`
9335#[cfg(feature = "semconv_experimental")]
9336pub const PROCESS_RUNTIME_VERSION: &str = "process.runtime.version";
9337
9338/// The saved user ID (SUID) of the process.
9339///
9340/// ## Notes
9341///
9342/// # Examples
9343///
9344/// - `1002`
9345#[cfg(feature = "semconv_experimental")]
9346pub const PROCESS_SAVED_USER_ID: &str = "process.saved_user.id";
9347
9348/// The username of the saved user.
9349///
9350/// ## Notes
9351///
9352/// # Examples
9353///
9354/// - `"operator"`
9355#[cfg(feature = "semconv_experimental")]
9356pub const PROCESS_SAVED_USER_NAME: &str = "process.saved_user.name";
9357
9358/// The PID of the process's session leader. This is also the session ID (SID) of the process.
9359///
9360/// ## Notes
9361///
9362/// # Examples
9363///
9364/// - `14`
9365#[cfg(feature = "semconv_experimental")]
9366pub const PROCESS_SESSION_LEADER_PID: &str = "process.session_leader.pid";
9367
9368/// The process state, e.g., [Linux Process State Codes](https://man7.org/linux/man-pages/man1/ps.1.html#PROCESS_STATE_CODES)
9369///
9370/// ## Notes
9371///
9372/// # Examples
9373///
9374/// - `"running"`
9375#[cfg(feature = "semconv_experimental")]
9376pub const PROCESS_STATE: &str = "process.state";
9377
9378/// Process title (proctitle)
9379///
9380/// ## Notes
9381///
9382/// 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.
9383///
9384/// # Examples
9385///
9386/// - `"cat /etc/hostname"`
9387/// - `"xfce4-session"`
9388/// - `"bash"`
9389#[cfg(feature = "semconv_experimental")]
9390pub const PROCESS_TITLE: &str = "process.title";
9391
9392/// The effective user ID (EUID) of the process.
9393///
9394/// ## Notes
9395///
9396/// # Examples
9397///
9398/// - `1001`
9399#[cfg(feature = "semconv_experimental")]
9400pub const PROCESS_USER_ID: &str = "process.user.id";
9401
9402/// The username of the effective user of the process.
9403///
9404/// ## Notes
9405///
9406/// # Examples
9407///
9408/// - `"root"`
9409#[cfg(feature = "semconv_experimental")]
9410pub const PROCESS_USER_NAME: &str = "process.user.name";
9411
9412/// Virtual process identifier.
9413///
9414/// ## Notes
9415///
9416/// 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.
9417///
9418/// # Examples
9419///
9420/// - `12`
9421#[cfg(feature = "semconv_experimental")]
9422pub const PROCESS_VPID: &str = "process.vpid";
9423
9424/// The working directory of the process.
9425///
9426/// ## Notes
9427///
9428/// # Examples
9429///
9430/// - `"/root"`
9431#[cfg(feature = "semconv_experimental")]
9432pub const PROCESS_WORKING_DIRECTORY: &str = "process.working_directory";
9433
9434/// Describes the interpreter or compiler of a single frame.
9435///
9436/// ## Notes
9437///
9438/// # Examples
9439///
9440/// - `"cpython"`
9441#[cfg(feature = "semconv_experimental")]
9442pub const PROFILE_FRAME_TYPE: &str = "profile.frame.type";
9443
9444/// Deprecated, use `rpc.response.status_code` attribute instead.
9445///
9446/// ## Notes
9447#[cfg(feature = "semconv_experimental")]
9448#[deprecated(
9449 note = "{note: Replaced by `rpc.response.status_code`., reason: renamed, renamed_to: rpc.response.status_code}"
9450)]
9451pub const RPC_CONNECT_RPC_ERROR_CODE: &str = "rpc.connect_rpc.error_code";
9452
9453/// Deprecated, use `rpc.request.metadata` instead.
9454///
9455/// ## Notes
9456///
9457/// # Examples
9458///
9459/// - `[
9460/// "1.2.3.4",
9461/// "1.2.3.5",
9462/// ]`
9463#[cfg(feature = "semconv_experimental")]
9464#[deprecated(
9465 note = "{note: Replaced by `rpc.request.metadata`., reason: renamed, renamed_to: rpc.request.metadata}"
9466)]
9467pub const RPC_CONNECT_RPC_REQUEST_METADATA: &str = "rpc.connect_rpc.request.metadata";
9468
9469/// Deprecated, use `rpc.response.metadata` instead.
9470///
9471/// ## Notes
9472///
9473/// # Examples
9474///
9475/// - `[
9476/// "attribute_value",
9477/// ]`
9478#[cfg(feature = "semconv_experimental")]
9479#[deprecated(
9480 note = "{note: Replaced by `rpc.response.metadata`., reason: renamed, renamed_to: rpc.response.metadata}"
9481)]
9482pub const RPC_CONNECT_RPC_RESPONSE_METADATA: &str = "rpc.connect_rpc.response.metadata";
9483
9484/// Deprecated, use `rpc.request.metadata` instead.
9485///
9486/// ## Notes
9487///
9488/// # Examples
9489///
9490/// - `[
9491/// "1.2.3.4",
9492/// "1.2.3.5",
9493/// ]`
9494#[cfg(feature = "semconv_experimental")]
9495#[deprecated(
9496 note = "{note: Replaced by `rpc.request.metadata`., reason: renamed, renamed_to: rpc.request.metadata}"
9497)]
9498pub const RPC_GRPC_REQUEST_METADATA: &str = "rpc.grpc.request.metadata";
9499
9500/// Deprecated, use `rpc.response.metadata` instead.
9501///
9502/// ## Notes
9503///
9504/// # Examples
9505///
9506/// - `[
9507/// "attribute_value",
9508/// ]`
9509#[cfg(feature = "semconv_experimental")]
9510#[deprecated(
9511 note = "{note: Replaced by `rpc.response.metadata`., reason: renamed, renamed_to: rpc.response.metadata}"
9512)]
9513pub const RPC_GRPC_RESPONSE_METADATA: &str = "rpc.grpc.response.metadata";
9514
9515/// Deprecated, use string representation on the `rpc.response.status_code` attribute instead.
9516///
9517/// ## Notes
9518#[cfg(feature = "semconv_experimental")]
9519#[deprecated(
9520 note = "{note: Use string representation of the gRPC status code on the `rpc.response.status_code` attribute., reason: uncategorized}"
9521)]
9522pub const RPC_GRPC_STATUS_CODE: &str = "rpc.grpc.status_code";
9523
9524/// Deprecated, use string representation on the `rpc.response.status_code` attribute instead.
9525///
9526/// ## Notes
9527///
9528/// # Examples
9529///
9530/// - `-32700`
9531/// - `100`
9532#[cfg(feature = "semconv_experimental")]
9533#[deprecated(
9534 note = "{note: Use string representation of the error code on the `rpc.response.status_code` attribute., reason: uncategorized}"
9535)]
9536pub const RPC_JSONRPC_ERROR_CODE: &str = "rpc.jsonrpc.error_code";
9537
9538/// Deprecated, use the span status description when reporting JSON-RPC spans.
9539///
9540/// ## Notes
9541///
9542/// # Examples
9543///
9544/// - `"Parse error"`
9545/// - `"User already exists"`
9546#[cfg(feature = "semconv_experimental")]
9547#[deprecated(
9548 note = "{note: Use the span status description when reporting JSON-RPC spans., reason: uncategorized}"
9549)]
9550pub const RPC_JSONRPC_ERROR_MESSAGE: &str = "rpc.jsonrpc.error_message";
9551
9552/// Deprecated, use `jsonrpc.request.id` instead.
9553///
9554/// ## Notes
9555///
9556/// # Examples
9557///
9558/// - `"10"`
9559/// - `"request-7"`
9560/// - `""`
9561#[cfg(feature = "semconv_experimental")]
9562#[deprecated(
9563 note = "{note: Replaced by `jsonrpc.request.id`., reason: renamed, renamed_to: jsonrpc.request.id}"
9564)]
9565pub const RPC_JSONRPC_REQUEST_ID: &str = "rpc.jsonrpc.request_id";
9566
9567/// Deprecated, use `jsonrpc.protocol.version` instead.
9568///
9569/// ## Notes
9570///
9571/// # Examples
9572///
9573/// - `"2.0"`
9574/// - `"1.0"`
9575#[cfg(feature = "semconv_experimental")]
9576#[deprecated(
9577 note = "{note: Replaced by `jsonrpc.protocol.version`., reason: renamed, renamed_to: jsonrpc.protocol.version}"
9578)]
9579pub const RPC_JSONRPC_VERSION: &str = "rpc.jsonrpc.version";
9580
9581/// Compressed size of the message in bytes.
9582///
9583/// ## Notes
9584#[cfg(feature = "semconv_experimental")]
9585#[deprecated(note = "{note: Deprecated, no replacement at this time., reason: obsoleted}")]
9586pub const RPC_MESSAGE_COMPRESSED_SIZE: &str = "rpc.message.compressed_size";
9587
9588/// MUST be calculated as two different counters starting from `1` one for sent messages and one for received message.
9589///
9590/// ## Notes
9591///
9592/// This way we guarantee that the values will be consistent between different implementations
9593#[cfg(feature = "semconv_experimental")]
9594#[deprecated(note = "{note: Deprecated, no replacement at this time., reason: obsoleted}")]
9595pub const RPC_MESSAGE_ID: &str = "rpc.message.id";
9596
9597/// Whether this is a received or sent message.
9598///
9599/// ## Notes
9600#[cfg(feature = "semconv_experimental")]
9601#[deprecated(note = "{note: Deprecated, no replacement at this time., reason: obsoleted}")]
9602pub const RPC_MESSAGE_TYPE: &str = "rpc.message.type";
9603
9604/// Uncompressed size of the message in bytes.
9605///
9606/// ## Notes
9607#[cfg(feature = "semconv_experimental")]
9608#[deprecated(note = "{note: Deprecated, no replacement at this time., reason: obsoleted}")]
9609pub const RPC_MESSAGE_UNCOMPRESSED_SIZE: &str = "rpc.message.uncompressed_size";
9610
9611/// The fully-qualified logical name of the method from the RPC interface perspective.
9612///
9613/// ## Notes
9614///
9615/// The method name MAY have unbounded cardinality in edge or error cases.
9616///
9617/// Some RPC frameworks or libraries provide a fixed set of recognized methods
9618/// for client stubs and server implementations. Instrumentations for such
9619/// frameworks MUST set this attribute to the original method name only
9620/// when the method is recognized by the framework or library.
9621///
9622/// When the method is not recognized, for example, when the server receives
9623/// a request for a method that is not predefined on the server, or when
9624/// instrumentation is not able to reliably detect if the method is predefined,
9625/// the attribute MUST be set to `_OTHER`. In such cases, tracing
9626/// instrumentations MUST also set `rpc.method_original` attribute to
9627/// the original method value.
9628///
9629/// If the RPC instrumentation could end up converting valid RPC methods to
9630/// `_OTHER`, then it SHOULD provide a way to configure the list of recognized
9631/// RPC methods.
9632///
9633/// The `rpc.method` can be different from the name of any implementing
9634/// method/function.
9635/// The `code.function.name` attribute may be used to record the fully-qualified
9636/// method actually executing the call on the server side, or the
9637/// RPC client stub method on the client side.
9638///
9639/// # Examples
9640///
9641/// - `"com.example.ExampleService/exampleMethod"`
9642/// - `"EchoService/Echo"`
9643/// - `"_OTHER"`
9644#[cfg(feature = "semconv_experimental")]
9645pub const RPC_METHOD: &str = "rpc.method";
9646
9647/// The original name of the method used by the client.
9648///
9649/// ## Notes
9650///
9651/// # Examples
9652///
9653/// - `"com.myservice.EchoService/catchAll"`
9654/// - `"com.myservice.EchoService/unknownMethod"`
9655/// - `"InvalidMethod"`
9656#[cfg(feature = "semconv_experimental")]
9657pub const RPC_METHOD_ORIGINAL: &str = "rpc.method_original";
9658
9659/// RPC request metadata, ``key`` being the normalized RPC metadata key (lowercase), the value being the metadata values.
9660///
9661/// ## Notes
9662///
9663/// Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
9664/// Including all request metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
9665///
9666/// For example, a property `my-custom-key` with value `["1.2.3.4", "1.2.3.5"]` SHOULD be recorded as
9667/// `rpc.request.metadata.my-custom-key` attribute with value `["1.2.3.4", "1.2.3.5"]`
9668///
9669/// # Examples
9670///
9671/// - `[
9672/// "1.2.3.4",
9673/// "1.2.3.5",
9674/// ]`
9675#[cfg(feature = "semconv_experimental")]
9676pub const RPC_REQUEST_METADATA: &str = "rpc.request.metadata";
9677
9678/// RPC response metadata, ``key`` being the normalized RPC metadata key (lowercase), the value being the metadata values.
9679///
9680/// ## Notes
9681///
9682/// Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
9683/// Including all response metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
9684///
9685/// For example, a property `my-custom-key` with value `["attribute_value"]` SHOULD be recorded as
9686/// the `rpc.response.metadata.my-custom-key` attribute with value `["attribute_value"]`
9687///
9688/// # Examples
9689///
9690/// - `[
9691/// "attribute_value",
9692/// ]`
9693#[cfg(feature = "semconv_experimental")]
9694pub const RPC_RESPONSE_METADATA: &str = "rpc.response.metadata";
9695
9696/// Status code of the RPC returned by the RPC server or generated by the client
9697///
9698/// ## Notes
9699///
9700/// Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes.
9701/// Semantic conventions for individual RPC frameworks SHOULD document what `rpc.response.status_code` means in the context of that system and which values are considered to represent errors.
9702///
9703/// # Examples
9704///
9705/// - `"OK"`
9706/// - `"DEADLINE_EXCEEDED"`
9707/// - `"-32602"`
9708#[cfg(feature = "semconv_experimental")]
9709pub const RPC_RESPONSE_STATUS_CODE: &str = "rpc.response.status_code";
9710
9711/// Deprecated, use fully-qualified `rpc.method` instead.
9712///
9713/// ## Notes
9714///
9715/// # Examples
9716///
9717/// - `"myservice.EchoService"`
9718#[cfg(feature = "semconv_experimental")]
9719#[deprecated(
9720 note = "{note: Value should be included in `rpc.method` which is expected to be a fully-qualified name., reason: uncategorized}"
9721)]
9722pub const RPC_SERVICE: &str = "rpc.service";
9723
9724/// Deprecated, use `rpc.system.name` attribute instead.
9725///
9726/// ## Notes
9727#[cfg(feature = "semconv_experimental")]
9728#[deprecated(
9729 note = "{note: Replaced by `rpc.system.name`., reason: renamed, renamed_to: rpc.system.name}"
9730)]
9731pub const RPC_SYSTEM: &str = "rpc.system";
9732
9733/// The Remote Procedure Call (RPC) system.
9734///
9735/// ## Notes
9736///
9737/// The client and server RPC systems may differ for the same RPC interaction. For example, a client may use Apache Dubbo or Connect RPC to communicate with a server that uses gRPC since both protocols provide compatibility with gRPC
9738#[cfg(feature = "semconv_experimental")]
9739pub const RPC_SYSTEM_NAME: &str = "rpc.system.name";
9740
9741/// A categorization value keyword used by the entity using the rule for detection of this event
9742///
9743/// ## Notes
9744///
9745/// # Examples
9746///
9747/// - `"Attempted Information Leak"`
9748#[cfg(feature = "semconv_experimental")]
9749pub const SECURITY_RULE_CATEGORY: &str = "security_rule.category";
9750
9751/// The description of the rule generating the event.
9752///
9753/// ## Notes
9754///
9755/// # Examples
9756///
9757/// - `"Block requests to public DNS over HTTPS / TLS protocols"`
9758#[cfg(feature = "semconv_experimental")]
9759pub const SECURITY_RULE_DESCRIPTION: &str = "security_rule.description";
9760
9761/// Name of the license under which the rule used to generate this event is made available.
9762///
9763/// ## Notes
9764///
9765/// # Examples
9766///
9767/// - `"Apache 2.0"`
9768#[cfg(feature = "semconv_experimental")]
9769pub const SECURITY_RULE_LICENSE: &str = "security_rule.license";
9770
9771/// The name of the rule or signature generating the event.
9772///
9773/// ## Notes
9774///
9775/// # Examples
9776///
9777/// - `"BLOCK_DNS_over_TLS"`
9778#[cfg(feature = "semconv_experimental")]
9779pub const SECURITY_RULE_NAME: &str = "security_rule.name";
9780
9781/// Reference URL to additional information about the rule used to generate this event.
9782///
9783/// ## Notes
9784///
9785/// 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.
9786///
9787/// # Examples
9788///
9789/// - `"https://en.wikipedia.org/wiki/DNS_over_TLS"`
9790#[cfg(feature = "semconv_experimental")]
9791pub const SECURITY_RULE_REFERENCE: &str = "security_rule.reference";
9792
9793/// Name of the ruleset, policy, group, or parent category in which the rule used to generate this event is a member.
9794///
9795/// ## Notes
9796///
9797/// # Examples
9798///
9799/// - `"Standard_Protocol_Filters"`
9800#[cfg(feature = "semconv_experimental")]
9801pub const SECURITY_RULE_RULESET_NAME: &str = "security_rule.ruleset.name";
9802
9803/// 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.
9804///
9805/// ## Notes
9806///
9807/// # Examples
9808///
9809/// - `"550e8400-e29b-41d4-a716-446655440000"`
9810/// - `"1100110011"`
9811#[cfg(feature = "semconv_experimental")]
9812pub const SECURITY_RULE_UUID: &str = "security_rule.uuid";
9813
9814/// The version / revision of the rule being used for analysis.
9815///
9816/// ## Notes
9817///
9818/// # Examples
9819///
9820/// - `"1.0.0"`
9821#[cfg(feature = "semconv_experimental")]
9822pub const SECURITY_RULE_VERSION: &str = "security_rule.version";
9823
9824/// Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
9825///
9826/// ## Notes
9827///
9828/// 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.
9829///
9830/// # Examples
9831///
9832/// - `"example.com"`
9833/// - `"10.1.2.80"`
9834/// - `"/tmp/my.sock"`
9835pub const SERVER_ADDRESS: &str = "server.address";
9836
9837/// Server port number.
9838///
9839/// ## Notes
9840///
9841/// 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.
9842///
9843/// # Examples
9844///
9845/// - `80`
9846/// - `8080`
9847/// - `443`
9848pub const SERVER_PORT: &str = "server.port";
9849
9850/// The operational criticality of the service.
9851///
9852/// ## Notes
9853///
9854/// Application developers are encouraged to set `service.criticality` to express the operational importance of their services. Telemetry consumers MAY use this attribute to optimize telemetry collection or improve user experience.
9855///
9856/// # Examples
9857///
9858/// - `"critical"`
9859/// - `"high"`
9860/// - `"medium"`
9861/// - `"low"`
9862#[cfg(feature = "semconv_experimental")]
9863pub const SERVICE_CRITICALITY: &str = "service.criticality";
9864
9865/// The string ID of the service instance.
9866///
9867/// ## Notes
9868///
9869/// MUST be unique for each instance of the same `service.namespace,service.name` pair (in other words
9870/// `service.namespace,service.name,service.instance.id` triplet MUST be globally unique). The ID helps to
9871/// distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled
9872/// service).
9873///
9874/// Implementations, such as SDKs, are recommended to generate a random Version 1 or Version 4 [RFC
9875/// 4122](https://www.ietf.org/rfc/rfc4122.txt) UUID, but are free to use an inherent unique ID as the source of
9876/// this value if stability is desirable. In that case, the ID SHOULD be used as source of a UUID Version 5 and
9877/// SHOULD use the following UUID as the namespace: `4d63009a-8d0f-11ee-aad7-4c796ed8e320`.
9878///
9879/// UUIDs are typically recommended, as only an opaque value for the purposes of identifying a service instance is
9880/// needed. Similar to what can be seen in the man page for the
9881/// [`/etc/machine-id`](https://www.freedesktop.org/software/systemd/man/latest/machine-id.html) file, the underlying
9882/// data, such as pod name and namespace should be treated as confidential, being the user's choice to expose it
9883/// or not via another resource attribute.
9884///
9885/// For applications running behind an application server (like unicorn), we do not recommend using one identifier
9886/// for all processes participating in the application. Instead, it's recommended each division (e.g. a worker
9887/// thread in unicorn) to have its own instance.id.
9888///
9889/// It's not recommended for a Collector to set `service.instance.id` if it can't unambiguously determine the
9890/// service instance that is generating that telemetry. For instance, creating an UUID based on `pod.name` will
9891/// likely be wrong, as the Collector might not know from which container within that pod the telemetry originated.
9892/// However, Collectors can set the `service.instance.id` if they can unambiguously determine the service instance
9893/// for that telemetry. This is typically the case for scraping receivers, as they know the target address and
9894/// port.
9895///
9896/// # Examples
9897///
9898/// - `"627cc493-f310-47de-96bd-71410b7dec09"`
9899pub const SERVICE_INSTANCE_ID: &str = "service.instance.id";
9900
9901/// Logical name of the service.
9902///
9903/// ## Notes
9904///
9905/// 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 the process executable name, e.g. `unknown_service:bash`. If the process executable name is not available, the value MUST be set to `unknown_service`.
9906/// The process executable name is the name of the process executable, the same value as described by the [`process.executable.name`](process.md) resource attribute.
9907///
9908/// # Examples
9909///
9910/// - `"shoppingcart"`
9911pub const SERVICE_NAME: &str = "service.name";
9912
9913/// A namespace for `service.name`.
9914///
9915/// ## Notes
9916///
9917/// 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.
9918///
9919/// # Examples
9920///
9921/// - `"Shop"`
9922pub const SERVICE_NAMESPACE: &str = "service.namespace";
9923
9924/// Logical name of the service on the other side of the connection. SHOULD be equal to the actual [`service.name`](/docs/resource/README.md#service) resource attribute of the remote service if any.
9925///
9926/// ## Notes
9927///
9928/// # Examples
9929///
9930/// - `"shoppingcart"`
9931#[cfg(feature = "semconv_experimental")]
9932pub const SERVICE_PEER_NAME: &str = "service.peer.name";
9933
9934/// Logical namespace of the service on the other side of the connection. SHOULD be equal to the actual [`service.namespace`](/docs/resource/README.md#service) resource attribute of the remote service if any.
9935///
9936/// ## Notes
9937///
9938/// # Examples
9939///
9940/// - `"Shop"`
9941#[cfg(feature = "semconv_experimental")]
9942pub const SERVICE_PEER_NAMESPACE: &str = "service.peer.namespace";
9943
9944/// The version string of the service component. The format is not defined by these conventions.
9945///
9946/// ## Notes
9947///
9948/// # Examples
9949///
9950/// - `"2.0.0"`
9951/// - `"a01dbef8a"`
9952pub const SERVICE_VERSION: &str = "service.version";
9953
9954/// A unique id to identify a session.
9955///
9956/// ## Notes
9957///
9958/// # Examples
9959///
9960/// - `"00112233-4455-6677-8899-aabbccddeeff"`
9961#[cfg(feature = "semconv_experimental")]
9962pub const SESSION_ID: &str = "session.id";
9963
9964/// The previous `session.id` for this user, when known.
9965///
9966/// ## Notes
9967///
9968/// # Examples
9969///
9970/// - `"00112233-4455-6677-8899-aabbccddeeff"`
9971#[cfg(feature = "semconv_experimental")]
9972pub const SESSION_PREVIOUS_ID: &str = "session.previous_id";
9973
9974/// SignalR HTTP connection closure status.
9975///
9976/// ## Notes
9977///
9978/// # Examples
9979///
9980/// - `"app_shutdown"`
9981/// - `"timeout"`
9982pub const SIGNALR_CONNECTION_STATUS: &str = "signalr.connection.status";
9983
9984/// [SignalR transport type](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/TransportProtocols.md)
9985///
9986/// ## Notes
9987///
9988/// # Examples
9989///
9990/// - `"web_sockets"`
9991/// - `"long_polling"`
9992pub const SIGNALR_TRANSPORT: &str = "signalr.transport";
9993
9994/// Source address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
9995///
9996/// ## Notes
9997///
9998/// 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.
9999///
10000/// # Examples
10001///
10002/// - `"source.example.com"`
10003/// - `"10.1.2.80"`
10004/// - `"/tmp/my.sock"`
10005#[cfg(feature = "semconv_experimental")]
10006pub const SOURCE_ADDRESS: &str = "source.address";
10007
10008/// Source port number
10009///
10010/// ## Notes
10011///
10012/// # Examples
10013///
10014/// - `3389`
10015/// - `2888`
10016#[cfg(feature = "semconv_experimental")]
10017pub const SOURCE_PORT: &str = "source.port";
10018
10019/// Deprecated, use `cpu.logical_number` instead.
10020///
10021/// ## Notes
10022///
10023/// # Examples
10024///
10025/// - `1`
10026#[cfg(feature = "semconv_experimental")]
10027#[deprecated(
10028 note = "{note: Replaced by `cpu.logical_number`., reason: renamed, renamed_to: cpu.logical_number}"
10029)]
10030pub const SYSTEM_CPU_LOGICAL_NUMBER: &str = "system.cpu.logical_number";
10031
10032/// Deprecated, use `cpu.mode` instead.
10033///
10034/// ## Notes
10035///
10036/// # Examples
10037///
10038/// - `"idle"`
10039/// - `"interrupt"`
10040#[cfg(feature = "semconv_experimental")]
10041#[deprecated(note = "{note: Replaced by `cpu.mode`., reason: renamed, renamed_to: cpu.mode}")]
10042pub const SYSTEM_CPU_STATE: &str = "system.cpu.state";
10043
10044/// The device identifier
10045///
10046/// ## Notes
10047///
10048/// # Examples
10049///
10050/// - `"(identifier)"`
10051#[cfg(feature = "semconv_experimental")]
10052pub const SYSTEM_DEVICE: &str = "system.device";
10053
10054/// The filesystem mode
10055///
10056/// ## Notes
10057///
10058/// # Examples
10059///
10060/// - `"rw, ro"`
10061#[cfg(feature = "semconv_experimental")]
10062pub const SYSTEM_FILESYSTEM_MODE: &str = "system.filesystem.mode";
10063
10064/// The filesystem mount path
10065///
10066/// ## Notes
10067///
10068/// # Examples
10069///
10070/// - `"/mnt/data"`
10071#[cfg(feature = "semconv_experimental")]
10072pub const SYSTEM_FILESYSTEM_MOUNTPOINT: &str = "system.filesystem.mountpoint";
10073
10074/// The filesystem state
10075///
10076/// ## Notes
10077///
10078/// # Examples
10079///
10080/// - `"used"`
10081#[cfg(feature = "semconv_experimental")]
10082pub const SYSTEM_FILESYSTEM_STATE: &str = "system.filesystem.state";
10083
10084/// The filesystem type
10085///
10086/// ## Notes
10087///
10088/// # Examples
10089///
10090/// - `"ext4"`
10091#[cfg(feature = "semconv_experimental")]
10092pub const SYSTEM_FILESYSTEM_TYPE: &str = "system.filesystem.type";
10093
10094/// The Linux HugePages memory state
10095///
10096/// ## Notes
10097///
10098/// # Examples
10099///
10100/// - `"free"`
10101/// - `"used"`
10102#[cfg(feature = "semconv_experimental")]
10103pub const SYSTEM_MEMORY_LINUX_HUGEPAGES_STATE: &str = "system.memory.linux.hugepages.state";
10104
10105/// The Linux Slab memory state
10106///
10107/// ## Notes
10108///
10109/// # Examples
10110///
10111/// - `"reclaimable"`
10112/// - `"unreclaimable"`
10113#[cfg(feature = "semconv_experimental")]
10114pub const SYSTEM_MEMORY_LINUX_SLAB_STATE: &str = "system.memory.linux.slab.state";
10115
10116/// The memory state
10117///
10118/// ## Notes
10119///
10120/// # Examples
10121///
10122/// - `"free"`
10123/// - `"cached"`
10124#[cfg(feature = "semconv_experimental")]
10125pub const SYSTEM_MEMORY_STATE: &str = "system.memory.state";
10126
10127/// Deprecated, use `network.connection.state` instead.
10128///
10129/// ## Notes
10130///
10131/// # Examples
10132///
10133/// - `"close_wait"`
10134#[cfg(feature = "semconv_experimental")]
10135#[deprecated(
10136 note = "{note: Replaced by `network.connection.state`., reason: renamed, renamed_to: network.connection.state}"
10137)]
10138pub const SYSTEM_NETWORK_STATE: &str = "system.network.state";
10139
10140/// The paging access direction
10141///
10142/// ## Notes
10143///
10144/// # Examples
10145///
10146/// - `"in"`
10147#[cfg(feature = "semconv_experimental")]
10148pub const SYSTEM_PAGING_DIRECTION: &str = "system.paging.direction";
10149
10150/// The paging fault type
10151///
10152/// ## Notes
10153///
10154/// # Examples
10155///
10156/// - `"minor"`
10157#[cfg(feature = "semconv_experimental")]
10158pub const SYSTEM_PAGING_FAULT_TYPE: &str = "system.paging.fault.type";
10159
10160/// The memory paging state
10161///
10162/// ## Notes
10163///
10164/// # Examples
10165///
10166/// - `"free"`
10167#[cfg(feature = "semconv_experimental")]
10168pub const SYSTEM_PAGING_STATE: &str = "system.paging.state";
10169
10170/// Deprecated, use `system.paging.fault.type` instead.
10171///
10172/// ## Notes
10173///
10174/// # Examples
10175///
10176/// - `"minor"`
10177#[cfg(feature = "semconv_experimental")]
10178#[deprecated(
10179 note = "{note: Replaced by `system.paging.fault.type`., reason: renamed, renamed_to: system.paging.fault.type}"
10180)]
10181pub const SYSTEM_PAGING_TYPE: &str = "system.paging.type";
10182
10183/// Deprecated, use `process.state` instead.
10184///
10185/// ## Notes
10186///
10187/// # Examples
10188///
10189/// - `"running"`
10190#[cfg(feature = "semconv_experimental")]
10191#[deprecated(
10192 note = "{note: Replaced by `process.state`., reason: renamed, renamed_to: process.state}"
10193)]
10194pub const SYSTEM_PROCESS_STATUS: &str = "system.process.status";
10195
10196/// Deprecated, use `process.state` instead.
10197///
10198/// ## Notes
10199///
10200/// # Examples
10201///
10202/// - `"running"`
10203#[cfg(feature = "semconv_experimental")]
10204#[deprecated(
10205 note = "{note: Replaced by `process.state`., reason: renamed, renamed_to: process.state}"
10206)]
10207pub const SYSTEM_PROCESSES_STATUS: &str = "system.processes.status";
10208
10209/// The name of the auto instrumentation agent or distribution, if used.
10210///
10211/// ## Notes
10212///
10213/// Official auto instrumentation agents and distributions SHOULD set the `telemetry.distro.name` attribute to
10214/// a string starting with `opentelemetry-`, e.g. `opentelemetry-java-instrumentation`.
10215///
10216/// # Examples
10217///
10218/// - `"parts-unlimited-java"`
10219pub const TELEMETRY_DISTRO_NAME: &str = "telemetry.distro.name";
10220
10221/// The version string of the auto instrumentation agent or distribution, if used.
10222///
10223/// ## Notes
10224///
10225/// # Examples
10226///
10227/// - `"1.2.3"`
10228pub const TELEMETRY_DISTRO_VERSION: &str = "telemetry.distro.version";
10229
10230/// The language of the telemetry SDK.
10231///
10232/// ## Notes
10233pub const TELEMETRY_SDK_LANGUAGE: &str = "telemetry.sdk.language";
10234
10235/// The name of the telemetry SDK as defined above.
10236///
10237/// ## Notes
10238///
10239/// The OpenTelemetry SDK MUST set the `telemetry.sdk.name` attribute to `opentelemetry`.
10240/// If another SDK, like a fork or a vendor-provided implementation, is used, this SDK MUST set the
10241/// `telemetry.sdk.name` attribute to the fully-qualified class or module name of this SDK's main entry point
10242/// or another suitable identifier depending on the language.
10243/// The identifier `opentelemetry` is reserved and MUST NOT be used in this case.
10244/// All custom identifiers SHOULD be stable across different versions of an implementation.
10245///
10246/// # Examples
10247///
10248/// - `"opentelemetry"`
10249pub const TELEMETRY_SDK_NAME: &str = "telemetry.sdk.name";
10250
10251/// The version string of the telemetry SDK.
10252///
10253/// ## Notes
10254///
10255/// # Examples
10256///
10257/// - `"1.2.3"`
10258pub const TELEMETRY_SDK_VERSION: &str = "telemetry.sdk.version";
10259
10260/// The fully qualified human readable name of the [test case](https://wikipedia.org/wiki/Test_case).
10261///
10262/// ## Notes
10263///
10264/// # Examples
10265///
10266/// - `"org.example.TestCase1.test1"`
10267/// - `"example/tests/TestCase1.test1"`
10268/// - `"ExampleTestCase1_test1"`
10269#[cfg(feature = "semconv_experimental")]
10270pub const TEST_CASE_NAME: &str = "test.case.name";
10271
10272/// The status of the actual test case result from test execution.
10273///
10274/// ## Notes
10275///
10276/// # Examples
10277///
10278/// - `"pass"`
10279/// - `"fail"`
10280#[cfg(feature = "semconv_experimental")]
10281pub const TEST_CASE_RESULT_STATUS: &str = "test.case.result.status";
10282
10283/// The human readable name of a [test suite](https://wikipedia.org/wiki/Test_suite).
10284///
10285/// ## Notes
10286///
10287/// # Examples
10288///
10289/// - `"TestSuite1"`
10290#[cfg(feature = "semconv_experimental")]
10291pub const TEST_SUITE_NAME: &str = "test.suite.name";
10292
10293/// The status of the test suite run.
10294///
10295/// ## Notes
10296///
10297/// # Examples
10298///
10299/// - `"success"`
10300/// - `"failure"`
10301/// - `"skipped"`
10302/// - `"aborted"`
10303/// - `"timed_out"`
10304/// - `"in_progress"`
10305#[cfg(feature = "semconv_experimental")]
10306pub const TEST_SUITE_RUN_STATUS: &str = "test.suite.run.status";
10307
10308/// Current "managed" thread ID (as opposed to OS thread ID).
10309///
10310/// ## Notes
10311///
10312/// Examples of where the value can be extracted from:
10313///
10314/// | Language or platform | Source |
10315/// | --- | --- |
10316/// | JVM | `Thread.currentThread().threadId()` |
10317/// | .NET | `Thread.CurrentThread.ManagedThreadId` |
10318/// | Python | `threading.current_thread().ident` |
10319/// | Ruby | `Thread.current.object_id` |
10320/// | C++ | `std::this_thread::get_id()` |
10321/// | Erlang | `erlang:self()` |
10322///
10323/// # Examples
10324///
10325/// - `42`
10326#[cfg(feature = "semconv_experimental")]
10327pub const THREAD_ID: &str = "thread.id";
10328
10329/// Current thread name.
10330///
10331/// ## Notes
10332///
10333/// Examples of where the value can be extracted from:
10334///
10335/// | Language or platform | Source |
10336/// | --- | --- |
10337/// | JVM | `Thread.currentThread().getName()` |
10338/// | .NET | `Thread.CurrentThread.Name` |
10339/// | Python | `threading.current_thread().name` |
10340/// | Ruby | `Thread.current.name` |
10341/// | Erlang | `erlang:process_info(self(), registered_name)` |
10342///
10343/// # Examples
10344///
10345/// - `"main"`
10346#[cfg(feature = "semconv_experimental")]
10347pub const THREAD_NAME: &str = "thread.name";
10348
10349/// String indicating the [cipher](https://datatracker.ietf.org/doc/html/rfc5246#appendix-A.5) used during the current connection.
10350///
10351/// ## Notes
10352///
10353/// 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).
10354///
10355/// # Examples
10356///
10357/// - `"TLS_RSA_WITH_3DES_EDE_CBC_SHA"`
10358/// - `"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"`
10359#[cfg(feature = "semconv_experimental")]
10360pub const TLS_CIPHER: &str = "tls.cipher";
10361
10362/// 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.
10363///
10364/// ## Notes
10365///
10366/// # Examples
10367///
10368/// - `"MII..."`
10369#[cfg(feature = "semconv_experimental")]
10370pub const TLS_CLIENT_CERTIFICATE: &str = "tls.client.certificate";
10371
10372/// 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.
10373///
10374/// ## Notes
10375///
10376/// # Examples
10377///
10378/// - `[
10379/// "MII...",
10380/// "MI...",
10381/// ]`
10382#[cfg(feature = "semconv_experimental")]
10383pub const TLS_CLIENT_CERTIFICATE_CHAIN: &str = "tls.client.certificate_chain";
10384
10385/// 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.
10386///
10387/// ## Notes
10388///
10389/// # Examples
10390///
10391/// - `"0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC"`
10392#[cfg(feature = "semconv_experimental")]
10393pub const TLS_CLIENT_HASH_MD5: &str = "tls.client.hash.md5";
10394
10395/// 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.
10396///
10397/// ## Notes
10398///
10399/// # Examples
10400///
10401/// - `"9E393D93138888D288266C2D915214D1D1CCEB2A"`
10402#[cfg(feature = "semconv_experimental")]
10403pub const TLS_CLIENT_HASH_SHA1: &str = "tls.client.hash.sha1";
10404
10405/// 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.
10406///
10407/// ## Notes
10408///
10409/// # Examples
10410///
10411/// - `"0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0"`
10412#[cfg(feature = "semconv_experimental")]
10413pub const TLS_CLIENT_HASH_SHA256: &str = "tls.client.hash.sha256";
10414
10415/// 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.
10416///
10417/// ## Notes
10418///
10419/// # Examples
10420///
10421/// - `"CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com"`
10422#[cfg(feature = "semconv_experimental")]
10423pub const TLS_CLIENT_ISSUER: &str = "tls.client.issuer";
10424
10425/// A hash that identifies clients based on how they perform an SSL/TLS handshake.
10426///
10427/// ## Notes
10428///
10429/// # Examples
10430///
10431/// - `"d4e5b18d6b55c71272893221c96ba240"`
10432#[cfg(feature = "semconv_experimental")]
10433pub const TLS_CLIENT_JA3: &str = "tls.client.ja3";
10434
10435/// Date/Time indicating when client certificate is no longer considered valid.
10436///
10437/// ## Notes
10438///
10439/// # Examples
10440///
10441/// - `"2021-01-01T00:00:00.000Z"`
10442#[cfg(feature = "semconv_experimental")]
10443pub const TLS_CLIENT_NOT_AFTER: &str = "tls.client.not_after";
10444
10445/// Date/Time indicating when client certificate is first considered valid.
10446///
10447/// ## Notes
10448///
10449/// # Examples
10450///
10451/// - `"1970-01-01T00:00:00.000Z"`
10452#[cfg(feature = "semconv_experimental")]
10453pub const TLS_CLIENT_NOT_BEFORE: &str = "tls.client.not_before";
10454
10455/// Deprecated, use `server.address` instead.
10456///
10457/// ## Notes
10458///
10459/// # Examples
10460///
10461/// - `"opentelemetry.io"`
10462#[cfg(feature = "semconv_experimental")]
10463#[deprecated(
10464 note = "{note: Replaced by `server.address`., reason: renamed, renamed_to: server.address}"
10465)]
10466pub const TLS_CLIENT_SERVER_NAME: &str = "tls.client.server_name";
10467
10468/// Distinguished name of subject of the x.509 certificate presented by the client.
10469///
10470/// ## Notes
10471///
10472/// # Examples
10473///
10474/// - `"CN=myclient, OU=Documentation Team, DC=example, DC=com"`
10475#[cfg(feature = "semconv_experimental")]
10476pub const TLS_CLIENT_SUBJECT: &str = "tls.client.subject";
10477
10478/// Array of ciphers offered by the client during the client hello.
10479///
10480/// ## Notes
10481///
10482/// # Examples
10483///
10484/// - `[
10485/// "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
10486/// "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
10487/// ]`
10488#[cfg(feature = "semconv_experimental")]
10489pub const TLS_CLIENT_SUPPORTED_CIPHERS: &str = "tls.client.supported_ciphers";
10490
10491/// String indicating the curve used for the given cipher, when applicable
10492///
10493/// ## Notes
10494///
10495/// # Examples
10496///
10497/// - `"secp256r1"`
10498#[cfg(feature = "semconv_experimental")]
10499pub const TLS_CURVE: &str = "tls.curve";
10500
10501/// Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel.
10502///
10503/// ## Notes
10504///
10505/// # Examples
10506///
10507/// - `true`
10508#[cfg(feature = "semconv_experimental")]
10509pub const TLS_ESTABLISHED: &str = "tls.established";
10510
10511/// 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.
10512///
10513/// ## Notes
10514///
10515/// # Examples
10516///
10517/// - `"http/1.1"`
10518#[cfg(feature = "semconv_experimental")]
10519pub const TLS_NEXT_PROTOCOL: &str = "tls.next_protocol";
10520
10521/// 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)
10522///
10523/// ## Notes
10524#[cfg(feature = "semconv_experimental")]
10525pub const TLS_PROTOCOL_NAME: &str = "tls.protocol.name";
10526
10527/// 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)
10528///
10529/// ## Notes
10530///
10531/// # Examples
10532///
10533/// - `"1.2"`
10534/// - `"3"`
10535#[cfg(feature = "semconv_experimental")]
10536pub const TLS_PROTOCOL_VERSION: &str = "tls.protocol.version";
10537
10538/// Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation.
10539///
10540/// ## Notes
10541///
10542/// # Examples
10543///
10544/// - `true`
10545#[cfg(feature = "semconv_experimental")]
10546pub const TLS_RESUMED: &str = "tls.resumed";
10547
10548/// 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.
10549///
10550/// ## Notes
10551///
10552/// # Examples
10553///
10554/// - `"MII..."`
10555#[cfg(feature = "semconv_experimental")]
10556pub const TLS_SERVER_CERTIFICATE: &str = "tls.server.certificate";
10557
10558/// 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.
10559///
10560/// ## Notes
10561///
10562/// # Examples
10563///
10564/// - `[
10565/// "MII...",
10566/// "MI...",
10567/// ]`
10568#[cfg(feature = "semconv_experimental")]
10569pub const TLS_SERVER_CERTIFICATE_CHAIN: &str = "tls.server.certificate_chain";
10570
10571/// 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.
10572///
10573/// ## Notes
10574///
10575/// # Examples
10576///
10577/// - `"0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC"`
10578#[cfg(feature = "semconv_experimental")]
10579pub const TLS_SERVER_HASH_MD5: &str = "tls.server.hash.md5";
10580
10581/// 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.
10582///
10583/// ## Notes
10584///
10585/// # Examples
10586///
10587/// - `"9E393D93138888D288266C2D915214D1D1CCEB2A"`
10588#[cfg(feature = "semconv_experimental")]
10589pub const TLS_SERVER_HASH_SHA1: &str = "tls.server.hash.sha1";
10590
10591/// 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.
10592///
10593/// ## Notes
10594///
10595/// # Examples
10596///
10597/// - `"0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0"`
10598#[cfg(feature = "semconv_experimental")]
10599pub const TLS_SERVER_HASH_SHA256: &str = "tls.server.hash.sha256";
10600
10601/// 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.
10602///
10603/// ## Notes
10604///
10605/// # Examples
10606///
10607/// - `"CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com"`
10608#[cfg(feature = "semconv_experimental")]
10609pub const TLS_SERVER_ISSUER: &str = "tls.server.issuer";
10610
10611/// A hash that identifies servers based on how they perform an SSL/TLS handshake.
10612///
10613/// ## Notes
10614///
10615/// # Examples
10616///
10617/// - `"d4e5b18d6b55c71272893221c96ba240"`
10618#[cfg(feature = "semconv_experimental")]
10619pub const TLS_SERVER_JA3S: &str = "tls.server.ja3s";
10620
10621/// Date/Time indicating when server certificate is no longer considered valid.
10622///
10623/// ## Notes
10624///
10625/// # Examples
10626///
10627/// - `"2021-01-01T00:00:00.000Z"`
10628#[cfg(feature = "semconv_experimental")]
10629pub const TLS_SERVER_NOT_AFTER: &str = "tls.server.not_after";
10630
10631/// Date/Time indicating when server certificate is first considered valid.
10632///
10633/// ## Notes
10634///
10635/// # Examples
10636///
10637/// - `"1970-01-01T00:00:00.000Z"`
10638#[cfg(feature = "semconv_experimental")]
10639pub const TLS_SERVER_NOT_BEFORE: &str = "tls.server.not_before";
10640
10641/// Distinguished name of subject of the x.509 certificate presented by the server.
10642///
10643/// ## Notes
10644///
10645/// # Examples
10646///
10647/// - `"CN=myserver, OU=Documentation Team, DC=example, DC=com"`
10648#[cfg(feature = "semconv_experimental")]
10649pub const TLS_SERVER_SUBJECT: &str = "tls.server.subject";
10650
10651/// Domain extracted from the `url.full`, such as "opentelemetry.io".
10652///
10653/// ## Notes
10654///
10655/// 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.
10656///
10657/// # Examples
10658///
10659/// - `"www.foo.bar"`
10660/// - `"opentelemetry.io"`
10661/// - `"3.12.167.2"`
10662/// - `"[1080:0:0:0:8:800:200C:417A]"`
10663#[cfg(feature = "semconv_experimental")]
10664pub const URL_DOMAIN: &str = "url.domain";
10665
10666/// The file extension extracted from the `url.full`, excluding the leading dot.
10667///
10668/// ## Notes
10669///
10670/// 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`.
10671///
10672/// # Examples
10673///
10674/// - `"png"`
10675/// - `"gz"`
10676#[cfg(feature = "semconv_experimental")]
10677pub const URL_EXTENSION: &str = "url.extension";
10678
10679/// The [URI fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component
10680///
10681/// ## Notes
10682///
10683/// # Examples
10684///
10685/// - `"SemConv"`
10686pub const URL_FRAGMENT: &str = "url.fragment";
10687
10688/// Absolute URL describing a network resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986)
10689///
10690/// ## Notes
10691///
10692/// For network calls, URL usually has `scheme://host[:port][path][?query][#fragment]` format, where the fragment
10693/// is not transmitted over HTTP, but if it is known, it SHOULD be included nevertheless.
10694///
10695/// `url.full` MUST NOT contain credentials passed via URL in form of `https://username:password@www.example.com/`.
10696/// In such case username and password SHOULD be redacted and attribute's value SHOULD be `https://REDACTED:REDACTED@www.example.com/`.
10697///
10698/// `url.full` SHOULD capture the absolute URL when it is available (or can be reconstructed).
10699///
10700/// Sensitive content provided in `url.full` SHOULD be scrubbed when instrumentations can identify it.
10701///
10702///
10703/// Query string values for the following keys SHOULD be redacted by default and replaced by the
10704/// value `REDACTED`:
10705///
10706/// - [`X-Amz-Signature`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv-authentication-methods.html)
10707/// - [`X-Amz-Credential`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv-authentication-methods.html)
10708/// - [`X-Amz-Security-Token`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv-authentication-methods.html)
10709/// - [`sig`](https://learn.microsoft.com/azure/storage/common/storage-sas-overview#sas-token)
10710/// - [`X-Goog-Signature`](https://cloud.google.com/storage/docs/access-control/signed-urls)
10711///
10712/// This list is subject to change over time.
10713///
10714/// Matching of query parameter keys against the sensitive list SHOULD be case-sensitive.
10715///
10716///
10717/// Instrumentation MAY provide a way to override this list via declarative configuration.
10718/// If so, it SHOULD use the `sensitive_query_parameters` property
10719/// (an array of case-sensitive strings with minimum items 0) under
10720/// `.instrumentation/development.general.sanitization.url`.
10721/// This list is a full override of the default sensitive query parameter keys,
10722/// it is not a list of keys in addition to the defaults.
10723///
10724/// When a query string value is redacted, the query string key SHOULD still be preserved, e.g.
10725/// `https://www.example.com/path?color=blue&sig=REDACTED`.
10726///
10727/// # Examples
10728///
10729/// - `"https://www.foo.bar/search?q=OpenTelemetry#SemConv"`
10730/// - `"//localhost"`
10731pub const URL_FULL: &str = "url.full";
10732
10733/// Unmodified original URL as seen in the event source.
10734///
10735/// ## Notes
10736///
10737/// 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.
10738/// `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.
10739///
10740/// # Examples
10741///
10742/// - `"https://www.foo.bar/search?q=OpenTelemetry#SemConv"`
10743/// - `"search?q=OpenTelemetry"`
10744#[cfg(feature = "semconv_experimental")]
10745pub const URL_ORIGINAL: &str = "url.original";
10746
10747/// The [URI path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component
10748///
10749/// ## Notes
10750///
10751/// Sensitive content provided in `url.path` SHOULD be scrubbed when instrumentations can identify it.
10752///
10753/// # Examples
10754///
10755/// - `"/search"`
10756pub const URL_PATH: &str = "url.path";
10757
10758/// Port extracted from the `url.full`
10759///
10760/// ## Notes
10761///
10762/// # Examples
10763///
10764/// - `443`
10765#[cfg(feature = "semconv_experimental")]
10766pub const URL_PORT: &str = "url.port";
10767
10768/// The [URI query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component
10769///
10770/// ## Notes
10771///
10772/// Sensitive content provided in `url.query` SHOULD be scrubbed when instrumentations can identify it.
10773///
10774///
10775/// Query string values for the following keys SHOULD be redacted by default and replaced by the value `REDACTED`:
10776///
10777/// - [`X-Amz-Signature`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv-authentication-methods.html)
10778/// - [`X-Amz-Credential`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv-authentication-methods.html)
10779/// - [`X-Amz-Security-Token`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv-authentication-methods.html)
10780/// - [`sig`](https://learn.microsoft.com/azure/storage/common/storage-sas-overview#sas-token)
10781/// - [`X-Goog-Signature`](https://cloud.google.com/storage/docs/access-control/signed-urls)
10782///
10783/// This list is subject to change over time.
10784///
10785/// Matching of query parameter keys against the sensitive list SHOULD be case-sensitive.
10786///
10787/// Instrumentation MAY provide a way to override this list via declarative configuration.
10788/// If so, it SHOULD use the `sensitive_query_parameters` property
10789/// (an array of case-sensitive strings with minimum items 0) under
10790/// `.instrumentation/development.general.sanitization.url`.
10791/// This list is a full override of the default sensitive query parameter keys,
10792/// it is not a list of keys in addition to the defaults.
10793///
10794/// When a query string value is redacted, the query string key SHOULD still be preserved, e.g.
10795/// `q=OpenTelemetry&sig=REDACTED`.
10796///
10797/// # Examples
10798///
10799/// - `"q=OpenTelemetry"`
10800pub const URL_QUERY: &str = "url.query";
10801
10802/// The highest registered url domain, stripped of the subdomain.
10803///
10804/// ## Notes
10805///
10806/// 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`.
10807///
10808/// # Examples
10809///
10810/// - `"example.com"`
10811/// - `"foo.co.uk"`
10812#[cfg(feature = "semconv_experimental")]
10813pub const URL_REGISTERED_DOMAIN: &str = "url.registered_domain";
10814
10815/// The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
10816///
10817/// ## Notes
10818///
10819/// # Examples
10820///
10821/// - `"https"`
10822/// - `"ftp"`
10823/// - `"telnet"`
10824pub const URL_SCHEME: &str = "url.scheme";
10825
10826/// 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.
10827///
10828/// ## Notes
10829///
10830/// 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.
10831///
10832/// # Examples
10833///
10834/// - `"east"`
10835/// - `"sub2.sub1"`
10836#[cfg(feature = "semconv_experimental")]
10837pub const URL_SUBDOMAIN: &str = "url.subdomain";
10838
10839/// The low-cardinality template of an [absolute path reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2).
10840///
10841/// ## Notes
10842///
10843/// # Examples
10844///
10845/// - `"/users/{id}"`
10846/// - `"/users/:id"`
10847/// - `"/users?id={id}"`
10848#[cfg(feature = "semconv_experimental")]
10849pub const URL_TEMPLATE: &str = "url.template";
10850
10851/// 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`.
10852///
10853/// ## Notes
10854///
10855/// This value can be determined precisely with the [public suffix list](https://publicsuffix.org/).
10856///
10857/// # Examples
10858///
10859/// - `"com"`
10860/// - `"co.uk"`
10861#[cfg(feature = "semconv_experimental")]
10862pub const URL_TOP_LEVEL_DOMAIN: &str = "url.top_level_domain";
10863
10864/// User email address.
10865///
10866/// ## Notes
10867///
10868/// # Examples
10869///
10870/// - `"a.einstein@example.com"`
10871#[cfg(feature = "semconv_experimental")]
10872pub const USER_EMAIL: &str = "user.email";
10873
10874/// User's full name
10875///
10876/// ## Notes
10877///
10878/// # Examples
10879///
10880/// - `"Albert Einstein"`
10881#[cfg(feature = "semconv_experimental")]
10882pub const USER_FULL_NAME: &str = "user.full_name";
10883
10884/// Unique user hash to correlate information for a user in anonymized form.
10885///
10886/// ## Notes
10887///
10888/// Useful if `user.id` or `user.name` contain confidential information and cannot be used.
10889///
10890/// # Examples
10891///
10892/// - `"364fc68eaf4c8acec74a4e52d7d1feaa"`
10893#[cfg(feature = "semconv_experimental")]
10894pub const USER_HASH: &str = "user.hash";
10895
10896/// Unique identifier of the user.
10897///
10898/// ## Notes
10899///
10900/// # Examples
10901///
10902/// - `"S-1-5-21-202424912787-2692429404-2351956786-1000"`
10903#[cfg(feature = "semconv_experimental")]
10904pub const USER_ID: &str = "user.id";
10905
10906/// Short name or login/username of the user.
10907///
10908/// ## Notes
10909///
10910/// # Examples
10911///
10912/// - `"a.einstein"`
10913#[cfg(feature = "semconv_experimental")]
10914pub const USER_NAME: &str = "user.name";
10915
10916/// Array of user roles at the time of the event.
10917///
10918/// ## Notes
10919///
10920/// # Examples
10921///
10922/// - `[
10923/// "admin",
10924/// "reporting_user",
10925/// ]`
10926#[cfg(feature = "semconv_experimental")]
10927pub const USER_ROLES: &str = "user.roles";
10928
10929/// Name of the user-agent extracted from original. Usually refers to the browser's name.
10930///
10931/// ## Notes
10932///
10933/// [Example](https://uaparser.dev/#demo) 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`
10934///
10935/// # Examples
10936///
10937/// - `"Safari"`
10938/// - `"YourApp"`
10939#[cfg(feature = "semconv_experimental")]
10940pub const USER_AGENT_NAME: &str = "user_agent.name";
10941
10942/// Value of the [HTTP User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent) header sent by the client.
10943///
10944/// ## Notes
10945///
10946/// # Examples
10947///
10948/// - `"CERN-LineMode/2.15 libwww/2.17b3"`
10949/// - `"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"`
10950/// - `"YourApp/1.0.0 grpc-java-okhttp/1.27.2"`
10951pub const USER_AGENT_ORIGINAL: &str = "user_agent.original";
10952
10953/// Human readable operating system name.
10954///
10955/// ## Notes
10956///
10957/// For mapping user agent strings to OS names, libraries such as [ua-parser](https://github.com/ua-parser) can be utilized.
10958///
10959/// # Examples
10960///
10961/// - `"iOS"`
10962/// - `"Android"`
10963/// - `"Ubuntu"`
10964#[cfg(feature = "semconv_experimental")]
10965pub const USER_AGENT_OS_NAME: &str = "user_agent.os.name";
10966
10967/// The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
10968///
10969/// ## Notes
10970///
10971/// For mapping user agent strings to OS versions, libraries such as [ua-parser](https://github.com/ua-parser) can be utilized.
10972///
10973/// # Examples
10974///
10975/// - `"14.2.1"`
10976/// - `"18.04.1"`
10977#[cfg(feature = "semconv_experimental")]
10978pub const USER_AGENT_OS_VERSION: &str = "user_agent.os.version";
10979
10980/// Specifies the category of synthetic traffic, such as tests or bots.
10981///
10982/// ## Notes
10983///
10984/// 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
10985#[cfg(feature = "semconv_experimental")]
10986pub const USER_AGENT_SYNTHETIC_TYPE: &str = "user_agent.synthetic.type";
10987
10988/// Version of the user-agent extracted from original. Usually refers to the browser's version
10989///
10990/// ## Notes
10991///
10992/// [Example](https://uaparser.dev/#demo) 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`
10993///
10994/// # Examples
10995///
10996/// - `"14.1.2"`
10997/// - `"1.0.0"`
10998#[cfg(feature = "semconv_experimental")]
10999pub const USER_AGENT_VERSION: &str = "user_agent.version";
11000
11001/// The type of garbage collection.
11002///
11003/// ## Notes
11004#[cfg(feature = "semconv_experimental")]
11005pub const V8JS_GC_TYPE: &str = "v8js.gc.type";
11006
11007/// The name of the space type of heap memory.
11008///
11009/// ## Notes
11010///
11011/// Value can be retrieved from value `space_name` of [`v8.getHeapSpaceStatistics()`](https://nodejs.org/api/v8.html#v8getheapspacestatistics)
11012#[cfg(feature = "semconv_experimental")]
11013pub const V8JS_HEAP_SPACE_NAME: &str = "v8js.heap.space.name";
11014
11015/// The type of resource keeping the event loop active.
11016///
11017/// ## Notes
11018#[cfg(feature = "semconv_experimental")]
11019pub const V8JS_RESOURCE_TYPE: &str = "v8js.resource.type";
11020
11021/// 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.
11022///
11023/// ## Notes
11024///
11025/// # Examples
11026///
11027/// - `"123"`
11028#[cfg(feature = "semconv_experimental")]
11029pub const VCS_CHANGE_ID: &str = "vcs.change.id";
11030
11031/// The state of the change (pull request/merge request/changelist).
11032///
11033/// ## Notes
11034///
11035/// # Examples
11036///
11037/// - `"open"`
11038/// - `"closed"`
11039/// - `"merged"`
11040#[cfg(feature = "semconv_experimental")]
11041pub const VCS_CHANGE_STATE: &str = "vcs.change.state";
11042
11043/// 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.
11044///
11045/// ## Notes
11046///
11047/// # Examples
11048///
11049/// - `"Fixes broken thing"`
11050/// - `"feat: add my new feature"`
11051/// - `"[chore] update dependency"`
11052#[cfg(feature = "semconv_experimental")]
11053pub const VCS_CHANGE_TITLE: &str = "vcs.change.title";
11054
11055/// The type of line change being measured on a branch or change.
11056///
11057/// ## Notes
11058///
11059/// # Examples
11060///
11061/// - `"added"`
11062/// - `"removed"`
11063#[cfg(feature = "semconv_experimental")]
11064pub const VCS_LINE_CHANGE_TYPE: &str = "vcs.line_change.type";
11065
11066/// The group owner within the version control system.
11067///
11068/// ## Notes
11069///
11070/// # Examples
11071///
11072/// - `"my-org"`
11073/// - `"myteam"`
11074/// - `"business-unit"`
11075#[cfg(feature = "semconv_experimental")]
11076pub const VCS_OWNER_NAME: &str = "vcs.owner.name";
11077
11078/// The name of the version control system provider.
11079///
11080/// ## Notes
11081///
11082/// # Examples
11083///
11084/// - `"github"`
11085/// - `"gitlab"`
11086/// - `"gitea"`
11087/// - `"bitbucket"`
11088#[cfg(feature = "semconv_experimental")]
11089pub const VCS_PROVIDER_NAME: &str = "vcs.provider.name";
11090
11091/// The name of the [reference](https://git-scm.com/docs/gitglossary#def_ref) such as **branch** or **tag** in the repository.
11092///
11093/// ## Notes
11094///
11095/// `base` refers to the starting point of a change. For example, `main`
11096/// would be the base reference of type branch if you've created a new
11097/// reference of type branch from it and created new commits.
11098///
11099/// # Examples
11100///
11101/// - `"my-feature-branch"`
11102/// - `"tag-1-test"`
11103#[cfg(feature = "semconv_experimental")]
11104pub const VCS_REF_BASE_NAME: &str = "vcs.ref.base.name";
11105
11106/// 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.
11107///
11108/// ## Notes
11109///
11110/// `base` refers to the starting point of a change. For example, `main`
11111/// would be the base reference of type branch if you've created a new
11112/// reference of type branch from it and created new commits. The
11113/// revision can be a full [hash value (see
11114/// glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf),
11115/// of the recorded change to a ref within a repository pointing to a
11116/// commit [commit](https://git-scm.com/docs/git-commit) object. It does
11117/// not necessarily have to be a hash; it can simply define a [revision
11118/// number](https://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html)
11119/// which is an integer that is monotonically increasing. In cases where
11120/// it is identical to the `ref.base.name`, it SHOULD still be included.
11121/// It is up to the implementer to decide which value to set as the
11122/// revision based on the VCS system and situational context.
11123///
11124/// # Examples
11125///
11126/// - `"9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc"`
11127/// - `"main"`
11128/// - `"123"`
11129/// - `"HEAD"`
11130#[cfg(feature = "semconv_experimental")]
11131pub const VCS_REF_BASE_REVISION: &str = "vcs.ref.base.revision";
11132
11133/// The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository.
11134///
11135/// ## Notes
11136///
11137/// `base` refers to the starting point of a change. For example, `main`
11138/// would be the base reference of type branch if you've created a new
11139/// reference of type branch from it and created new commits.
11140///
11141/// # Examples
11142///
11143/// - `"branch"`
11144/// - `"tag"`
11145#[cfg(feature = "semconv_experimental")]
11146pub const VCS_REF_BASE_TYPE: &str = "vcs.ref.base.type";
11147
11148/// The name of the [reference](https://git-scm.com/docs/gitglossary#def_ref) such as **branch** or **tag** in the repository.
11149///
11150/// ## Notes
11151///
11152/// `head` refers to where you are right now; the current reference at a
11153/// given time.
11154///
11155/// # Examples
11156///
11157/// - `"my-feature-branch"`
11158/// - `"tag-1-test"`
11159#[cfg(feature = "semconv_experimental")]
11160pub const VCS_REF_HEAD_NAME: &str = "vcs.ref.head.name";
11161
11162/// 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.
11163///
11164/// ## Notes
11165///
11166/// `head` refers to where you are right now; the current reference at a
11167/// given time.The revision can be a full [hash value (see
11168/// glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf),
11169/// of the recorded change to a ref within a repository pointing to a
11170/// commit [commit](https://git-scm.com/docs/git-commit) object. It does
11171/// not necessarily have to be a hash; it can simply define a [revision
11172/// number](https://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html)
11173/// which is an integer that is monotonically increasing. In cases where
11174/// it is identical to the `ref.head.name`, it SHOULD still be included.
11175/// It is up to the implementer to decide which value to set as the
11176/// revision based on the VCS system and situational context.
11177///
11178/// # Examples
11179///
11180/// - `"9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc"`
11181/// - `"main"`
11182/// - `"123"`
11183/// - `"HEAD"`
11184#[cfg(feature = "semconv_experimental")]
11185pub const VCS_REF_HEAD_REVISION: &str = "vcs.ref.head.revision";
11186
11187/// The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository.
11188///
11189/// ## Notes
11190///
11191/// `head` refers to where you are right now; the current reference at a
11192/// given time.
11193///
11194/// # Examples
11195///
11196/// - `"branch"`
11197/// - `"tag"`
11198#[cfg(feature = "semconv_experimental")]
11199pub const VCS_REF_HEAD_TYPE: &str = "vcs.ref.head.type";
11200
11201/// The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository.
11202///
11203/// ## Notes
11204///
11205/// # Examples
11206///
11207/// - `"branch"`
11208/// - `"tag"`
11209#[cfg(feature = "semconv_experimental")]
11210pub const VCS_REF_TYPE: &str = "vcs.ref.type";
11211
11212/// Deprecated, use `vcs.change.id` instead.
11213///
11214/// ## Notes
11215///
11216/// # Examples
11217///
11218/// - `"123"`
11219#[cfg(feature = "semconv_experimental")]
11220#[deprecated(
11221 note = "{note: Replaced by `vcs.change.id`., reason: renamed, renamed_to: vcs.change.id}"
11222)]
11223pub const VCS_REPOSITORY_CHANGE_ID: &str = "vcs.repository.change.id";
11224
11225/// Deprecated, use `vcs.change.title` instead.
11226///
11227/// ## Notes
11228///
11229/// # Examples
11230///
11231/// - `"Fixes broken thing"`
11232/// - `"feat: add my new feature"`
11233/// - `"[chore] update dependency"`
11234#[cfg(feature = "semconv_experimental")]
11235#[deprecated(
11236 note = "{note: Replaced by `vcs.change.title`., reason: renamed, renamed_to: vcs.change.title}"
11237)]
11238pub const VCS_REPOSITORY_CHANGE_TITLE: &str = "vcs.repository.change.title";
11239
11240/// The human readable name of the repository. It SHOULD NOT include any additional identifier like Group/SubGroup in GitLab or organization in GitHub.
11241///
11242/// ## Notes
11243///
11244/// Due to it only being the name, it can clash with forks of the same
11245/// repository if collecting telemetry across multiple orgs or groups in
11246/// the same backends.
11247///
11248/// # Examples
11249///
11250/// - `"semantic-conventions"`
11251/// - `"my-cool-repo"`
11252#[cfg(feature = "semconv_experimental")]
11253pub const VCS_REPOSITORY_NAME: &str = "vcs.repository.name";
11254
11255/// Deprecated, use `vcs.ref.head.name` instead.
11256///
11257/// ## Notes
11258///
11259/// # Examples
11260///
11261/// - `"my-feature-branch"`
11262/// - `"tag-1-test"`
11263#[cfg(feature = "semconv_experimental")]
11264#[deprecated(
11265 note = "{note: Replaced by `vcs.ref.head.name`., reason: renamed, renamed_to: vcs.ref.head.name}"
11266)]
11267pub const VCS_REPOSITORY_REF_NAME: &str = "vcs.repository.ref.name";
11268
11269/// Deprecated, use `vcs.ref.head.revision` instead.
11270///
11271/// ## Notes
11272///
11273/// # Examples
11274///
11275/// - `"9d59409acf479dfa0df1aa568182e43e43df8bbe28d60fcf2bc52e30068802cc"`
11276/// - `"main"`
11277/// - `"123"`
11278/// - `"HEAD"`
11279#[cfg(feature = "semconv_experimental")]
11280#[deprecated(
11281 note = "{note: Replaced by `vcs.ref.head.revision`., reason: renamed, renamed_to: vcs.ref.head.revision}"
11282)]
11283pub const VCS_REPOSITORY_REF_REVISION: &str = "vcs.repository.ref.revision";
11284
11285/// Deprecated, use `vcs.ref.head.type` instead.
11286///
11287/// ## Notes
11288///
11289/// # Examples
11290///
11291/// - `"branch"`
11292/// - `"tag"`
11293#[cfg(feature = "semconv_experimental")]
11294#[deprecated(
11295 note = "{note: Replaced by `vcs.ref.head.type`., reason: renamed, renamed_to: vcs.ref.head.type}"
11296)]
11297pub const VCS_REPOSITORY_REF_TYPE: &str = "vcs.repository.ref.type";
11298
11299/// The [canonical URL](https://support.google.com/webmasters/answer/10347851) of the repository providing the complete HTTP(S) address in order to locate and identify the repository through a browser.
11300///
11301/// ## Notes
11302///
11303/// In Git Version Control Systems, the canonical URL SHOULD NOT include
11304/// the `.git` extension.
11305///
11306/// # Examples
11307///
11308/// - `"https://github.com/opentelemetry/open-telemetry-collector-contrib"`
11309/// - `"https://gitlab.com/my-org/my-project/my-projects-project/repo"`
11310#[cfg(feature = "semconv_experimental")]
11311pub const VCS_REPOSITORY_URL_FULL: &str = "vcs.repository.url.full";
11312
11313/// The type of revision comparison.
11314///
11315/// ## Notes
11316///
11317/// # Examples
11318///
11319/// - `"ahead"`
11320/// - `"behind"`
11321#[cfg(feature = "semconv_experimental")]
11322pub const VCS_REVISION_DELTA_DIRECTION: &str = "vcs.revision_delta.direction";
11323
11324/// Additional description of the web engine (e.g. detailed version and edition information).
11325///
11326/// ## Notes
11327///
11328/// # Examples
11329///
11330/// - `"WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) - 2.2.2.Final"`
11331#[cfg(feature = "semconv_experimental")]
11332pub const WEBENGINE_DESCRIPTION: &str = "webengine.description";
11333
11334/// The name of the web engine.
11335///
11336/// ## Notes
11337///
11338/// # Examples
11339///
11340/// - `"WildFly"`
11341#[cfg(feature = "semconv_experimental")]
11342pub const WEBENGINE_NAME: &str = "webengine.name";
11343
11344/// The version of the web engine.
11345///
11346/// ## Notes
11347///
11348/// # Examples
11349///
11350/// - `"21.0.0"`
11351#[cfg(feature = "semconv_experimental")]
11352pub const WEBENGINE_VERSION: &str = "webengine.version";
11353
11354/// 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.
11355///
11356/// ## Notes
11357///
11358/// # Examples
11359///
11360/// - `"SYS1"`
11361#[cfg(feature = "semconv_experimental")]
11362pub const ZOS_SMF_ID: &str = "zos.smf.id";
11363
11364/// The name of the SYSPLEX to which the z/OS system belongs too.
11365///
11366/// ## Notes
11367///
11368/// # Examples
11369///
11370/// - `"SYSPLEX1"`
11371#[cfg(feature = "semconv_experimental")]
11372pub const ZOS_SYSPLEX_NAME: &str = "zos.sysplex.name";