apache nifi 总执行时间

apache nifi total execution time

我想知道如何找到 out/capture Apache Nifi 中任何流程的总执行时间。有没有办法做到这一点并将其添加到属性列表,以便可以通过 PutEmail 共享相同内容?

我相信您必须在收到流文件时添加自定义时间戳 属性,进行大部分处理,然后计算经过时间属性以包含在电子邮件中。您可以使用两个 UpdateAttribute 处理器执行此操作。

  1. UpdateAttribute,收到 = ${now():toNumber()}

  2. (做处理)

  3. UpdateAttribute,elapsed = ${now():toNumber():minus(${received}):format("HH:mm:ss")}

这会将经过的时间格式化为“00:04:16”(4 分 16 秒)。您可以在 PutEmail 邮件内容中将其用作 ${elapsed}

但这有点难看,只给出了处理时间的近似值。 NiFi 出处系统维护 "Lineage Duration",它描述了自文件进入 NiFi 以来经过的时间。这是一个更权威的数字。但我不相信你可以从表达语言中查询沿袭持续时间。您将不得不单独查询和分析出处数据。

詹姆斯在上面提供了很好的解释。不过,需要注意的一点是,您可以简单地引用 lineageStartDate 属性,而不是为接收数据的时间戳添加属性:

${now():toNumber():minus(${lineageStartDate}):format("HH:mm:‌​ss")}

这与用于确定出处中的沿袭持续时间的值相同。