Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add event support #315

Merged
merged 6 commits into from
Jun 22, 2015
Merged

Add event support #315

merged 6 commits into from
Jun 22, 2015

Conversation

cmccoy
Copy link
Contributor

@cmccoy cmccoy commented Jun 17, 2015

  • Add a dependency on blinker to provide signal support.
  • Add perfkitbenchmarker.events module, which defines a set of events
    for subscription.
  • Switch dstat collector to use {before,after}_phase events to
    start/stop dstat.

See #205.

@cmccoy cmccoy added this to the v0.18.0 milestone Jun 17, 2015
* Add a dependency on 'blinker' to provide signal support.
* Add 'perfkitbenchmarker.events' module, which defines a set of events
  for subscription.
* Switch dstat collector to use {before,after}_phase events to
  start/stop dstat.
@cmccoy
Copy link
Contributor Author

cmccoy commented Jun 18, 2015

@klausw: do you have time to look this over?

sample_created = _events.signal('sample-created', doc="""
Called with sample object and benchmark spec.

Signal sent immediately after a sample is created by a publisher.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clarify if the sample is mutable or not? Is it ok to add metadata and expect it'll be stored?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is mutable; now noted.

@klausw
Copy link
Contributor

klausw commented Jun 20, 2015

LGTM overall, the event system looks like a nice abstraction.

What's the semantics for failing hooks? For example, if a subscriber throws an exception in a before-phase hook, does that get propagated or ignored?

@cmccoy
Copy link
Contributor Author

cmccoy commented Jun 22, 2015

Errors in subscribers are propagated. I'll note this in events.py. Does that seem sufficient?

@klausw
Copy link
Contributor

klausw commented Jun 22, 2015

LGTM

cmccoy added a commit that referenced this pull request Jun 22, 2015
@cmccoy cmccoy merged commit ec38ead into GoogleCloudPlatform:dev Jun 22, 2015
@cmccoy cmccoy deleted the events branch June 22, 2015 19:05
klausw added a commit that referenced this pull request Jul 9, 2015
Release 0.18.0.

(See also #369
which includes this change log with clickable GH-* links.)

* New features:
  * Support OpenStack as cloud provider (GH-305, GH-353, thanks @kivio and
    @mateusz-blaszkowski)
  * Support Rackspace as cloud provider (GH-336, thanks @meteorfox and @jrperritt)
  * Add support for ContainerizedVM using docker exec (GH-333, thanks @gablg1)
  * Windows guest VM support on Static VM (GH-350), Azure (GH-349, GH-374), AWS
    (GH-347), and GCE (GH-338)
  * Add NTttcp Windows networking benchmark (GH-348)

* Enhancements:
  * Support using proxies in VMs (GH-339, GH-337, thanks @kivio)
  * Enable optional migration on GCE (GH-343)
  * Execute long running commands via a remote agent (GH-310)
  * Add resource creation/deletion times to logs (GH-316)

* Bugfixes and maintenance updates:
  * Update PKB to work with Azure version 0.9.3 (GH-312)
  * Fix AWS CLI usage on Windows host (GH-313)
  * Auto-fetch AMI IDs for AWS images (GH-364)
  * Fix publisher missing info for default image and machine type (GH-357)
  * Fix 'no attribute pkb_thread_log_context' error for sub-thread logs (GH-322)

* Benchmark-specific changes:
  * aerospike: config/flag handling bugfixes (GH-367, GH-360, GH-354)
  * cassandra_ycsb: move num_vms prerequisite check
  * fio: add latency percentiles for results (GH-344)
  * hadoop_terasort: Fix bad SSH option (GH-328)
  * iperf: add lower bounds to arguments (GH-314)
  * iperf: add timeout to parallel benchmark runs to handle iperf hangs (GH-375)
  * netperf: Support confidence intervals, increase test length, report stddev
    (GH-317, GH-306)
  * ycsb: Drop unaggregatable results from samples (GH-324)

* Development and testing:
  * **Breaking Change** Automated testing now uses `tox` (GH-330)
  * Refactored hook scripts, including new opt-in pre-push hook (GH-363)
  * Use travis for CI testing (GH-340)
  * Speed up tests using timeouts (GH-299)

* Internals:
  * Move defaults from benchmark_spec to VM classes, move network instantiation
    out of benchmark spec (GH-342)
  * Add event hook support (GH-315)
  * Refactor VM classes (GH-321)
@klausw klausw mentioned this pull request Jul 9, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants