Monitorando produtos Atlassian com Prometheus

1. Introdução


Olá pessoal! Hoje falaremos sobre o monitoramento em tempo real dos produtos Atlassian .

Primeiro, vamos definir o que é monitoramento e por que é necessário para os produtos Atlassian .

O monitoramento do programa é usado para rastrear o progresso e os resultados de um programa. Em outras palavras, é um processo que em tempo real pode exibir informações sobre o status de um produto de software.

Quando pode ser útil para produtos Atlassian ?

Considere os seguintes exemplos:

  • Você deseja saber como a atualização de um produto ou plug-in afeta o desempenho do sistema;
  • Você quer saber sobre o estado do ferro e da memória sob várias condições e em determinados momentos. Por exemplo, como aumentar o número de usuários ou alterar a hora do dia afeta o sistema;
  • Você deseja observar com que intensidade o sistema como um todo é usado. Por exemplo, o número total de tarefas em Jira ou em 1 hora;
  • Você deseja definir um lembrete na data de vencimento da licença;
  • Você gostaria de saber a quantidade de espaço em disco usada para armazenar documentos.

Eu também gostaria não apenas de receber informações em um formulário preparado, mas também de poder enviar notificações se algo acontecer de acordo com um cenário incorreto. Aqui o Prometheus e seus exportadores de produtos da Atlassian nos ajudarão.

Arquitetura da solução


O Prometheus é uma ferramenta para monitorar dezenas de milhares de serviços simultaneamente. O servidor do Prometheus lê os destinos em um intervalo que você define para coletar métricas e os armazena em um banco de dados de séries temporais. Para coletar métricas, o modelo pull é usado. Além disso, há um componente do Alert Manager que pode enviar notificações para vários canais se uma determinada regra baseada em métricas tiver funcionado. Você pode encontrar informações detalhadas em russo aqui e aqui .

O exportador de Prometheus é um agente que coleta métricas diretamente da entidade (o servidor como um todo ou um aplicativo específico) que precisa ser monitorado. O Prometheus possui opções de expansão avançadas, portanto, existem exportadores para os aplicativos mais populares.

[jira | confluência | bitbucket | bamboo] _exporter funciona da seguinte maneira:

  • Recupera dados do banco de dados do produto
  • Recupera dados usando a API Java padrão
  • Adiciona filtros a solicitações HTTP
  • coleta métricas de jmx.

Um exemplo de uma instalação rápida do Prometheus / Grafana no Docker é implementado por Stefan Prodan e está disponível aqui .

Instalação e configuração do exportador


Depois de instalar o plug - in , você obtém imediatamente o link para a métrica: baseUrl / plugins / servlet / prometheus / metrics . Também é possível configurar uma chave de segurança.

Em seguida, no prometheus.yml, você precisa adicionar o endereço no qual obter as métricas.
Por exemplo, para Jira :

- job_name: 'jira' scheme: https # change to http if don't you have https metrics_path: '/jira/plugins/servlet/prometheus/metrics' static_configs: - targets: ['myhost:2990'] # Jira host and port you serve 

A integração está concluída, você pode usar.

Métricas e exemplos de consulta


Você pode ver a lista de todas as métricas na documentação do plug-in: Jira , Confluence , Bitbucket , Bamboo .

Solicite exemplos:

  • Tempo de atividade:

     jvm_uptime_gauge{job="jira"} 
  • Tempo de execução da solicitação do servidor:

     (sum(rate(jira_request_duration_on_path_sum[1m])) by (path)) / (sum(rate(jira_request_duration_on_path_count[1m])) by (path)) 
  • Número total de tarefas:

     jira_total_issues_gauge 
  • Número de visualizações de painéis:

     sum(increase(jira_dashboard_view_count[1h])) 

Você pode ler mais sobre como criar consultas aqui .

Grafana Dashboards


Você pode usar o Grafana como um componente de terceiros para visualizar as métricas armazenadas no banco de dados de séries temporais do Prometheus . Existem várias implementações prontas no site oficial. Por exemplo, painéis para Jira podem ser encontrados neste link .


Funcionalidades


Pretendo adicionar a capacidade de definir métricas personalizadas usando o Groovy , bem como suporte completo para o Service Desk . Assim, você pode adicionar métricas personalizadas não apenas para os produtos em si, mas também para outros plugins.
Todos os exportadores estão abertos e se desenvolvem ativamente. Se você tem idéias para melhoria ou expansão, crie tarefas ( Jira , Confluence , Bitbucket , Bamboo ) e / ou faça solicitações de recebimento.

Conclusão


Se suas instalações Atlassian são muito grandes e você precisa garantir uma operação contínua, você definitivamente precisa de monitoramento. E como - decida por si mesmo. Prometeu , como uma das opções que, sem dúvida, simplificará sua vida.
Obrigado pela atenção!

Source: https://habr.com/ru/post/pt412897/


All Articles