
O método RED (Taxa, Erros, Duração) é uma das abordagens populares para monitoramento de desempenho. Geralmente é usado para monitorar microsserviços , embora nada o impeça de usá-lo para bancos de dados como o MySQL.
No Percona Monitoring and Management (PMM) v2, todas as informações necessárias são coletadas no banco de dados ClickHouse e, em seguida, é uma questão de tecnologia criar um painel para visualizar métricas usando a fonte de dados ClickHouse embutida .
Ao criar o painel, além dos painéis para RED, vários painéis adicionais foram adicionados para mostrar algumas coisas interessantes que podem ser feitas com Grafana + ClickHouse como fonte de dados e as informações que armazenamos sobre o desempenho de consulta do MySQL.
Vamos dar uma olhada no painel de controle.

Vemos os painéis clássicos do RED mostrando a taxa de consulta (solicitações por segundo), a taxa de erro (erros), bem como a latência de consulta média e o percentil 99 (tempo de execução da consulta) para todos os nós do sistema. Os painéis abaixo exibem informações sobre nós específicos, o que é muito útil para comparar seu desempenho. Se um dos nós começar a funcionar de maneira diferente de outros nós semelhantes, então este é um motivo para investigação.
Com a ajuda de filtros (“Filtros” na parte superior do painel), você pode visualizar apenas os dados de que precisa. Por exemplo, você pode selecionar apenas consultas de esquema "sbtest" para hosts localizados na região "datacenter4":

Essa filtragem ad-hoc é muito conveniente. Você pode usar expressões regulares em filtros, pesquisar por um QueryID específico, analisar consultas de hosts de clientes específicos, etc. Para obter uma descrição das colunas disponíveis no ClickHouse, consulte o post Análise de consulta avançada em Monitoramento e gerenciamento Percona com acesso direto ao ClickHouse .
Na maioria dos painéis, você pode acessar rapidamente o Query Analytics para visualizar informações detalhadas sobre o desempenho da consulta, ou se você notar algo incomum em um dos hosts, você pode visualizar as consultas deste host através dos “Links de dados” - clique em gráfico e siga o link dedicado:

Para cada um dos sistemas separadamente, você pode olhar para as mesmas métricas de RED para todo o sistema como um todo. Por padrão, eu deixaria esses painéis minimizados, especialmente se você estiver monitorando muitos hosts.
Conhecemos os painéis do método RED. Agora, vamos dar uma olhada nos Painéis adicionais neste painel.

A eficiência baseada em linha mostra quantas linhas foram analisadas por linha retornada ou alterada. Normalmente, valores maiores que 100 indicam índices ruins ou consultas muito complexas que leem muitos dados e retornam apenas algumas linhas. Ambos os casos requerem análise.
Eficiência baseada no tempo(eficiência baseada no tempo) baseia-se na mesma matemática, mas analisa o tempo de execução da consulta em vez do número de linhas verificadas. Isso permite diagnosticar problemas com um disco lento ou solicitações conflitantes. Normalmente, um sistema de alto desempenho deve esperar frações de milissegundos para enviar ou modificar uma string para o cliente. As consultas que retornam ou atualizam muitas linhas terão um valor inferior.
Consultas por host(o número de solicitações por host) fala por si e ao lado é muito útil ver a Consulta Carga por Host (carga por hosts), que mostra o número de solicitações ativas simultâneas. Aqui podemos ver que apesar do mysql4 não ter o maior número de consultas (taxa de consultas), ele possui a maior carga e o maior número médio de consultas ativas.
Pensando em quais outras métricas podem ser úteis, adicionei os seguintes painéis adicionais:

Esses painéis separam a Eficiência de Processamento de Consultas em consultas READ (que retornam linhas) e consultas WRITE (que possuem row_affected).
A Eficiência Baseada em QueryTime é igual à descrita acima, apenas com ênfase em certos tipos de consultas.
Eficiência de processamento de dados(eficiência de processamento de dados) é uma visão ligeiramente diferente dos mesmos dados. Isso mostra quantas linhas são examinadas pela consulta em relação ao tempo de execução da consulta. Isso, por um lado, mostra o poder de processamento do sistema. Um sistema com muitos núcleos, tendo todos os dados na memória, pode processar milhões de linhas por segundo e fazer muito trabalho. Mas isso não significa eficiência de consulta. Na verdade, os sistemas que processam muitos dados rapidamente realizam muitas varreduras completas da tabela.
Finalmente, existem várias listas de solicitações.

Consultas frequentes, consultas mais lentas (por tempo médio de execução), consultas com maior carga e consultas que falharam ou falharam. Você também pode ver essas consultas no Query Analytics, mas eu queria mostrá-las aqui como um exemplo.
Você está interessado? Você pode instalar o painel em Percona Monitoring and Management (PMM) v2 em Grafana.com .
Do código ao kubernetes