Os gráficos Flame podem ser úteis para visualizar a saída de uma ferramenta de criação de perfil:
http://www.brendangregg.com/flamegraphs.html
https://github.com/brendangregg/FlameGraph
Lembro-me de conversar com @danielmitterdorfer sobre isso há algum tempo. Seria interessante pensar em como os dados de perfil podem ser armazenados no Elasticsearch e visualizados em uma visualização Kibana nativa como esta.
cc: @alexfrancoeur @thomasneirynck
Venho querendo armazenamento de perfis desde sempre. Agora que estou na Elastic, pensei em realmente fazer algo a respeito. Comecei uma nova batida que reúne perfis pprof : https://github.com/axw/pprofbeat.
(Esta é minha primeira incursão real no ES e no Beats, então o formato dos dados provavelmente não é ótimo - mas é alguma coisa.)
Preocupo-me principalmente com a criação de perfil de programas Go, o que é bastante simples: importe um pacote padrão e você pode expor dados de perfil de pilha e CPU por meio de um endpoint HTTP. O que eu quero ver é:
Eu pretendia incorporar a IU da web "pprof" como um plug-in, embora não saiba por onde começar. Nem é preciso dizer que quanto mais integrado, melhor.
Algumas capturas de tela da interface do usuário da web do pprof abaixo, caso as pessoas não saibam disso, podem servir de inspiração.
Gráfico pprof de exemplo:
Pprof flamegraph:
Principais infratores da Pprof:
Anotação do código-fonte Pprof:
Uma abordagem de visualização muito interessante da equipe Netflix Perf, Flamescope
Essa ferramenta torna mais fácil distinguir padrões e aparecer na visualização do gráfico em uma granularidade de subsegundo.
O eixo X é o tempo (t) em segundos, o eixo Y é a divisão em milissegundos de t. O vetor que produz a densidade de cores do mapa de calor é a contagem de eventos para aquele tempo X-> Y.
Tomei a liberdade de criar uma nova solicitação de tipo de visualização em Elastic Charts https://github.com/elastic/elastic-charts/issues/519 para abrir a conversa com essa equipe e para fazer uma avaliação qualificada sobre a busca uma implementação MVP para APM e o que isso deve implicar.
Comentários muito úteis
Uma abordagem de visualização muito interessante da equipe Netflix Perf, Flamescope
Essa ferramenta torna mais fácil distinguir padrões e aparecer na visualização do gráfico em uma granularidade de subsegundo.
O eixo X é o tempo (t) em segundos, o eixo Y é a divisão em milissegundos de t. O vetor que produz a densidade de cores do mapa de calor é a contagem de eventos para aquele tempo X-> Y.