Apache NiFi - Monitoreo
En Apache NiFi, hay varias formas de monitorear las diferentes estadísticas del sistema como errores, uso de memoria, uso de CPU, estadísticas de flujo de datos, etc. Discutiremos las más populares en este tutorial.
Monitoreo integrado
En esta sección, aprenderemos más sobre el monitoreo integrado en Apache NiFi.
Tablón de anuncios
El tablero de anuncios muestra el último ERROR y ADVERTENCIA generados por procesadores NiFi en tiempo real. Para acceder al tablero de anuncios, el usuario deberá ir al menú desplegable de la derecha y seleccionar la opción Tablero de anuncios. Se actualiza automáticamente y un usuario también puede desactivarlo. Un usuario también puede navegar hasta el procesador real haciendo doble clic en el error. Un usuario también puede filtrar los boletines trabajando con lo siguiente:
- por mensaje
- por nombre
- por id
- por ID de grupo
IU de procedencia de datos
Para monitorear los eventos que ocurren en cualquier procesador específico o en todo NiFi, un usuario puede acceder a la procedencia de los datos desde el mismo menú que el tablero de anuncios. Un usuario también puede filtrar los eventos en el repositorio de procedencia de datos trabajando con los siguientes campos:
- por nombre de componente
- por tipo de componente
- por tipo
Interfaz de usuario de resumen de NiFi
También se puede acceder al resumen de Apache NiFi desde el mismo menú que el tablero de anuncios. Esta interfaz de usuario contiene información sobre todos los componentes de esa instancia o clúster de NiFi en particular. Se pueden filtrar por nombre, por tipo o por URI. Hay diferentes pestañas para diferentes tipos de componentes. A continuación se muestran los componentes, que se pueden monitorear en la interfaz de usuario de resumen de NiFi:
- Processors
- Puertos de entrada
- Puertos de salida
- Grupos de procesos remotos
- Connections
- Grupos de procesos
En esta interfaz de usuario, hay un enlace en la parte inferior derecha denominado diagnóstico del sistema para comprobar las estadísticas de la JVM.
Tareas de informes
Apache NiFi proporciona múltiples tareas de informes para admitir sistemas de monitoreo externos como Ambari, Grafana, etc. Un desarrollador puede crear una tarea de informes personalizada o puede configurar las incorporadas para enviar las métricas de NiFi a los sistemas de monitoreo externos. La siguiente tabla enumera las tareas de informes que ofrece NiFi 1.7.1.
S.No. | Nombre de la tarea de informes | Descripción |
---|---|---|
1 | AmbariReportingTask | Para configurar Ambari Metrics Service para NiFi. |
2 | ControllerStatusReportingTask | Para reportar la información de la interfaz de usuario de resumen de NiFi durante los últimos 5 minutos. |
3 | MonitorDiscoUso | Para informar y advertir sobre el uso del disco de un directorio específico. |
4 | MonitorMemoria | Para supervisar la cantidad de Java Heap utilizado en una agrupación de memoria Java de JVM. |
5 | SiteToSiteBulletinReportingTask | Informar los errores y advertencias en boletines utilizando el protocolo Site to Site. |
6 | SiteToSiteProvenanceReportingTask | Para informar los eventos de procedencia de datos de NiFi utilizando el protocolo de sitio a sitio. |
API NiFi
Existe una API denominada diagnósticos del sistema, que se puede utilizar para monitorear las estadísticas de NiFI en cualquier aplicación desarrollada a medida. Revisemos la API en cartero.
Solicitud
http://localhost:8080/nifi-api/system-diagnostics
Respuesta
{
"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"
}
}
}
}