Seguimiento distribuido

En el gráfico de servicios, puede utilizar la vista de rastreo distribuido para:

  • Analice el rendimiento general del servicio.

  • Visualice el flujo de comunicación entre el servicio seleccionado y sus servicios interdependientes.

  • Identificar qué servicio indica errores y solucionar el servicio erróneo

  • Ver detalles de transacción entre el servicio seleccionado y cada uno de sus servicios interdependientes.

Requisitos previos

Para ver la información de seguimiento del servicio, debe:

  • Asegúrese de que una aplicación mantenga los siguientes encabezados de seguimiento, mientras envía cualquier tráfico este-oeste:

    Headers

  • Para compilaciones CIC anteriores a 1.7.23, actualice el archivo CPX YAML con NS_DISTRIBUTED_TRACING y el valor como yes

    CPX YAML

  • Para compilaciones CIC posteriores a 1.7.23, debe usar un ConfigMap.

    ConfigMaps le permite separar las configuraciones de los pods y hacer que sus cargas de trabajo sean portátiles. Con ConfigMaps, puede cambiar y administrar fácilmente sus configuraciones de carga de trabajo y reducir la necesidad de codificar los datos de configuración para las especificaciones del pod.

    Gracias a la compatibilidad con ConfigMap, puede actualizar la configuración automáticamente mientras mantiene en funcionamiento el pod NetScaler Ingress Controller. No es necesario reiniciar el pod después de la actualización. Para obtener más información, consulte Compatibilidad de ConfigMap para el controlador de entrada.

    Mediante ConfigMap, puede habilitar o inhabilitar el seguimiento distribuido, eventos, registros de auditoría, etc. Para utilizar ConfigMap:

    1. Cree un archivo YAML mediante los parámetros requeridos.

      El siguiente archivo YAML de ejemplo tiene habilitado el seguimiento distribuido y otras variables como registros de auditoría, eventos y transacciones inhabilitadas:

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cic-configmap
        namespace: default
      data:
        LOGLEVEL: 'debug'
        NS_PROTOCOL: 'http'
        NS_PORT: '80'
        NS_HTTP2_SERVER_SIDE: 'ON'
        NS_ANALYTICS_CONFIG:
          distributed_tracing:
            enable: 'true'
            samplingrate: 100
          endpoint:
            server: <ADM-AgentIP> / <ADM-AppserverIP>
          timeseries:
            port: 5563
            metrics:
              enable: 'true'
              mode: 'avro'
            auditlogs:
              enable: 'false'
            events:
              enable: 'false'
          transactions:
            enable: 'false'
            port: 5557
      <!--NeedCopy-->
      

      Nota

      Puede proporcionar los valores para Samplingrate entre 0 y 100. NetScaler ADM muestra el número de transacciones de seguimiento mencionado.

    2. Implemente ConfigMap mediante:

      kubectl create -f <configmap-yaml>.yaml

    3. Modifique el archivo CPX YAML y utilice uno envFrom o args para especificar los siguientes argumentos:

      envFrom:
       - configMapRef:
           name: cic-configmap
      <!--NeedCopy-->
      

      O BIEN:

      YAML

    4. Si quiere cambiar el valor de cualquier variable, modifique los valores en ConfigMap. En este ejemplo, todas las demás variables se cambian de false a true.

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cic-configmap
        namespace: default
      data:
        LOGLEVEL: 'debug'
        NS_PROTOCOL: 'http'
        NS_PORT: '80'
        NS_HTTP2_SERVER_SIDE: 'ON'
        NS_ANALYTICS_CONFIG:
          distributed_tracing:
            enable: 'true'
            samplingrate: 100
          endpoint:
            server: <ADM-AgentIP> / <ADM-AppserverIP>
          timeseries:
            port: 5563
            metrics:
              enable: 'true'
              mode: 'avro'
            auditlogs:
              enable: 'true'
            events:
              enable: 'true'
          transactions:
            enable: 'true'
            port: 5557
        <!--NeedCopy-->
      
    5. Vuelva a aplicar ConfigMap mediante el siguiente comando:

      kubectl apply -f <yaml-file>.yaml

Ver detalles de seguimiento del servicio

