Apache NiFi - 监控
在 Apache NiFi 中,有多种方法可以监控系统的不同统计信息,例如错误、内存使用情况、CPU 使用情况、数据流统计信息等。我们将在本教程中讨论最流行的方法。
内置监控
在本节中,我们将详细了解 Apache NiFi 中的内置监控。
公告板
公告板实时显示 NiFi Processor(处理器)生成的最新 ERROR 和 WARNING。 要访问公告板,用户必须转到右侧下拉菜单并选择公告板选项。 它会自动刷新,用户也可以禁用它。 用户还可以通过双击错误导航到实际的Processor(处理器)。 用户还可以通过执行以下操作来过滤公告 −
- 通过消息
- 按名字
- 按 ID
- 按群组 ID
数据来源用户界面
要监控任何特定Processor(处理器)或整个 NiFi 中发生的事件,用户可以从与公告板相同的菜单访问数据来源。 用户还可以通过使用以下字段来过滤数据来源存储库中的事件 −
- 按组件名称
- 按组件类型
- 按类型
NiFi 摘要 UI
Apache NiFi 摘要也可以从与公告板相同的菜单访问。 此 UI 包含有关特定 NiFi 实例或集群的所有组件的信息。 可以按名称、类型或 URI 过滤它们。 不同的组件类型有不同的选项卡。 以下是可以在 NiFi 摘要 UI 中监控的组件 −
- Processor(处理器)
- 输入端口
- 输出端口
- 远程进程组
- 连接
- 进程组
在此 UI 中,右下角有一个名为系统诊断的链接,用于检查 JVM 统计信息。
报告任务
Apache NiFi 提供多种报告任务来支持 Ambari、Grafana 等外部监控系统。开发人员可以创建自定义报告任务,也可以配置内置报告任务,将 NiFi 的指标发送到外部监控系统。 下表列出了 NiFi 1.7.1 提供的报告任务。
| S.No. | 报告任务名称 | 描述 |
|---|---|---|
| 1 | AmbariReportingTask | 为 NiFi 设置 Ambari Metrics Service。 |
| 2 | ControllerStatusReportingTask | 从 NiFi 摘要 UI 报告最近 5 分钟的信息。 |
| 3 | MonitorDiskUsage | 报告并警告特定目录的磁盘使用情况。 |
| 4 | MonitorMemory | 监视 JVM 的 Java 内存池中使用的 Java 堆的数量。 |
| 5 | SiteToSiteBulletinReportingTask | 使用站点到站点协议在公告中报告错误和警告。 |
| 6 | SiteToSiteProvenanceReportingTask | 使用站点到站点协议报告 NiFi 数据来源事件。 |
NiFi API
有一个名为系统诊断的 API,可用于监控任何自定义开发的应用程序中的 NiFI 统计信息。 让我们检查一下 postman 中的 API。
请求
http://localhost:8080/nifi-api/system-diagnostics
响应
{
"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"
}
}
}
}

