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