.. _oper_monit:

=================
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 :ref:`config_monit`). 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.

Zjištění stavu komponenty
============================

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

.. code-block:: bash

  curl --silent localhost:8081/actuator/health

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

.. code-block:: json

  {
    "status": "UP"
  }

Stav lze získat i strukturovaně přes REST rozhraní ``/status/queues``
(viz :ref:`peva_connector_api`).

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``):

.. code-block:: bash

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

Příklad odpovědi:

.. code-block::

  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


.. _oper_monit_queue_elza:

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:

.. code-block::

  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
