Apache NiFi - monitorowanie

W Apache NiFi istnieje wiele sposobów monitorowania różnych statystyk systemu, takich jak błędy, zużycie pamięci, użycie procesora, statystyki przepływu danych itp. W tym samouczku omówimy najpopularniejsze z nich.

Wbudowany monitoring

W tej sekcji dowiemy się więcej o wbudowanym monitorowaniu w Apache NiFi.

Tablica ogłoszeń

Tablica ogłoszeń pokazuje najnowsze BŁĘDY i OSTRZEŻENIA generowane przez procesory NiFi w czasie rzeczywistym. Aby uzyskać dostęp do tablicy ogłoszeń, użytkownik będzie musiał przejść do menu rozwijanego po prawej stronie i wybrać opcję Tablica ogłoszeń. Odświeża się automatycznie, a użytkownik może go również wyłączyć. Użytkownik może również przejść do właściwego procesora, klikając dwukrotnie błąd. Użytkownik może również filtrować biuletyny, wykonując następujące czynności -

  • wiadomością
  • wg nazwy
  • według id
  • według identyfikatora grupy

Interfejs użytkownika pochodzenia danych

Aby monitorować zdarzenia zachodzące na dowolnym określonym procesorze lub w całym NiFi, użytkownik może uzyskać dostęp do pochodzenia danych z tego samego menu co tablica ogłoszeń. Użytkownik może również filtrować zdarzenia w repozytorium pochodzenia danych, opracowując następujące pola -

  • według nazwy komponentu
  • według typu komponentu
  • według rodzaju

Interfejs użytkownika podsumowania NiFi

Podsumowanie Apache NiFi jest również dostępne z tego samego menu, co tablica ogłoszeń. Ten interfejs użytkownika zawiera informacje o wszystkich składnikach tej konkretnej instancji lub klastra NiFi. Można je filtrować według nazwy, typu lub identyfikatora URI. Istnieją różne zakładki dla różnych typów komponentów. Poniżej znajdują się komponenty, które można monitorować w podsumowującym interfejsie użytkownika NiFi -

  • Processors
  • Porty wejściowe
  • Porty wyjściowe
  • Zdalne grupy procesów
  • Connections
  • Grupy procesów

W tym interfejsie użytkownika w prawym dolnym rogu znajduje się łącze o nazwie diagnostyka systemu, które umożliwia sprawdzenie statystyk maszyny JVM.

Zadania sprawozdawcze

Apache NiFi zapewnia wiele zadań raportowania do obsługi zewnętrznych systemów monitorowania, takich jak Ambari, Grafana itp. Programista może utworzyć niestandardowe zadanie raportowania lub skonfigurować wbudowane, aby przesyłać metryki NiFi do zewnętrznych systemów monitorowania. Poniższa tabela zawiera listę zadań raportowania oferowanych przez NiFi 1.7.1.

S.No. Nazwa zadania raportowania Opis
1 AmbariReportingTask Aby skonfigurować usługę Ambari Metrics dla NiFi.
2 ControllerStatusReportingTask Zgłaszanie informacji z interfejsu użytkownika podsumowania NiFi z ostatnich 5 minut.
3 MonitorDiskUsage Zgłaszanie i ostrzeganie o wykorzystaniu dysku przez określony katalog.
4 MonitorMemory Monitorowanie ilości Java Heap używanej w puli pamięci Java maszyny JVM.
5 SiteToSiteBulletinReportingTask Zgłaszanie błędów i ostrzeżeń w biuletynach przy użyciu protokołu Site to Site.
6 SiteToSiteProvenanceReportingTask Aby zgłosić zdarzenia NiFi Data Provenance przy użyciu protokołu Site to Site.

NiFi API

Istnieje API o nazwie diagnostyka systemu, które można wykorzystać do monitorowania statystyk NiFI w dowolnej niestandardowej aplikacji. Sprawdźmy API w listonoszu.

Żądanie

http://localhost:8080/nifi-api/system-diagnostics

Odpowiedź

{
   "systemDiagnostics": {
      "aggregateSnapshot": {
         "totalNonHeap": "183.89 MB",
         "totalNonHeapBytes": 192819200,
         "usedNonHeap": "173.47 MB",
         "usedNonHeapBytes": 181894560,
         "freeNonHeap": "10.42 MB",
         "freeNonHeapBytes": 10924640,
         "maxNonHeap": "-1 bytes",
         "maxNonHeapBytes": -1,
         "totalHeap": "512 MB",
         "totalHeapBytes": 536870912,
         "usedHeap": "273.37 MB",
         "usedHeapBytes": 286652264,
         "freeHeap": "238.63 MB",
         "freeHeapBytes": 250218648,
         "maxHeap": "512 MB",
         "maxHeapBytes": 536870912,
         "heapUtilization": "53.0%",
         "availableProcessors": 4,
         "processorLoadAverage": -1,
         "totalThreads": 71,
         "daemonThreads": 31,
         "uptime": "17:30:35.277",
         "flowFileRepositoryStorageUsage": {
            "freeSpace": "286.93 GB",
            "totalSpace": "464.78 GB",
            "usedSpace": "177.85 GB",
            "freeSpaceBytes": 308090789888,
            "totalSpaceBytes": 499057160192,
            "usedSpaceBytes": 190966370304,
            "utilization": "38.0%"
         },
         "contentRepositoryStorageUsage": [
            {
               "identifier": "default",
               "freeSpace": "286.93 GB",
               "totalSpace": "464.78 GB",
               "usedSpace": "177.85 GB",
               "freeSpaceBytes": 308090789888,
               "totalSpaceBytes": 499057160192,
               "usedSpaceBytes": 190966370304,
               "utilization": "38.0%"
            }
         ],
         "provenanceRepositoryStorageUsage": [
            {
               "identifier": "default",
               "freeSpace": "286.93 GB",
               "totalSpace": "464.78 GB",
               "usedSpace": "177.85 GB",
               "freeSpaceBytes": 308090789888,
               "totalSpaceBytes": 499057160192,
               "usedSpaceBytes": 190966370304,
               "utilization": "38.0%"
            }
         ],
         "garbageCollection": [
            {
               "name": "G1 Young Generation",
               "collectionCount": 344,
               "collectionTime": "00:00:06.239",
               "collectionMillis": 6239
            },
            {
               "name": "G1 Old Generation",
               "collectionCount": 0,
               "collectionTime": "00:00:00.000",
               "collectionMillis": 0
            }
         ],
         "statsLastRefreshed": "09:30:20 SGT",
         "versionInfo": {
            "niFiVersion": "1.7.1",
            "javaVendor": "Oracle Corporation",
            "javaVersion": "1.8.0_151",
            "osName": "Windows 7",
            "osVersion": "6.1",
            "osArchitecture": "amd64",
            "buildTag": "nifi-1.7.1-RC1",
            "buildTimestamp": "07/12/2018 12:54:43 SGT"
         }
      }
   }
}