istio.io/content/es/docs/tasks/observability/distributed-tracing/telemetry-api/index.md

5.7 KiB

title description weight keywords owner test
Configurar el trazado con la API de Telemetría Cómo configurar las opciones de trazado usando la API de Telemetría. 2
telemetry
tracing
istio/wg-policies-and-telemetry-maintainers yes

Istio proporciona la capacidad de configurar opciones de trazado, como la tasa de muestreo y la adición de tags personalizados a los spans reportados. Esta tarea muestra cómo personalizar las opciones de trazado con la API de Telemetría.

Antes de empezar

  1. Asegúrese de que sus applications propaguen las cabeceras de trazado como se describe aquí.

  2. Siga la guía de instalación de trazado que se encuentra en Integraciones según su backend de trazado preferido para instalar el software apropiado y configurar un proveedor de extensión.

Instalación

En este ejemplo, enviaremos trazas a Zipkin. Instale Zipkin antes de continuar.

Configurar un proveedor de extensión

Instale Istio con un proveedor de extensión que haga referencia al service de Zipkin:

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

Habilitar el trazado

Habilite el trazado aplicando la siguiente configuración:

{{< text bash >}} $ kubectl apply -f - <<EOF apiVersion: telemetry.istio.io/v1 kind: Telemetry metadata: name: mesh-default namespace: istio-system spec: tracing:

  • providers:
    • name: "zipkin" EOF {{< /text >}}

Verificar los resultados

Puede verificar los resultados accediendo a la interfaz de usuario de Zipkin.

Personalización

Personalizar el muestreo de trazas

La opción de tasa de muestreo se puede utilizar para controlar qué porcentaje de solicitudes se informan a su sistema de trazado. Esto debe configurarse en función de su tráfico en la malla y la cantidad de datos de trazado que desea recopilar. La tasa predeterminada es del 1%.

{{< text bash >}} $ kubectl apply -f - <<EOF apiVersion: telemetry.istio.io/v1 kind: Telemetry metadata: name: mesh-default namespace: istio-system spec: tracing:

  • providers:
    • name: "zipkin" randomSamplingPercentage: 100.00 EOF {{< /text >}}

Personalizar los tags de trazado

Se pueden agregar tags personalizados a los spans en función de literales, variables de entorno y cabeceras de solicitud del cliente para proporcionar información adicional en los spans específicos de su entorno.

{{< warning >}} No hay límite en la cantidad de tags personalizados que puede agregar, pero los nombres de los tags deben ser únicos. {{< /warning >}}

Puede personalizar los tags usando cualquiera de las tres opciones admitidas a continuación.

  1. Literal representa un valor estático que se agrega a cada span.

    {{< text yaml >}} apiVersion: telemetry.istio.io/v1 kind: Telemetry metadata: name: mesh-default namespace: istio-system spec: tracing:

    • providers:
      • name: "zipkin" randomSamplingPercentage: 100.00 customTags: "provider": literal: value: "zipkin" {{< /text >}}
  2. Las variables de entorno se pueden usar cuando el valor del tag personalizado se completa a partir de una variable de entorno del proxy del workload.

    {{< text yaml >}} apiVersion: telemetry.istio.io/v1 kind: Telemetry metadata: name: mesh-default namespace: istio-system spec: tracing: - providers: - name: "zipkin" randomSamplingPercentage: 100.00 customTags: "cluster_id": environment: name: ISTIO_META_CLUSTER_ID defaultValue: Kubernetes # optional {{< /text >}}

    {{< warning >}} Para agregar tags personalizados basados en variables de entorno, debe modificar el ConfigMap istio-sidecar-injector en su namespace raíz del sistema Istio. {{< /warning >}}

  3. La opción de cabecera de solicitud del cliente se puede utilizar para completar el valor del tag a partir de una cabecera de solicitud del cliente entrante.

    {{< text yaml >}} apiVersion: telemetry.istio.io/v1 kind: Telemetry metadata: name: mesh-default namespace: istio-system spec: tracing: - providers: - name: "zipkin" randomSamplingPercentage: 100.00 customTags: my_tag_header: header: name: defaultValue: # optional {{< /text >}}

Personalizar la longitud del tag de trazado

De forma predeterminada, la longitud máxima de la ruta de la solicitud incluida como parte del tag del span HttpUrl es 256. Para modificar esta longitud máxima, agregue lo siguiente a su fichero tracing.yaml.

{{< text yaml >}} apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: enableTracing: true defaultConfig: tracing: {} # disable legacy tracing options via MeshConfig extensionProviders: - name: "zipkin" zipkin: service: zipkin.istio-system.svc.cluster.local port: 9411 maxTagLength: {{< /text >}}