Todos los productos
Search
Centro de documentos

Application Real-Time Monitoring Service:Enable tracing for NGINX Ingress Controller

Última actualización: Sep 04, 2026

Container Service for Kubernetes (ACK) ofrece una función de rastreo que permite enviar trazas desde el componente NGINX Ingress Controller de su clúster ACK hacia Managed Service for OpenTelemetry. Managed Service for OpenTelemetry

Requisitos previos

Compatibilidad de versiones

La compatibilidad con el rastreo varía según la versión del componente NGINX Ingress controller, por lo que debe seleccionar el método de configuración adecuado para su versión.

Versión del controlador NGINX Ingress

OpenTelemetry

OpenTracing

≥ v1.10.2-aliyun.1

Compatible

No compatible

v1.9.3-aliyun.1

Compatible

Compatible

v1.8.2-aliyun.1

Compatible

Compatible

< v1.8.2-aliyun.1

No compatible

Compatible

Procedimiento

OpenTelemetry

Paso 1: Obtener la información del endpoint

  1. Inicie sesión en la consola de ARMS. En el panel de navegación izquierdo, haga clic en Integration Center.

  2. En el área Server-side Applications, haga clic en la tarjeta OpenTelemetry.

  3. En el panel OpenTelemetry que aparece, seleccione la región donde desea reportar los datos.

  4. Registre la información del endpoint. En la sección Parameters, establezca Connection Method en Alibaba Cloud Intranet y Report Method en gRPC. Luego, en la sección Endpoint Information, copie la dirección del endpoint gRPC (por ejemplo, http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090) y el token de autenticación.

    Nota

    Utilice el endpoint de red VPC si su NGINX Ingress Controller está desplegado en la misma región de Alibaba Cloud que Managed Service for OpenTelemetry. De lo contrario, utilice el endpoint público.

Paso 2: Habilitar OpenTelemetry en NGINX Ingress ControllerManaged Service for OpenTelemetry

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Workloads > Deployments.

  3. En la página Deployments, establezca el Namespace en kube-system. Busque el despliegue nginx-ingress-controller y haga clic en Edit en la columna Actions.

  4. En la página Edit, seleccione el contenedor nginx-ingress-controller. En la pestaña Environment Variable, haga clic en Add para agregar la siguiente variable de entorno.

    Type

    Variable name

    Value

    Descripción

    Custom

    OTEL_EXPORTER_OTLP_HEADERS

    authentication=<authentication token>

    Utilice el token de autenticación que obtuvo en Step 1: Obtain endpoint information. Ejemplo: authentication=bfXXXXXXXe@7bXXXXXXX1_bXXXXXe@XXXXXXX1.

    Una vez completada la adición, haga clic en Update en el lado derecho de la página Edit y, a continuación, haga clic en OK en el cuadro de diálogo que aparece.

  5. En el panel de navegación izquierdo, elija Configuration > ConfigMaps.

  6. En la página ConfigMaps, establezca el Namespace en kube-system. Busque el ConfigMap nginx-configuration y haga clic en Edit en la columna Actions.

  7. En el panel Edit, haga clic en Add para agregar los siguientes pares clave-valor y, a continuación, haga clic en OK.

    Parámetro

    Descripción

    Valor

    Ejemplo

    enable-opentelemetry

    Especifica si se habilita el rastreo de OpenTelemetry.

    • true: Habilita el rastreo.

    • false: Deshabilita el rastreo.

    true

    main-snippet

    -

    env OTEL_EXPORTER_OTLP_HEADERS;

    env OTEL_EXPORTER_OTLP_HEADERS;

    otel-service-name

    El nombre del servicio.

    Un nombre personalizado.

    nginx-ingress

    otlp-collector-host

    El nombre de dominio del endpoint de reporte gRPC.

    Utilice el endpoint de red VPC que obtuvo en Step 1: Obtain endpoint information. Elimine el prefijo http:// y el número de puerto. Ejemplo: tracing-analysis-XX-XX-XXXXX.aliyuncs.com.

    tracing-analysis-XX-XX-XXXXX.aliyuncs.com

    otlp-collector-port

    El puerto del endpoint de reporte gRPC.

    El número de puerto real.

    8090

    opentelemetry-trust-incoming-span

    Especifica si se confía en las trazas entrantes de otros servicios o sistemas.

    • true: Confía en las trazas entrantes.

    • false: No confía en las trazas entrantes.

    true

    opentelemetry-operation-name

    El formato del span de la traza.

    HTTP $request_method $service_name $uri

    HTTP $request_method $service_name $uri

    otel-sampler

    La regla de muestreo.

    Para obtener más información, consulte la documentación de NGINX Ingress Controller.

    TraceIdRatioBased

    otel-sampler-ratio

    La tasa de muestreo.

    Un valor de 0.0 a 1.0, con hasta dos decimales. Un valor de 0.0 deshabilita el muestreo, mientras que 1.0 muestrea cada traza.

    Para obtener más información, consulte la documentación de NGINX Ingress Controller.

    0.1

    otel-sampler-parent-based

    Especifica si se hereda la decisión de muestreo del servicio ascendente.

    • false: (Predeterminado) No hereda la decisión de muestreo ascendente. Los parámetros otel-sampler y otel-sampler-ratio surten efecto.

    • true: Hereda y reutiliza la decisión de muestreo ascendente. Los parámetros otel-sampler y otel-sampler-ratio no surten efecto.

    Para obtener más información, consulte la documentación de NGINX Ingress Controller.

    false