En el gráfico de servicios, haga clic en un servicio y seleccione Trace Info.

Información de rastreo

Se muestra la página de resumen de rastreo para el servicio seleccionado.

Resumen del rastro

El resumen del seguimiento muestra:

  • Búsqueda avanzada que permite buscar transacciones con sugerencias y operadores (1). Para obtener más información, consulte Búsqueda avanzada.

  • La lista de duración de tiempo que permite seleccionar la duración de tiempo como 1 hora, 12 horas, 1 día, 1 semana, 1 mes y hora personalizada (2).

  • El gráfico de detalles de la línea de tiempo que le permite arrastrar y seleccionar para mostrar los resultados de un período de tiempo específico (3).

  • El panel Filtros que le permite seleccionar opciones de cada métrica (4).

  • Los detalles de la transacción del servicio seleccionado (5).

Ver los detalles de la transacción

Haga clic en una transacción para obtener información detallada. Puede ver los detalles de la transacción del servicio seleccionado, por ejemplo:

  • Hora de inicio

  • Hora de finalización

  • Métricas SSL

  • Comunicación con los servicios interdependientes (junto con los errores y el tiempo de respuesta de cada servicio).

El siguiente ejemplo indica un error de catalogue-store-service. Haga clic en Ver detalles del rastreo para obtener más información.

Detalles del rastreo

Aparece la página Detalles del rastreo.

Rastrear transacciones

1: muestra la hora de inicio, el tiempo de respuesta, los servicios totales y los intervalos totales de la transacción.

2: muestra los detalles del servicio seleccionado que se ha comunicado con sus servicios de interdependencia. Puede hacer clic en cada transacción para ver los detalles.

3 — Muestra los detalles de la transacción de cada servicio.

Según la imagen de ejemplo, catalogue-store-service indicó un error. Haga clic en la transacción disponible para catalogue-store-service.

Haga clic en transacción

Los detalles de la transacción entre la respuesta HTTP product-catalogue-service y catalogue-store-service indican que es 500. Con estos detalles, como administrador, puede analizar el servicio erróneo y solucionar problemas de product-catalogue-service como resolución.

También puede filtrar los resultados seleccionando las opciones de cada métrica en el panel Filtros. Por ejemplo, si quiere ver todas las transacciones 5xx, haga clic en Código de respuesta y seleccione 500.

Panel de filtros

  • RTT del cliente: la duración del viaje de un paquete desde el cliente.

  • Servidor RTT: el tiempo que tarda un paquete en viajar desde el servidor.

  • Tiempo derespuesta de la aplicación: tiempode respuesta promedio de la aplicación

  • Tiempo de transferenciade datos: el tamaño de la transferencia de datos y la velocidad a la que la transmisión puede realizarse desde/hacia un servicio.

  • Ubicación: La ubicación del cliente

  • Navegador: los tipos de navegador que utilizan los clientes. Por ejemplo: Chrome, Firefox.

  • SO del cliente: El SO del cliente se basa en los detalles del agente de usuario del explorador web.

  • Dispositivo: Los dispositivos basados en los detalles del agente de usuario del explorador web. Por ejemplo: tableta, móvil.

  • Tipo de solicitud: el tipo de solicitud de transacción. Por ejemplo: GET.

  • Código de respuesta: el código de respuesta recibido del servidor. Por ejemplo: 501, 404, 200.

  • Tipo de contenido de respuesta: el tipo de contenido de la transacción. Si la solicitud del cliente es para texto/html, la respuesta del servidor debe ser text/html.

  • Protocolo SSL: la versión del protocolo SSL utilizada por los clientes. Por ejemplo: SSLv3.

  • Nivel decifrado SSL: el nivel de cifrado basado en el tamaño de la clave del certificado SSL, como alto, medio y bajo.

  • Nivel de seguridadde la clave SSL: el nivel de cifrado SSL se calcula a partir del tamaño de la clave del certificado SSL. La longitud de la clave define la seguridad del algoritmo SSL. Por ejemplo: 2048

  • SSL Front End Failure Motivo: El mensaje de error de protocolo de enlace SSL front-end. Por ejemplo: SSL CLIENTAUTH FAILURE

Seguimiento distribuido