Time ApacheNIFI总执行时间

Time ApacheNIFI总执行时间,time,execution,apache-nifi,Time,Execution,Apache Nifi,我想知道如何找出/捕获ApacheNIFI中任何流的总执行时间。有没有办法将其添加到属性列表中,以便通过PutEmail共享?我认为在收到流文件时,您必须添加一个自定义时间戳属性,执行大部分处理,然后计算一个包含在电子邮件中的已用时间属性。您可以使用两个UpdateAttribute处理器完成此操作 UpdateAttribute,已收到=${now():toNumber()} (进行数据处理) UpdateAttribute,经过时间=${now():toNumber():减号(${recei

我想知道如何找出/捕获ApacheNIFI中任何流的总执行时间。有没有办法将其添加到属性列表中,以便通过PutEmail共享?

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

  • UpdateAttribute,已收到=
    ${now():toNumber()}

  • (进行数据处理)

  • UpdateAttribute,经过时间=
    ${now():toNumber():减号(${received}):格式(“HH:mm:ss”)}

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

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


    詹姆斯提供了一个很好的解释。不过,另一个注意事项是,您可以简单地引用
    沿袭开始日期
    属性,而不是为接收数据时的时间戳添加属性:

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

    这与用于确定起源中血统持续时间的值相同。

    谢谢。我尝试过这种方法,它奏效了。我可以用它来捕获执行时间。我要说的是,你的意思是说,我可以直接使用沿袭StartDate属性,它会给我进程的持续时间,而不是像上面@James建议的那样:(当前时间-开始时间),这应该是
    ${now():toNumber():减号(${沿袭StartDate}):format(“HH:mm:ss”)}
    ?太棒了,我不知道这是可访问的,+1!哇,对不起-是的,应该是
    ${now():toNumber():减号(${relegenestartdate}):格式(“HH:mm:ss”)}
    。很好地理解了我的打字错误:)我必须做${now():toNumber():减号(${relegenestartdate}):格式(“HH:mm:‌​ss“,”GMT“)},以便它可以解释GMT偏移量