# Como configurar API de métricas Digibee com Prometheus

**Prometheus** é uma plataforma de monitoramento que fornece uma visão abrangente sobre o desempenho e a integridade de vários aspectos da infraestrutura, aplicativos e serviços de TI de uma organização.

## **Requisitos**

* A funcionalidade deve estar habilitada para seu *realm.*
* Nome de usuário, senha e chave de API gerados no menu Digibee APIs.&#x20;
* Conexão entre seu Prometheus e seu *realm* na Digibee Integration Platform.

## **Exemplos de uso**

### **Configuração**

No [arquivo de configuração do trabalho do Prometheus](https://prometheus.io/docs/prometheus/latest/configuration/configuration/), adicione uma configuração de trabalho como demonstrado abaixo:

```yaml
...
scrape_configs:
...
- job_name: digibee_platform_<ENVIRONMENT>
  scheme: https
  targets:
    - <DIGIBEE_SERVICES_API_URL>
  metrics_path: /metrics/openmetrics_raw?environment=<ENVIRONMENT>
  params:
    environment:
      - <ENVIRONMENT>
    apikey:
      - {DIGIBEE_SERVICES_API_APIKEY}
    metric:
      - <METRIC_NAME>

  basic_auth:
    username: <DIGIBEE_SERVICES_API_USERNAME>
    password: <DIGIBEE_SERVICES_API_PASSWORD>
  honor_timestamps: true
  scrape_interval: 5m
  scrape_timeout: 60s
  follow_redirects: true
```

{% hint style="info" %}
Insira seu nome de usuário seguindo o formato \<realm>-\<nomedeusuario> mostrado no menu [Digibee APIs.](https://docs.digibee.com/documentation/developer-guide/pt-br/platform-administration/digibee-apis)
{% endhint %}

### Configuração de VPN

```yaml
...
scrape_configs:
...
- job_name: digibee_platform
  scheme: https
  targets:
    - <DIGIBEE_SERVICES_API_URL>
  metrics_path: /metrics/openmetrics_raw?
  params:
    apikey:
      - {DIGIBEE_SERVICES_API_APIKEY}
    metric:
      - <METRIC_NAME>

  basic_auth:
    username: <DIGIBEE_SERVICES_API_USERNAME>
    password: <DIGIBEE_SERVICES_API_PASSWORD>
  honor_timestamps: true
  scrape_interval: 5m
  scrape_timeout: 60s
  follow_redirects: true
```

## **Variáveis**

<table data-header-hidden><thead><tr><th width="78.33333333333331"></th><th></th><th></th></tr></thead><tbody><tr><td><strong>#</strong></td><td><strong>Nome da variável</strong></td><td><strong>Descrição</strong></td></tr><tr><td>1</td><td>HOST</td><td>HOST da URL gerada na página de credenciais de API após configurar uma credencial.</td></tr><tr><td>2</td><td>REALM</td><td>O nome de seu <em>realm</em></td></tr><tr><td>3</td><td>ENVIRONMENT</td><td>Ambiente onde as métricas são coletadas</td></tr><tr><td>4</td><td>DIGIBEE_SERVICES_API_APIKEY</td><td>Gerado após configurar um nome de usuário e senha na página de Gerenciamento de API.</td></tr><tr><td>5</td><td>DIGIBEE_SERVICES_API_USERNAME</td><td>Nome de usuário criado/configurado na página de Gerenciamento de API.</td></tr><tr><td>6</td><td>DIGIBEE_SERVICES_API_PASSWORD</td><td>Senha criada/configurada na página de Gerenciamento de API.</td></tr><tr><td>7</td><td>METRIC_NAME</td><td>Lista os nomes das métricas (uma por linha) de acordo com a tabela abaixo.</td></tr></tbody></table>

## **Visualizar seus dados no Prometheus com Grafana**

<table data-full-width="false"><thead><tr><th width="338.6666666666667">Nome da métrica</th><th width="286">Descrição</th><th>Tipo</th></tr></thead><tbody><tr><td><strong>jvm_memory_bytes_committed</strong></td><td>Committed (bytes) de uma determinada área de memória JVM.</td><td>Gauge</td></tr><tr><td><strong>jvm_memory_bytes_init</strong></td><td>Bytes iniciais de uma determinada área de memória JVM.</td><td>Gauge</td></tr><tr><td><strong>jvm_memory_bytes_max</strong></td><td>Máximo (bytes) de uma determinada área de memória JVM.</td><td>Gauge</td></tr><tr><td><strong>jvm_memory_bytes_used</strong></td><td>Bytes usados de uma determinada área de memória JVM.</td><td>Gauge</td></tr><tr><td><strong>jvm_memory_pool_bytes_committed</strong></td><td>Bytes committed de um determinado conjunto de memória JVM.</td><td>Gauge</td></tr><tr><td><strong>jvm_memory_pool_bytes_init</strong></td><td>Bytes iniciais de um determinado conjunto de memória JVM.</td><td>Gauge</td></tr><tr><td><strong>jvm_memory_pool_bytes_max</strong></td><td>Máximo (bytes) de um determinado conjunto de memória JVM.</td><td>Gauge</td></tr><tr><td><strong>jvm_memory_pool_bytes_used</strong></td><td>Bytes usados de um determinado conjunto de memória JVM.</td><td>Gauge</td></tr><tr><td><strong>pipeline_all_hung</strong></td><td>Booleano que indica se todos os consumidores do pipeline estão travados.</td><td>Gauge</td></tr><tr><td><strong>pipeline_cached_bytes</strong></td><td>Total de bytes armazenados em cache.</td><td>Summary</td></tr><tr><td><strong>pipeline_component_executions_total</strong></td><td>O número total de execuções por componente.</td><td>Counter</td></tr><tr><td><strong>pipeline_component_processi_latency_seconds</strong></td><td>Latência de processamento de componentes em segundos.</td><td>Summary</td></tr><tr><td><strong>pipeline_inflight</strong></td><td>Número de pipelines atualmente em execução (em andamento).</td><td>Gauge</td></tr><tr><td><strong>pipeline_inflight_reported_by_camel</strong></td><td>Número de pipelines em execução (inflights) relatados pelo Camel.</td><td>Gauge</td></tr><tr><td><strong>pipeline_jvm_memory_bytes_max</strong></td><td> Máximo (bytes) de uma determinada área de memória JVM.</td><td>Gauge</td></tr><tr><td><strong>pipeline_jvm_memory_bytes_used</strong></td><td>Bytes usados de uma determinada área de memória JVM.</td><td>Gauge</td></tr><tr><td><strong>pipeline_message_error_rate_in_sec</strong></td><td>Taxa de erros de mensagens por segundos (número inteiro).</td><td>Gauge</td></tr><tr><td><strong>pipeline_message_monitoring_processor_latency_seconds</strong></td><td>Latência do processador de monitoramento de mensagens em segundos.</td><td>Summary</td></tr><tr><td><strong>pipeline_message_processing_latency_seconds</strong></td><td>Duração que uma mensagem é executada dentro de uma réplica (Pipeline response time).</td><td>Summary</td></tr><tr><td><strong>pipeline_message_rate_in_sec</strong></td><td>Taxa de mensagens por segundos (número inteiro).</td><td>Gauge</td></tr><tr><td><strong>pipeline_message_size_bytes</strong></td><td>Tamanho da mensagem em bytes.</td><td>Summary</td></tr><tr><td><strong>pipeline_process_cpu_seconds_total</strong></td><td>Tempo total de CPU do usuário e do sistema gasto em segundos.</td><td>Counter</td></tr><tr><td><strong>pipeline_redeliveries</strong></td><td>Número total de mensagens reenviadas.</td><td>Counter</td></tr><tr><td><strong>rabbitmq_queue_messages</strong></td><td>Número de mensagens da fila em um determinado intervalo de tempo.</td><td>Gauge</td></tr></tbody></table>

### Métricas de VPN

| Nome da métrica                  | Descrição                                                       | Tipo    |
| -------------------------------- | --------------------------------------------------------------- | ------- |
| ipsec\_tunnel\_bytes\_in         | Quantidade total de dados recebidos pelo túnel em bytes.        | Counter |
| ipsec\_tunnel\_bytes\_out        | Quantidade total de dados enviados pelo túnel em bytes.         | Counter |
| ipsec\_tunnel\_nat\_status       | Indica o status do Network Address Translation (NAT).           | Gauge   |
| ipsec\_tunnel\_status            | Status atual do túnel (ativo ou inativo).                       | Gauge   |
| ipsec\_tunnel\_status\_last\_run | Data/hora da última execução da verificação de status do túnel. | Counter |
| ipsec\_tunnel\_vpncheck\_status  | Indica o status do serviço que coleta métricas de VPN.          | Gauge   |