Paso 3: Consultar las trazas en la consola de ARMS

  1. Inicie sesión en la consola de ARMS. En el panel de navegación izquierdo, elija Application Monitoring > Application List.

  2. En la página Application List, seleccione una región en la lista desplegable de la parte superior. A continuación, haga clic en el nombre de la aplicación nginx-ingress.

  3. Explore la información de las trazas en la página de detalles de la aplicación.

    • En la pestaña Application Overview, consulte métricas como el número de solicitudes y errores.应用概览-中.jpg

    • En la pestaña Trace Explorer, puede consultar gráficos sobre el número de llamadas, errores y duración en la parte superior de la página. Debajo de los gráficos, se muestra una lista de trazas con columnas como TraceId, nombre del span, nombre de la aplicación, Duration y Status (por ejemplo, 200 o 404).

    • En la lista de trazas de la pestaña Trace Explorer, haga clic en un TraceId para abrir su página de detalles. Esta página muestra una vista de línea de tiempo e información detallada de cada span, incluido el nombre de la aplicación (por ejemplo, nginx-ingress), el nombre de la operación (por ejemplo, HTTP GET my-nginx-svc /), las horas de inicio y fin, y la duración. La pestaña Attributes muestra atributos HTTP como http.method, http.status_code, http.host y http.user_agent, así como información de red como net.host.port.

OpenTracing

Paso 1: Obtener la información del endpoint

  1. Inicie sesión en la consola de ARMS. En el panel de navegación izquierdo, haga clic en Integration Center.

  2. En el área Server-side Applications, haga clic en la tarjeta Zipkin.

    Nota

    Este ejemplo utiliza Zipkin.

  3. En el panel Zipkin que aparece, seleccione la región donde desea reportar los datos.

  4. Registre la información del endpoint. Para Connection Method, seleccione Alibaba Cloud Intranet. La página muestra dos URL de endpoints de red VPC: un v2 endpoint y un v1 endpoint. Copie la URL del v1 endpoint para usarla más adelante.

    Nota

    Utilice el endpoint de red VPC si su NGINX Ingress Controller está desplegado en la misma región de Alibaba Cloud que Managed Service for OpenTelemetry. De lo contrario, utilice el endpoint público.

