Sha256: b28c24d8f4b0394dc6eb9880eff4fab0638c80b49aeaedecdb620cf2280c5811
Contents?: true
Size: 1.24 KB
Versions: 6
Compression:
Stored size: 1.24 KB
Contents
#!/usr/bin/env ruby # frozen_string_literal: true Encoding.default_external = 'utf-8' require 'time' require 'bundler/setup' require 'json' input = STDIN.read.split("\n") STDERR.puts input titles = input.grep(/^===/).map { |t| t.gsub(/^=== /, '') } counts = input.grep(/^Count: /).map { |a| a.gsub(/^Count: /, '').to_i } averages = input.grep(/^avg/).map { |a| a.match(/\((.+)\)/)[1].to_f } git_sha, git_msg = `git log -n 1 --pretty="format:%H|||%s"`.split('|||') git_date = `git log -n 1 --pretty="format:%ai"` platform = Gem::Platform.local payloads = titles.zip(averages, counts).map do |(title, avg, count)| return nil unless avg { title: title, avg: avg, transaction_count: count, executed_at: Time.new.iso8601, 'git.commit' => git_sha, 'git.date' => String(git_date).strip != '' && Time.parse(git_date).iso8601, 'git.subject' => git_msg, hostname: `hostname`.chomp, engine: RUBY_ENGINE, arch: platform.cpu, os: platform.os, ruby_version: "#{RUBY_ENGINE == 'jruby' ? 'j' : ''}#{RUBY_VERSION}" } end.compact STDERR.puts '=== Reporting to ES' STDERR.puts payloads.inspect payloads.each do |payload| puts '{ "index" : { "_index" : "benchmark-ruby", "_type" : "_doc" } }' puts payload.to_json end
Version data entries
6 entries across 6 versions & 1 rubygems