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.
-
Identifique qué servicio indica errores y solucione los problemas del 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:
-
Para compilaciones CIC anteriores a 1.7.23, actualice el archivo CPX YAML con
NS_DISTRIBUTED_TRACING
y el valor comoyes
-
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:
-
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: <AgentIP> / <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 Console muestra el número mencionado de transacciones de rastreo. -
Implemente ConfigMap mediante:
kubectl create -f <configmap-yaml>.yaml
-
Modifique el archivo CPX YAML y utilice uno
envFrom
oargs
para especificar los siguientes argumentos:envFrom: - configMapRef: name: cic-configmap <!--NeedCopy-->
O BIEN:
La configuración de ConfigMap YAML se implementa en CIC.
-
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
atrue
.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: <AgentIP> / <AppserverIP> timeseries: port: 5563 metrics: enable: 'true' mode: 'avro' auditlogs: enable: 'true' events: enable: 'true' transactions: enable: 'true' port: 5557 <!--NeedCopy-->
-
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.
Se muestra la página de resumen de rastreo para el servicio seleccionado.
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.
Aparece la página Detalles del rastreo.
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
.
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.
-
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
-
Motivo de error de interfaz SSL: El mensaje de error de protocolo de enlace SSL front-end. Por ejemplo: SSL CLIENTAUTH FAILURE