error-handling - 如何在 apache nifi 中捕获公告消息

标签 error-handling apache-nifi

我想知道是否有办法捕获出现在 Nifi UI 上的公告消息(基本上是错误)并将其存储在某个属性/文件中,以便以后查看。屏幕每 5 分钟刷新一次,如果任何处理器出现故障,我想知道原因。

我在这里不是特别谈论日志记录部分。

最佳答案

如您所知,公告反射(reflect)了已记录的消息。所以所有这些内容都已经存储在 {NIFI_HOME}/logs/nifi-app.log 中。但是,如果您想直接使用公告,您有几个不同的选择。

  • 您可以使用来自 REST API 的公告。有几个端点可用于访问公告。

  • http[s]://{host}:{port}/nifi-api/controller/process-groups/{process-group-id}/status?recursive=true



    此请求将获取指定进程组下所有组件的状态(包括公告)。您可以为根级别进程组使用别名“root”。递归标志将指示是否只返回该进程组的子进程或所有后代组件。

    http[s]://{host}:{port}/nifi-api/controller/status



    此请求将获取 Controller 级别组件的状态(包括公告)。这包括来自 Controller 服务、报告任务和 NiFi 框架本身(集群消息等)的任何报告公告。

    http[s]://{host}:{port}/nifi-api/controller/bulletin-board?limit=n&sourceId={id}&message={str}



    此请求将访问所有公告并支持基于组件、消息和限制返回公告数量的过滤。
  • 您还可以创建一个可以访问公告存储库的报告任务实现。报告任务是一个扩展点,用于报告此 NiFi 实例的详细信息。这将需要一些 Java 代码,但允许您随意报告公告。这是一个向 Ambari [1] 报告指标的示例。

  • [1] https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/main/java/org/apache/nifi/reporting/ambari/AmbariReportingTask.java

    关于error-handling - 如何在 apache nifi 中捕获公告消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37430915/

    相关文章:

    json - EvaluateJsonPath 无法返回标量

    hadoop - 如何使用 apache nifi 将值从一个处理器动态传递到另一个处理器

    java - 在运行时重新加载authorizers.xml文件

    php - mysqli 准备语句错误 - 过程样式

    asp.net - 如何在我的 ASP.NET 应用程序中创建一个 "generic error"页面,以便它处理在提供该页面本身时触发的错误?

    ios - 如何找到方法可能抛出的错误类型并在 Swift 中捕获它们

    python - 提取第二和第三邻居时的代码,当第二和第三邻居不存在时将其忽略

    apache - 如何使用 Apache Nifi 查询 REST API?

    hadoop - nifi FlowFile 尚未关闭(Groovy 脚本)警告

    error-handling - 如何在渲染期间检测three.js引发错误?