Apache NiFi - Surveillance

Dans Apache NiFi, il existe plusieurs façons de surveiller les différentes statistiques du système telles que les erreurs, l'utilisation de la mémoire, l'utilisation du processeur, les statistiques de flux de données, etc. Nous discuterons des plus populaires dans ce tutoriel.

Surveillance intégrée

Dans cette section, nous en apprendrons plus sur la surveillance intégrée dans Apache NiFi.

Tableau d'affichage

Le babillard affiche les dernières ERREURS et AVERTISSEMENTS générés par les processeurs NiFi en temps réel. Pour accéder au tableau d'affichage, un utilisateur devra aller dans le menu déroulant de droite et sélectionner l'option Tableau d'affichage. Il s'actualise automatiquement et un utilisateur peut également le désactiver. Un utilisateur peut également accéder au processeur réel en double-cliquant sur l'erreur. Un utilisateur peut également filtrer les bulletins en travaillant avec les éléments suivants:

  • par message
  • de nom
  • par identifiant
  • par identifiant de groupe

Interface utilisateur de provenance des données

Pour surveiller les événements survenant sur n'importe quel processeur spécifique ou tout au long de NiFi, un utilisateur peut accéder à la provenance des données à partir du même menu que le tableau d'affichage. Un utilisateur peut également filtrer les événements dans le référentiel de provenance des données en travaillant avec les champs suivants -

  • par nom de composant
  • par type de composant
  • par type

Interface utilisateur récapitulative NiFi

Le résumé Apache NiFi est également accessible à partir du même menu que le tableau d'affichage. Cette interface utilisateur contient des informations sur tous les composants de cette instance ou cluster NiFi particulier. Ils peuvent être filtrés par nom, par type ou par URI. Il existe différents onglets pour différents types de composants. Voici les composants qui peuvent être surveillés dans l'interface utilisateur du résumé NiFi -

  • Processors
  • Ports d'entrée
  • Ports de sortie
  • Groupes de processus distants
  • Connections
  • Groupes de processus

Dans cette interface utilisateur, il y a un lien en bas à droite nommé diagnostics système pour vérifier les statistiques JVM.

Tâches de rapport

Apache NiFi fournit plusieurs tâches de reporting pour prendre en charge les systèmes de surveillance externes comme Ambari, Grafana, etc. Un développeur peut créer une tâche de rapport personnalisée ou peut configurer les tâches intégrées pour envoyer les métriques de NiFi aux systèmes de surveillance externes. Le tableau suivant répertorie les tâches de reporting proposées par NiFi 1.7.1.

S.No. Nom de la tâche de rapport La description
1 AmbariReportingTask Pour configurer le service de métriques Ambari pour NiFi.
2 ControllerStatusReportingTask Pour rapporter les informations de l'interface utilisateur de résumé NiFi pendant les 5 dernières minutes.
3 MonitorDiskUsage Pour signaler et avertir de l'utilisation du disque d'un répertoire spécifique.
4 MoniteurMémoire Pour surveiller la quantité de tas Java utilisée dans un pool de mémoire Java de JVM.
5 SiteToSiteBulletinReportingTask Pour signaler les erreurs et les avertissements dans les bulletins en utilisant le protocole site à site.
6 SiteToSiteProvenanceReportingTask Pour signaler les événements de provenance des données NiFi à l'aide du protocole site à site.

API NiFi

Il existe une API nommée diagnostics système, qui peut être utilisée pour surveiller les statistiques NiFI dans toute application développée sur mesure. Laissez-nous vérifier l'API dans postman.

Demande

http://localhost:8080/nifi-api/system-diagnostics

Réponse

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