Los gráficos de llama pueden resultar útiles para visualizar el resultado de una herramienta de creación de perfiles:
http://www.brendangregg.com/flamegraphs.html
https://github.com/brendangregg/FlameGraph
Recuerdo charlar con @danielmitterdorfer sobre esto hace un tiempo. Sería interesante pensar en cómo los datos de creación de perfiles se pueden almacenar en Elasticsearch y visualizar en una visualización nativa de Kibana como esta.
cc: @alexfrancoeur @thomasneirynck
Llevo queriendo almacenamiento de perfiles desde siempre. Ahora que estoy en Elastic, pensé en hacer algo al respecto. Empecé con un nuevo Beat que reúne perfiles pprof : https://github.com/axw/pprofbeat.
(Esta es mi primera incursión real en ES y Beats, por lo que el formato de datos probablemente no sea excelente, pero es algo).
Me preocupo principalmente por la generación de perfiles de los programas Go, que es bastante sencillo: importa un paquete estándar y puedes exponer la CPU y los datos del perfil del montón a través de un punto final HTTP. Lo que quiero ver es:
Tenía la intención de incorporar la interfaz de usuario web "pprof" como un complemento, aunque realmente no sé por dónde empezar. No hace falta decir que cuanto más integrado, mejor.
Algunas capturas de pantalla de la interfaz de usuario web pprof a continuación, en caso de que la gente no lo sepa, pueden servir de inspiración.
Ejemplo de gráfico pprof:
Pprof flamegraph:
Principales infractores de Pprof:
Anotación del código fuente de Pprof:
Un enfoque de visualización muy interesante del equipo de Netflix Perf, Flamescope
Esta herramienta hace que sea fácil distinguir patrones y aparecer en la vista de gráfico de llamas con granularidad de subsegundos.
El eje X es el tiempo (t) en segundos, el eje Y es la división en milisegundos de t. El vector que produce la densidad de color del mapa de calor es el recuento de eventos para ese tiempo X-> Y.
Me he tomado la libertad de crear una nueva solicitud de tipo de visualización en Elastic Charts https://github.com/elastic/elastic-charts/issues/519 para iniciar la conversación con ese equipo y para hacer una evaluación calificada sobre el seguimiento una implementación de MVP para APM y lo que eso debería implicar.
Comentario más útil
Un enfoque de visualización muy interesante del equipo de Netflix Perf, Flamescope
Esta herramienta hace que sea fácil distinguir patrones y aparecer en la vista de gráfico de llamas con granularidad de subsegundos.
El eje X es el tiempo (t) en segundos, el eje Y es la división en milisegundos de t. El vector que produce la densidad de color del mapa de calor es el recuento de eventos para ese tiempo X-> Y.