5

我正在使用 Pentaho 数据集成 (CE) 构建一个 ETL 流程,并且我正在尝试操作我的转换和作业,以便能够对其进行监控。具体来说,我希望能够捕获任何错误,然后将它们发送到错误报告服务,如 Honeybadger 或 New Relic。我了解如何进行行级错误报告,但我看不到进行工作或事务失败报告的方法。

这是一个示例作业。

  • 下行路径是转换成功但存在行错误的地方在那里,我们可以过滤结果并记录它们。
  • 向右的路径是转换完全失败的情况(例如,数据库凭据错误)。这就是我遇到麻烦的地方:我不知道如何获取要发送的错误信息。

示例作业
如何捕获要记录的转换失败?

4

2 回答 2

3

您无法在作业本身内捕获作业级错误详细信息。但是,还有其他监控选项。

第一个选项是使用数据库日志记录转换或作业(请参阅作业/trans 参数对话框中的“日志”选项卡) - 这样您始终可以获得有关执行状态的最新信息,因此您可以编写作业它会定期扫描日志数据库并在您需要的任何地方发送错误报告。

同时,这个选项对于开发和支持来说似乎是相当重的,对于进一步的修改来说不太灵活。因此,在我们公司,我们最终对作业执行级别进行了监控 - 即,当您使用 kitchen.bat 运行作业并且由于任何原因失败时,您会收到厨房执行的“错误”状态,因此您可以轻松检查它并使用您想要的任何工具执行必要的操作 - .bat 命令、PowerShell 或(在我们的例子中)Jenkins CI。

于 2016-04-20T07:02:11.620 回答
0

您可以在 Modified Java Script 步骤中使用 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
于 2017-01-12T15:09:02.483 回答