Paso 2: Habilitar OpenTracing en NGINX Ingress ControllerManaged Service for OpenTelemetry

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Configurations > ConfigMaps.

  3. En la página ConfigMaps, establezca el Namespace en kube-system. Busque el ConfigMap nginx-configuration y haga clic en Actions en la columna Edit.

  4. En el panel Edit, haga clic en Add para agregar los siguientes pares clave-valor y, a continuación, haga clic en OK.

    Parámetro

    Descripción

    Valor

    Ejemplo

    enable-opentracing

    Especifica si se habilita el rastreo.

    • true: Habilita el rastreo.

    • false: Deshabilita el rastreo.

    true

    zipkin-service-name

    El nombre del servicio.

    Un nombre personalizado.

    nginx-ingress

    zipkin-collector-host

    El nombre de dominio del endpoint de reporte.

    Modifique la URL del endpoint que obtuvo en Step 1: Obtain endpoint information. Elimine el prefijo http:// y agregue un signo de interrogación (?) al final. Por ejemplo:

    • Endpoint original: http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt__/api/v1/spans.

    • Valor modificado: tracing-analysis-dc-hz-internal.aliyuncs.com/adapt__/api/v1/spans?.

    tracing-analysis-dc-hz-internal.aliyuncs.com/adapt__/api/v1/spans?

    opentracing-trust-incoming-span

    Especifica si se confía en las trazas entrantes de otros servicios o sistemas.

    • true: Confía en las trazas entrantes.

    • false: No confía en las trazas entrantes.

    true

    zipkin-sample-rate

    La tasa de muestreo.

    Un valor de 0 a 1, con hasta dos decimales. Un valor de 0 significa que no hay muestreo, y 1 significa que se muestrean todos los datos.

    0.1

Paso 3: Consultar las trazas en la consola de ARMS

  1. Inicie sesión en la consola de ARMS. En el panel de navegación izquierdo, haga clic en Application Monitoring > Application List.

  2. En la página Application List, seleccione una región en la lista desplegable de la parte superior. A continuación, haga clic en el nombre de la aplicación nginx.

  3. En el panel de navegación izquierdo de la página de detalles de la aplicación, haga clic en Interface Invocation.

    • La pestaña Overview muestra la topología del servicio y las relaciones de llamadas de la aplicación actual. Otras pestañas disponibles incluyen Upstream, Downstream y Traces.

    • La pestaña Traces enumera hasta 100 de las trazas de mayor duración de la aplicación. Para obtener más información sobre los datos de las trazas, consulte Interface Invocation. La tabla incluye columnas como Time, span name, Host/IP, Duration, Status, TraceId y Actions. Puede filtrar los resultados por Duration greater than y Exception.

    • En la pestaña Traces, haga clic en un TraceId para ver los detalles de la traza. La página Trace Details muestra el TraceId, la hora de inicio y la duración total. También presenta un gráfico de cascada que visualiza la jerarquía y la duración relativa de cada span. Por ejemplo, una solicitud a /api/currency podría pasar por servicios como nginx-otlp, frontendproxy, frontend y currencyservice, con una duración total aproximada de 15 ms. Cada span se representa mediante una barra horizontal que indica su duración en relación con la traza completa.

(Opcional) Cambiar el propagador de OpenTelemetry

De forma predeterminada, al utilizar OpenTelemetry method, el NGINX Ingress Controller propaga el contexto de la traza en formato W3C Trace Context. Si sus aplicaciones frontend y backend utilizan otros formatos de contexto, como B3 (usado por Zipkin) o Jaeger, debe cambiar el propagador para garantizar que las trazas se vinculen correctamente en todos los servicios. Esta sección describe cómo cambiar el propagador para el NGINX Ingress Controller.

  1. Agregue la variable de entorno OTEL_PROPAGATORS mediante el mismo método descrito en Step 2.4 of the OpenTelemetry procedure. A continuación, guarde la configuración y vuelva a desplegar el nginx-ingress-controller.

    Environment variable

    Value

    Descripción

    OTEL_PROPAGATORS

    tracecontext,baggage,b3,jaeger

    Una lista separada por comas de los propagadores que se deben utilizar. Para obtener más información, consulte Specify the format of propagation headers for OpenTelemetry.

  2. A continuación, modifique la configuración de main-snippet como se describe en Step 2.7 of the OpenTelemetry procedure para aplicar la variable de entorno OTEL_PROPAGATORS.

    Parámetro

    Valor

    Descripción

    main-snippet

    env OTEL_EXPORTER_OTLP_HEADERS; env OTEL_PROPAGATORS;

    Carga las variables de entorno.

Referencias