govuk_app_config 9.0.3 → 9.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e87fe7b5d3d3c22c7bce9dd0b18ddc1d949741eadb620832752723d7b36dc7c
4
- data.tar.gz: '06510976f0ad19f829f5fb5bfb9ad178d48f66eb1ca063f3cad6efffade10a7e'
3
+ metadata.gz: b294855ddebc514295005646929b0097f632fee29abca5e5bcfcf8762fa6a074
4
+ data.tar.gz: 5001db9a6a2ea18b55337fa58ffc43698949201644f0274c337468c0228b7220
5
5
  SHA512:
6
- metadata.gz: 11b27df9aa24a5a0751a75150b4227e7acfd542168766c40ffbbce505502e00db02a9820eb22309b0296a822e6a571f28704d0ac9ede717ddb5640ce89151c4a
7
- data.tar.gz: 7321f213d4b9d0356404a03bedd949596c5e8f9e59d1b0f80cc10e1e1e120db162385c6df3d1afa073b24075102f1e84d9a9a66ad37adb743ae54302f3ce1a0f
6
+ metadata.gz: 5f022124d42f44d65e8b34f47451b2bed770340690529983d9277cf2d5f747d85400b7061048c64e0e9c1b5c040c975b0421bb1143bca052736ffa4e75e6557f
7
+ data.tar.gz: 80af52848ba6276c0103bb6f7b32830b5cd4ca8fda42b2e4cb682dbce4ea958fd761c394b5864f3ea450f19e85197ccd0fadbd18c921cfee8783bb196a12a650
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ # 9.1.0
2
+
3
+ * GovukAppConfig silences OpenTelemetry log output when running a rake task ([#311](https://github.com/alphagov/govuk_app_config/pull/311))
4
+ * Update warning message for Prometheus metric server address already in use.
5
+ * Add ability to support custom collectors in the Prometheus exporter.
6
+
7
+ # 9.0.4
8
+
9
+ * Fix an issue with Rails.logger being not an instance of ActiveSupport::Logger. Rails expects Rails.logger to have methods that Ruby STD Logger does not provide. e.g. `silence()` ([#309](https://github.com/alphagov/govuk_app_config/pull/309))
10
+
1
11
  # 9.0.3
2
12
 
3
13
  * When error is reported by Rails logger, the field is now logged as "error_message" in order to avoid overwriting the "message" field.
@@ -32,7 +42,7 @@
32
42
 
33
43
  # 8.0.1
34
44
 
35
- * Change the "source" field in Rails logs from logstasher from string representing IP host address to an empty object.
45
+ * Change the "source" field in Rails logs from logstasher from string representing IP host address to an empty object.
36
46
 
37
47
  # 8.0.0
38
48
 
@@ -21,8 +21,8 @@ Gem::Specification.new do |spec|
21
21
  spec.require_paths = %w[lib]
22
22
 
23
23
  spec.add_dependency "logstasher", "~> 2.1"
24
- spec.add_dependency "opentelemetry-exporter-otlp", "~> 0.25.0"
25
- spec.add_dependency "opentelemetry-instrumentation-all", "~> 0.39.1"
24
+ spec.add_dependency "opentelemetry-exporter-otlp", ">= 0.25", "< 0.27"
25
+ spec.add_dependency "opentelemetry-instrumentation-all", ">= 0.39.1", "< 0.41.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"
@@ -39,6 +39,6 @@ Gem::Specification.new do |spec|
39
39
  spec.add_development_dependency "rake", "~> 13.0"
40
40
  spec.add_development_dependency "rspec", "~> 3.10"
41
41
  spec.add_development_dependency "rspec-its", "~> 1.3"
42
- spec.add_development_dependency "rubocop-govuk", "4.11.0"
42
+ spec.add_development_dependency "rubocop-govuk", "4.12.0"
43
43
  spec.add_development_dependency "webmock"
44
44
  end
@@ -8,24 +8,21 @@ module GovukJsonLogging
8
8
  # indefinitely while troubleshooting.
9
9
  $stdout.sync = true
10
10
 
11
- Rails.logger = Logger.new(
12
- $stdout,
13
- level: Rails.logger.level,
14
- formatter: proc { |severity, datetime, _progname, msg|
15
- hash = {
16
- "@timestamp": datetime.utc.iso8601(3),
17
- message: msg,
18
- level: severity,
19
- tags: %w[rails],
20
- }
11
+ Rails.logger = ActiveSupport::Logger.new($stdout, level: Rails.logger.level)
12
+ Rails.logger.formatter = proc { |severity, datetime, _progname, msg|
13
+ hash = {
14
+ "@timestamp": datetime.utc.iso8601(3),
15
+ message: msg,
16
+ level: severity,
17
+ tags: %w[rails],
18
+ }
21
19
 
22
- if defined?(GdsApi::GovukHeaders) && !GdsApi::GovukHeaders.headers[:govuk_request_id].nil?
23
- hash[:govuk_request_id] = GdsApi::GovukHeaders.headers[:govuk_request_id]
24
- end
20
+ if defined?(GdsApi::GovukHeaders) && !GdsApi::GovukHeaders.headers[:govuk_request_id].nil?
21
+ hash[:govuk_request_id] = GdsApi::GovukHeaders.headers[:govuk_request_id]
22
+ end
25
23
 
26
- "#{hash.to_json}\n"
27
- },
28
- )
24
+ "#{hash.to_json}\n"
25
+ }
29
26
 
30
27
  LogStasher.add_custom_fields do |fields|
31
28
  # Mirrors Nginx request logging, e.g. GET /path/here HTTP/1.1
@@ -13,6 +13,11 @@ module GovukOpenTelemetry
13
13
  OpenTelemetry::SDK.configure do |config|
14
14
  config.service_name = service_name
15
15
  config.use_all # enables all instrumentation!
16
+ config.logger = Logger.new(File::NULL) if in_rake_task?
16
17
  end
17
18
  end
19
+
20
+ def self.in_rake_task?
21
+ Rails.const_defined?(:Rake) && Rake.application.top_level_tasks.any?
22
+ end
18
23
  end
@@ -11,7 +11,7 @@ module GovukPrometheusExporter
11
11
  end
12
12
  end
13
13
 
14
- def self.configure
14
+ def self.configure(collectors: [])
15
15
  return unless should_configure
16
16
 
17
17
  require "prometheus_exporter"
@@ -37,6 +37,9 @@ module GovukPrometheusExporter
37
37
 
38
38
  begin
39
39
  server = PrometheusExporter::Server::WebServer.new bind: "0.0.0.0", port: 9394
40
+
41
+ collectors.each { |collector| server.collector.register_collector(collector.new) }
42
+
40
43
  server.start
41
44
 
42
45
  if defined?(Rails)
@@ -47,7 +50,7 @@ module GovukPrometheusExporter
47
50
  Sinatra.use PrometheusExporter::Middleware
48
51
  end
49
52
  rescue Errno::EADDRINUSE
50
- warn "Warning: Could not connect to Prometheus Server"
53
+ warn "Could not start Prometheus metrics server as address already in use."
51
54
  end
52
55
  end
53
56
  end
@@ -1,3 +1,3 @@
1
1
  module GovukAppConfig
2
- VERSION = "9.0.3".freeze
2
+ VERSION = "9.1.0".freeze
3
3
  end
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.0.3
4
+ version: 9.1.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-07-14 00:00:00.000000000 Z
11
+ date: 2023-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstasher
@@ -28,30 +28,42 @@ dependencies:
28
28
  name: opentelemetry-exporter-otlp
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0.25'
34
+ - - "<"
32
35
  - !ruby/object:Gem::Version
33
- version: 0.25.0
36
+ version: '0.27'
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - "~>"
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0.25'
44
+ - - "<"
39
45
  - !ruby/object:Gem::Version
40
- version: 0.25.0
46
+ version: '0.27'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: opentelemetry-instrumentation-all
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - "~>"
51
+ - - ">="
46
52
  - !ruby/object:Gem::Version
47
53
  version: 0.39.1
54
+ - - "<"
55
+ - !ruby/object:Gem::Version
56
+ version: 0.41.0
48
57
  type: :runtime
49
58
  prerelease: false
50
59
  version_requirements: !ruby/object:Gem::Requirement
51
60
  requirements:
52
- - - "~>"
61
+ - - ">="
53
62
  - !ruby/object:Gem::Version
54
63
  version: 0.39.1
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: 0.41.0
55
67
  - !ruby/object:Gem::Dependency
56
68
  name: opentelemetry-sdk
57
69
  requirement: !ruby/object:Gem::Requirement
@@ -280,14 +292,14 @@ dependencies:
280
292
  requirements:
281
293
  - - '='
282
294
  - !ruby/object:Gem::Version
283
- version: 4.11.0
295
+ version: 4.12.0
284
296
  type: :development
285
297
  prerelease: false
286
298
  version_requirements: !ruby/object:Gem::Requirement
287
299
  requirements:
288
300
  - - '='
289
301
  - !ruby/object:Gem::Version
290
- version: 4.11.0
302
+ version: 4.12.0
291
303
  - !ruby/object:Gem::Dependency
292
304
  name: webmock
293
305
  requirement: !ruby/object:Gem::Requirement
@@ -363,7 +375,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
363
375
  - !ruby/object:Gem::Version
364
376
  version: '0'
365
377
  requirements: []
366
- rubygems_version: 3.4.16
378
+ rubygems_version: 3.4.19
367
379
  signing_key:
368
380
  specification_version: 4
369
381
  summary: Base configuration for GOV.UK applications