diff --git a/CHANGELOG.md b/CHANGELOG.md index a45f2ff..6dd3063 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# Next + +* Default to Prometheus histograms, not summaries ([#318](https://github.com/alphagov/govuk_app_config/pull/318)) + # 9.1.0 * GovukAppConfig silences OpenTelemetry log output when running a rake task ([#311](https://github.com/alphagov/govuk_app_config/pull/311)) diff --git a/lib/govuk_app_config/govuk_prometheus_exporter.rb b/lib/govuk_app_config/govuk_prometheus_exporter.rb index a452561..986b2f1 100644 --- a/lib/govuk_app_config/govuk_prometheus_exporter.rb +++ b/lib/govuk_app_config/govuk_prometheus_exporter.rb @@ -1,3 +1,8 @@ +require "prometheus_exporter" +require "prometheus_exporter/metric" +require "prometheus_exporter/server" +require "prometheus_exporter/middleware" + module GovukPrometheusExporter def self.should_configure # Allow us to force the Prometheus Exporter for persistent Rake tasks... @@ -11,12 +16,14 @@ def self.should_configure end end - def self.configure(collectors: []) + def self.configure(collectors: [], default_aggregation: PrometheusExporter::Metric::Histogram) return unless should_configure - require "prometheus_exporter" - require "prometheus_exporter/server" - require "prometheus_exporter/middleware" + # PrometheusExporter::Metric::Histogram.DEFAULT_BUCKETS tops out at 10 but + # we have a few controller actions which are slower than this, so we add a + # few extra buckets for slower requests + PrometheusExporter::Metric::Histogram.default_buckets = [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, 15, 25, 50].freeze + PrometheusExporter::Metric::Base.default_aggregation = default_aggregation if defined?(Sidekiq) Sidekiq.configure_server do |config|