2016-04-26 64 views
1

我想在一些Nifi起訴人中記錄失敗的原因。但我看到它可能有多種原因。 舉例SplitAvroJson處理器: 「如果FlowFile由於某種原因失敗的處理(例如,FlowFile是無效的Avro),其將被路由到這種關係在Apache Nifi中得到失敗的原因

是否有可能得到確切的例如,爲了將它保存在put文件中,我失敗的原因。

預先感謝您。

回答

2

大多數處理器會將錯誤記錄到nifi-app.log。對於SplitAvro的例子它在這裏:

https://github.com/apache/nifi/blob/e4b7e47836edf47042973e604005058c28eed23b/nifi-nar-bundles/nifi-avro-bundle/nifi-avro-processors/src/main/java/org/apache/nifi/processors/avro/SplitAvro.java#L206

此錯誤消息也將是可見的NiFi UI作爲SplitAvro處理器上的公告。

這是否實現您正在尋找的?

+0

Thabk你爲你的答案,但如果有可能我想得到錯誤消息像一個attribue爲了保存與其他attribue(例如文件名)在hbase表中。 –

+0

我不確定是否有任何內容完全符合您所描述的內容,但另一種選擇可能是實現自定義ReportingTask。 ReportingTask可以訪問Bulletin Repository,這是存儲流的所有公告的地方,您可以將它們發送到NiFi之外的某個地方。唯一的限制是公告與生成公告的FlowFile斷開連接,因此您只需知道給定組件在給定時間內有特定的錯誤消息,但您無法訪問生成該公告的FlowFile它。 –

1

我有一個類似的問題,我認爲這篇文章可能會幫助你。

你有一對夫婦在這裏不同的選項消耗使用REST API公告消息:

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

此請求將獲得指定進程集團下的所有組件的狀態(包括公告)。您可以將別名「root」用於根級別的Process Group。遞歸標誌將指示是否僅返回該進程組的子進程或所有後代組件。

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

該請求將獲得控制器級別組件的狀態(包括公告)。這包括來自控制器服務,報告任務和NiFi框架本身的任何報告公告(羣集消息等)。

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

該請求將訪問所有公告並支持基於過濾的組件,消息並限制返回的公告數量。

+0

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/12484743) – MLavoie

+0

編輯我的答案以包含詳細步驟@MLavoie –