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"
}
}
}
}