govuk_app_config 9.2.0 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/govuk_app_config.gemspec +1 -1
- data/lib/govuk_app_config/govuk_prometheus_exporter.rb +39 -2
- data/lib/govuk_app_config/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91aa874fe05081ba23cdf6d37cb9046b357fe1d20d79ec3c336877a3e75e2edc
|
4
|
+
data.tar.gz: eff73c0ebf947cd2adb0c8bd37599c5bae85497db9c3942621b2178465c586de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fcf73e2e1bcf53b466918e89fd23b2083e02dc7d9e8dd4333021db40f46a3d9774d52079c443d204bc00b0d09547e5be83c0f824611f532fc90a786f07cfe8f4
|
7
|
+
data.tar.gz: b0ffcd15e23557623c9749eb925ec52ffa867558769da1cb13cd9d52e275e1201576c5c1d040ce9d90b80af5a7848452bd43ffe8d59d328bfdbed4029781f4b4
|
data/CHANGELOG.md
CHANGED
data/govuk_app_config.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.add_dependency "logstasher", "~> 2.1"
|
24
24
|
spec.add_dependency "opentelemetry-exporter-otlp", ">= 0.25", "< 0.27"
|
25
|
-
spec.add_dependency "opentelemetry-instrumentation-all", ">= 0.39.1", "< 0.
|
25
|
+
spec.add_dependency "opentelemetry-instrumentation-all", ">= 0.39.1", "< 0.51.0"
|
26
26
|
spec.add_dependency "opentelemetry-sdk", "~> 1.2"
|
27
27
|
spec.add_dependency "plek", ">= 4", "< 6"
|
28
28
|
spec.add_dependency "prometheus_exporter", "~> 2.0"
|
@@ -4,6 +4,43 @@ require "prometheus_exporter/server"
|
|
4
4
|
require "prometheus_exporter/middleware"
|
5
5
|
|
6
6
|
module GovukPrometheusExporter
|
7
|
+
#
|
8
|
+
# See https://github.com/discourse/prometheus_exporter/pull/293
|
9
|
+
#
|
10
|
+
# RailsMiddleware can be removed and replaced with the default middleware if
|
11
|
+
# that PR is merged / released
|
12
|
+
#
|
13
|
+
class RailsMiddleware < PrometheusExporter::Middleware
|
14
|
+
def default_labels(env, _result)
|
15
|
+
controller_instance = env["action_controller.instance"]
|
16
|
+
action = controller = nil
|
17
|
+
if controller_instance
|
18
|
+
action = controller_instance.action_name
|
19
|
+
controller = controller_instance.controller_name
|
20
|
+
elsif (cors = env["rack.cors"]) && cors.respond_to?(:preflight?) && cors.preflight?
|
21
|
+
# if the Rack CORS Middleware identifies the request as a preflight request,
|
22
|
+
# the stack doesn't get to the point where controllers/actions are defined
|
23
|
+
action = "preflight"
|
24
|
+
controller = "preflight"
|
25
|
+
end
|
26
|
+
{
|
27
|
+
action: action || "other",
|
28
|
+
controller: controller || "other",
|
29
|
+
}
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class SinatraMiddleware < PrometheusExporter::Middleware
|
34
|
+
def default_labels(_env, _result)
|
35
|
+
# The default prometheus exporter middleware uses the controller and
|
36
|
+
# action as labels. These aren't meaningful in Sinatra applications, and
|
37
|
+
# other options (such as request.path_info) have potentially very high
|
38
|
+
# cardinality. For now, just accept that we can't be more specific than
|
39
|
+
# the application / pod and don't provide any other labels
|
40
|
+
{}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
7
44
|
def self.should_configure
|
8
45
|
# Allow us to force the Prometheus Exporter for persistent Rake tasks...
|
9
46
|
if ENV["GOVUK_PROMETHEUS_EXPORTER"] == "force"
|
@@ -50,11 +87,11 @@ module GovukPrometheusExporter
|
|
50
87
|
server.start
|
51
88
|
|
52
89
|
if defined?(Rails)
|
53
|
-
Rails.application.middleware.unshift
|
90
|
+
Rails.application.middleware.unshift RailsMiddleware, instrument: :prepend
|
54
91
|
end
|
55
92
|
|
56
93
|
if defined?(Sinatra)
|
57
|
-
Sinatra.use
|
94
|
+
Sinatra.use SinatraMiddleware
|
58
95
|
end
|
59
96
|
rescue Errno::EADDRINUSE
|
60
97
|
warn "Could not start Prometheus metrics server as address already in use."
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk_app_config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.
|
4
|
+
version: 9.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GOV.UK Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logstasher
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
version: 0.39.1
|
54
54
|
- - "<"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0.
|
56
|
+
version: 0.51.0
|
57
57
|
type: :runtime
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -63,7 +63,7 @@ dependencies:
|
|
63
63
|
version: 0.39.1
|
64
64
|
- - "<"
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: 0.
|
66
|
+
version: 0.51.0
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: opentelemetry-sdk
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -375,7 +375,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
375
375
|
- !ruby/object:Gem::Version
|
376
376
|
version: '0'
|
377
377
|
requirements: []
|
378
|
-
rubygems_version: 3.4.
|
378
|
+
rubygems_version: 3.4.20
|
379
379
|
signing_key:
|
380
380
|
specification_version: 4
|
381
381
|
summary: Base configuration for GOV.UK applications
|