Todos los productos
Search
Centro de documentos

Alibaba Cloud Service Mesh:Habilitar el rastreo distribuido en ASM

Última actualización: Sep 12, 2026

Service Mesh (ASM) se integra con Managed Service for OpenTelemetry para ayudarle a identificar cuellos de botella de rendimiento en aplicaciones distribuidas. Puede consultar los datos de rastreo, mostrar topologías de trazas, analizar las dependencias de la aplicación y contar solicitudes.

Contexto

El rastreo distribuido perfila y monitorea aplicaciones, en especial aquellas construidas sobre una arquitectura de microservices. Los proxy sidecar de una instancia de ASM generan y envían spans automáticamente. Sin embargo, las aplicaciones deben propagar los encabezados HTTP adecuados para que los spans se correlacionen correctamente en una sola traza. En concreto, la aplicación debe recopilar ciertos encabezados de cada solicitud entrante y reenviarlos a todas las solicitudes salientes que esta desencadene. OpenTelemetry admite distintos propagadores, y cada uno utiliza encabezados diferentes. A continuación se listan los propagadores compatibles y sus encabezados correspondientes.

Propagadores B3

  • x-request-id

  • x-b3-traceid

  • x-b3-spanid

  • x-b3-parentspanid

  • x-b3-sampled

  • x-b3-flags

  • x-ot-span-context

Propagadores W3C Trace Context

  • traceparent

  • tracestate

Nota

Las instancias de ASM de la versión V1.18.0.124 o anteriores usan propagadores B3 de forma predeterminada. Las instancias de versiones posteriores a la V1.18.0.124 utilizan propagadores W3C Trace Context de manera predeterminada.

Requisitos previos

Descripción de la aplicación de ejemplo

En la aplicación de ejemplo Bookinfo, el servicio productpage (implementado en Python) usa las bibliotecas de OpenTracing para extraer los encabezados obligatorios de las solicitudes HTTP en formato de propagación B3.

def getForwardHeaders(request):
    headers = {}
    # x-b3-*** headers can be populated using the opentracing span
    span = get_current_span()
    carrier = {}
    tracer.inject(
        span_context=span.context,
        format=Format.HTTP_HEADERS,
        carrier=carrier)
    headers.update(carrier)
    # ...
    incoming_headers = ['x-request-id']
    # ...
    for ihdr in incoming_headers:
        val = request.headers.get(ihdr)
        if val is not None:
            headers[ihdr] = val
    return headers

El servicio reviews (implementado en Java) también utiliza encabezados HTTP en formato de propagación B3.

