Jaeger

Después de completar esta tarea, comprenderá cómo hacer que su application participe en el trazado con Jaeger, independientemente del lenguaje, framework o plataforma que utilice para construir su application.

Esta tarea utiliza la muestra Bookinfo como la application de ejemplo.

Para aprender cómo Istio maneja el trazado, visite la descripción general de esta tarea.

Antes de empezar

  1. Siga la documentación de Instalación de Jaeger para desplegar Jaeger en su cluster.

  2. Despliegue la application de ejemplo Bookinfo.

Configurar Istio para el trazado distribuido

Configurar un proveedor de extensión

Instale Istio con un proveedor de extensión que haga referencia al service del colector de Jaeger:

$ cat <<EOF > ./tracing.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
    defaultConfig:
      tracing: {} # disable legacy MeshConfig tracing options
    extensionProviders:
    - name: jaeger
      opentelemetry:
        port: 4317
        service: jaeger-collector.istio-system.svc.cluster.local
EOF
$ istioctl install -f ./tracing.yaml --skip-confirmation

Habilitar el trazado

Habilite el trazado aplicando la siguiente configuración:

$ kubectl apply -f - <<EOF
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
  name: mesh-default
  namespace: istio-system
spec:
  tracing:
  - providers:
    - name: jaeger
EOF

Acceder al dashboard

La tarea Acceso Remoto a los Addons de Telemetría detalla cómo configurar el acceso a los addons de Istio a través de un gateway.

Para pruebas (y acceso temporal), también puede usar el reenvío de puertos. Use lo siguiente, asumiendo que ha desplegado Jaeger en el namespace istio-system:

$ istioctl dashboard jaeger

Generar trazas usando la muestra de Bookinfo

  1. Cuando la application Bookinfo esté en funcionamiento, acceda a http://$GATEWAY_URL/productpage una o más veces para generar información de traza.

    Para ver los datos de seguimiento, debes enviar solicitudes a tu servicio. El número de solicitudes depende de la tasa de muestreo de Istio y se puede configurar mediante la API de Telemetría. Con la tasa de muestreo predeterminada del 1%, debes enviar al menos 100 solicitudes antes de que el primer seguimiento sea visible. Para enviar 100 solicitudes al servicio productpage, usa el siguiente comando:

    $ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done
  2. En el panel izquierdo del dashboard, seleccione productpage.default de la lista desplegable Service y haga clic en Find Traces:

    Dashboard de Trazado
    Dashboard de Trazado
  3. Haga clic en la traza más reciente en la parte superior para ver los detalles correspondientes a la última solicitud a /productpage:

    Vista Detallada de la Traza
    Vista Detallada de la Traza
  4. La traza se compone de un conjunto de spans, donde cada span corresponde a un service de Bookinfo, invocado durante la ejecución de una solicitud a /productpage, o a un componente interno de Istio, por ejemplo: istio-ingressgateway.

Limpieza

  1. Elimine cualquier proceso istioctl que aún pueda estar ejecutándose usando control-C o:

    $ killall istioctl
  2. Si no planea explorar ninguna tarea de seguimiento, consulte las instrucciones de limpieza de Bookinfo para apagar la application.

¿Fue útil esta información?
¿Tienes alguna sugerencia para mejorar?

¡Gracias por tus comentarios!