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