/* * Copyright The OpenTelemetry Authors * SPDX-License-Identifier: Apache-2.0 */ /* * DO NOT EDIT, this is an Auto-generated file from: * buildscripts/semantic-convention/templates/registry/semantic_attributes-h.j2 */ #pragma once #include "opentelemetry/common/macros.h" #include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace semconv { namespace url { /** Domain extracted from the @code url.full @endcode, such as "opentelemetry.io".
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 enclosed by @code [ @endcode and @code ] @endcode, the @code [ @endcode and @code ] @endcode characters should also be captured in the domain field. */ static constexpr const char *kUrlDomain = "url.domain"; /** The file extension extracted from the @code url.full @endcode, excluding the leading dot.
The file extension is only set if it exists, as not every url has a file extension. When the file name has multiple extensions @code example.tar.gz @endcode, only the last one should be captured @code gz @endcode, not @code tar.gz @endcode. */ static constexpr const char *kUrlExtension = "url.extension"; /** The URI fragment component */ static constexpr const char *kUrlFragment = "url.fragment"; /** Absolute URL describing a network resource according to RFC3986
For network calls, URL usually has @code scheme://host[:port][path][?query][#fragment] @endcode format, where the fragment is not transmitted over HTTP, but if it is known, it SHOULD be included nevertheless.
@code url.full @endcode MUST NOT contain credentials passed via URL in form of @code https://username:password@www.example.com/ @endcode. In such case username and password SHOULD be redacted and attribute's value SHOULD be @code https://REDACTED:REDACTED@www.example.com/ @endcode.
@code url.full @endcode SHOULD capture the absolute URL when it is available (or can be reconstructed).
Sensitive content provided in @code url.full @endcode SHOULD be scrubbed when instrumentations can identify it.
Query string values for the following keys SHOULD be redacted by default and replaced by the value @code REDACTED @endcode:
This list is subject to change over time.
When a query string value is redacted, the query string key SHOULD still be preserved, e.g. @code https://www.example.com/path?color=blue&sig=REDACTED @endcode. */ static constexpr const char *kUrlFull = "url.full"; /** Unmodified original URL as seen in the event source.
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. @code url.original @endcode might contain credentials passed via URL in form of @code https://username:password@www.example.com/ @endcode. In such case password and username SHOULD NOT be redacted and attribute's value SHOULD remain the same. */ static constexpr const char *kUrlOriginal = "url.original"; /** The URI path component
Sensitive content provided in @code url.path @endcode SHOULD be scrubbed when instrumentations can identify it. */ static constexpr const char *kUrlPath = "url.path"; /** Port extracted from the @code url.full @endcode */ static constexpr const char *kUrlPort = "url.port"; /** The URI query component
Sensitive content provided in @code url.query @endcode SHOULD be scrubbed when instrumentations can identify it.
Query string values for the following keys SHOULD be redacted by default and replaced by the value @code REDACTED @endcode:
This list is subject to change over time.
When a query string value is redacted, the query string key SHOULD still be preserved, e.g. @code q=OpenTelemetry&sig=REDACTED @endcode. */ static constexpr const char *kUrlQuery = "url.query"; /** The highest registered url domain, stripped of the subdomain.
This value can be determined precisely with the public suffix list. For example, the registered domain for @code foo.example.com @endcode is @code example.com @endcode. Trying to approximate this by simply taking the last two labels will not work well for TLDs such as @code co.uk @endcode. */ static constexpr const char *kUrlRegisteredDomain = "url.registered_domain"; /** The URI scheme component identifying the used protocol. */ static constexpr const char *kUrlScheme = "url.scheme"; /** 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.
The subdomain portion of @code www.east.mydomain.co.uk @endcode is @code east @endcode. If the domain has multiple levels of subdomain, such as @code sub2.sub1.example.com @endcode, the subdomain field should contain @code sub2.sub1 @endcode, with no trailing period. */ static constexpr const char *kUrlSubdomain = "url.subdomain"; /** The low-cardinality template of an absolute path reference. */ static constexpr const char *kUrlTemplate = "url.template"; /** 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 @code com @endcode.
This value can be determined precisely with the public suffix list. */ static constexpr const char *kUrlTopLevelDomain = "url.top_level_domain"; } // namespace url } // namespace semconv OPENTELEMETRY_END_NAMESPACE