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
Siga la documentación de Instalación de Jaeger para desplegar Jaeger en su cluster.
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
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
En el panel izquierdo del dashboard, seleccione
productpage.default
de la lista desplegable Service y haga clic en Find Traces:Dashboard de Trazado 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 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
Elimine cualquier proceso
istioctl
que aún pueda estar ejecutándose usando control-C o:$ killall istioctl
Si no planea explorar ninguna tarea de seguimiento, consulte las instrucciones de limpieza de Bookinfo para apagar la application.