如何在Apache Nifi中使用Rest API获取日志

时间:2019-09-20 04:57:26

标签: apache-nifi

我浏览了几本指南,找不到使用rest api(或者如果无法使用rest api的话)获取带有相关信息的日志的方法,例如流文件的数据大小(如图所示)。将这些日志写入应用日志,其他相关详细信息无法从此处找到。我该怎么做?image

编辑

根据daggett的评论,我有剩下的api-http://localhost:8080/nifi-api/flow/bulletin-board,它解决了我一半的问题。现在,我需要知道谁可以获取导致该公告的流文件详细信息。

1 个答案:

答案 0 :(得分:1)

nifi提供的控制器服务很少,该服务可以提供有关nifi状态以及流文件的详细信息。其中的一项服务是SiteToSiteProvenanceReportingTask ,您可以使用它来获取有关失败文件的信息。

这些控制器服务基本上将有关流文件的信息作为json数据发送,可以在nifi中作为流文件进行查询或处理。

这是控制器服务上方返回的json数据-

{
  "type" : "record",
  "name" : "provenance",
  "namespace" : "provenance",
  "fields": [
    { "name": "eventId", "type": "string" },
    { "name": "eventOrdinal", "type": "long" },
    { "name": "eventType", "type": "string" },
    { "name": "timestampMillis", "type": "long" },
    { "name": "durationMillis", "type": "long" },
    { "name": "lineageStart", "type": { "type": "long", "logicalType": "timestamp-millis" } },
    { "name": "details", "type": ["null", "string"] },
    { "name": "componentId", "type": ["null", "string"] },
    { "name": "componentType", "type": ["null", "string"] },
    { "name": "componentName", "type": ["null", "string"] },
    { "name": "processGroupId", "type": ["null", "string"] },
    { "name": "processGroupName", "type": ["null", "string"] },
    { "name": "entityId", "type": ["null", "string"] },
    { "name": "entityType", "type": ["null", "string"] },
    { "name": "entitySize", "type": ["null", "long"] },
    { "name": "previousEntitySize", "type": ["null", "long"] },
    { "name": "updatedAttributes", "type": { "type": "map", "values": "string" } },
    { "name": "previousAttributes", "type": { "type": "map", "values": "string" } },
    { "name": "actorHostname", "type": ["null", "string"] },
    { "name": "contentURI", "type": ["null", "string"] },
    { "name": "previousContentURI", "type": ["null", "string"] },
    { "name": "parentIds", "type": { "type": "array", "items": "string" } },
    { "name": "childIds", "type": { "type": "array", "items": "string" } },
    { "name": "platform", "type": "string" },
    { "name": "application", "type": "string" },
    { "name": "remoteIdentifier", "type": ["null", "string"] },
    { "name": "alternateIdentifier", "type": ["null", "string"] },
    { "name": "transitUri", "type": ["null", "string"] }
  ]
}

entityIdentitySize是您所需要的。