Apache NiFi - Monitoraggio
In Apache NiFi, ci sono diversi modi per monitorare le diverse statistiche del sistema come errori, utilizzo della memoria, utilizzo della CPU, statistiche sul flusso di dati, ecc. Discuteremo i più popolari in questo tutorial.
Monitoraggio integrato
In questa sezione, impareremo di più sul monitoraggio integrato in Apache NiFi.
Albo
La bacheca mostra gli ultimi ERRORI e AVVISI generati dai processori NiFi in tempo reale. Per accedere alla bacheca, un utente dovrà andare nel menu a discesa a destra e selezionare l'opzione Bacheca. Si aggiorna automaticamente e un utente può anche disabilitarlo. Un utente può anche accedere al processore effettivo facendo doppio clic sull'errore. Un utente può anche filtrare i bollettini lavorando con quanto segue:
- tramite messaggio
- per nome
- per id
- per ID gruppo
Interfaccia utente di provenienza dei dati
Per monitorare gli Eventi che si verificano su qualsiasi processore specifico o attraverso NiFi, un utente può accedere alla Provenienza dei dati dallo stesso menu della bacheca. Un utente può anche filtrare gli eventi nel repository di provenienza dei dati lavorando con i seguenti campi:
- per nome del componente
- per tipo di componente
- per tipo
Interfaccia utente di riepilogo NiFi
È inoltre possibile accedere al riepilogo NiFi di Apache dallo stesso menu della bacheca. Questa interfaccia utente contiene informazioni su tutti i componenti di quella particolare istanza o cluster NiFi. Possono essere filtrati per nome, per tipo o per URI. Sono disponibili diverse schede per diversi tipi di componenti. Di seguito sono riportati i componenti, che possono essere monitorati nell'interfaccia utente di riepilogo NiFi:
- Processors
- Porte di ingresso
- Porte di uscita
- Gruppi di processi remoti
- Connections
- Gruppi di processi
In questa interfaccia utente, c'è un collegamento in basso a destra denominato diagnostica di sistema per controllare le statistiche JVM.
Attività di reporting
Apache NiFi fornisce più attività di reporting per supportare sistemi di monitoraggio esterni come Ambari, Grafana, ecc. Uno sviluppatore può creare un'attività di reporting personalizzata o può configurare quelle integrate per inviare le metriche di NiFi ai sistemi di monitoraggio esterni. La tabella seguente elenca le attività di reporting offerte da NiFi 1.7.1.
S.No. | Reporting Task Name | Descrizione |
---|---|---|
1 | AmbariReportingTask | Per impostare Ambari Metrics Service per NiFi. |
2 | ControllerStatusReportingTask | Per segnalare le informazioni dall'interfaccia utente di riepilogo NiFi per gli ultimi 5 minuti. |
3 | MonitorDiskUsage | Per segnalare e avvisare sull'utilizzo del disco di una directory specifica. |
4 | MonitorMemory | Per monitorare la quantità di Java Heap utilizzata in un pool di memoria Java di JVM. |
5 | SiteToSiteBulletinReportingTask | Per segnalare gli errori e gli avvisi nei bollettini utilizzando il protocollo Site to Site. |
6 | SiteToSiteProvenanceReportingTask | Per segnalare gli eventi di provenienza dei dati NiFi utilizzando il protocollo da sito a sito. |
API NiFi
Esiste un'API denominata diagnostica di sistema, che può essere utilizzata per monitorare le statistiche NiFI in qualsiasi applicazione sviluppata personalizzata. Controlliamo l'API in Postman.
Richiesta
http://localhost:8080/nifi-api/system-diagnostics
Risposta
{
"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"
}
}
}
}