URL

URL Attributes

Attributes describing URL.

AttributeTypeDescriptionExamplesStability
url.domainstringDomain extracted from the url.full, such as “opentelemetry.io”. [1]www.foo.bar; opentelemetry.io; 3.12.167.2; [1080:0:0:0:8:800:200C:417A]Experimental
url.extensionstringThe file extension extracted from the url.full, excluding the leading dot. [2]png; gzExperimental
url.fragmentstringThe URI fragment componentSemConvStable
url.fullstringAbsolute URL describing a network resource according to RFC3986 [3]https://www.foo.bar/search?q=OpenTelemetry#SemConv; //localhostStable
url.originalstringUnmodified original URL as seen in the event source. [4]https://www.foo.bar/search?q=OpenTelemetry#SemConv; search?q=OpenTelemetryExperimental
url.pathstringThe URI path component [5]/searchStable
url.portintPort extracted from the url.full443Experimental
url.querystringThe URI query component [6]q=OpenTelemetryStable
url.registered_domainstringThe highest registered url domain, stripped of the subdomain. [7]example.com; foo.co.ukExperimental
url.schemestringThe URI scheme component identifying the used protocol.https; ftp; telnetStable
url.subdomainstringThe 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. [8]east; sub2.sub1Experimental
url.templatestringThe low-cardinality template of an absolute path reference./users/{id}; /users/:id; /users?id={id}Experimental
url.top_level_domainstringThe 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. [9]com; co.ukExperimental

[1] url.domain: 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 [ and ], the [ and ] characters should also be captured in the domain field.

[2] url.extension: 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.

[3] url.full: For network calls, URL usually has scheme://host[:port][path][?query][#fragment] format, where the fragment is not transmitted over HTTP, but if it is known, it SHOULD be included nevertheless.

url.full MUST NOT contain credentials passed via URL in form of https://username:password@www.example.com/. In such case username and password SHOULD be redacted and attribute’s value SHOULD be https://REDACTED:REDACTED@www.example.com/.

url.full SHOULD capture the absolute URL when it is available (or can be reconstructed).

Sensitive content provided in url.full SHOULD be scrubbed when instrumentations can identify it.

Experimental Query string values for the following keys SHOULD be redacted by default and replaced by the value REDACTED:

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. https://www.example.com/path?color=blue&sig=REDACTED.

[4] url.original: 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. 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.

[5] url.path: Sensitive content provided in url.path SHOULD be scrubbed when instrumentations can identify it.

[6] url.query: Sensitive content provided in url.query SHOULD be scrubbed when instrumentations can identify it.

Experimental Query string values for the following keys SHOULD be redacted by default and replaced by the value REDACTED:

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. q=OpenTelemetry&sig=REDACTED.

[7] url.registered_domain: This value can be determined precisely with the public suffix list. 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.

[8] url.subdomain: 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.

[9] url.top_level_domain: This value can be determined precisely with the public suffix list.