Sha256: 165913b4d0c99bd882a16aff24942a218f91a477585e04e17c2f0eb183d54a11

Contents?: true

Size: 1.62 KB

Versions: 17

Compression:

Stored size: 1.62 KB

Contents

#!/usr/bin/env ruby
# frozen_string_literal: true

require "bundler/setup"
require "tmpdir"
require "benchmark/ips"

revision = %x(git rev-parse HEAD).rstrip
base_revision = %x(git rev-parse origin/master).rstrip
branch = if revision == base_revision
  "master"
else
  %x(git rev-parse --abbrev-ref HEAD).rstrip
end

intermediate_results_filename = "#{Dir.tmpdir}/statsd-instrument-benchmarks/#{File.basename($PROGRAM_NAME)}"
FileUtils.mkdir_p(File.dirname(intermediate_results_filename))

ENV["ENV"] = "development"
require "statsd-instrument"
StatsD.logger = Logger.new(File::NULL)

report = Benchmark.ips do |bench|
  bench.report("StatsD metrics to /dev/null log (branch: #{branch}, sha: #{revision[0, 7]})") do
    StatsD.increment("StatsD.increment", 10, sample_rate: 15)
    StatsD.measure("StatsD.measure") { 1 + 1 }
    StatsD.gauge("StatsD.gauge", 12.0, tags: ["foo:bar", "quc"])
    StatsD.set("StatsD.set", "value", tags: { foo: "bar", baz: "quc" })
    if StatsD.singleton_client.datagram_builder_class == StatsD::Instrument::DogStatsDDatagramBuilder
      StatsD.event("StasD.event", "12345")
      StatsD.service_check("StatsD.service_check", "ok")
    end
  end

  # Store the results in between runs
  bench.save!(intermediate_results_filename)
  bench.compare!
end

if report.entries.length == 1
  puts
  puts "To compare the performance of this revision against another revision (e.g. master),"
  puts "check out a different branch and run this benchmark script again."
elsif ENV["KEEP_RESULTS"]
  puts
  puts "The intermediate results have been stored in #{intermediate_results_filename}"
else
  File.unlink(intermediate_results_filename)
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
statsd-instrument-3.5.11 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.5.10 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.5.9 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.5.8 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.5.7 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.5.6 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.5.5 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.5.4 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.5.3 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.5.2 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.5.1 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.5.0 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.4.0 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.3.0 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.2.1 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.2.0 benchmark/send-metrics-to-dev-null-log
statsd-instrument-3.1.2 benchmark/send-metrics-to-dev-null-log