From 5d6d777635d6b0cdd467e10d39177b7997568bc6 Mon Sep 17 00:00:00 2001 From: Sam Saffron Date: Wed, 15 May 2019 11:56:50 +1000 Subject: [PATCH] DEV: add frozen_string_literal This helps avoid uneeded string allocations Also: - Add rubocop to travis - Bump version --- .travis | 1 + CHANGELOG | 5 +++++ Gemfile | 2 ++ Guardfile | 2 ++ Rakefile | 2 ++ bench/bench.rb | 2 ++ bin/prometheus_exporter | 1 + examples/custom_collector.rb | 2 ++ lib/prometheus_exporter.rb | 2 ++ lib/prometheus_exporter/instrumentation.rb | 2 ++ lib/prometheus_exporter/instrumentation/delayed_job.rb | 2 ++ lib/prometheus_exporter/instrumentation/method_profiler.rb | 2 ++ lib/prometheus_exporter/instrumentation/puma.rb | 6 ++++-- lib/prometheus_exporter/instrumentation/unicorn.rb | 2 ++ lib/prometheus_exporter/metric.rb | 2 ++ lib/prometheus_exporter/server.rb | 2 ++ lib/prometheus_exporter/server/collector_base.rb | 2 ++ lib/prometheus_exporter/server/delayed_job_collector.rb | 2 ++ lib/prometheus_exporter/server/hutch_collector.rb | 2 ++ lib/prometheus_exporter/server/puma_collector.rb | 2 ++ lib/prometheus_exporter/server/runner.rb | 5 +++-- lib/prometheus_exporter/server/sidekiq_collector.rb | 2 ++ lib/prometheus_exporter/server/type_collector.rb | 2 ++ lib/prometheus_exporter/version.rb | 4 +++- test/custom_type_collector.rb | 2 ++ test/metric/base_test.rb | 2 ++ test/metric/counter_test.rb | 2 ++ test/metric/gauge_test.rb | 2 ++ test/metric/histogram_test.rb | 2 ++ test/metric/summary_test.rb | 2 ++ test/middleware_test.rb | 2 ++ test/prometheus_exporter_test.rb | 2 ++ test/server/collector_test.rb | 4 +++- test/server/runner_test.rb | 2 ++ test/server/unicorn_collector_test.rb | 2 ++ test/server/web_collector_test.rb | 2 ++ test/server/web_server_test.rb | 2 ++ test/test_helper.rb | 2 ++ 38 files changed, 82 insertions(+), 6 deletions(-) diff --git a/.travis b/.travis index 0464753..ce64627 100644 --- a/.travis +++ b/.travis @@ -7,3 +7,4 @@ rvm: - 2.5 - 2.6 - jruby +script: bach -c "bundle exec rubocop && bundle exec rake" diff --git a/CHANGELOG b/CHANGELOG index 5830e63..04f5569 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +0.4.11 - 15-05-2019 + +- Fix: Handle stopping nil worker_threads in Client +- Dev: add frozen string literals + 0.4.10 - 29-04-2019 - Fix: Custom label support for puma collector diff --git a/Gemfile b/Gemfile index 9dc719e..e039fa3 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } diff --git a/Guardfile b/Guardfile index 22e1112..895ec57 100644 --- a/Guardfile +++ b/Guardfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + guard :minitest do # with Minitest::Unit watch(%r{^test/(.*)\/?(.*)_test\.rb$}) diff --git a/Rakefile b/Rakefile index 3d52175..8ca97e1 100644 --- a/Rakefile +++ b/Rakefile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "bundler/gem_tasks" require "rake/testtask" diff --git a/bench/bench.rb b/bench/bench.rb index 53f08b1..7f9e9cd 100644 --- a/bench/bench.rb +++ b/bench/bench.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative '../lib/prometheus_exporter' require_relative '../lib/prometheus_exporter/client' require_relative '../lib/prometheus_exporter/server' diff --git a/bin/prometheus_exporter b/bin/prometheus_exporter index fbd78d2..b2441c2 100755 --- a/bin/prometheus_exporter +++ b/bin/prometheus_exporter @@ -1,4 +1,5 @@ #!/usr/bin/env ruby +# frozen_string_literal: true require 'optparse' diff --git a/examples/custom_collector.rb b/examples/custom_collector.rb index 757fe99..b620b05 100644 --- a/examples/custom_collector.rb +++ b/examples/custom_collector.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class MyCustomCollector < PrometheusExporter::Server::Collector def initialize @gauge1 = PrometheusExporter::Metric::Gauge.new("thing1", "I am thing 1") diff --git a/lib/prometheus_exporter.rb b/lib/prometheus_exporter.rb index 673eec7..1403909 100644 --- a/lib/prometheus_exporter.rb +++ b/lib/prometheus_exporter.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative "prometheus_exporter/version" require "json" require "thread" diff --git a/lib/prometheus_exporter/instrumentation.rb b/lib/prometheus_exporter/instrumentation.rb index 7e18447..d160615 100644 --- a/lib/prometheus_exporter/instrumentation.rb +++ b/lib/prometheus_exporter/instrumentation.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative "instrumentation/process" require_relative "instrumentation/method_profiler" require_relative "instrumentation/sidekiq" diff --git a/lib/prometheus_exporter/instrumentation/delayed_job.rb b/lib/prometheus_exporter/instrumentation/delayed_job.rb index 8150615..ca7888e 100644 --- a/lib/prometheus_exporter/instrumentation/delayed_job.rb +++ b/lib/prometheus_exporter/instrumentation/delayed_job.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module PrometheusExporter::Instrumentation class DelayedJob JOB_CLASS_REGEXP = %r{job_class: (\w+:{0,2})+}.freeze diff --git a/lib/prometheus_exporter/instrumentation/method_profiler.rb b/lib/prometheus_exporter/instrumentation/method_profiler.rb index 5fdb5b5..fb9b403 100644 --- a/lib/prometheus_exporter/instrumentation/method_profiler.rb +++ b/lib/prometheus_exporter/instrumentation/method_profiler.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # see https://samsaffron.com/archive/2017/10/18/fastest-way-to-profile-a-method-in-ruby module PrometheusExporter::Instrumentation; end diff --git a/lib/prometheus_exporter/instrumentation/puma.rb b/lib/prometheus_exporter/instrumentation/puma.rb index 8088c1d..2189359 100644 --- a/lib/prometheus_exporter/instrumentation/puma.rb +++ b/lib/prometheus_exporter/instrumentation/puma.rb @@ -1,4 +1,6 @@ -require 'json' +# frozen_string_literal: true + +require "json" # collects stats from puma module PrometheusExporter::Instrumentation @@ -30,7 +32,7 @@ module PrometheusExporter::Instrumentation def collect_puma_stats(metric) stats = JSON.parse(::Puma.stats) - if stats.key? 'workers' + if stats.key?("workers") metric[:phase] = stats["phase"] metric[:workers_total] = stats["workers"] metric[:booted_workers_total] = stats["booted_workers"] diff --git a/lib/prometheus_exporter/instrumentation/unicorn.rb b/lib/prometheus_exporter/instrumentation/unicorn.rb index 1dce50d..e559b6a 100644 --- a/lib/prometheus_exporter/instrumentation/unicorn.rb +++ b/lib/prometheus_exporter/instrumentation/unicorn.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + begin require 'raindrops' rescue LoadError diff --git a/lib/prometheus_exporter/metric.rb b/lib/prometheus_exporter/metric.rb index 67dca29..a2a5839 100644 --- a/lib/prometheus_exporter/metric.rb +++ b/lib/prometheus_exporter/metric.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative "metric/base" require_relative "metric/counter" require_relative "metric/gauge" diff --git a/lib/prometheus_exporter/server.rb b/lib/prometheus_exporter/server.rb index f10e923..d0eba6d 100644 --- a/lib/prometheus_exporter/server.rb +++ b/lib/prometheus_exporter/server.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative "metric" require_relative "server/type_collector" require_relative "server/web_collector" diff --git a/lib/prometheus_exporter/server/collector_base.rb b/lib/prometheus_exporter/server/collector_base.rb index a03fa83..6f4b6dc 100644 --- a/lib/prometheus_exporter/server/collector_base.rb +++ b/lib/prometheus_exporter/server/collector_base.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module PrometheusExporter::Server # minimal interface to implement a customer collector diff --git a/lib/prometheus_exporter/server/delayed_job_collector.rb b/lib/prometheus_exporter/server/delayed_job_collector.rb index f626ae0..6e21f1d 100644 --- a/lib/prometheus_exporter/server/delayed_job_collector.rb +++ b/lib/prometheus_exporter/server/delayed_job_collector.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module PrometheusExporter::Server class DelayedJobCollector < TypeCollector diff --git a/lib/prometheus_exporter/server/hutch_collector.rb b/lib/prometheus_exporter/server/hutch_collector.rb index e4c8eef..438d0a4 100644 --- a/lib/prometheus_exporter/server/hutch_collector.rb +++ b/lib/prometheus_exporter/server/hutch_collector.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module PrometheusExporter::Server class HutchCollector < TypeCollector diff --git a/lib/prometheus_exporter/server/puma_collector.rb b/lib/prometheus_exporter/server/puma_collector.rb index eb9778c..66582b4 100644 --- a/lib/prometheus_exporter/server/puma_collector.rb +++ b/lib/prometheus_exporter/server/puma_collector.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module PrometheusExporter::Server class PumaCollector < TypeCollector PUMA_GAUGES = { diff --git a/lib/prometheus_exporter/server/runner.rb b/lib/prometheus_exporter/server/runner.rb index 320503f..e6eb524 100644 --- a/lib/prometheus_exporter/server/runner.rb +++ b/lib/prometheus_exporter/server/runner.rb @@ -1,10 +1,11 @@ # frozen_string_literal: true + require 'prometheus_exporter/client' require_relative '../instrumentation/unicorn' module PrometheusExporter::Server - class RunnerException < StandardError; end; - class WrongInheritance < RunnerException; end; + class RunnerException < StandardError; end + class WrongInheritance < RunnerException; end class Runner def initialize(options = {}) diff --git a/lib/prometheus_exporter/server/sidekiq_collector.rb b/lib/prometheus_exporter/server/sidekiq_collector.rb index 506b245..9cb2496 100644 --- a/lib/prometheus_exporter/server/sidekiq_collector.rb +++ b/lib/prometheus_exporter/server/sidekiq_collector.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module PrometheusExporter::Server class SidekiqCollector < TypeCollector diff --git a/lib/prometheus_exporter/server/type_collector.rb b/lib/prometheus_exporter/server/type_collector.rb index 3395cae..c677b35 100644 --- a/lib/prometheus_exporter/server/type_collector.rb +++ b/lib/prometheus_exporter/server/type_collector.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module PrometheusExporter::Server class TypeCollector def type diff --git a/lib/prometheus_exporter/version.rb b/lib/prometheus_exporter/version.rb index e5499a2..73d3808 100644 --- a/lib/prometheus_exporter/version.rb +++ b/lib/prometheus_exporter/version.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module PrometheusExporter - VERSION = "0.4.10" + VERSION = "0.4.11" end diff --git a/test/custom_type_collector.rb b/test/custom_type_collector.rb index a610441..d1a2b26 100644 --- a/test/custom_type_collector.rb +++ b/test/custom_type_collector.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class CustomTypeCollector < PrometheusExporter::Server::TypeCollector def type "custom1" diff --git a/test/metric/base_test.rb b/test/metric/base_test.rb index 000ff2b..bafa98a 100644 --- a/test/metric/base_test.rb +++ b/test/metric/base_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' require 'prometheus_exporter/metric' diff --git a/test/metric/counter_test.rb b/test/metric/counter_test.rb index 9dd574a..4151bf9 100644 --- a/test/metric/counter_test.rb +++ b/test/metric/counter_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' require 'prometheus_exporter/metric' diff --git a/test/metric/gauge_test.rb b/test/metric/gauge_test.rb index 2fa35e3..4746eb7 100644 --- a/test/metric/gauge_test.rb +++ b/test/metric/gauge_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' require 'prometheus_exporter/metric' diff --git a/test/metric/histogram_test.rb b/test/metric/histogram_test.rb index 187e2b1..a55c5b8 100644 --- a/test/metric/histogram_test.rb +++ b/test/metric/histogram_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' require 'prometheus_exporter/metric' diff --git a/test/metric/summary_test.rb b/test/metric/summary_test.rb index e8b3999..f61c93c 100644 --- a/test/metric/summary_test.rb +++ b/test/metric/summary_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' require 'prometheus_exporter/metric' diff --git a/test/middleware_test.rb b/test/middleware_test.rb index 0357e11..6d97282 100644 --- a/test/middleware_test.rb +++ b/test/middleware_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "test_helper" require 'rack/test' require 'prometheus_exporter/middleware' diff --git a/test/prometheus_exporter_test.rb b/test/prometheus_exporter_test.rb index 0373366..f1c42a2 100644 --- a/test/prometheus_exporter_test.rb +++ b/test/prometheus_exporter_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "test_helper" class PrometheusExporterTest < Minitest::Test diff --git a/test/server/collector_test.rb b/test/server/collector_test.rb index 237e9ab..af2c540 100644 --- a/test/server/collector_test.rb +++ b/test/server/collector_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' require 'mini_racer' require 'prometheus_exporter/server' @@ -283,7 +285,7 @@ class PrometheusCollectorTest < Minitest::Test def test_it_can_collect_puma_metrics collector = PrometheusExporter::Server::Collector.new - client = PipedClient.new(collector, custom_labels: { service: 'service1' } ) + client = PipedClient.new(collector, custom_labels: { service: 'service1' }) mock_puma = Minitest::Mock.new mock_puma.expect( diff --git a/test/server/runner_test.rb b/test/server/runner_test.rb index 312f20f..e57cf0d 100644 --- a/test/server/runner_test.rb +++ b/test/server/runner_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' require 'prometheus_exporter/server' diff --git a/test/server/unicorn_collector_test.rb b/test/server/unicorn_collector_test.rb index 409fcc0..65c88fe 100644 --- a/test/server/unicorn_collector_test.rb +++ b/test/server/unicorn_collector_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' require 'mini_racer' require 'prometheus_exporter/server' diff --git a/test/server/web_collector_test.rb b/test/server/web_collector_test.rb index a52fe21..4595204 100644 --- a/test/server/web_collector_test.rb +++ b/test/server/web_collector_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' require 'mini_racer' require 'prometheus_exporter/server' diff --git a/test/server/web_server_test.rb b/test/server/web_server_test.rb index 38e3066..41379ca 100644 --- a/test/server/web_server_test.rb +++ b/test/server/web_server_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'test_helper' require 'prometheus_exporter/server' require 'prometheus_exporter/client' diff --git a/test/test_helper.rb b/test/test_helper.rb index 1280979..f662f10 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) require "prometheus_exporter"