- otro dashboard, para una vista centrada en un único elemento, como un dashboard de detalle por servicio, o
- los eventos subyacentes en Búsqueda, para los logs o traces que hay detrás de la fila.
Inspeccionar un servicio en su propio dashboard
Service Detail.
Crear el dashboard de detalle
Crea un dashboard llamadoService Detail y añade un filtro personalizado con la expresión ServiceName en tu fuente de traces. El filtro a nivel de dashboard limita cada tile a un único servicio, por lo que los tiles no tienen que fijar un servicio en sus queries. Añade las vistas por servicio que quieras: métricas clave RED (solicitudes, errores, duración P95), un chart de percentiles de latencia (P50, P95, P99), la tasa de solicitudes a lo largo del tiempo y un desglose por endpoint agrupado por SpanName.Guarda primero este dashboard para poder seleccionarlo como destino en el siguiente paso.Crear el inventario de servicios
En un dashboard de resumen, añade un tile de Table en tu fuente de traces agrupado porServiceName. Asígnale las columnas RED que puntúan cada servicio, cada una como una serie con alias:Requests: recuento de spans (tasa).Errors: recuento de spans con estado de error.P95 Duration: el percentil 95 deDuration. Configura el formato numérico de la columna como duración para que se muestre como288ms, no como nanosegundos sin procesar.
Requests de forma descendente para que los servicios con más tráfico aparezcan arriba. Esta tabla es el catálogo: una fila por servicio, puntuado según RED.Configurar el clic en la fila
En la tabla de inventario, abre Row Click Action, selecciona Dashboard y eligeService Detail en la lista de dashboards. Elegir el dashboard directamente lo fija por ID. El enlace sigue funcionando si el dashboard se renombra más adelante, y también se conserva al exportar e importar el dashboard. (Reserva la opción Template para elegir un dashboard distinto por fila; consulta Configurar una acción de clic en fila.)Como Service Detail declara un filtro personalizado ServiceName, el panel lateral rellena previamente un filtro vacío para esa expresión. Completa su plantilla:- Expression:
ServiceName(ya rellenado) - Template:
{{ServiceName}}
ServiceName del dashboard.Hacer clic en una fila
Al pasar el cursor sobre una fila, se muestra un enlace en el borde derecho de la tabla, con una indicación que describe la acción (Open dashboard \"Service Detail\"). Al hacer clic en la fila, se abre el dashboard Service Detail con su filtro Service establecido en el valor seleccionado, de modo que cada tile (las métricas clave RED, los percentiles de latencia y el desglose por endpoint) queda limitado a ese único servicio con un solo clic.Ir de un servicio a sus trazas
Haz que el clic en la fila apunte a Búsqueda
En la tabla de inventario, abre Row Click Action y selecciona Búsqueda. Elige tu fuente de trazas (solo se muestran las fuentes de logs y trazas). Añade un filtro:- Expression:
ServiceName - Template:
{{ServiceName}}
Haz clic en una fila
Al hacer clic en una fila de servicio, se abre la página de Búsqueda en esa fuente de trazas, filtrada porServiceName = <service>, para que llegues a los spans de ese servicio dentro del mismo intervalo de tiempo.SpanName) o por un atributo de endpoint en lugar de ServiceName, usa esa columna como plantilla para el filtro y, con cada clic en una fila, se abrirán los eventos de esa operación o endpoint. Para un group-by sobre un atributo map, consulta la nota sobre alias en Validación y limitaciones.
Configurar una acción al hacer clic en una fila
Row Click Action: Default, Row Click Action: Search o Row Click Action: Dashboard. Haz clic en él para abrir el panel lateral.
El panel lateral ofrece tres acciones:
- Default: el comportamiento predeterminado. Al hacer clic en una fila, se abre la página de Búsqueda, filtrada por los valores de las columnas de agrupación de la fila y el intervalo de tiempo seleccionado. Esto es lo que obtienes cuando no se configura ninguna acción personalizada.
- Search: envía el clic a la página de Búsqueda de una fuente que elijas.
- Dashboard: envía el clic a otro dashboard de tu equipo.
- Destination: elige una fuente o un dashboard concretos, o selecciona Template e introduce una plantilla de Handlebars cuyo nombre coincida con el de una fuente o dashboard disponible. Elegir un destino concreto lo fija por ID. Es la opción recomendada para un único destino fijo: resiste cambios de nombre y la exportación e importación de dashboards, y en el caso de un dashboard completa previamente los filtros declarados en el destino. Usa Template cuando el destino deba variar según la fila, haciendo referencia a una columna de la fila para elegirlo (por ejemplo,
Errors-{{ServiceName}}). - Filters: haz clic en Add filter y proporciona una Expression (una columna o expresión en el destino, por ejemplo
ServiceName) y una Template para su valor (por ejemplo{{ServiceName}}). Las plantillas hacen referencia a las columnas de la fila seleccionada mediante{{columnName}}(consulta la nota de abajo sobre qué columnas están disponibles). Cada filtro se convierte en el destino en una condiciónexpression IN (value), y los filtros que comparten una misma expresión se combinan. Cuando el destino es un dashboard, el panel lateral completa previamente un filtro vacío por cada filtro que ese dashboard ya declara, para que solo tengas que rellenar las plantillas. - WHERE (opcional): una plantilla de Handlebars que se procesa en el filtro global del destino, además de las condiciones por filtro anteriores. Establece su lenguaje de consulta en SQL o Lucene para que el destino la interprete. Por ejemplo, la plantilla SQL
ServiceName = '{{ServiceName}}'limita el destino al servicio de la fila en la que se hizo clic.
Las plantillas hacen referencia a las columnas de la tablaUna plantilla
{{...}} se resuelve usando las propias columnas del tile de tabla: las columnas de agrupación y cada serie por su nombre o alias, exactamente como aparecen en la tabla. No ve las columnas de la fuente subyacente que la tabla no selecciona. Para que un valor se transfiera mediante un clic, debe ser una columna de la tabla; por eso {{ServiceName}} funciona, porque ServiceName es la columna de agrupación de la tabla, y una columna con alias se referencia por su alias. Si haces referencia a un nombre que la tabla no tiene, el clic falla con Row has no column '<name>'.Cómo se resuelven el destino y los filtros
- Destino. Al elegir una fuente o un dashboard específicos, quedan fijados por ID. Un destino Template se renderiza a partir de la fila seleccionada y luego se compara por nombre con las fuentes o dashboards de tu equipo. Para que se pueda resolver, el nombre debe ser único: si dos fuentes o dos dashboards comparten el nombre renderizado, el enlace no puede resolverse a uno de ellos. Tampoco se puede resolver si el nombre renderizado está vacío o no coincide con ninguno.
- Filtros. Cada plantilla de filtro se renderiza a partir de la fila y se convierte en una condición
expression IN (value)en el destino. Una acciónSearchabre/searchrestringido a la fuente elegida; una acciónDashboardabre ese dashboard. En ambos casos, se conserva el intervalo de tiempo de la fila seleccionada.
Los destinos de dashboard necesitan un filtro declarado que coincidaUn filtro transferido a un dashboard solo surte efecto si el dashboard de destino declara un filtro personalizado de nivel superior cuya expresión coincida con la Expression del filtro. Si ningún filtro declarado coincide, ese valor se descarta en el momento del clic y el destino se abre sin filtrar para esa expresión. Por eso, el modo dashboard rellena previamente los filtros declarados del destino: si la expresión coincide, el menú desplegable del destino se completa automáticamente con el valor de la fila seleccionada.
Validación y limitaciones
- Solo tiles de tabla. El botón Row Click Action aparece en los tiles de tabla, tanto en la tabla del constructor de gráficos como en una tabla basada en SQL. Los demás tipos de tile no tienen acción de clic en fila.
- Los destinos de Búsqueda deben ser fuentes de logs o trazas. No se ofrecen fuentes de métricas ni de sesión, ya que no pueden verse en la página de Búsqueda.
- Los nombres de las plantillas deben ser únicos. Un destino de plantilla se resuelve por nombre, por lo que no se pueden usar dos fuentes o dos dashboards con el mismo nombre como destino de plantilla.
- Los destinos de dashboard necesitan un filtro declarado que coincida para que un valor transferido surta efecto (consulta la nota anterior).
- Las columnas de group-by de expresiones necesitan un alias. Un group-by sobre una expresión, como un atributo de map
SpanAttributes['http.route'], produce una columna de resultado cuyo nombre es la expresión literal, lo que resulta incómodo de usar como referencia en una plantilla. Asigna un alias a la columna en el constructor de gráficos: añadeAS <alias>después de la expresión en el campo Group By (por ejemplo,SpanAttributes['http.route'] AS Route) y luego usa{{Route}}en la plantilla. Las series agregadas toman igualmente un alias de su campo Alias. Un group-by sobre una columna simple comoServiceNameya tiene un nombre claro y no necesita alias.