Después de configurar la biblioteca de rastreo con tu código, configurar el Agent para recopilar datos de APM y activa la integración Go. También puedes configurar la biblioteca de rastreo como prefieras.

Datadog recomienda utilizar DD_ENV, DD_SERVICE, y DD_VERSION para configurar env, service y version para tus servicios.

Para obtener recomendaciones sobre cómo configurar estas variables de entorno, consulta la documentación sobre etiquetado unificado de servicios. Estas variables están disponibles para las versiones 1.24.0 o posterior del rastreador Go.

También puedes optar por proporcionar env, service y version a través de la API del rastreador:

package main

import (
    "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)

func main() {
    tracer.Start(
        tracer.WithEnv("prod"),
        tracer.WithService("test-go"),
        tracer.WithServiceVersion("abc123"),
    )

    // Cuando el rastreador está detenido, descargará todo lo que contiene en el Datadog Agent antes de cerrarse.
    // Asegúrate de conservar esta línea en tu función principal.
    defer tracer.Stop()
}

El rastreador Go admite variables de entorno y funciones adicionales en su configuración. Consulta todas las opciones disponibles en la documentación de configuración.

DD_VERSION
Define la versión de la aplicación, por ejemplo: 1.2.3, 6c44da20, 2020.02.13
DD_SERVICE
El nombre de servicio que se utilizará para esta aplicación.
DD_ENV
Define el entorno de la aplicación, por ejemplo: producción, pre-producción, staging.
DD_AGENT_HOST
**Por defecto: localhost
Anula la dirección del host por defecto del Trace Agent para el envío de trazas.
DD_TRACE_AGENT_PORT
**Por defecto: 8126
Anula el puerto por defecto del Trace Agent para el envío de trazas de Datadog. Si la configuración del Agent configura receiver_port o DD_APM_RECEIVER_PORT con un valor distinto al predeterminado 8126, la configuración de la biblioteca DD_DOGSTATSD_PORT debe coincidir con él.
DD_DOGSTATSD_PORT
**Por defecto: 8125
Anula el puerto por defecto del Trace Agent para el envío de métricas de DogStatsD. Si la configuración del Agent configura dogstatsd_port o DD_DOGSTATSD_PORT con un valor distinto al predeterminado 8125, la configuración de la biblioteca DD_DOGSTATSD_PORT debe coincidir con él.
DD_TRACE_SAMPLING_RULES
Por defecto: nil
Una matriz JSON de objetos. Cada objeto debe tener una "sample_rate". Los campos "name","service", "resource" y "tags" son opcionales. El valor de "sample_rate" debe estar comprendido entre 0.0 y 1.0 (inclusive). Las reglas se aplican en el orden configurado para determinar la frecuencia de muestreo de la traza.
La compatibilidad con el muestreo por recurso y etiquetas (tags) está en fase beta.

Para obtener más información, consulta Mecanismos de consumo.
Ejemplos:

  • Configura la frecuencia de muestreo en 20%: '[{"sample_rate": 0.2}]'.
  • Configura la frecuencia de muestreo en 10% para servicios que comienzan por ‘a’ y para el nombre del tramo (span) que comienza por ‘b’, y configura la frecuencia de muestreo en 20% para todos los demás servicios: '[{"service": "a.*", "name": "b", "sample_rate": 0.1}, {"sample_rate": 0.2}]'.
  • Configura la frecuencia de muestreo en 40% para servicios que tienen el nombre de recursoHTTP GET: '[{"resource": "HTTP GET", "sample_rate": 0.4}]'.
  • Configura la frecuencia de muestreo en 100% para servicios que tienen una etiqueta tier con el valor premium: '[{"tags": {"tier":"premium"}, "sample_rate": 1}]'.
DD_TRACE_SAMPLE_RATE
Por defecto: nil
Habilita el control de la frecuencia de consumo.
DD_SPAN_SAMPLING_RULES
Por defecto: nil
Una matriz JSON de objetos. Cada objeto debe tener un "sample_rate". Los campos "name","service", "resource" y "tags" son opcionales. Se aplican reglas en el orden configurado para determinar la frecuencia de muestreo de tramos. El valor de sample_rate debe estar comprendido entre 0,0 y 1,0 (inclusive).
La compatibilidad con el muestreo por recurso y etiquetas está en fase beta.

Para obtener más información, consulta Mecanismos de consumo.
Ejemplos:

  • Define la frecuencia de muestreo de tramos en 50% para el nombre de servicio my-service y de operación http.request, hasta 50 trazas por segundo: '[{"service": "my-service", "name": "http.request", "sample_rate":0.5, "max_per_second": 50}]'
  • Configura la frecuencia de muestreo en 100% para servicios que tienen una etiqueta priority con el valor high: '[{"tags": {"priority":"high"}, "sample_rate": 1}]'.
DD_TRACE_RATE_LIMIT
Número máximo de tramos a muestrear por segundo, por cada proceso Go. Por defecto es 100 cuando DD_TRACE_SAMPLE_RATE está configurado. De lo contrario, delega la limitación de frecuencias al Datadog Agent .
DD_TAGS
Por defecto: []
Una lista de etiquetas por defecto que se añadirá a cada tramo y perfil. Las etiquetas pueden separarse con comas o espacios, por ejemplo: layer:api,team:intake,key:value o layer:api team:intake key:value.
DD_TRACE_STARTUP_LOGS
**Por defecto: true
Habilita la configuración del inicio y el log de diagnóstico.

DD_TRACE_DEBUG Por defecto: false
Habilita el registro de depuración en el rastreador.

DD_TRACE_ENABLED
**Por defecto: true
Habilita la instrumentación de marcos web y bibliotecas. Cuando es falso, el código de la aplicación no genera trazas.
DD_SERVICE_MAPPING
**Por defecto: null
Cambia dinámicamente el nombre de los servicios mediante configuración. Los servicios pueden separarse por comas o espacios, por ejemplo: mysql:mysql-service-name,postgres:postgres-service-name, mysql:mysql-service-name postgres:postgres-service-name.

DD_INSTRUMENTATION_TELEMETRY_ENABLED Por defecto: true
Datadog puede recopilar información de entorno y de diagnóstico sobre tu sistema para mejorar el producto. Cuando es falso, no se recopilan estos datos de telemetría.

DD_TRACE_PARTIAL_FLUSH_ENABLED
Por defecto: false
Permite la descarga incremental de trazas de gran tamaño al Datadog Agent, reduciendo la posibilidad de rechazo por parte del Agent. Utilízala sólo cuando tengas trazas de mucha antigüedad o trazas con muchos tramos. Los valores válidos son true o false. Añadido en la versión 1.54.0. Sólo es compatible con el Datadog Agent v7.26.0 o posterior.
DD_TRACE_PARTIAL_FLUSH_MIN_SPANS
Por defecto: 1000
Número de tramos dentro de una traza que puede ser parcialmente descargada en el Datadog Agent . DD_TRACE_PARTIAL_FLUSH_ENABLED debe ser true para que ocurra la descarga parcial. Añadido en la versión 1.54.0. Sólo es compatible con el Datadog Agent v7.26.0 o posterior.
DD_TRACE_CLIENT_IP_ENABLED
**Por defecto: false
Habilita la recopilación de IP de clientes a partir de cabeceras IP relevantes en tramos de solicitudes HTTP. Añadido en la versión 1.47.0
DD_TRACE_HEADER_TAGS
**Por defecto: null
Lista de cabeceras HTTP separadas por comas que se utilizarán como etiquetas de tramos. También puedes especificar un campo “asignado” para renombrar una cabecera de solicitud como una etiqueta. La configuración se puede establecer globalmente con esta variable de entorno, o a nivel de la integración, utilizando las opciones especificadas en la documentación de Go. Esta función es compatible con cabeceras HTTP1.
Ejemplos:
  • Captura la cabecera de solicitud my-header: "DD_TRACE_HEADER_TAGS=my-header"
  • Captura la cabecera de solicitud my-header-1 y my-header-2: "DD_TRACE_HEADER_TAGS=my-header1,my-header-2"
  • Captura la cabecera de solicitud my-header-1 y renómbrala my-tag: "DD_TRACE_HEADER_TAGS=my-header:my-tag"
DD_RUNTIME_METRICS_ENABLED
**Por defecto: false
Habilita la recopilación de métricas de tiempo de ejecución. Añadido en la versión 1.26.0.
DD_TRACE_PROPAGATION_STYLE
**Por defecto: datadog,tracecontext
Configura el estilo de inyección y extracción de cabeceras de trazas. Para obtener más información, consulta Propagación del contexto de rastreo Go.

Configuración del nombre del entorno APM

El nombre del entorno APM puede configurarse en el Agent o utilizando la opción de inicio WithEnv del rastreador.

Leer más