opentelemetry-metrics-sdk 0.11.0 → 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 +4 -0
- data/lib/opentelemetry/sdk/metrics/export/periodic_metric_reader.rb +1 -6
- 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
|
@@ -130,12 +130,7 @@ module OpenTelemetry
|
|
|
130
130
|
end
|
|
131
131
|
|
|
132
132
|
def report_result(result_code)
|
|
133
|
-
if result_code == Export::SUCCESS
|
|
134
|
-
OpenTelemetry.logger.debug 'Successfully exported metrics'
|
|
135
|
-
else
|
|
136
|
-
OpenTelemetry.handle_error(exception: ExportError.new('Unable to export metrics'))
|
|
137
|
-
OpenTelemetry.logger.error("Result code: #{result_code}")
|
|
138
|
-
end
|
|
133
|
+
OpenTelemetry.logger.debug 'Successfully exported metrics' if result_code == Export::SUCCESS
|
|
139
134
|
end
|
|
140
135
|
|
|
141
136
|
def lock(&block)
|
|
@@ -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.11.
|
|
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.11.
|
|
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.11.
|
|
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:
|