2016-04-19 87 views
3

我正在用Pentaho數據集成(CE)構建一個ETL過程,我正在嘗試運行我的轉換和作業,以便它們能夠被監控。具體來說,我希望能夠捕捉到任何錯誤,然後將它們發送到像Honeybadger或New Relic這樣的錯誤報告服務。我知道如何做行級錯誤報告但我沒有看到做事或交易的方式失敗報告Pentaho數據集成:錯誤處理

這是一個示例工作。

  • 路徑就是轉型成功,但有行錯誤。在那裏,我們可以過濾結果並記錄下來。
  • 右轉的路徑是轉換全部失敗的情況(例如DB憑據錯誤)。這是我遇到麻煩的地方:我無法弄清楚如何獲取錯誤信息。

Example job
如何抓住轉型失敗被記錄?

回答

3

您無法捕獲作業本身內部的作業級別錯誤詳細信息。 但是,還有其他選項可用於監視。

第一個選擇是使用數據庫日誌記錄進行轉換或作業(請參閱作業/轉換參數對話框中的「日誌」選項卡) - 通過這種方式,您始終可以獲得有關執行狀態的最新信息, ,編寫定期掃描日誌記錄數據庫並在需要時發送錯誤報告的作業。

同時這個選項對於開發和支持來說似乎是相當重的,對於進一步的修改不太靈活。因此,在我們公司,我們最終完成了對工作執行層面的監控 - 例如,當您使用kitchen.bat執行任務時,由於任何原因您的廚房執行失敗,因此您可以輕鬆檢查並隨時隨地執行必要的操作 - .bat命令,PowerShell或(在我們的例子中)Jenkins CI。

+0

感謝您的指針。那就是我也要來的結論。 – jonnysamps

0

您可以在修改後的Java腳本步驟中使用writeToLog(「e」,「Message」)函數。

文檔:

// Writes a string to the defined Kettle Log. 
// 
// Usage: 
// writeToLog(var); 
// 1: String - The Message which should be written to 
// the Kettle Debug Log 
// 
// writeToLog(var,var); 
// 1: String - The Type of the Log 
// d - Debug 
// l - Detailed 
// e - Error 
// m - Minimal 
// r - RowLevel 
// 
// 2: String - The Message which should be written to 
// the Kettle Log