Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Side by Side Diff: infra_libs/event_mon/monitoring.py

Issue 1815413002: Add support for patch_url field in BuildEvent (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Added test Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import logging 5 import logging
6 6
7 from google.protobuf.message import DecodeError 7 from google.protobuf.message import DecodeError
8 from infra_libs.event_mon.protos.chrome_infra_log_pb2 import ( 8 from infra_libs.event_mon.protos.chrome_infra_log_pb2 import (
9 ChromeInfraEvent, ServiceEvent, BuildEvent) 9 ChromeInfraEvent, ServiceEvent, BuildEvent)
10 from infra_libs.event_mon.protos.goma_stats_pb2 import GomaStats 10 from infra_libs.event_mon.protos.goma_stats_pb2 import GomaStats
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 build_scheduling_time=None, 262 build_scheduling_time=None,
263 step_name=None, 263 step_name=None,
264 step_number=None, 264 step_number=None,
265 result=None, 265 result=None,
266 extra_result_code=None, 266 extra_result_code=None,
267 timestamp_kind=None, 267 timestamp_kind=None,
268 event_timestamp=None, 268 event_timestamp=None,
269 service_name=None, 269 service_name=None,
270 goma_stats=None, 270 goma_stats=None,
271 goma_error=None, 271 goma_error=None,
272 goma_crash_report_id=None): 272 goma_crash_report_id=None,
273 patch_url=None):
273 """Compute a ChromeInfraEvent filled with a BuildEvent. 274 """Compute a ChromeInfraEvent filled with a BuildEvent.
274 275
275 Arguments are identical to those in send_build_event(), please refer 276 Arguments are identical to those in send_build_event(), please refer
276 to this docstring. 277 to this docstring.
277 278
278 Returns: 279 Returns:
279 event (log_request_lite_pb2.LogRequestLite.LogEventLite): can be None 280 event (log_request_lite_pb2.LogRequestLite.LogEventLite): can be None
280 if there is a major processing issue. 281 if there is a major processing issue.
281 """ 282 """
282 if event_type not in BUILD_EVENT_TYPES: 283 if event_type not in BUILD_EVENT_TYPES:
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 if event.build_event.HasField('build_scheduling_time_ms'): 325 if event.build_event.HasField('build_scheduling_time_ms'):
325 logging.error('build_number has not been provided, ' 326 logging.error('build_number has not been provided, '
326 'build_scheduling_time was provided (%s). ' 327 'build_scheduling_time was provided (%s). '
327 'Both must be present or missing.', 328 'Both must be present or missing.',
328 event.build_event.build_scheduling_time_ms) 329 event.build_event.build_scheduling_time_ms)
329 330
330 if step_name: 331 if step_name:
331 event.build_event.step_name = step_name 332 event.build_event.step_name = step_name
332 if step_number is not None: 333 if step_number is not None:
333 event.build_event.step_number = step_number 334 event.build_event.step_number = step_number
335 if patch_url is not None:
336 event.build_event.patch_url = patch_url
334 337
335 if event.build_event.step_name: 338 if event.build_event.step_name:
336 if event_type != 'STEP': 339 if event_type != 'STEP':
337 logging.error('step_name should be provided only for type "STEP", ' 340 logging.error('step_name should be provided only for type "STEP", '
338 'got %s', event_type) 341 'got %s', event_type)
339 if not event.build_event.HasField('step_number'): 342 if not event.build_event.HasField('step_number'):
340 logging.error('step_number was not provided, but got a value for ' 343 logging.error('step_number was not provided, but got a value for '
341 'step_name (%s). Provide either both or none', 344 'step_name (%s). Provide either both or none',
342 step_name) 345 step_name)
343 if (not event.build_event.HasField('build_number') 346 if (not event.build_event.HasField('build_number')
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 build_number=None, 419 build_number=None,
417 build_scheduling_time=None, 420 build_scheduling_time=None,
418 step_name=None, 421 step_name=None,
419 step_number=None, 422 step_number=None,
420 result=None, 423 result=None,
421 extra_result_code=None, 424 extra_result_code=None,
422 timestamp_kind=None, 425 timestamp_kind=None,
423 event_timestamp=None, 426 event_timestamp=None,
424 goma_stats=None, 427 goma_stats=None,
425 goma_error=None, 428 goma_error=None,
426 goma_crash_report_id=None): 429 goma_crash_report_id=None,
430 patch_url=None):
427 """Send a ChromeInfraEvent filled with a BuildEvent 431 """Send a ChromeInfraEvent filled with a BuildEvent
428 432
429 Args: 433 Args:
430 event_type (string): any name of enum BuildEvent.BuildEventType. 434 event_type (string): any name of enum BuildEvent.BuildEventType.
431 (listed in infra_libs.event_mon.monitoring.BUILD_EVENT_TYPES) 435 (listed in infra_libs.event_mon.monitoring.BUILD_EVENT_TYPES)
432 hostname (string): fqdn of the machine that is running the build / step. 436 hostname (string): fqdn of the machine that is running the build / step.
433 aka the bot name. 437 aka the bot name.
434 build_name (string): name of the builder. 438 build_name (string): name of the builder.
435 439
436 Keyword args: 440 Keyword args:
437 build_number (int): as the name says. 441 build_number (int): as the name says.
438 build_scheduling_time (int): timestamp telling when the build was 442 build_scheduling_time (int): timestamp telling when the build was
439 scheduled. This is required when build_number is provided to make it 443 scheduled. This is required when build_number is provided to make it
440 possibly to distinguish two builds with the same build number. 444 possibly to distinguish two builds with the same build number.
441 step_name (str): name of the step. 445 step_name (str): name of the step.
442 step_number (int): rank of the step in the build. This is mandatory 446 step_number (int): rank of the step in the build. This is mandatory
443 if step_name is provided, because step_name is not enough to tell the 447 if step_name is provided, because step_name is not enough to tell the
444 order. 448 order.
445 result (string): any name of enum BuildEvent.BuildResult. 449 result (string): any name of enum BuildEvent.BuildResult.
446 (listed in infra_libs.event_mon.monitoring.BUILD_RESULTS) 450 (listed in infra_libs.event_mon.monitoring.BUILD_RESULTS)
447 extra_result_code (string or list of): arbitrary strings intended to provide 451 extra_result_code (string or list of): arbitrary strings intended to provide
448 more fine-grained information about the result. 452 more fine-grained information about the result.
449 goma_stats (goma_stats_pb2.GomaStats): statistics output by the Goma proxy. 453 goma_stats (goma_stats_pb2.GomaStats): statistics output by the Goma proxy.
450 goma_error (string): goma error type defined as GomaErrorType. 454 goma_error (string): goma error type defined as GomaErrorType.
451 goma_crash_report_id (string): id of goma crash report. 455 goma_crash_report_id (string): id of goma crash report.
456 patch_url (string): URL of the patch that triggered build
452 457
453 Returns: 458 Returns:
454 success (bool): False if some error happened. 459 success (bool): False if some error happened.
455 """ 460 """
456 return get_build_event(event_type, 461 return get_build_event(event_type,
457 hostname, 462 hostname,
458 build_name, 463 build_name,
459 build_number=build_number, 464 build_number=build_number,
460 build_scheduling_time=build_scheduling_time, 465 build_scheduling_time=build_scheduling_time,
461 step_name=step_name, 466 step_name=step_name,
462 step_number=step_number, 467 step_number=step_number,
463 result=result, 468 result=result,
464 extra_result_code=extra_result_code, 469 extra_result_code=extra_result_code,
465 timestamp_kind=timestamp_kind, 470 timestamp_kind=timestamp_kind,
466 event_timestamp=event_timestamp, 471 event_timestamp=event_timestamp,
467 goma_stats=goma_stats, 472 goma_stats=goma_stats,
468 goma_error=goma_error, 473 goma_error=goma_error,
469 goma_crash_report_id=goma_crash_report_id).send() 474 goma_crash_report_id=goma_crash_report_id,
475 patch_url=patch_url).send()
470 476
471 477
472 def send_events(events): 478 def send_events(events):
473 """Send several events at once to the endpoint. 479 """Send several events at once to the endpoint.
474 480
475 Args: 481 Args:
476 events (iterable of Event): events to send 482 events (iterable of Event): events to send
477 483
478 Return: 484 Return:
479 success (bool): True if data was successfully received by the endpoint. 485 success (bool): True if data was successfully received by the endpoint.
480 """ 486 """
481 return config._router.push_event(tuple(e.log_event() for e in events)) 487 return config._router.push_event(tuple(e.log_event() for e in events))
OLDNEW
« no previous file with comments | « infra/tools/send_monitoring_event/send_event.py ('k') | infra_libs/event_mon/test/monitoring_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698