From 0b6a71905f7f80d92a74a37241d65ae641e13d77 Mon Sep 17 00:00:00 2001 From: Colleen McGinnis Date: Fri, 28 Feb 2025 15:18:37 -0600 Subject: [PATCH] add missing ecs and otel pages --- docs/docset.yml | 2 + docs/reference/ecs-opentelemetry.md | 28 +++ docs/reference/ecs-otel-alignment-details.md | 212 ++++++++++++++++++ docs/reference/ecs-otel-alignment-overview.md | 104 +++++++++ docs/reference/toc.yml | 4 + 5 files changed, 350 insertions(+) create mode 100644 docs/reference/ecs-opentelemetry.md create mode 100644 docs/reference/ecs-otel-alignment-details.md create mode 100644 docs/reference/ecs-otel-alignment-overview.md diff --git a/docs/docset.yml b/docs/docset.yml index 9b0239581..cd15a88df 100644 --- a/docs/docset.yml +++ b/docs/docset.yml @@ -1,4 +1,6 @@ project: 'ECS reference' +exclude: + - fields/usage/README.md cross_links: - beats - docs-content diff --git a/docs/reference/ecs-opentelemetry.md b/docs/reference/ecs-opentelemetry.md new file mode 100644 index 000000000..2b76e9c51 --- /dev/null +++ b/docs/reference/ecs-opentelemetry.md @@ -0,0 +1,28 @@ +# ECS & OpenTelemetry [ecs-opentelemetry] + +In April 2023, Elastic donated ECS to OpenTelemetry and together with the OTel community [jointly announced](https://opentelemetry.io/blog/2023/ecs-otel-semconv-convergence/) the intention to achieve convergence of ECS and [OTel Semantic Conventions (SemConv)](https://opentelemetry.io/docs/specs/semconv/). This donation should be seen as a directional decision for the evolution of both standards rather than a single event that merged both schemas into a single standard. + +While both schemes complement each other in large areas and thus offer mutual added value and great potential for convergence, it is important to understand that in some areas convergence is not achievable due to conceptual differences or consistency reasons. For example, while ECS contains a few fields (e.g. [container.disk.read.bytes](/reference/ecs-container.md#field-container-disk-read-bytes)) that are meant to be used in a metric-like way, metrics in OpenTelemetry are following a completely different data model (with metric name, type, dimensions, etc.). Also, in OTel semantic conventions there are some stable (or quasi-stable) attributes that have semantically equivalent, stable fields in ECS, however, with different field names. This kind of differences require explicit handling to achieve compatibility. + + +## Relation between ECS and Semantic Conventions [ecs-opentelemetry-relation] + +The [ECS schema files](https://github.com/elastic/ecs/tree/main/schemas) contain an explicit mapping between ECS fields and corresponding OTel semnatic convention attributes. This can be used to generate tooling for compatibility between ECS and semnatic conventions (e.g. alias fields in Elasticsearch). The relation between individual ECS fields and corresponding OTel semantic conventions attributes follows one of the following categories: + +| Category | Description | +| --- | --- | +| ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | The name of the ECS field is identical to the SemConv attribute name and has (practically) the same semantics. | +| ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | The ECS field name is different but has the same semantics as the corresponding SemConv attribute.For this type of relation aliasing approaches (e.g. [Elasticsearch field aliases](elasticsearch://reference/elasticsearch/mapping-reference/field-alias.md)) can be used to achieve compatibility between ECS and OTel SemConv. | +| ![relation](https://img.shields.io/badge/related-efc20d?style=flat "related") | The ECS field name is different and has related - yet different - semantics as the corresponding SemConv attribute.An aliasing approach is not sufficient to resolve compatibility for this type of relation. | +| ![relation](https://img.shields.io/badge/conflict-910000?style=flat "conflict") | The ECS field name is the same as an OTel SemConv namespace or an attribute that has significantly different semantics. | +| ![relation](https://img.shields.io/badge/OTLP-ffdcb2?style=flat "OTLP") | The ECS field has a corresponding representation in [OpenTelemetry’s protocol definition](https://github.com/open-telemetry/opentelemetry-proto). | +| ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | For this ECS field there is a corresponding metric defined in OTel SemConv. | +| ![relation](https://img.shields.io/badge/n%2Fa-f2f4fb?style=flat "na") | The ECS field is not applicable in the context of OTel or won’t be aligned due to significant, conceptual conflict with OTel concepts in that area. | + +The following documentation pages provide an overview and more details on the alignment between ECS and OTel semantic conventions: + +* [OTel Alignment Overview](/reference/ecs-otel-alignment-overview.md) +* [Field & Attributes Alignment](/reference/ecs-otel-alignment-details.md) + + + diff --git a/docs/reference/ecs-otel-alignment-details.md b/docs/reference/ecs-otel-alignment-details.md new file mode 100644 index 000000000..68231cae8 --- /dev/null +++ b/docs/reference/ecs-otel-alignment-details.md @@ -0,0 +1,212 @@ +# Field & Attributes Alignment [ecs-otel-alignment-details] + +The following table gives an overview of mappings between individual ECS fields (in ECS version `9.0.0-dev`) and corresponding OTel semantic convention attributes (in SemConv version `1.29.0`). + +| ECS Field | Relation | OTel Semantic Conventions Attribute | Stability $$$otel-mapping-namespace-base$$$ | +| --- | --- | --- | --- | +| **Base Fields** | +| $$$otel-mapping-for-timestamp$$$[@timestamp](/reference/ecs-base.md#field-timestamp) | ![relation](https://img.shields.io/badge/OTLP-ffdcb2?style=flat "otlp") | [time_unix_nano](https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-proto+%22+time_unix_nano+%22&type=code)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| ![relation](https://img.shields.io/badge/OTLP-ffdcb2?style=flat "otlp") | [observed_time_unix_nano](https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-proto+%22+observed_time_unix_nano+%22&type=code)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| ![relation](https://img.shields.io/badge/OTLP-ffdcb2?style=flat "otlp") | [start_time_unix_nano](https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-proto+%22+start_time_unix_nano+%22&type=code)

