Convenciones semánticas de OpenTelemetry y convenciones de Datadog

OpenTelemetry utiliza convenciones semánticas que especifican nombres para diferentes tipos de datos. Esta página enumera las asignaciones de las convenciones semánticas de OpenTelemetry a las convenciones semánticas de Datadog.

Convención de OpenTelemetryConvención de DatadogType
deployment.environment.name *envUnified service tagging
service.nameserviceUnified service tagging
service.versionversionUnified service tagging
container.idcontainer_idContainers
container.namecontainer_nameContainers
container.image.nameimage_nameContainers
container.image.tagimage_tagContainers
cloud.providercloud_providerCloud
cloud.regionregionCloud
cloud.availability_zonezoneCloud
aws.ecs.task.familytask_familyECS
aws.ecs.task.arntask_arnECS
aws.ecs.cluster.arnecs_cluster_nameECS
aws.ecs.task.revisiontask_versionECS
aws.ecs.container.arnecs_container_nameECS
k8s.container.namekube_container_nameKubernetes
k8s.cluster.namekube_cluster_nameKubernetes
k8s.deployment.namekube_deploymentKubernetes
k8s.replicaset.namekube_replica_setKubernetes
k8s.statefulset.namekube_stateful_setKubernetes
k8s.daemonset.namekube_daemon_setKubernetes
k8s.job.namekube_jobKubernetes
k8s.cronjob.namekube_cronjobKubernetes
k8s.namespace.namekube_namespaceKubernetes
k8s.pod.namepod_nameKubernetes
app.kubernetes.io/namekube_app_nameKubernetes labels
app.kubernetes.io/instancekube_app_instanceKubernetes labels
app.kubernetes.io/versionkube_app_versionKubernetes labels
app.kubernetes.io/componentkube_app_componentKubernetes labels
app.kubernetes.io/part-ofkube_app_part_ofKubernetes labels
app.kubernetes.io/managed-bykube_app_managed_byKubernetes labels
client.addresshttp.client_ipHTTP
http.response.body.sizehttp.response.content_lengthHTTP
http.response.header.<header-name>http.response.headers.<header-name>HTTP
http.response.status_codehttp.status_codeHTTP
http.request.body.sizehttp.request.content_lengthHTTP
http.request.header.referrerhttp.referrerHTTP
http.request.header.<header-name>http.request.headers.<header-name>HTTP
http.request.methodhttp.methodHTTP
http.routehttp.routeHTTP
network.protocol.versionhttp.versionHTTP
server.addresshttp.server_nameHTTP
url.fullhttp.urlHTTP
user_agent.originalhttp.useragentHTTP

*Reemplaza la convención deployment.environment obsoleta. Requiere Datadog Agent 7.58.0+, Datadog Exporter v0.110.0+ o la ingesta OTLP de Datadog.

Asignación de tipo de tramo

Datadog tiene una convención específica del proveedor de “tipo de tramo” representada por el atributo span.type.

Según los atributos incluidos en su tramo, el Datadog Agent y los componentes de OpenTelemetry de Datadog intentan inferir el tipo de tramo adecuado para una mejor compatibilidad con otros servicios de Datadog. También puede establecer explícitamente el atributo span.type en cualquier tramo determinado para anular esta lógica mediante un procesador de attributes o transform, así como estableciendo los valores de configuración adecuados en los SDK de OpenTelemetry.

Asignar atributo de tramo de OpenTelemetry al tipo de tramo de Datadog

La siguiente tabla muestra la lógica de asignación de tipos de tramo. La tabla enumera las asignaciones en orden de precedencia.

#Atributo de tramospan.type de Datadog
1span.typespan.type valor del atributo
2Tipo de tramo de servidorweb
3Tipo de tramo de clientever 3a/b
3aTipo de tramo de cliente, db.system atributo no encontradohttp
3bTipo de tramo de cliente, db.system atributo encontradoConsulte la tabla a continuación Asignación del tipo de sistema de base de datos de OpenTelemetry al tipo de tramo de Datadog
4Ninguna de las condiciones anteriores se cumpliócustom

Asignación del tipo de sistema de base de datos de OpenTelemetry al tipo de tramo de Datadog

En la tabla anterior, si un tramo es de tipo “cliente” y contiene el atributo db.system, se aplica la siguiente asignación para el tipo de tramo en Datadog. Establecer un atributo span.type en su tramo anula esta lógica.

db.systemDatadog span.type
DBMS de tipo SQL (listado a continuación)sql
adabassql
cachesql
clickhousesql
cloudscapesql
cockroachdbsql
coldfusionsql
db2sql
derbysql
edbsql
firebirdsql
firstsqlsql
filemakersql
hanadbsql
h2sql
hsqldbsql
informixsql
ingressql
instantdbsql
interbasesql
mariadbsql
maxdbsql
mssqlsql
mysqlsql
netezzasql
oraclesql
other_sqlsql
pervasivesql
pointbasesql
postgresqlsql
progresssql
redshiftsql
sqlitesql
sybasesql
teradatasql
verticasql
Otros tipos de BDver a continuación
cassandracassandra
couchbasedb
couchdbdb
cosmosdbdb
dynamodbdb
elasticsearchelasticsearch
geodedb
hivedb
memcachedmemcached
mongodbmongodb
opensearchopensearch
redisredis
cualquier valor db.system no listado anteriormentedb

Asignación de atributos de métricas

De forma predeterminada, Datadog asigna solo los atributos de recursos de OpenTelemetry enumerados en la tabla de convenciones semánticas anterior a las etiquetas de métricas de Datadog.

Para adjuntar todos los atributos de recursos de sus cargas útiles de métricas OTLP como etiquetas, habilite la configuración metrics::resource_attributes_as_tags: Cuando se habilita, esta configuración agrega todos los pares de key:value de atributos de recursos como etiquetas de Datadog, además de las etiquetas de convenciones semánticas asignadas que se muestran en la tabla anterior.

Nota: Habilitar esta opción puede aumentar significativamente la cardinalidad de las etiquetas. Para verificar qué etiquetas se están agregando, inspeccione sus métricas en el Metrics Explorer.

exporters:
    datadog:
        # Other configuration goes here...
        metrics:
            # Add all resource attributes as tags for metrics
            resource_attributes_as_tags: true
otlp_config:
    # Other configuration goes here...
    metrics:
        # Add all resource attributes as tags for metrics
        resource_attributes_as_tags: true

Habilitar esta opción agrega tanto los atributos de recursos de OpenTelemetry como las convenciones semánticas de Datadog a las etiquetas de métricas.

Lecturas adicionales