Pentaho Data Integration: Error Handling
Asked Answered
W

2

7

I'm building out an ETL process with Pentaho Data Integration (CE) and I'm trying to operationalize my Transformations and Jobs so that they'll be able to be monitored. Specifically, I want to be able to catch any errors and then send them to an error reporting service like Honeybadger or New Relic. I understand how to do row-level error reporting but I don't see a way to do job or transaction failure reporting.

Here is an example job.

  • The down path is where the transformation succeeds but has row errors. There we can just filter the results and log them.
  • The path to the right is the case where the transformation fails all-together (e.g. DB credentials are wrong). This is where I'm having trouble: I can't figure out how to get the error info to be sent.

Example job
How do I capture transformation failures to be logged?

Whiny answered 19/4, 2016 at 23:32 Comment(0)
K
5

You can not capture job-level errors details inside the job itself. However there are other options for monitoring.

First option is using database logging for transformations or jobs (see the "Log" tab in the job/trans parameters dialog) - this way you always have up-to-date information about the execution status so you can, say, write a job that periodically scans the logging database and sends error reports wherever you need.

Meanwhile this option seems to be something pretty heavy-weight for development and support and not too flexible for further modifications. So in our company we ended up with monitoring on a job-execution level - i.e. when you run a job with kitchen.bat and it fails by any reason you get an "error" status of execution of the kitchen, so you can easily examine it and perform necessary actions with whenever tools you'd like - .bat commands, PowerShell or (in our case) Jenkins CI.

Kingery answered 20/4, 2016 at 7:2 Comment(1)
Thanks for the pointers. That was the conclusion that I was coming to also.Whiny
S
0

You could use the writeToLog("e", "Message") function in the Modified Java Script step.

Documentation:

// 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
Sommersommers answered 12/1, 2017 at 15:9 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.