- Modo de distribución (siempre activo): cuando no hay ninguna selección en el mapa de calor, se muestra la distribución de valores de cada atributo para la población actual de spans. Es útil para detectar valores dominantes o inusualmente raros (anomalías de cardinalidad).
- Modo de comparación: arrastra un rectángulo sobre el mapa de calor para comparar los spans del interior (Selección) con todo lo que queda fuera (Fondo). Es útil para aislar desviaciones.
- Drill-down iterativo: haz clic en cualquier barra para filtrar (o excluir) ese valor. El mapa de calor se actualiza según la población filtrada, por lo que puedes seguir acotando hasta que la causa sea evidente.
Requisitos previos
Primeros pasos
- En el menú desplegable Data Source, selecciona una fuente que contenga trazas. Los nombres de las fuentes son arbitrarios; lo importante es que la fuente esté configurada como de tipo Trace. La pestaña Event Deltas solo está habilitada para ese tipo de fuentes.
- En la sección Analysis Mode, haz clic en la pestaña Event Deltas.
El mapa de calor
- Eje X: tiempo
- Eje Y: un valor numérico, que por defecto es la duración del span en milisegundos (escala logarítmica)
Modo de distribución: valores atípicos de cardinalidad
- Altos: ¿qué servicios, endpoints, códigos de estado o hosts dominan su población de spans? A menudo pone de manifiesto un único tenant, versión o ruta que concentra la mayor parte del tráfico.
- Bajos: valores que aparecen, pero rara vez. Un código de estado que aparece en solo el
0.5%de los spans, o un host que apenas se muestra, puede ser la señal más interesante. La cola larga es donde se esconden las regresiones y los actores problemáticos.
Modo de comparación: desviaciones respecto a lo normal
Caso de uso 1: Antes vs. después de una regresión
SpanKind, SpanName y ScopeName presentan cada uno una marcada separación entre el naranja y el verde, entre la Selección lenta y el Fondo saludable. Leídos en conjunto, permiten identificar con precisión qué cambió en el punto de inflexión.
Esta es la forma adecuada cuando quieres plantear la pregunta “¿qué cambió?”. Una variante más ajustada sigue el mismo flujo de trabajo: cuando un pequeño grupo de spans lentos aparece en una banda por lo demás tranquila (un breve repunte en el borde derecho, un grupo en medio de un período estable), dibuja en su lugar un recuadro pequeño alrededor de ese grupo. La forma cambia la pregunta: una franja vertical plantea qué cambió en el tiempo; un recuadro pequeño y centrado plantea qué tiene de especial este grupo.
Caso de uso 2: Lento frente a rápido
Drill-down iterativo
- Filtrar: conservar solo los spans con este valor
- Excluir: eliminar los spans con este valor
- Copiar: copiar el valor al portapapeles
Los buckets agregados Other (N) que agrupan valores de baja frecuencia no se pueden pulsar. Para filtrar un valor específico dentro de ese bucket, usa directamente la barra de búsqueda.
Personaliza el mapa de calor
| Parámetro | Predeterminado | Descripción |
|---|---|---|
| Scale | Log | Log abarca rangos amplios de latencia; Linear es mejor para distribuciones estrechas y uniformes. |
| Value | (Duration)/1e6 | Cualquier expresión numérica: tamaño de la respuesta, tasa de errores o un atributo personalizado de span. |
| Count | count() | Agregación para el color. Cámbialo por avg(), sum(), p95() o expresiones como countDistinct(field). |
- Cambia Scale a Linear cuando el rango de latencia sea estrecho (por ejemplo, un servicio cuyos spans se ejecutan todos entre 5 y 50 ms). La escala Log desperdicia rango vertical en el extremo superior, donde no hay datos.
- Representa algo distinto de la duración en el eje Y. Configurar Value como
SpanAttributes.http.response.sizete permite investigar respuestas lentas y grandes; una expresión comoif(StatusCode = 'Error', 1, 0)representa la frecuencia de errores a lo largo del tiempo en todos los servicios. - Colorea según algo distinto del recuento. Configurar Count como
p95(Duration)colorea cada bucket según la latencia de cola en lugar del volumen, lo que saca a la luz zonas poco frecuentes pero lentas que una vista basada en recuento oculta.countDistinct(TraceId)distingue el volumen de traces del volumen de spans cuando un trace produce muchos spans.
Consejos para un uso eficaz
- Primero, filtra por un solo servicio. La latencia varía mucho entre servicios, y mezclarlos oculta la señal. Usa la barra de búsqueda para limitarte a un
ServiceName(o a un endpoint) antes de empezar, de modo que el mapa de calor y las distribuciones reflejen una población comparable. - Elige selecciones con un contraste visual claro. El modo de comparación funciona mejor cuando la banda de Selección se distingue claramente del Fondo; por ejemplo, un período degradado que empieza en un momento reconocible o una cola lenta claramente separada del grueso. Las selecciones que se superponen demasiado con el resto de los datos tienden a mostrar ruido en lugar de la desviación real.
- Itera: filtro, mapa de calor, filtro. Una sola selección rara vez identifica la causa. Toma la primera comparación como una hipótesis, filtra por el valor más divergente y vuelve a examinar el nuevo mapa de calor y las distribuciones. Dos o tres iteraciones suelen bastar para acotar una regresión a uno o dos atributos.
- Usa el modo de distribución sin ninguna selección cuando todavía no se aprecie contraste visual (sabes que hay un problema, pero el mapa de calor se ve uniforme). Aplica un filtro basado en una hipótesis, como solo spans con error, solo spans del cliente o solo un endpoint, y deja que las distribuciones de atributos te indiquen los valores de mayor impacto antes de dibujar cualquier rectángulo.