Note: On logs, events and metrics, `time_unix_nano` defines the time of the event. For logs, `observed_time_unix_nano` defines the time when the event was observed by the collection system. On spans, `start_time_unix_nano` represents the start time of the span. | ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-labels$$$[labels](/reference/ecs-base.md#field-labels) | ![relation](https://img.shields.io/badge/related-efc20d?style=flat "related") | [k8s.pod.label](https://opentelemetry.io/docs/specs/semconv/attributes-registry/k8s/#k8s-pod-label)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| ![relation](https://img.shields.io/badge/related-efc20d?style=flat "related") | [container.label](https://opentelemetry.io/docs/specs/semconv/attributes-registry/container/#container-label)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-message$$$[message](/reference/ecs-base.md#field-message) | ![relation](https://img.shields.io/badge/OTLP-ffdcb2?style=flat "otlp") | [body](https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-proto+%22+body+%22&type=code)

Note: The `body` in OTLP is of type `Any` and can be either an unstructured log message or a structured event. | ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable")
$$$otel-mapping-namespace-client$$$ | +| **Client Fields** | +| $$$otel-mapping-for-client-address$$$[client.address](/reference/ecs-client.md#field-client-address) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [client.address](https://opentelemetry.io/docs/specs/semconv/attributes-registry/client/#client-address)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-client-port$$$[client.port](/reference/ecs-client.md#field-client-port) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [client.port](https://opentelemetry.io/docs/specs/semconv/attributes-registry/client/#client-port)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable")
$$$otel-mapping-namespace-cloud$$$ | +| **Cloud Fields** | +| $$$otel-mapping-for-cloud-account-id$$$[cloud.account.id](/reference/ecs-cloud.md#field-cloud-account-id) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [cloud.account.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/cloud/#cloud-account-id)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-cloud-availability-zone$$$[cloud.availability_zone](/reference/ecs-cloud.md#field-cloud-availability-zone) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [cloud.availability_zone](https://opentelemetry.io/docs/specs/semconv/attributes-registry/cloud/#cloud-availability-zone)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-cloud-provider$$$[cloud.provider](/reference/ecs-cloud.md#field-cloud-provider) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [cloud.provider](https://opentelemetry.io/docs/specs/semconv/attributes-registry/cloud/#cloud-provider)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-cloud-region$$$[cloud.region](/reference/ecs-cloud.md#field-cloud-region) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [cloud.region](https://opentelemetry.io/docs/specs/semconv/attributes-registry/cloud/#cloud-region)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-cloud-service-name$$$[cloud.service.name](/reference/ecs-cloud.md#field-cloud-service-name) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [cloud.platform](https://opentelemetry.io/docs/specs/semconv/attributes-registry/cloud/#cloud-platform)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-container$$$ | +| **Container Fields** | +| $$$otel-mapping-for-container-cpu-usage$$$[container.cpu.usage](/reference/ecs-container.md#field-container-cpu-usage) | ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | [container.cpu.usage](https://github.com/search?q=repo%3Aopen-telemetry%2Fsemantic-conventions+%22%3C%21--+semconv+metric.container.cpu.usage+--%3E%22&type=code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-container-id$$$[container.id](/reference/ecs-container.md#field-container-id) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [container.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/container/#container-id)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-container-image-hash-all$$$[container.image.hash.all](/reference/ecs-container.md#field-container-image-hash-all) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [container.image.repo_digests](https://opentelemetry.io/docs/specs/semconv/attributes-registry/container/#container-image-repo-digests)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-container-image-name$$$[container.image.name](/reference/ecs-container.md#field-container-image-name) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [container.image.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/container/#container-image-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-container-image-tag$$$[container.image.tag](/reference/ecs-container.md#field-container-image-tag) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [container.image.tags](https://opentelemetry.io/docs/specs/semconv/attributes-registry/container/#container-image-tags)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-container-labels$$$[container.labels](/reference/ecs-container.md#field-container-labels) | ![relation](https://img.shields.io/badge/related-efc20d?style=flat "related") | [container.label](https://opentelemetry.io/docs/specs/semconv/attributes-registry/container/#container-label)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-container-memory-usage$$$[container.memory.usage](/reference/ecs-container.md#field-container-memory-usage) | ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | [container.memory.usage](https://github.com/search?q=repo%3Aopen-telemetry%2Fsemantic-conventions+%22%3C%21--+semconv+metric.container.memory.usage+--%3E%22&type=code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-container-name$$$[container.name](/reference/ecs-container.md#field-container-name) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [container.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/container/#container-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-container-runtime$$$[container.runtime](/reference/ecs-container.md#field-container-runtime) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [container.runtime](https://opentelemetry.io/docs/specs/semconv/attributes-registry/container/#container-runtime)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-data_stream$$$ | +| **Data Stream Fields** | +| $$$otel-mapping-for-data-stream-dataset$$$[data_stream.dataset](/reference/ecs-data_stream.md#field-data-stream-dataset) [beta] | ![relation](https://img.shields.io/badge/n%2Fa-f2f4fb?style=flat "not-applicable") | Not applicable.
| | +| $$$otel-mapping-for-data-stream-namespace$$$[data_stream.namespace](/reference/ecs-data_stream.md#field-data-stream-namespace) [beta] | ![relation](https://img.shields.io/badge/n%2Fa-f2f4fb?style=flat "not-applicable") | Not applicable.
| | +| $$$otel-mapping-for-data-stream-type$$$[data_stream.type](/reference/ecs-data_stream.md#field-data-stream-type) [beta] | ![relation](https://img.shields.io/badge/n%2Fa-f2f4fb?style=flat "not-applicable") | Not applicable.
| $$$otel-mapping-namespace-destination$$$ | +| **Destination Fields** | +| $$$otel-mapping-for-destination-address$$$[destination.address](/reference/ecs-destination.md#field-destination-address) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [destination.address](https://opentelemetry.io/docs/specs/semconv/attributes-registry/destination/#destination-address)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-destination-port$$$[destination.port](/reference/ecs-destination.md#field-destination-port) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [destination.port](https://opentelemetry.io/docs/specs/semconv/attributes-registry/destination/#destination-port)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-device$$$ | +| **Device Fields** | +| $$$otel-mapping-for-device-id$$$[device.id](/reference/ecs-device.md#field-device-id) [beta] | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [device.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/device/#device-id)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-device-manufacturer$$$[device.manufacturer](/reference/ecs-device.md#field-device-manufacturer) [beta] | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [device.manufacturer](https://opentelemetry.io/docs/specs/semconv/attributes-registry/device/#device-manufacturer)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-device-model-identifier$$$[device.model.identifier](/reference/ecs-device.md#field-device-model-identifier) [beta] | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [device.model.identifier](https://opentelemetry.io/docs/specs/semconv/attributes-registry/device/#device-model-identifier)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-device-model-name$$$[device.model.name](/reference/ecs-device.md#field-device-model-name) [beta] | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [device.model.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/device/#device-model-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-dns$$$ | +| **DNS Fields** | +| $$$otel-mapping-for-dns-question-name$$$[dns.question.name](/reference/ecs-dns.md#field-dns-question-name) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [dns.question.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/dns/#dns-question-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-ecs$$$ | +| **ECS Fields** | +| $$$otel-mapping-for-ecs-version$$$[ecs.version](/reference/ecs-ecs.md#field-ecs-version) | ![relation](https://img.shields.io/badge/n%2Fa-f2f4fb?style=flat "not-applicable") | Not applicable.
| $$$otel-mapping-namespace-error$$$ | +| **Error Fields** | +| $$$otel-mapping-for-error-message$$$[error.message](/reference/ecs-error.md#field-error-message) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [exception.message](https://opentelemetry.io/docs/specs/semconv/attributes-registry/exception/#exception-message)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-error-stack-trace$$$[error.stack_trace](/reference/ecs-error.md#field-error-stack-trace) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [exception.stacktrace](https://opentelemetry.io/docs/specs/semconv/attributes-registry/exception/#exception-stacktrace)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-error-type$$$[error.type](/reference/ecs-error.md#field-error-type) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [error.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/error/#error-type)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable")
$$$otel-mapping-namespace-faas$$$ | +| **FaaS Fields** | +| $$$otel-mapping-for-faas-coldstart$$$[faas.coldstart](/reference/ecs-faas.md#field-faas-coldstart) [beta] | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [faas.coldstart](https://opentelemetry.io/docs/specs/semconv/attributes-registry/faas/#faas-coldstart)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-faas-execution$$$[faas.execution](/reference/ecs-faas.md#field-faas-execution) [beta] | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [faas.invocation_id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/faas/#faas-invocation-id)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-faas-name$$$[faas.name](/reference/ecs-faas.md#field-faas-name) [beta] | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [faas.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/faas/#faas-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-faas-trigger-type$$$[faas.trigger.type](/reference/ecs-faas.md#field-faas-trigger-type) [beta] | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [faas.trigger](https://opentelemetry.io/docs/specs/semconv/attributes-registry/faas/#faas-trigger)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-faas-version$$$[faas.version](/reference/ecs-faas.md#field-faas-version) [beta] | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [faas.version](https://opentelemetry.io/docs/specs/semconv/attributes-registry/faas/#faas-version)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-file$$$ | +| **File Fields** | +| $$$otel-mapping-for-file-accessed$$$[file.accessed](/reference/ecs-file.md#field-file-accessed) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [file.accessed](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-accessed)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-attributes$$$[file.attributes](/reference/ecs-file.md#field-file-attributes) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [file.attributes](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-attributes)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-created$$$[file.created](/reference/ecs-file.md#field-file-created) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [file.created](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-created)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-ctime$$$[file.ctime](/reference/ecs-file.md#field-file-ctime) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [file.changed](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-changed)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-directory$$$[file.directory](/reference/ecs-file.md#field-file-directory) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [file.directory](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-directory)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-extension$$$[file.extension](/reference/ecs-file.md#field-file-extension) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [file.extension](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-extension)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-fork-name$$$[file.fork_name](/reference/ecs-file.md#field-file-fork-name) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [file.fork_name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-fork-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-gid$$$[file.gid](/reference/ecs-file.md#field-file-gid) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [file.group.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-group-id)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-group$$$[file.group](/reference/ecs-file.md#field-file-group) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [file.group.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-group-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-inode$$$[file.inode](/reference/ecs-file.md#field-file-inode) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [file.inode](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-inode)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-mode$$$[file.mode](/reference/ecs-file.md#field-file-mode) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [file.mode](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-mode)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-mtime$$$[file.mtime](/reference/ecs-file.md#field-file-mtime) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [file.modified](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-modified)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-name$$$[file.name](/reference/ecs-file.md#field-file-name) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [file.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-owner$$$[file.owner](/reference/ecs-file.md#field-file-owner) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [file.owner.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-owner-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-path$$$[file.path](/reference/ecs-file.md#field-file-path) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [file.path](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-path)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-size$$$[file.size](/reference/ecs-file.md#field-file-size) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [file.size](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-size)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-target-path$$$[file.target_path](/reference/ecs-file.md#field-file-target-path) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [file.symbolic_link.target_path](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-symbolic-link-target-path)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-file-uid$$$[file.uid](/reference/ecs-file.md#field-file-uid) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [file.owner.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file/#file-owner-id)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-geo$$$ | +| **Geo Fields** | +| $$$otel-mapping-for-geo-city-name$$$[geo.city_name](/reference/ecs-geo.md#field-geo-city-name) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [geo.locality.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/geo/#geo-locality-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-geo-continent-code$$$[geo.continent_code](/reference/ecs-geo.md#field-geo-continent-code) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [geo.continent.code](https://opentelemetry.io/docs/specs/semconv/attributes-registry/geo/#geo-continent-code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-geo-country-iso-code$$$[geo.country_iso_code](/reference/ecs-geo.md#field-geo-country-iso-code) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [geo.country.iso_code](https://opentelemetry.io/docs/specs/semconv/attributes-registry/geo/#geo-country-iso-code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-geo-location$$$[geo.location](/reference/ecs-geo.md#field-geo-location) | ![relation](https://img.shields.io/badge/related-efc20d?style=flat "related") | [geo.location.lat](https://opentelemetry.io/docs/specs/semconv/attributes-registry/geo/#geo-location-lat)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| ![relation](https://img.shields.io/badge/related-efc20d?style=flat "related") | [geo.location.lon](https://opentelemetry.io/docs/specs/semconv/attributes-registry/geo/#geo-location-lon)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-geo-postal-code$$$[geo.postal_code](/reference/ecs-geo.md#field-geo-postal-code) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [geo.postal_code](https://opentelemetry.io/docs/specs/semconv/attributes-registry/geo/#geo-postal-code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-geo-region-iso-code$$$[geo.region_iso_code](/reference/ecs-geo.md#field-geo-region-iso-code) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [geo.region.iso_code](https://opentelemetry.io/docs/specs/semconv/attributes-registry/geo/#geo-region-iso-code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-host$$$ | +| **Host Fields** | +| $$$otel-mapping-for-host-architecture$$$[host.architecture](/reference/ecs-host.md#field-host-architecture) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [host.arch](https://opentelemetry.io/docs/specs/semconv/attributes-registry/host/#host-arch)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-cpu-usage$$$[host.cpu.usage](/reference/ecs-host.md#field-host-cpu-usage) | ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | [system.cpu.utilization](https://github.com/search?q=repo%3Aopen-telemetry%2Fsemantic-conventions+%22%3C%21--+semconv+metric.system.cpu.utilization+--%3E%22&type=code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-disk-read-bytes$$$[host.disk.read.bytes](/reference/ecs-host.md#field-host-disk-read-bytes) | ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | [system.disk.io](https://github.com/search?q=repo%3Aopen-telemetry%2Fsemantic-conventions+%22%3C%21--+semconv+metric.system.disk.io+--%3E%22&type=code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-disk-write-bytes$$$[host.disk.write.bytes](/reference/ecs-host.md#field-host-disk-write-bytes) | ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | [system.disk.io](https://github.com/search?q=repo%3Aopen-telemetry%2Fsemantic-conventions+%22%3C%21--+semconv+metric.system.disk.io+--%3E%22&type=code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-id$$$[host.id](/reference/ecs-host.md#field-host-id) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [host.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/host/#host-id)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-ip$$$[host.ip](/reference/ecs-host.md#field-host-ip) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [host.ip](https://opentelemetry.io/docs/specs/semconv/attributes-registry/host/#host-ip)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-mac$$$[host.mac](/reference/ecs-host.md#field-host-mac) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [host.mac](https://opentelemetry.io/docs/specs/semconv/attributes-registry/host/#host-mac)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-name$$$[host.name](/reference/ecs-host.md#field-host-name) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [host.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/host/#host-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-network-egress-bytes$$$[host.network.egress.bytes](/reference/ecs-host.md#field-host-network-egress-bytes) | ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | [system.network.io](https://github.com/search?q=repo%3Aopen-telemetry%2Fsemantic-conventions+%22%3C%21--+semconv+metric.system.network.io+--%3E%22&type=code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-network-egress-packets$$$[host.network.egress.packets](/reference/ecs-host.md#field-host-network-egress-packets) | ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | [system.network.packets](https://github.com/search?q=repo%3Aopen-telemetry%2Fsemantic-conventions+%22%3C%21--+semconv+metric.system.network.packets+--%3E%22&type=code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-network-ingress-bytes$$$[host.network.ingress.bytes](/reference/ecs-host.md#field-host-network-ingress-bytes) | ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | [system.network.io](https://github.com/search?q=repo%3Aopen-telemetry%2Fsemantic-conventions+%22%3C%21--+semconv+metric.system.network.io+--%3E%22&type=code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-network-ingress-packets$$$[host.network.ingress.packets](/reference/ecs-host.md#field-host-network-ingress-packets) | ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | [system.network.packets](https://github.com/search?q=repo%3Aopen-telemetry%2Fsemantic-conventions+%22%3C%21--+semconv+metric.system.network.packets+--%3E%22&type=code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-type$$$[host.type](/reference/ecs-host.md#field-host-type) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [host.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/host/#host-type)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-host-uptime$$$[host.uptime](/reference/ecs-host.md#field-host-uptime) | ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | [system.uptime](https://github.com/search?q=repo%3Aopen-telemetry%2Fsemantic-conventions+%22%3C%21--+semconv+metric.system.uptime+--%3E%22&type=code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-http$$$ | +| **HTTP Fields** | +| $$$otel-mapping-for-http-request-body-bytes$$$[http.request.body.bytes](/reference/ecs-http.md#field-http-request-body-bytes) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [http.request.body.size](https://opentelemetry.io/docs/specs/semconv/attributes-registry/http/#http-request-body-size)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-http-request-bytes$$$[http.request.bytes](/reference/ecs-http.md#field-http-request-bytes) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [http.request.size](https://opentelemetry.io/docs/specs/semconv/attributes-registry/http/#http-request-size)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-http-request-method$$$[http.request.method](/reference/ecs-http.md#field-http-request-method) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [http.request.method_original](https://opentelemetry.io/docs/specs/semconv/attributes-registry/http/#http-request-method-original)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| ![relation](https://img.shields.io/badge/conflict-910000?style=flat "conflict") | [http.request.method](https://opentelemetry.io/docs/specs/semconv/attributes-registry/http/#http-request-method)

Note: `http.request.method` in SemConv is the known, normalized, upper case value of the request method, other than the ECS' `http.request.method` that retains casing from the original event. | ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-http-response-body-bytes$$$[http.response.body.bytes](/reference/ecs-http.md#field-http-response-body-bytes) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [http.response.body.size](https://opentelemetry.io/docs/specs/semconv/attributes-registry/http/#http-response-body-size)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-http-response-bytes$$$[http.response.bytes](/reference/ecs-http.md#field-http-response-bytes) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [http.response.size](https://opentelemetry.io/docs/specs/semconv/attributes-registry/http/#http-response-size)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-http-response-status-code$$$[http.response.status_code](/reference/ecs-http.md#field-http-response-status-code) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [http.response.status_code](https://opentelemetry.io/docs/specs/semconv/attributes-registry/http/#http-response-status-code)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-http-version$$$[http.version](/reference/ecs-http.md#field-http-version) | ![relation](https://img.shields.io/badge/related-efc20d?style=flat "related") | [network.protocol.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/network/#network-protocol-name)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| ![relation](https://img.shields.io/badge/related-efc20d?style=flat "related") | [network.protocol.version](https://opentelemetry.io/docs/specs/semconv/attributes-registry/network/#network-protocol-version)

Note: In OTel SemConv, `network.protocol.version` specifies the HTTP version if the value of `network.protocol.name` is `http`. | ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable")
$$$otel-mapping-namespace-log$$$ | +| **Log Fields** | +| $$$otel-mapping-for-log-file-path$$$[log.file.path](/reference/ecs-log.md#field-log-file-path) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [log.file.path](https://opentelemetry.io/docs/specs/semconv/attributes-registry/log/#log-file-path)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-log-level$$$[log.level](/reference/ecs-log.md#field-log-level) | ![relation](https://img.shields.io/badge/OTLP-ffdcb2?style=flat "otlp") | [severity_text](https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-proto+%22+severity_text+%22&type=code)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable")
$$$otel-mapping-namespace-network$$$ | +| **Network Fields** | +| $$$otel-mapping-for-network-protocol$$$[network.protocol](/reference/ecs-network.md#field-network-protocol) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [network.protocol.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/network/#network-protocol-name)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-network-transport$$$[network.transport](/reference/ecs-network.md#field-network-transport) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [network.transport](https://opentelemetry.io/docs/specs/semconv/attributes-registry/network/#network-transport)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-network-type$$$[network.type](/reference/ecs-network.md#field-network-type) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [network.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/network/#network-type)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable")
$$$otel-mapping-namespace-os$$$ | +| **Operating System Fields** | +| $$$otel-mapping-for-os-full$$$[os.full](/reference/ecs-os.md#field-os-full) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [os.description](https://opentelemetry.io/docs/specs/semconv/attributes-registry/os/#os-description)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-os-name$$$[os.name](/reference/ecs-os.md#field-os-name) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [os.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/os/#os-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-os-type$$$[os.type](/reference/ecs-os.md#field-os-type) | ![relation](https://img.shields.io/badge/conflict-910000?style=flat "conflict") | [os.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/os/#os-type)

Note: The expected values in ECS for `os.type` do not correspond with the values defined in semantic conventions! | ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-os-version$$$[os.version](/reference/ecs-os.md#field-os-version) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [os.version](https://opentelemetry.io/docs/specs/semconv/attributes-registry/os/#os-version)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-process$$$ | +| **Process Fields** | +| $$$otel-mapping-for-process-args$$$[process.args](/reference/ecs-process.md#field-process-args) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [process.command_args](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-command-args)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-process-args-count$$$[process.args_count](/reference/ecs-process.md#field-process-args-count) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.args_count](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-args-count)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-process-command-line$$$[process.command_line](/reference/ecs-process.md#field-process-command-line) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.command_line](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-command-line)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-process-executable$$$[process.executable](/reference/ecs-process.md#field-process-executable) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [process.executable.path](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-executable-path)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| process.real_user.id | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.real_user.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-real-user-id)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| process.saved_user.id | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.saved_user.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-saved-user-id)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| process.user.id | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.user.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-user-id)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-process-interactive$$$[process.interactive](/reference/ecs-process.md#field-process-interactive) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.interactive](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-interactive)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| process.real_user.name | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.real_user.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-real-user-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| process.saved_user.name | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.saved_user.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-saved-user-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| process.user.name | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.user.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-user-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| process.group_leader.pid | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.group_leader.pid](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-group-leader-pid)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-process-pid$$$[process.pid](/reference/ecs-process.md#field-process-pid) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.pid](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-pid)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| process.session_leader.pid | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.session_leader.pid](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-session-leader-pid)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-process-title$$$[process.title](/reference/ecs-process.md#field-process-title) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.title](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-title)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-process-uptime$$$[process.uptime](/reference/ecs-process.md#field-process-uptime) | ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | [process.uptime](https://github.com/search?q=repo%3Aopen-telemetry%2Fsemantic-conventions+%22%3C%21--+semconv+metric.process.uptime+--%3E%22&type=code)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-process-vpid$$$[process.vpid](/reference/ecs-process.md#field-process-vpid) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.vpid](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-vpid)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-process-working-directory$$$[process.working_directory](/reference/ecs-process.md#field-process-working-directory) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [process.working_directory](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process/#process-working-directory)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-related$$$ | +| **Related Fields** | +| $$$otel-mapping-for-related-hash$$$[related.hash](/reference/ecs-related.md#field-related-hash) | ![relation](https://img.shields.io/badge/n%2Fa-f2f4fb?style=flat "not-applicable") | Not applicable.
| | +| $$$otel-mapping-for-related-hosts$$$[related.hosts](/reference/ecs-related.md#field-related-hosts) | ![relation](https://img.shields.io/badge/n%2Fa-f2f4fb?style=flat "not-applicable") | Not applicable.
| | +| $$$otel-mapping-for-related-ip$$$[related.ip](/reference/ecs-related.md#field-related-ip) | ![relation](https://img.shields.io/badge/n%2Fa-f2f4fb?style=flat "not-applicable") | Not applicable.
| | +| $$$otel-mapping-for-related-user$$$[related.user](/reference/ecs-related.md#field-related-user) | ![relation](https://img.shields.io/badge/n%2Fa-f2f4fb?style=flat "not-applicable") | Not applicable.
| $$$otel-mapping-namespace-server$$$ | +| **Server Fields** | +| $$$otel-mapping-for-server-address$$$[server.address](/reference/ecs-server.md#field-server-address) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [server.address](https://opentelemetry.io/docs/specs/semconv/attributes-registry/server/#server-address)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-server-port$$$[server.port](/reference/ecs-server.md#field-server-port) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [server.port](https://opentelemetry.io/docs/specs/semconv/attributes-registry/server/#server-port)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable")
$$$otel-mapping-namespace-service$$$ | +| **Service Fields** | +| $$$otel-mapping-for-service-environment$$$[service.environment](/reference/ecs-service.md#field-service-environment) [beta] | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [deployment.environment.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/deployment/#deployment-environment-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-service-name$$$[service.name](/reference/ecs-service.md#field-service-name) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [service.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/service/#service-name)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-service-node-name$$$[service.node.name](/reference/ecs-service.md#field-service-node-name) | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | [service.instance.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/service/#service-instance-id)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-service-version$$$[service.version](/reference/ecs-service.md#field-service-version) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [service.version](https://opentelemetry.io/docs/specs/semconv/attributes-registry/service/#service-version)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable")
$$$otel-mapping-namespace-source$$$ | +| **Source Fields** | +| $$$otel-mapping-for-source-address$$$[source.address](/reference/ecs-source.md#field-source-address) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [source.address](https://opentelemetry.io/docs/specs/semconv/attributes-registry/source/#source-address)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-source-port$$$[source.port](/reference/ecs-source.md#field-source-port) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [source.port](https://opentelemetry.io/docs/specs/semconv/attributes-registry/source/#source-port)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-tls$$$ | +| **TLS Fields** | +| $$$otel-mapping-for-tls-cipher$$$[tls.cipher](/reference/ecs-tls.md#field-tls-cipher) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.cipher](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-cipher)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-client-certificate$$$[tls.client.certificate](/reference/ecs-tls.md#field-tls-client-certificate) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.client.certificate](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-client-certificate)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-client-certificate-chain$$$[tls.client.certificate_chain](/reference/ecs-tls.md#field-tls-client-certificate-chain) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.client.certificate_chain](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-client-certificate-chain)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-client-hash-md5$$$[tls.client.hash.md5](/reference/ecs-tls.md#field-tls-client-hash-md5) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.client.hash.md5](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-client-hash-md5)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-client-hash-sha1$$$[tls.client.hash.sha1](/reference/ecs-tls.md#field-tls-client-hash-sha1) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.client.hash.sha1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-client-hash-sha1)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-client-hash-sha256$$$[tls.client.hash.sha256](/reference/ecs-tls.md#field-tls-client-hash-sha256) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.client.hash.sha256](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-client-hash-sha256)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-client-issuer$$$[tls.client.issuer](/reference/ecs-tls.md#field-tls-client-issuer) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.client.issuer](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-client-issuer)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-client-ja3$$$[tls.client.ja3](/reference/ecs-tls.md#field-tls-client-ja3) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.client.ja3](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-client-ja3)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-client-not-after$$$[tls.client.not_after](/reference/ecs-tls.md#field-tls-client-not-after) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.client.not_after](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-client-not-after)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-client-not-before$$$[tls.client.not_before](/reference/ecs-tls.md#field-tls-client-not-before) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.client.not_before](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-client-not-before)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-client-subject$$$[tls.client.subject](/reference/ecs-tls.md#field-tls-client-subject) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.client.subject](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-client-subject)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-client-supported-ciphers$$$[tls.client.supported_ciphers](/reference/ecs-tls.md#field-tls-client-supported-ciphers) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.client.supported_ciphers](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-client-supported-ciphers)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-curve$$$[tls.curve](/reference/ecs-tls.md#field-tls-curve) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.curve](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-curve)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-established$$$[tls.established](/reference/ecs-tls.md#field-tls-established) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.established](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-established)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-next-protocol$$$[tls.next_protocol](/reference/ecs-tls.md#field-tls-next-protocol) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.next_protocol](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-next-protocol)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-resumed$$$[tls.resumed](/reference/ecs-tls.md#field-tls-resumed) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.resumed](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-resumed)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-server-certificate$$$[tls.server.certificate](/reference/ecs-tls.md#field-tls-server-certificate) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.server.certificate](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-server-certificate)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-server-certificate-chain$$$[tls.server.certificate_chain](/reference/ecs-tls.md#field-tls-server-certificate-chain) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.server.certificate_chain](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-server-certificate-chain)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-server-hash-md5$$$[tls.server.hash.md5](/reference/ecs-tls.md#field-tls-server-hash-md5) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.server.hash.md5](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-server-hash-md5)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-server-hash-sha1$$$[tls.server.hash.sha1](/reference/ecs-tls.md#field-tls-server-hash-sha1) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.server.hash.sha1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-server-hash-sha1)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-server-hash-sha256$$$[tls.server.hash.sha256](/reference/ecs-tls.md#field-tls-server-hash-sha256) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.server.hash.sha256](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-server-hash-sha256)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-server-issuer$$$[tls.server.issuer](/reference/ecs-tls.md#field-tls-server-issuer) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.server.issuer](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-server-issuer)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-server-ja3s$$$[tls.server.ja3s](/reference/ecs-tls.md#field-tls-server-ja3s) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.server.ja3s](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-server-ja3s)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-server-not-after$$$[tls.server.not_after](/reference/ecs-tls.md#field-tls-server-not-after) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.server.not_after](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-server-not-after)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-server-not-before$$$[tls.server.not_before](/reference/ecs-tls.md#field-tls-server-not-before) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.server.not_before](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-server-not-before)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-tls-server-subject$$$[tls.server.subject](/reference/ecs-tls.md#field-tls-server-subject) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [tls.server.subject](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls/#tls-server-subject)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-tracing$$$ | +| **Tracing Fields** | +| $$$otel-mapping-for-span-id$$$[span.id](/reference/ecs-tracing.md#field-span-id) | ![relation](https://img.shields.io/badge/OTLP-ffdcb2?style=flat "otlp") | [span_id](https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-proto+%22+span_id+%22&type=code)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-trace-id$$$[trace.id](/reference/ecs-tracing.md#field-trace-id) | ![relation](https://img.shields.io/badge/OTLP-ffdcb2?style=flat "otlp") | [trace_id](https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-proto+%22+trace_id+%22&type=code)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-transaction-id$$$[transaction.id](/reference/ecs-tracing.md#field-transaction-id) | ![relation](https://img.shields.io/badge/n%2Fa-f2f4fb?style=flat "not-applicable") | Not applicable.
| $$$otel-mapping-namespace-url$$$ | +| **URL Fields** | +| $$$otel-mapping-for-url-domain$$$[url.domain](/reference/ecs-url.md#field-url-domain) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [url.domain](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url/#url-domain)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-url-extension$$$[url.extension](/reference/ecs-url.md#field-url-extension) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [url.extension](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url/#url-extension)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-url-fragment$$$[url.fragment](/reference/ecs-url.md#field-url-fragment) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [url.fragment](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url/#url-fragment)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-url-full$$$[url.full](/reference/ecs-url.md#field-url-full) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [url.full](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url/#url-full)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-url-original$$$[url.original](/reference/ecs-url.md#field-url-original) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [url.original](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url/#url-original)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-url-path$$$[url.path](/reference/ecs-url.md#field-url-path) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [url.path](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url/#url-path)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-url-port$$$[url.port](/reference/ecs-url.md#field-url-port) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [url.port](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url/#url-port)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-url-query$$$[url.query](/reference/ecs-url.md#field-url-query) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [url.query](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url/#url-query)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-url-registered-domain$$$[url.registered_domain](/reference/ecs-url.md#field-url-registered-domain) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [url.registered_domain](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url/#url-registered-domain)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-url-scheme$$$[url.scheme](/reference/ecs-url.md#field-url-scheme) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [url.scheme](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url/#url-scheme)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-url-subdomain$$$[url.subdomain](/reference/ecs-url.md#field-url-subdomain) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [url.subdomain](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url/#url-subdomain)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-url-top-level-domain$$$[url.top_level_domain](/reference/ecs-url.md#field-url-top-level-domain) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [url.top_level_domain](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url/#url-top-level-domain)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-user$$$ | +| **User Fields** | +| $$$otel-mapping-for-user-email$$$[user.email](/reference/ecs-user.md#field-user-email) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [user.email](https://opentelemetry.io/docs/specs/semconv/attributes-registry/user/#user-email)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-user-full-name$$$[user.full_name](/reference/ecs-user.md#field-user-full-name) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [user.full_name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/user/#user-full-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-user-hash$$$[user.hash](/reference/ecs-user.md#field-user-hash) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [user.hash](https://opentelemetry.io/docs/specs/semconv/attributes-registry/user/#user-hash)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-user-id$$$[user.id](/reference/ecs-user.md#field-user-id) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [user.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/user/#user-id)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-user-name$$$[user.name](/reference/ecs-user.md#field-user-name) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [user.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/user/#user-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-user-roles$$$[user.roles](/reference/ecs-user.md#field-user-roles) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [user.roles](https://opentelemetry.io/docs/specs/semconv/attributes-registry/user/#user-roles)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental")
$$$otel-mapping-namespace-user_agent$$$ | +| **User agent Fields** | +| $$$otel-mapping-for-user-agent-name$$$[user_agent.name](/reference/ecs-user_agent.md#field-user-agent-name) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [user_agent.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/user_agent/#user-agent-name)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | +| $$$otel-mapping-for-user-agent-original$$$[user_agent.original](/reference/ecs-user_agent.md#field-user-agent-original) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [user_agent.original](https://opentelemetry.io/docs/specs/semconv/attributes-registry/user_agent/#user-agent-original)
| ![stable](https://img.shields.io/badge/✔-93c93e?style=flat "stable") | +| $$$otel-mapping-for-user-agent-version$$$[user_agent.version](/reference/ecs-user_agent.md#field-user-agent-version) | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | [user_agent.version](https://opentelemetry.io/docs/specs/semconv/attributes-registry/user_agent/#user-agent-version)
| ![experimental](https://img.shields.io/badge/✘-fed10c?style=flat "experimental") | diff --git a/docs/reference/ecs-otel-alignment-overview.md b/docs/reference/ecs-otel-alignment-overview.md new file mode 100644 index 000000000..85df920fe --- /dev/null +++ b/docs/reference/ecs-otel-alignment-overview.md @@ -0,0 +1,104 @@ +# OTel Alignment Overview [ecs-otel-alignment-overview] + +The following table summarizes the alignment status by namespaces between ECS in version `9.0.0-dev` and OpenTelemetry semantic conventions in version `1.29.0`. + +| | | +| --- | --- | +| | Number of Fields / Attributes | +| Namespace | ECS | OTel | ![relation](https://img.shields.io/badge/match-93c93e?style=flat "match") | ![relation](https://img.shields.io/badge/equivalent-1ba9f5?style=flat "equivalent") | ![relation](https://img.shields.io/badge/related-efc20d?style=flat "related") | ![relation](https://img.shields.io/badge/conflict-910000?style=flat "conflict") | ![relation](https://img.shields.io/badge/metric-cb00cb?style=flat "metric") | ![relation](https://img.shields.io/badge/OTLP-ffdcb2?style=flat "OTLP") | ![relation](https://img.shields.io/badge/n%2Fa-f2f4fb?style=flat "na") | +| Agent | [6](/reference/ecs-agent.md) | · | · | · | · | · | · | · | · | +| Android | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/android) | · | · | · | · | · | · | | +| artifact | · | [7](https://opentelemetry.io/docs/specs/semconv/attributes-registry/artifact) | · | · | · | · | · | · | | +| Autonomous System | [2](/reference/ecs-as.md) | · | · | · | · | · | · | · | · | +| ASP.NET Core | · | [7](https://opentelemetry.io/docs/specs/semconv/attributes-registry/aspnetcore) | · | · | · | · | · | · | | +| General AWS | · | [42](https://opentelemetry.io/docs/specs/semconv/attributes-registry/aws) | · | · | · | · | · | · | | +| az | · | [2](https://opentelemetry.io/docs/specs/semconv/attributes-registry/az) | · | · | · | · | · | · | | +| Base | [4](/reference/ecs-base.md) | · | · | · | 2 | · | · | 4 | · | +| Browser | · | [4](https://opentelemetry.io/docs/specs/semconv/attributes-registry/browser) | · | · | · | · | · | · | | +| cicd | · | [6](https://opentelemetry.io/docs/specs/semconv/attributes-registry/cicd) | · | · | · | · | · | · | | +| Client | [12](/reference/ecs-client.md) | [2](https://opentelemetry.io/docs/specs/semconv/attributes-registry/client) | 2 | · | · | · | · | · | · | +| Cloud | [11](/reference/ecs-cloud.md) | [6](https://opentelemetry.io/docs/specs/semconv/attributes-registry/cloud) | 4 | 1 | · | · | · | · | · | +| CloudEvents | · | [5](https://opentelemetry.io/docs/specs/semconv/attributes-registry/cloudevents) | · | · | · | · | · | · | | +| cloudfoundry | · | [11](https://opentelemetry.io/docs/specs/semconv/attributes-registry/cloudfoundry) | · | · | · | · | · | · | | +| Code | · | [6](https://opentelemetry.io/docs/specs/semconv/attributes-registry/code) | · | · | · | · | · | · | | +| Code Signature | [10](/reference/ecs-code_signature.md) | · | · | · | · | · | · | · | · | +| Container | [14](/reference/ecs-container.md) | [13](https://opentelemetry.io/docs/specs/semconv/attributes-registry/container) | 4 | 2 | 1 | · | 2 | · | · | +| CPU | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/cpu) | · | · | · | · | · | · | | +| Data Stream | [3](/reference/ecs-data_stream.md) | · | · | · | · | · | · | · | 3 | +| General Database | · | [27](https://opentelemetry.io/docs/specs/semconv/attributes-registry/db) | · | · | · | · | · | · | | +| Deployment | · | [4](https://opentelemetry.io/docs/specs/semconv/attributes-registry/deployment) | · | · | · | · | · | · | | +| Destination | [12](/reference/ecs-destination.md) | [2](https://opentelemetry.io/docs/specs/semconv/attributes-registry/destination) | 2 | · | · | · | · | · | · | +| Device | [5](/reference/ecs-device.md) | [4](https://opentelemetry.io/docs/specs/semconv/attributes-registry/device) | 4 | · | · | · | · | · | · | +| Disk | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/disk) | · | · | · | · | · | · | | +| DLL | [2](/reference/ecs-dll.md) | · | · | · | · | · | · | · | · | +| DNS | [18](/reference/ecs-dns.md) | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/dns) | 1 | · | · | · | · | · | · | +| .NET | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/dotnet) | · | · | · | · | · | · | | +| ECS | [1](/reference/ecs-ecs.md) | · | · | · | · | · | · | · | 1 | +| ELF Header | [38](/reference/ecs-elf.md) | · | · | · | · | · | · | · | · | +| Email | [19](/reference/ecs-email.md) | · | · | · | · | · | · | · | · | +| Error | [5](/reference/ecs-error.md) | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/error) | 1 | 2 | · | · | · | · | · | +| Event | [26](/reference/ecs-event.md) | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/event) | · | · | · | · | · | · | · | +| Exception | · | [4](https://opentelemetry.io/docs/specs/semconv/attributes-registry/exception) | · | · | · | · | · | · | | +| FaaS | [7](/reference/ecs-faas.md) | [16](https://opentelemetry.io/docs/specs/semconv/attributes-registry/faas) | 3 | 2 | · | · | · | · | · | +| Feature Flag | · | [8](https://opentelemetry.io/docs/specs/semconv/attributes-registry/feature-flag) | · | · | · | · | · | · | | +| File | [22](/reference/ecs-file.md) | [18](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file) | 11 | 7 | · | · | · | · | · | +| GCP Client | · | [5](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gcp) | · | · | · | · | · | · | | +| GenAI | · | [22](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai) | · | · | · | · | · | · | | +| Geo | [11](/reference/ecs-geo.md) | [7](https://opentelemetry.io/docs/specs/semconv/attributes-registry/geo) | 1 | 4 | 2 | · | · | · | · | +| Go | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/go) | · | · | · | · | · | · | | +| GraphQL | · | [3](https://opentelemetry.io/docs/specs/semconv/attributes-registry/graphql) | · | · | · | · | · | · | | +| Group | [3](/reference/ecs-group.md) | · | · | · | · | · | · | · | · | +| Hash | [8](/reference/ecs-hash.md) | · | · | · | · | · | · | · | · | +| Heroku | · | [3](https://opentelemetry.io/docs/specs/semconv/attributes-registry/heroku) | · | · | · | · | · | · | | +| Host | [18](/reference/ecs-host.md) | [15](https://opentelemetry.io/docs/specs/semconv/attributes-registry/host) | 5 | 1 | · | · | 8 | · | · | +| HTTP | [13](/reference/ecs-http.md) | [12](https://opentelemetry.io/docs/specs/semconv/attributes-registry/http) | 1 | 5 | 2 | 1 | · | · | · | +| hw | · | [5](https://opentelemetry.io/docs/specs/semconv/attributes-registry/hw) | · | · | · | · | · | · | | +| Interface | [3](/reference/ecs-interface.md) | · | · | · | · | · | · | · | · | +| Java Virtual Machine (JVM) | · | [7](https://opentelemetry.io/docs/specs/semconv/attributes-registry/jvm) | · | · | · | · | · | · | | +| Kubernetes | · | [26](https://opentelemetry.io/docs/specs/semconv/attributes-registry/k8s) | · | · | · | · | · | · | | +| linux | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/linux) | · | · | · | · | · | · | | +| Log | [18](/reference/ecs-log.md) | [7](https://opentelemetry.io/docs/specs/semconv/attributes-registry/log) | 1 | · | · | · | · | 1 | · | +| Mach-O Header | [16](/reference/ecs-macho.md) | · | · | · | · | · | · | · | · | +| General Messaging | · | [37](https://opentelemetry.io/docs/specs/semconv/attributes-registry/messaging) | · | · | · | · | · | · | | +| Network | [12](/reference/ecs-network.md) | [16](https://opentelemetry.io/docs/specs/semconv/attributes-registry/network) | 2 | 1 | · | · | · | · | · | +| Node.js | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/nodejs) | · | · | · | · | · | · | | +| Observer | [13](/reference/ecs-observer.md) | · | · | · | · | · | · | · | · | +| Open Container Initiative (OCI) | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/oci) | · | · | · | · | · | · | | +| OpenTracing | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/opentracing) | · | · | · | · | · | · | | +| Orchestrator | [15](/reference/ecs-orchestrator.md) | · | · | · | · | · | · | · | · | +| Organization | [2](/reference/ecs-organization.md) | · | · | · | · | · | · | · | · | +| Operating System | [7](/reference/ecs-os.md) | [5](https://opentelemetry.io/docs/specs/semconv/attributes-registry/os) | 2 | 1 | · | 1 | · | · | · | +| OTel | · | [4](https://opentelemetry.io/docs/specs/semconv/attributes-registry/otel) | · | · | · | · | · | · | | +| Package | [13](/reference/ecs-package.md) | · | · | · | · | · | · | · | · | +| PE Header | [23](/reference/ecs-pe.md) | · | · | · | · | · | · | · | · | +| Peer | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/peer) | · | · | · | · | · | · | | +| Process | [37](/reference/ecs-process.md) | [33](https://opentelemetry.io/docs/specs/semconv/attributes-registry/process) | 15 | 2 | · | · | 1 | · | · | +| profile | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/profile) | · | · | · | · | · | · | | +| Registry | [7](/reference/ecs-registry.md) | · | · | · | · | · | · | · | · | +| Related | [4](/reference/ecs-related.md) | · | · | · | · | · | · | · | 4 | +| Risk information | [6](/reference/ecs-risk.md) | · | · | · | · | · | · | · | · | +| Remote Procedure Call (RPC) | · | [17](https://opentelemetry.io/docs/specs/semconv/attributes-registry/rpc) | · | · | · | · | · | · | | +| Rule | [10](/reference/ecs-rule.md) | · | · | · | · | · | · | · | · | +| Server | [12](/reference/ecs-server.md) | [2](https://opentelemetry.io/docs/specs/semconv/attributes-registry/server) | 2 | · | · | · | · | · | · | +| Service | [11](/reference/ecs-service.md) | [4](https://opentelemetry.io/docs/specs/semconv/attributes-registry/service) | 2 | 2 | · | · | · | · | · | +| Session | · | [2](https://opentelemetry.io/docs/specs/semconv/attributes-registry/session) | · | · | · | · | · | · | | +| SignalR | · | [2](https://opentelemetry.io/docs/specs/semconv/attributes-registry/signalr) | · | · | · | · | · | · | | +| Source | [12](/reference/ecs-source.md) | [2](https://opentelemetry.io/docs/specs/semconv/attributes-registry/source) | 2 | · | · | · | · | · | · | +| General System | · | [12](https://opentelemetry.io/docs/specs/semconv/attributes-registry/system) | · | · | · | · | · | · | | +| Telemetry | · | [5](https://opentelemetry.io/docs/specs/semconv/attributes-registry/telemetry) | · | · | · | · | · | · | | +| test | · | [4](https://opentelemetry.io/docs/specs/semconv/attributes-registry/test) | · | · | · | · | · | · | | +| Thread | · | [2](https://opentelemetry.io/docs/specs/semconv/attributes-registry/thread) | · | · | · | · | · | · | | +| Threat | [65](/reference/ecs-threat.md) | · | · | · | · | · | · | · | · | +| TLS | [29](/reference/ecs-tls.md) | [28](https://opentelemetry.io/docs/specs/semconv/attributes-registry/tls) | 26 | · | · | · | · | · | · | +| Tracing | [3](/reference/ecs-tracing.md) | · | · | · | · | · | · | 2 | 1 | +| URL | [14](/reference/ecs-url.md) | [13](https://opentelemetry.io/docs/specs/semconv/attributes-registry/url) | 12 | · | · | · | · | · | · | +| User | [7](/reference/ecs-user.md) | [6](https://opentelemetry.io/docs/specs/semconv/attributes-registry/user) | 6 | · | · | · | · | · | · | +| User agent | [4](/reference/ecs-user_agent.md) | [4](https://opentelemetry.io/docs/specs/semconv/attributes-registry/user-agent) | 3 | · | · | · | · | · | · | +| V8 JS | · | [2](https://opentelemetry.io/docs/specs/semconv/attributes-registry/v8js) | · | · | · | · | · | · | | +| vcs | · | [13](https://opentelemetry.io/docs/specs/semconv/attributes-registry/vcs) | · | · | · | · | · | · | | +| VLAN | [2](/reference/ecs-vlan.md) | · | · | · | · | · | · | · | · | +| Volume | [16](/reference/ecs-volume.md) | · | · | · | · | · | · | · | · | +| Vulnerability | [13](/reference/ecs-vulnerability.md) | · | · | · | · | · | · | · | · | +| Web Engine | · | [3](https://opentelemetry.io/docs/specs/semconv/attributes-registry/webengine) | · | · | · | · | · | · | | +| x509 Certificate | [24](/reference/ecs-x509.md) | · | · | · | · | · | · | · | · | + diff --git a/docs/reference/toc.yml b/docs/reference/toc.yml index 57a30e87c..91b47681b 100644 --- a/docs/reference/toc.yml +++ b/docs/reference/toc.yml @@ -83,6 +83,10 @@ toc: children: - file: ecs-products-solutions.md - file: ecs-converting.md + - file: ecs-opentelemetry.md + children: + - file: ecs-otel-alignment-overview.md + - file: ecs-otel-alignment-details.md - file: ecs-additional-information.md children: - file: ecs-faq.md