@GET
@Path("/reviews/{productId}")
public Response bookReviewsById(@PathParam("productId") int productId,
                            @HeaderParam("end-user") String user,
                            @HeaderParam("x-request-id") String xreq,
                            @HeaderParam("x-b3-traceid") String xtraceid,
                            @HeaderParam("x-b3-spanid") String xspanid,
                            @HeaderParam("x-b3-parentspanid") String xparentspanid,
                            @HeaderParam("x-b3-sampled") String xsampled,
                            @HeaderParam("x-b3-flags") String xflags,
                            @HeaderParam("x-ot-span-context") String xotspan) {
  if (ratings_enabled) {
    JsonObject ratingsResponse = getRatings(Integer.toString(productId), user, xreq, xtraceid, xspanid, xparentspanid, xsampled, xflags, xotspan);

Ejemplo de acceso

Introduzca una URL con el formato http://{dirección IP de la puerta de enlace de entrada}/productpage en la barra de direcciones de su navegador y presione la tecla Enter. Se abrirá la página de la aplicación Bookinfo.

Consultar aplicaciones

La página Applications de la consola de Managed Service for OpenTelemetry muestra métricas clave de todas las aplicaciones monitoreadas. Entre ellas se incluyen el número de solicitudes y errores del día actual, así como el estado de salud. También puede configurar etiquetas para las aplicaciones y filtrarlas por etiqueta.

  1. Inicie sesión en la consola de Managed Service for OpenTelemetry.

  2. En el panel de navegación izquierdo, haga clic en Applications. En la parte superior de la página, seleccione la región de destino.

Consultar los detalles de la aplicación

La página Application Details muestra las métricas clave, la topología de llamadas y las trazas de la aplicación en cada servidor donde está desplegada.

  1. Inicie sesión en la consola de Managed Service for OpenTelemetry.

  2. En el panel de navegación izquierdo, haga clic en Applications. En la parte superior de la página, seleccione la región de destino y luego haga clic en el nombre de la aplicación objetivo.

  3. En el panel de navegación izquierdo, haga clic en Application Details. En la lista de máquinas de la izquierda, haga clic en All o en una máquina identificada por su dirección IP.

    En la pestaña Overview, puede consultar la topología de llamadas y las métricas de rendimiento clave. En la pestaña Traces, verá una lista de las trazas de la aplicación en la máquina seleccionada, ordenadas por duración de forma descendente. La página muestra un máximo de 100 trazas. Haga clic en la pestaña Traces para ver la lista de registros de trazas. El panel izquierdo ofrece métricas de ordenamiento como Response Time, Requests y Errors, además del filtro de instancias. La lista de la derecha muestra información de cada span, como Start Time, Span Name, Host/IP, Duration, Status y traceid. Puede filtrar los registros mediante el cuadro de entrada Duration greater than y la casilla de verificación Exception. Haga clic en View logs para consultar los detalles del registro de la llamada correspondiente.

Consultar el diagrama de cascada de una traza

El diagrama de cascada de una traza muestra la hora de generación del registro, el estado, la dirección IP o el nombre del servidor, el nombre del servicio y la línea de tiempo.

  1. En la página Application Details, haga clic en la pestaña Traces y luego en el identificador de traza (Trace ID) de la traza objetivo.

  2. En la página Traces que aparece, consulte el diagrama de cascada de la traza.

    Nota
    • El campo IP Address puede mostrar una dirección IP o un nombre de máquina, según la configuración de visualización de la página Application Settings. Para obtener más información, consulte Manage applications and tags.

    • Puede colocar el puntero sobre el nombre de un servicio para ver su información, incluida la duración, la hora de inicio, las etiquetas y los eventos de registro. Para obtener más información, consulte Application details.

    La parte superior de la página de detalles de la traza muestra un resumen con la hora de inicio, la duración total, el número de aplicaciones, la profundidad de la traza y la cantidad total de spans. Debajo del resumen, la lista de spans utiliza sangría para indicar la jerarquía de llamadas entre servicios. Las columnas incluyen Span Name, Timeline (una barra azul que indica el porcentaje de tiempo consumido), Application Name, Start Time, IP Address y Status.

Preguntas frecuentes

¿Por qué no puedo consultar la información de rastreo después de recopilar datos de rastreo en Managed Service for OpenTelemetry desde la consola de ASM?

  1. Consulte los registros de envío de trazas.

    1. Obtenga el archivo kubeconfig del clúster y use kubectl para conectarse a él. Para obtener más información, consulte Obtain the kubeconfig file of a cluster and use kubectl to connect to the cluster.

    2. Ejecute el siguiente comando para consultar los registros de envío de trazas de los pods relacionados con el despliegue tracing-on-external-zipkin en el espacio de nombres istio-system:

      kubectl logs "$(kubectl get pods -n istio-system  -l app=tracing -o jsonpath='{.items[0].metadata.name}')" -n istio-system -c  nginx

      Si el valor de status en el registro de Nginx resultante es 406, significa que la solicitud POST a /api/v2/spans devolvió un código de estado HTTP 406.

      remote_addr:192.168.26.98 time_local:17/Aug/2021:08:15:17 +0000 method:POST uri:/api/v2/spans host:zipkin  status:406   bytes_sent:1146 referer:- useragent:- forwardedfor:192.168.26.98  request_time:0.012  upstream_response_time:0.011
      remote_addr:192.168.26.98 time_local:17/Aug/2021:08:15:17 +0000 method:POST uri:/api/v2/spans host:zipkin  status:406   bytes_sent:1146 referer:- useragent:- forwardedfor:192.168.26.98  request_time:0.012  upstream_response_time:0.013
  2. Consulte la cuota de solicitudes de servicio diarias y la cantidad real de solicitudes del día anterior.

    1. Inicie sesión en la consola de Managed Service for OpenTelemetry.

    2. En el panel de navegación izquierdo, haga clic en Cluster Configurations para ver la cuota de solicitudes y el recuento de solicitudes de ayer.

      En el panel Quota configuration, el campo Configuration quota muestra el valor actual de la cuota en unidades de 10 000 solicitudes. El recuento real de solicitudes de ayer aparece entre paréntesis en el título del panel. Si el recuento de ayer supera la cuota configurada, debe aumentar la cuota.

    Si el recuento real de solicitudes del día anterior supera la cuota diaria configurada, los datos reportados se descartan.

  3. Modifique la cuota de solicitudes de servicio diarias.

    Si el recuento diario real de solicitudes supera la cuota diaria, los datos reportados se descartan y no se muestra información de rastreo. Para resolver este problema, aumente la cuota diaria a un valor mayor que el recuento real de solicitudes.

    1. En el panel de navegación izquierdo de la consola de Managed Service for OpenTelemetry, haga clic en Cluster Configurations.

    2. En la pestaña Cluster Configurations, dentro del área Quota configuration, modifique Configuration quota con un valor mayor que el recuento de solicitudes de servicio. Luego, haga clic en Save.

    3. En el cuadro de diálogo Prompt, haga clic en OK.

¿Por qué cambia el traceid después de que la puerta de enlace de entrada o el sidecar procesan la solicitud?

Este problema ocurre cuando los propagation headers de la solicitud de su aplicación están incompletos, lo que obliga al proxy sidecar a regenerarlos. Para usar un traceid personalizado, incluya como mínimo x-b3-traceid y x-b3-spanid en B3 propagation format, o bien un encabezado traceparent en W3C Trace Context propagation format.