opentelemetry-metrics-sdk 0.7.0 → 0.7.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ad774f1262340ffa611f512b97fa605e92857ce72262bcdf7c60edc96a4d61e
4
- data.tar.gz: 5be962ef2df37a6202e3fc99d5efca5846572824568cca61f33beb121daabb7b
3
+ metadata.gz: cc1d84ebb6e305f37ffa30f5b0c11a1e19849be18c6cc168fdadf19249c90fd8
4
+ data.tar.gz: 6d57060316bdc92a26e148e8e7961fe846b48f9eab51611e4e715de117a47195
5
5
  SHA512:
6
- metadata.gz: '09a50b41250b9cbbc69a1d64a19652d9b4bac203f5111b0c9a794d4a15aac0327a67ac846a65cc083ae908dde4c3766d6cb65838b8d1af81b0d33bfac9e41ec4'
7
- data.tar.gz: dc20ca5183f8423e32dcfb2b7dc810212f19ae2ac59a2026015983381662b388673540df3427a479a81c83756330aac4ce27e95161a50f239d8470fb6c6a4aea
6
+ metadata.gz: d60864cb9910c887ec19cbf4a9a708783824de6f937d4460e4a12aa0a3ec944e6059c50faa0e80966aa74f2969a85a47e6a11412e2dfcbc81fb12931f1960f89
7
+ data.tar.gz: 39bf5ad02f22f93b1282a693aa4f546e0a9753adf31c5a78bbf2d3096d8ac91b695cedc79eb2c652e4ef99e759cb9d250e7f130dae1ccfc8171625af7da3bdca
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Release History: opentelemetry-metrics-sdk
2
2
 
3
+ ### v0.7.1 / 2025-05-28
4
+
5
+ * FIXED: Recover periodic metric readers after forking
6
+
3
7
  ### v0.7.0 / 2025-05-13
4
8
 
5
9
  * ADDED: Add basic exponential histogram
@@ -25,6 +25,7 @@ module OpenTelemetry
25
25
  def metrics_configuration_hook
26
26
  OpenTelemetry.meter_provider = Metrics::MeterProvider.new(resource: @resource)
27
27
  configure_metric_readers
28
+ attach_fork_hooks!
28
29
  end
29
30
 
30
31
  def configure_metric_readers
@@ -52,6 +53,10 @@ module OpenTelemetry
52
53
  end
53
54
  end
54
55
  end
56
+
57
+ def attach_fork_hooks!
58
+ ForkHooks.attach!
59
+ end
55
60
  end
56
61
  end
57
62
  end
@@ -78,6 +78,13 @@ module OpenTelemetry
78
78
  Export::FAILURE
79
79
  end
80
80
 
81
+ def after_fork
82
+ @exporter.reset if @exporter.respond_to?(:reset)
83
+ collect # move past previously reported metrics from parent process
84
+ @thread = nil
85
+ start
86
+ end
87
+
81
88
  # Check both @thread and @continue object to determine if current
82
89
  # PeriodicMetricReader is still alive. If one of them is true/alive,
83
90
  # then PeriodicMetricReader is determined as alive
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright The OpenTelemetry Authors
4
+ #
5
+ # SPDX-License-Identifier: Apache-2.0
6
+
7
+ module OpenTelemetry
8
+ module SDK
9
+ module Metrics
10
+ # ForkHooks implements methods to run callbacks before and after forking a Process by overriding Process::_fork
11
+ # This is used to ensure that the PeriodicMetricReader is restarted after forking
12
+ module ForkHooks
13
+ def self.attach!
14
+ return if @fork_hooks_attached
15
+
16
+ Process.singleton_class.prepend(ForkHooks)
17
+ @fork_hooks_attached = true
18
+ end
19
+
20
+ def self.after_fork
21
+ ::OpenTelemetry.meter_provider.metric_readers.each do |reader|
22
+ reader.after_fork if reader.respond_to?(:after_fork)
23
+ end
24
+ end
25
+
26
+ def _fork
27
+ parent_pid = Process.pid
28
+ super.tap do
29
+ ForkHooks.after_fork unless Process.pid == parent_pid
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -8,7 +8,7 @@ module OpenTelemetry
8
8
  module SDK
9
9
  module Metrics
10
10
  # Current OpenTelemetry metrics sdk version
11
- VERSION = '0.7.0'
11
+ VERSION = '0.7.1'
12
12
  end
13
13
  end
14
14
  end
@@ -16,6 +16,7 @@ end
16
16
  require 'opentelemetry/sdk/metrics/aggregation'
17
17
  require 'opentelemetry/sdk/metrics/configuration_patch'
18
18
  require 'opentelemetry/sdk/metrics/export'
19
+ require 'opentelemetry/sdk/metrics/fork_hooks'
19
20
  require 'opentelemetry/sdk/metrics/instrument'
20
21
  require 'opentelemetry/sdk/metrics/meter'
21
22
  require 'opentelemetry/sdk/metrics/meter_provider'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-metrics-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-05-13 00:00:00.000000000 Z
11
+ date: 2025-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -225,6 +225,7 @@ files:
225
225
  - lib/opentelemetry/sdk/metrics/export/in_memory_metric_pull_exporter.rb
226
226
  - lib/opentelemetry/sdk/metrics/export/metric_reader.rb
227
227
  - lib/opentelemetry/sdk/metrics/export/periodic_metric_reader.rb
228
+ - lib/opentelemetry/sdk/metrics/fork_hooks.rb
228
229
  - lib/opentelemetry/sdk/metrics/instrument.rb
229
230
  - lib/opentelemetry/sdk/metrics/instrument/counter.rb
230
231
  - lib/opentelemetry/sdk/metrics/instrument/gauge.rb
@@ -247,10 +248,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
247
248
  licenses:
248
249
  - Apache-2.0
249
250
  metadata:
250
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-metrics-sdk/v0.7.0/file.CHANGELOG.html
251
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-metrics-sdk/v0.7.1/file.CHANGELOG.html
251
252
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/metrics_sdk
252
253
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
253
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-metrics-sdk/v0.7.0
254
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-metrics-sdk/v0.7.1
254
255
  post_install_message:
255
256
  rdoc_options: []
256
257
  require_paths: