Esta función está en vista previa. Si tienes algún comentario, ponte en contacto con el soporte de Datadog.

Información general

El exportador de Datadog admite el envío de información del sistema sobre tus hosts a Datadog, que puedes ver en la lista de infraestructura. Puedes enviar esta información en OTLP a través del campo ‘Resource’ como parte de cualquiera de las señales existentes. Esto es compatible con cualquier patrón de despliegue incluidos despliegues de gateway.

Solo los metadatos enviados a través del exportador de Datadog rellenarán la Infrastructure Host List. Los metadatos enviados mediante el endpoint de ingesta directa de OpenTelemetry Protocol no son compatibles con esta función.

Datadog utiliza convenciones semánticas de OpenTelemetry para reconocer la información del sistema sobre tus hosts. Sigue las instrucciones de configuración para métricas de host para enviar los atributos necesarios de métricas y recursos a Datadog. También puedes enviar manualmente esta información de la forma que mejor se adapte a tu infraestructura.

Elección de la función

Para utilizar esta función, establece el atributo de recurso datadog.host.use_as_metadata en true en todas las cargas útiles de OpenTelemetry Protocol que contengan información sobre hosts.

Los recursos rellenan la información de la lista de infraestructura si tienen un atributo que identifica hosts y el atributo datadog.host.use_as_metadata establecido en true.

Para declarar explícitamente qué recursos utilizar para los metadatos, añade el atributo de recurso booleano datadog.host.use_as_metadata a todos los recursos que tengan información relevante de host.

Por ejemplo, para establecer esto para todos los recursos en métricas, trazas (traces) y logs, utiliza el procesador de transformación con la siguiente configuración:

processors:
  transform:
    metric_statements:
      - context: resource
        statements:
          - set(attributes["datadog.host.use_as_metadata"], true)
    trace_statements:
      - context: resource
        statements:
          - set(attributes["datadog.host.use_as_metadata"], true)
    log_statements:
      - context: resource
        statements:
          - set(attributes["datadog.host.use_as_metadata"], true)

Añade este procesador a la lista processors de todos tus pipelines.

Debes etiquetar explícitamente todos tus recursos con un atributo que identifica hosts. Esto lo hace por defecto la configuración recomendada para métricas de host.

Convenciones admitidas

El exportador de Datadog admite tanto convenciones semánticas de recurso a nivel de atributo como convenciones semánticas de sistema a nivel de métricas. Las convenciones semánticas de atributos de recursos compatibles se encuentran principalmente en el espacio de nombres host. y el espacio de nombres os.. Todas las convenciones semánticas de sistema a nivel de métricas compatibles están en el espacio de nombres system..

Convenciones generales del sistema

Convención semánticaTipoCampo en la aplicación
Varios atributos que identifican hostsAtributo de recursoNombre de host
os.descriptionAtributo de recursoSistema operativo

Convenciones de la CPU

Convención semánticaTipoCampo en la aplicación
host.cpu.vendor.idAtributo de recursoID de proveedor
host.cpu.model.nameAtributo de recursoNombre del modelo
host.cpu.cache.l2.sizeAtributo de recursoTamaño de la caché
host.cpu.familyAtributo de recursoFamilia
host.cpu.model.idAtributo de recursoModelo
host.cpu.steppingAtributo de recursoPasos
system.cpu.logical.countMétrica del sistemaProcesadores lógicos
system.cpu.physical.countMétrica del sistemaNúcleos
system.cpu.frequencyMétrica del sistemaMHz

Convenciones de red

Convención semánticaTipoCampo en la aplicación
host.ipAtributo de recursoDirección IP y dirección IPv6
host.macAtributo de recursoDirección Mac

Recopilación de estas convenciones con el OpenTelemetry Collector

Para recopilar estas convenciones con el OpenTelemetry Collector, usa la configuración recomendada para métricas de host. El receptor de métricas de host recopila todas las métricas, mientras que el procesador de detección de recursos recopila todos los atributos relevantes de los recursos.

Nota: Es necesario añadir estos procesadores y receptores en el Collector que se ejecuta en el host que deseas monitorizar. Un host de gateway no recopila esta información de hosts remotos.

ID canónicos de recursos en la nube

Los identificadores canónicos de recursos en la nube (CCRID) son identificadores de recursos asignados por el proveedor de la nube que identifican de forma exclusiva un recurso en la nube. Una vez añadidos los CCRIDs a los distintos tipos de observabilidad, puedes utilizarlos para vincular de forma coherente los distintos tipos de datos de un determinado recurso en la nube. Puedes añadir CCRIDs en el mismo formato en todos los tipos de recursos en la nube. La adición y adopción generalizada de CCRIDs te da acceso a una variedad de casos de uso entre clientes y equipos internos.

Habilita los CCRIDs para saltar entre recursos y sus métricas, trazas y logs asociados para todos los tipos de recursos, eliminando el cambio de contexto y ofreciéndote una visión integral de tus recursos dentro del mismo proceso.

Para utilizar esta función, establece el atributo de recurso datadog.ccrid en el valor del CCRID en todas las cargas útiles de OpenTelemetry Protocol.

Consulta a continuación la lista de formatos de identificador por nube:

NubeTipo de identificadorEjemplo
AWSARNarn:aws:ec2:us-east-1:123456789012:instance/i-abcdefghi
AzureID de recurso/subscriptions/0b62a232-b8db-4380-9da6-640f7272ed6d/resourcegroups/lfotriggertest/providers/microsoft.web/sites/resources-task-19cb7afdcbbc
GCPNombre de recurso CAI//file.googleapis.com/projects/datadog-sandbox/locations/us-central1/backups/kevin-test-backup
OCIOCIDocid1.bucket.oc1.eu-frankfurt-1.aaaaaaaa5b5d7phlob22x4xin2lopq33ugriqiglek2ecxecrjx2awceb7eq

Cómo formar un CCRID:

  • AWS (Instancia de EC2): arn:aws:ec2:{region}:{accountId}:instance/{instanceId}. Utiliza este comando para recuperar el instanceId:
    ec2metadata --instance-id
    
  • Azure: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
  • GCP: //compute.googleapis.com/projects/{projectID}/zones/{zoneName}/instances/{instanceName}"
  • OCI/Oracle: el CCRID puede obtenerse enviando una solicitud a: http://169.254.169.254/opc/v2/instance/id

Por ejemplo, para establecer un CCRID de AWS para todos los recursos en métricas, trazas y logs, utiliza el procesador de transformación con la siguiente configuración:

processors:
  transform:
    metric_statements:
      - context: resource
        statements:
          - set(attributes["datadog.ccrid"], "arn:aws:ec2:us-east-1:123456789012:instance/i-abcdefghi")
    trace_statements:
      - context: resource
        statements:
          - set(attributes["datadog.ccrid"], "arn:aws:ec2:us-east-1:123456789012:instance/i-abcdefghi")
    log_statements:
      - context: resource
        statements:
          - set(attributes["datadog.ccrid"], "arn:aws:ec2:us-east-1:123456789012:instance/i-abcdefghi")

Las convenciones semánticas de OpenTelemetry también definen el atributo cloud.resource_id, que se puede mapear en la configuración utilizando el procesador de atributos.

Por ejemplo:

processors:
  attributes/example:
    actions:
      - key: datadog.ccrid
        from_attribute: cloud.resource_id
        action: upsert

Referencias adicionales

Más enlaces, artículos y documentación útiles: