opentelemetry-metrics-sdk 0.10.1 → 0.11.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 +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/opentelemetry/sdk/metrics/export/periodic_metric_reader.rb +7 -1
- data/lib/opentelemetry/sdk/metrics/state/asynchronous_metric_stream.rb +5 -5
- data/lib/opentelemetry/sdk/metrics/state/metric_stream.rb +21 -8
- data/lib/opentelemetry/sdk/metrics/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: be2c2be010e35c2ffd6ae04b7e4f0dc5ef5d947bb8882a144c35adac917f6c15
|
|
4
|
+
data.tar.gz: 618cfc51dff8e51f3923cc0b926a24fd3c83a4c7cf709eb4e4eb2e44c8d6cae7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d59a00637d3148f71e9f454755f24ca365816b6126aad33f98c6e1d26a45d80169e6df7ff0782624eabb7f2567ef1a543ee34cff7fd665e9d1a692ddba4c2e65
|
|
7
|
+
data.tar.gz: 64c8d11702ef17144774ed3f4cb1236502c954460e4c44cc48d7c6f85f9171cc0db03f98dd22f55cd3908aba1f4fcd9966938d58ad7c9cc4d1bf91aa10aabe75
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Release History: opentelemetry-metrics-sdk
|
|
2
2
|
|
|
3
|
+
### v0.11.1 / 2025-11-04
|
|
4
|
+
|
|
5
|
+
* FIXED: Do not log error when there are no metrics to export
|
|
6
|
+
|
|
7
|
+
### v0.11.0 / 2025-10-28
|
|
8
|
+
|
|
9
|
+
* ADDED: Add logging about export status to Metrics SDK
|
|
10
|
+
|
|
3
11
|
### v0.10.1 / 2025-10-21
|
|
4
12
|
|
|
5
13
|
* FIXED: Update callback timeout mechanism to use Thread
|
|
@@ -123,10 +123,16 @@ module OpenTelemetry
|
|
|
123
123
|
def export(timeout: nil)
|
|
124
124
|
@export_mutex.synchronize do
|
|
125
125
|
collected_metrics = collect
|
|
126
|
-
@exporter.export(collected_metrics, timeout: timeout || @export_timeout) unless collected_metrics.empty?
|
|
126
|
+
result_code = @exporter.export(collected_metrics, timeout: timeout || @export_timeout) unless collected_metrics.empty?
|
|
127
|
+
report_result(result_code)
|
|
128
|
+
result_code
|
|
127
129
|
end
|
|
128
130
|
end
|
|
129
131
|
|
|
132
|
+
def report_result(result_code)
|
|
133
|
+
OpenTelemetry.logger.debug 'Successfully exported metrics' if result_code == Export::SUCCESS
|
|
134
|
+
end
|
|
135
|
+
|
|
130
136
|
def lock(&block)
|
|
131
137
|
@mutex.synchronize(&block)
|
|
132
138
|
end
|
|
@@ -56,7 +56,7 @@ module OpenTelemetry
|
|
|
56
56
|
end
|
|
57
57
|
end
|
|
58
58
|
else
|
|
59
|
-
@registered_views.each do |view|
|
|
59
|
+
@registered_views.each do |view, data_points|
|
|
60
60
|
@mutex.synchronize do
|
|
61
61
|
@callback.each do |cb|
|
|
62
62
|
value = safe_guard_callback(cb, timeout: timeout)
|
|
@@ -64,7 +64,7 @@ module OpenTelemetry
|
|
|
64
64
|
|
|
65
65
|
merged_attributes = attributes || {}
|
|
66
66
|
merged_attributes.merge!(view.attribute_keys)
|
|
67
|
-
view.aggregation.update(value, merged_attributes,
|
|
67
|
+
view.aggregation.update(value, merged_attributes, data_points) if view.valid_aggregation?
|
|
68
68
|
end
|
|
69
69
|
end
|
|
70
70
|
end
|
|
@@ -78,19 +78,19 @@ module OpenTelemetry
|
|
|
78
78
|
thread = Thread.new do
|
|
79
79
|
result = callback.call
|
|
80
80
|
rescue StandardError => e
|
|
81
|
-
OpenTelemetry.
|
|
81
|
+
OpenTelemetry.handle_error(exception: e, message: 'Error invoking callback.')
|
|
82
82
|
result = :error
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
unless thread.join(timeout)
|
|
86
86
|
thread.kill
|
|
87
|
-
OpenTelemetry.
|
|
87
|
+
OpenTelemetry.handle_error(message: "Timeout while invoking callback after #{timeout} seconds")
|
|
88
88
|
return nil
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
result == :error ? nil : result
|
|
92
92
|
rescue StandardError => e
|
|
93
|
-
OpenTelemetry.
|
|
93
|
+
OpenTelemetry.handle_error(exception: e, message: 'Unexpected error in callback execution.')
|
|
94
94
|
nil
|
|
95
95
|
end
|
|
96
96
|
end
|
|
@@ -32,7 +32,7 @@ module OpenTelemetry
|
|
|
32
32
|
@instrumentation_scope = instrumentation_scope
|
|
33
33
|
@default_aggregation = aggregation
|
|
34
34
|
@data_points = {}
|
|
35
|
-
@registered_views =
|
|
35
|
+
@registered_views = {}
|
|
36
36
|
|
|
37
37
|
find_registered_view
|
|
38
38
|
@mutex = Mutex.new
|
|
@@ -43,12 +43,14 @@ module OpenTelemetry
|
|
|
43
43
|
metric_data = []
|
|
44
44
|
|
|
45
45
|
# data points are required to export over OTLP
|
|
46
|
-
return metric_data if
|
|
46
|
+
return metric_data if empty_data_point?
|
|
47
47
|
|
|
48
48
|
if @registered_views.empty?
|
|
49
49
|
metric_data << aggregate_metric_data(start_time, end_time)
|
|
50
50
|
else
|
|
51
|
-
@registered_views.each
|
|
51
|
+
@registered_views.each do |view, data_points|
|
|
52
|
+
metric_data << aggregate_metric_data(start_time, end_time, aggregation: view.aggregation, data_points: data_points)
|
|
53
|
+
end
|
|
52
54
|
end
|
|
53
55
|
|
|
54
56
|
metric_data
|
|
@@ -60,20 +62,21 @@ module OpenTelemetry
|
|
|
60
62
|
if @registered_views.empty?
|
|
61
63
|
@mutex.synchronize { @default_aggregation.update(value, attributes, @data_points) }
|
|
62
64
|
else
|
|
63
|
-
@registered_views.each do |view|
|
|
65
|
+
@registered_views.each do |view, data_points|
|
|
64
66
|
@mutex.synchronize do
|
|
65
67
|
attributes ||= {}
|
|
66
68
|
attributes.merge!(view.attribute_keys)
|
|
67
|
-
view.aggregation.update(value, attributes,
|
|
69
|
+
view.aggregation.update(value, attributes, data_points) if view.valid_aggregation?
|
|
68
70
|
end
|
|
69
71
|
end
|
|
70
72
|
end
|
|
71
73
|
end
|
|
72
74
|
|
|
73
|
-
def aggregate_metric_data(start_time, end_time, aggregation: nil)
|
|
75
|
+
def aggregate_metric_data(start_time, end_time, aggregation: nil, data_points: nil)
|
|
74
76
|
aggregator = aggregation || @default_aggregation
|
|
75
77
|
is_monotonic = aggregator.respond_to?(:monotonic?) ? aggregator.monotonic? : nil
|
|
76
78
|
aggregation_temporality = aggregator.respond_to?(:aggregation_temporality) ? aggregator.aggregation_temporality : nil
|
|
79
|
+
data_point = data_points || @data_points
|
|
77
80
|
|
|
78
81
|
MetricData.new(
|
|
79
82
|
@name,
|
|
@@ -82,7 +85,7 @@ module OpenTelemetry
|
|
|
82
85
|
@instrument_kind,
|
|
83
86
|
@meter_provider.resource,
|
|
84
87
|
@instrumentation_scope,
|
|
85
|
-
aggregator.collect(start_time, end_time,
|
|
88
|
+
aggregator.collect(start_time, end_time, data_point),
|
|
86
89
|
aggregation_temporality,
|
|
87
90
|
start_time,
|
|
88
91
|
end_time,
|
|
@@ -93,7 +96,17 @@ module OpenTelemetry
|
|
|
93
96
|
def find_registered_view
|
|
94
97
|
return if @meter_provider.nil?
|
|
95
98
|
|
|
96
|
-
@meter_provider.registered_views.each { |view| @registered_views
|
|
99
|
+
@meter_provider.registered_views.each { |view| @registered_views[view] = {} if view.match_instrument?(self) }
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def empty_data_point?
|
|
103
|
+
if @registered_views.empty?
|
|
104
|
+
@data_points.empty?
|
|
105
|
+
else
|
|
106
|
+
@registered_views.each_value do |data_points|
|
|
107
|
+
return false unless data_points.empty?
|
|
108
|
+
end
|
|
109
|
+
end
|
|
97
110
|
end
|
|
98
111
|
|
|
99
112
|
def to_s
|
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.
|
|
4
|
+
version: 0.11.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-
|
|
11
|
+
date: 2025-11-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: opentelemetry-api
|
|
@@ -251,10 +251,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
|
|
|
251
251
|
licenses:
|
|
252
252
|
- Apache-2.0
|
|
253
253
|
metadata:
|
|
254
|
-
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-metrics-sdk/v0.
|
|
254
|
+
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-metrics-sdk/v0.11.1/file.CHANGELOG.html
|
|
255
255
|
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/metrics_sdk
|
|
256
256
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
|
257
|
-
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-metrics-sdk/v0.
|
|
257
|
+
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-metrics-sdk/v0.11.1
|
|
258
258
|
post_install_message:
|
|
259
259
|
rdoc_options: []
|
|
260
260
|
require_paths:
|