# 4.3. Monitorování

Správnost běhu a fungování komponenty PEVA Connector je možné kontrolovat pomocí k tomu určeného rozhraní. To umožňuje přímé monitorování pomocí systému Prometheus, nebo pomocí nástrojů, které jsou schopny zpracovat data ve formátu OpenMetrics.

Monitorovací rozhraní běží na stejném portu, na kterém je dostupná samotná komponenta (viz Monitorování). V příkladech níže je použit port `8081`; pokud komponenta běží na jiném portu, použijte odpovídající číslo. Rozhraní je určeno pro přístup z příkazové řádky serveru (lokálně), nikoli z webového prohlížeče.

## 4.3.1. Zjištění stavu komponenty

Informace o stavu komponenty získáte příkazem:

    curl --silent localhost:8081/actuator/health

Pokud je komponenta v pořádku, vrací stav `UP`.

    {
      "status": "UP"
    }

Stav lze získat i strukturovaně přes REST rozhraní `/status/queues` (viz API pro PEVA Connector).

## 4.3.2. Zjištění stavu stahování z PEvA

Pro stahování z PEvA jsou k dispozici tyto metriky:

> - počet zpracovaných záznamů: `queue.count`

> - doba v sekundách od počátku chybového stavu: `queue.error_at`, hodnota -1 znamená, že fronta není v chybovém stavu a poslední zpracování bylo úspěšné

> - doba v sekundách od posledního zpracování nezávisle na tom, zda úspěšné či neúspěšné: `queue.last_check`

> - doba v sekundách od posledního úspěšného stažení: `queue.last_success`, hodnota -1 znamená, že od startu komponenty zatím žádné stahování neproběhlo úspěšně

Součástí každé metriky je i název systému. Možné hodnoty názvu systému:

> - `peva` - stahování ze systému PEvA

> - `elza` - odesílání do systému Elza - viz níže

Metriky získáte příkazem (výpis se filtruje na metriky front pomocí `grep`):

    curl --silent localhost:8081/actuator/prometheus | grep "^queue"

Příklad odpovědi:

    queue_count_total{name="peva"} 0.0
    queue_last_check{name="peva"} 22.0
    queue_last_success{name="peva"} 22.0
    queue_error_at{name="peva"} -1.0

## 4.3.3. Zjištění stavu fronty do Elza

Pro odchozí frontu do Elza jsou k dispozici tyto metriky:

> - počet zpracovaných (odeslaných) záznamů: `queue.count`

> - počet zakázaných záznamů pro přenos: `queue.count_disabled`

> - počet záznamů, které uvízly ve frontě s chybou (sloupec `status` není null): `queue.count_failed`

> - stáří (v sekundách) nejstaršího záznamu, který uvízl ve frontě s chybou: `queue.oldest_blocked_age`, hodnota -1 znamená, že žádný takový záznam není

> - počet neúspěšných pokusů o odeslání: `queue.error_count`

> - doba v sekundách od počátku chybového stavu: `queue.error_at`

> - doba v sekundách od posledního zpracování: `queue.last_check`

> - doba v sekundách od posledního úspěšného odeslání: `queue.last_success`, hodnota -1 znamená, že od startu komponenty zatím žádné odeslání neproběhlo úspěšně

Název systému pro Elza je `elza`.

Příklad odpovědi:

    queue_count_total{name="elza"} 0.0
    queue_count_disabled{name="elza"} 2.0
    queue_count_failed{name="elza"} 0.0
    queue_oldest_blocked_age{name="elza"} -1.0
    queue_error_count_total{name="elza"} 0.0
    queue_last_check{name="elza"} 22.0
    queue_last_success{name="elza"} 22.0
    queue_error_at{name="elza"} -1.0