Artigo
· Maio 24 5min de leitura

Usando o Prometheus para coletar métricas no Intersystems IRIS

Olá,

Neste artigo vamos ver o uso do Prometheus (prometheus.io) para coletar métricas no Iris, de forma a monitorarmos o ambiente.

O link https://cloud.google.com/discover/what-is-prometheus?hl=pt-br apresenta uma descrição bem completa do Prometheus.

O Iris conta com uma api que disponibiliza uma série de informações do ambiente. A documentação completa da api pode ser encontrada no endereço https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GCM_rest

Uma simples chamada a api já nos mostra as informações disponíveis:

Fig. 1 – Apresentação dos dados da API de Metricas do IRIS

A api segue o padrão definido pela OpenMetrics (openmetrics.io). Podemos usar o Prometheus para fazer a coleta dos dados desta api e então depois visualizar as informações. Na própria documentação da api existe o link para a configuração básica do Prometheus (https://prometheus.io/docs/introduction/first_steps/ ).

Para iniciarmos, baixe o Prometheus para seu ambiente em um diretório. Você pode encontrar o download para seu ambiente no link https://prometheus.io/download/

Descompacte o arquivo e terá o necessário para a execução. Abaixo a tela com o conteúdo do diretório descompactado para o ambiente Windows:

Fig. 2 – Diretório do Prometheus descompactado

Localize o arquivo prometheus.yaml. Ele é o arquivo de configuração para o Prometheus. Abra este arquivo com um editor de texto:

Fig. 3 Arquivo prometheus.yaml

 

No fim do arquivo você verá a configuração de acesso ao Iris que eu já coloquei no meu arquivo.

No caso estamos com o Iris e o Prometheus no mesmo servidor. Em um ambiente produtivo o ideal é que o servidor do Prometheus seja apartado do Iris. Assim caso exista alguma questão no servidor do Iris os dados do Prometheus estarão disponíveis para consultas.

As seguintes linhas foram incluídas no arquivo, na seção scrape_config:

  - job_name: "iris"

    # metrics_path defaults to '/metrics'

    # scheme defaults to 'http'.

    metrics_path: '/api/monitor/metrics'

    static_configs:

      - targets: ["127.0.0.1"]

job_name é o nome dado a configuração no Prometheus

metrics_path é o caminho para a api no servidor Iris

targets é o endereço IP onde o Iris está atendendo as requisições

No caso não estamos usando a api com autenticação de usuários por ser um simples teste, mas caso vá para um ambiente produtivo a autenticação é necessária por conta de segurança. Veja como autenticar uma api no link https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GREST_securing

Para o caso de uso da api com autenticação temos que fornecer, por exemplo para a basic auth o usuário e a senha. Coloque as informações no arquivo de configuração do Prometheus:

  - job_name: "iris"

    # metrics_path defaults to '/metrics'

    # scheme defaults to 'http'.

    metrics_path: '/api/monitor/metrics'

    basic_auth:

       username: 'XXX' # Usuario autorizado a acessar a API

       password: 'XXX' # Senha do usuario

    static_configs:

      - targets: ["127.0.0.1"]

O exemplo acima mostra como configurar o acesso a api usando basic auth.

Após incluir as linhas, salve o arquivo e execute o programa prometheus.exe ou o executável disponibilizado para seu ambiente. No caso do exemplo estamos usando Windows.

Fig. 4 – Tela do Prometheus em execução no Windows

A partir deste momento o Prometheus fica disponível para acesso a partir da porta 9090 do servidor. Podemos acessar e ver a configuração iris do Prometheus acessando o link http://127.0.0.1:9090/targets:

Fig. 5 – Tela do Prometheus ativo apresentando as configurações de acesso

Agora podemos ver os dados já coletados pelo Prometheus no Iris. Por padrão o Prometheus coleta dados a cada minuto, conforme a propriedade scrape_interval da seção global do arquivo de configuração. No caso, para vermos dados de teste, mudei o valor para 10 segundos:

global:

  scrape_interval: 10s # Set the scrape interval to every 10 seconds.

Assim que o Prometheus tenha uma base de informações coletadas podemos visualizar informações com a opção de gráfico. Para isso acesse o link http://127.0.0.1:9090/graph:

Fig. 6 – Tela de apresentação de gráficos do Prometheus

Agora em Expression informe “iris” e veja todas as informações coletadas:

Fig. 7 – Tela do Gráfico com as opções de visualização

Selecione, por exemplo, iris_cpu_usage na lista de opções e depois selecione a aba Graph. Você já verá o gráfico de uso de CPU desde o momento de ativação do Prometheus:

Fig. 8 - Tela do Prometheus apresentando um gráfico

Você pode explorar selecionando outras opções para visualização. Veja por exemplo iris_glo_ref_per_sec que na documentação da api nos informa trazer as informações de Número de referências a globais localizadas em bancos de dados locais por segundo:

Fig .9 – Apresentação do gráfico de referencia a globais por segundo

O interessante deste monitoramento não é somente podermos acompanhar a saúde do ambiente, mas também verificar o que ocorreu em determinados momentos. Podemos solicitar a visualização dos dados de momentos anteriores a partir da tela de apresentação:

Fig. 10 - Tela de Prometheus selecionando uma data

Caso necessário, marque a caixa Use local time para ajustar o horário para sua zona de tempo.

Explore as informações do Prometheus e veja toda a gama de métricas que são disponibilizadas pelo Iris.

No próximo artigo veremos como ligar o Grafana ao Prometheus para montar um dashboard de visualização das informações coletadas.

Agradeço a @Mikhail Khomenko e seu artigo sobre esse assunto publicado em https://community.intersystems.com/post/making-prometheus-monitoring-intersystems-iris-and-cach%C3%A9 de onde retirei informações importantes para a montagem deste documento. Não deixem de ver este excelente artigo.

Discussão (0)1
Entre ou crie uma conta para continuar