Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado.

Configuración del exportador

Todos los SDK, independientemente del lenguaje, utilizan la misma configuración básica para definir el nombre del servicio de Open Telemetry y el punto final del exportador (es decir, donde se envía la telemetría).

Estos se pueden configurar estableciendo variables de entorno para tu aplicación instrumentada.

En Kubernetes, establece estas variables de entorno en el manifiesto de tu carga de trabajo (reemplaza <the-service-name> con un nombre para el servicio de tu aplicación):

...
spec:
  containers:
  - env:
    - name: OTEL_EXPORTER_OTLP_ENDPOINT
      value: http://opentelemetry-collector.open-telemetry.svc.cluster.local:4317
    - name: OTEL_SERVICE_NAME
      value: <the-service-name>
    - name: OTEL_EXPORTER_OTLP_PROTOCOL
      value: grpc
...

El punto final especificado en el ejemplo asume que el colector fue instalado utilizando los valores predeterminados de la guía de instalación. Utiliza el puerto 4317, que utiliza la versión gRPC del protocolo OTLP. Algunas instrumentaciones solo admiten HTTP, en ese caso, utiliza el puerto 4318.

El nombre del servicio también se puede derivar de las etiquetas de Kubernetes que pueden ya estar presentes. Por ejemplo, así:

spec:
  containers:
  - env:
    - name: OTEL_SERVICE_NAME
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: metadata.labels['app.kubernetes.io/component']

gRPC vs HTTP

OTLP, el Protocolo de Open Telemetry, admite gRPC y protobuf sobre HTTP. Algunos SDK también admiten JSON sobre HTTP. En la sección anterior, el protocolo del exportador se establece en gRPC, esto generalmente ofrece el mejor rendimiento y es el predeterminado para muchos SDK. Sin embargo, en algunos casos puede ser problemático:

  • Algunos firewalls no están configurados para manejar gRPC

  • Los proxies inversos y los balanceadores de carga pueden no admitir gRPC sin configuración adicional.

  • Las conexiones de larga duración de gRPC pueden causar problemas al balancear la carga.

Para cambiar a HTTP en lugar de gRPC, cambia el protocolo a http y utiliza el puerto 4318.

Para resumir, utiliza HTTP en caso de que gRPC presente problemas:

  • grpc`El protocolo utiliza el puerto `4317

  • http`El protocolo utiliza el puerto `4318