Chromium Code Reviews| Index: scripts/master/status_logger.py |
| diff --git a/scripts/master/status_logger.py b/scripts/master/status_logger.py |
| index 6d0b7e03412ddfb4e4bc699297fa5a51d708c6cb..98d51522000e25f4e987b38921af914243e179ab 100644 |
| --- a/scripts/master/status_logger.py |
| +++ b/scripts/master/status_logger.py |
| @@ -186,7 +186,7 @@ class StatusEventLogger(StatusReceiverMultiService): |
| def send_build_result( |
| self, scheduled, started, finished, builder_name, bot_name, result, |
| - project_id=None, subproject_tag=None): |
| + project_id=None, subproject_tag=None, steps=None): |
| """Log a build result for ts_mon. |
| This allows computing metrics for builds in mastermon. |
| @@ -204,6 +204,8 @@ class StatusEventLogger(StatusReceiverMultiService): |
| d['project_id'] = project_id |
| if subproject_tag: |
| d['subproject_tag'] = subproject_tag |
| + if steps: |
| + d['steps'] = steps |
|
Adrian Kuegel
2015/12/08 11:36:08
I am wondering if this will work. I haven't seen a
|
| self.ts_mon_logger.info(json.dumps(d)) |
| def send_build_event(self, timestamp_kind, timestamp, build_event_type, |
| @@ -492,6 +494,15 @@ class StatusEventLogger(StatusReceiverMultiService): |
| result=buildbot.status.results.Results[results], |
| extra_result_code=extra_result_code) |
| + steps_to_send = [] |
| + for step in build.getSteps(): |
| + step_started, step_finished = step.getTimes() |
| + steps_to_send.append({ |
| + 'step_name': step.getName(), |
| + 'duration_s': step_finished - step_started, |
| + 'result': buildbot.status.results.Results[step.getResults()[0]], |
| + }) |
| + |
| # If property doesn't exist, this function returns None. |
| # Note: this is not true for build.getProperty(), it raises KeyError. |
| project_id = properties.getProperty('patch_project') |
| @@ -499,7 +510,7 @@ class StatusEventLogger(StatusReceiverMultiService): |
| self.send_build_result( |
| scheduled, started, finished, builderName, bot, |
| buildbot.status.results.Results[results], |
| - project_id, subproject_tag) |
| + project_id, subproject_tag, steps=steps_to_send) |
| def builderRemoved(self, builderName): |
| self.log('builderRemoved', '%s', builderName) |