opentelemetry-metrics-sdk 0.15.0 → 0.16.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/lib/opentelemetry/sdk/metrics/exemplar/aligned_histogram_bucket_exemplar_reservoir.rb +1 -4
- data/lib/opentelemetry/sdk/metrics/exemplar/simple_fixed_size_exemplar_reservoir.rb +2 -5
- data/lib/opentelemetry/sdk/metrics/export/console_metric_pull_exporter.rb +1 -1
- data/lib/opentelemetry/sdk/metrics/export/in_memory_metric_pull_exporter.rb +1 -1
- data/lib/opentelemetry/sdk/metrics/export/periodic_metric_reader.rb +2 -2
- data/lib/opentelemetry/sdk/metrics/export.rb +1 -1
- data/lib/opentelemetry/sdk/metrics/meter.rb +6 -4
- data/lib/opentelemetry/sdk/metrics/meter_provider.rb +15 -9
- data/lib/opentelemetry/sdk/metrics/state/asynchronous_metric_stream.rb +1 -1
- data/lib/opentelemetry/sdk/metrics/version.rb +1 -1
- data/lib/opentelemetry/sdk/metrics/view/registered_view.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f72c4249d5329efc05eafffbe85f1475d2ae238b63c1af22a71eca6925def1bb
|
|
4
|
+
data.tar.gz: 85a822d11b3e73032c44355dd83c64af8512b50a2a69146ff777246b7f4d5ed6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d320ce1c51b00a0ca50b8bc18ec4d466e24ecbf3f5ca5aff63e27e001cfd7a467a4f7c71f57b2fcc048ff466c27dd9bd0333607cfaabda1469513288517d3cc6
|
|
7
|
+
data.tar.gz: d33515584f7c941b780019a0998a31a2cc3b30fd66438aa167d0f68ad7d1f747bd15216aec353a5cacdc0e61451a2eec64c9c8ce7bef436783f3ef8ba46a1c11
|
data/CHANGELOG.md
CHANGED
|
@@ -43,10 +43,7 @@ module OpenTelemetry
|
|
|
43
43
|
# @param aggregation_temporality [Symbol] :delta or :cumulative
|
|
44
44
|
# @return [Array<Exemplar>] The collected exemplars
|
|
45
45
|
def collect(attributes: nil, aggregation_temporality: nil)
|
|
46
|
-
exemplars =
|
|
47
|
-
@exemplar_buckets.each do |bucket|
|
|
48
|
-
exemplars << bucket.collect(point_attributes: attributes)
|
|
49
|
-
end
|
|
46
|
+
exemplars = @exemplar_buckets.map { |bucket| bucket.collect(point_attributes: attributes) }
|
|
50
47
|
reset if aggregation_temporality == :delta
|
|
51
48
|
exemplars.compact!
|
|
52
49
|
exemplars
|
|
@@ -35,10 +35,7 @@ module OpenTelemetry
|
|
|
35
35
|
|
|
36
36
|
# Reset measurement counter on collection for delta temporality
|
|
37
37
|
def collect(attributes: nil, aggregation_temporality: nil)
|
|
38
|
-
exemplars =
|
|
39
|
-
@exemplar_buckets.each do |bucket|
|
|
40
|
-
exemplars << bucket.collect(point_attributes: attributes)
|
|
41
|
-
end
|
|
38
|
+
exemplars = @exemplar_buckets.map { |bucket| bucket.collect(point_attributes: attributes) }
|
|
42
39
|
reset if aggregation_temporality == :delta
|
|
43
40
|
exemplars.compact!
|
|
44
41
|
exemplars
|
|
@@ -50,7 +47,7 @@ module OpenTelemetry
|
|
|
50
47
|
end
|
|
51
48
|
|
|
52
49
|
def find_histogram_bucket
|
|
53
|
-
@num_measurements_seen < @max_size ? @num_measurements_seen : rand(0
|
|
50
|
+
@num_measurements_seen < @max_size ? @num_measurements_seen : rand(0..(@num_measurements_seen - 1))
|
|
54
51
|
end
|
|
55
52
|
end
|
|
56
53
|
end
|
|
@@ -13,7 +13,7 @@ module OpenTelemetry
|
|
|
13
13
|
# Potentially useful for exploratory purposes.
|
|
14
14
|
class ConsoleMetricPullExporter < MetricReader
|
|
15
15
|
def initialize(aggregation_cardinality_limit: nil)
|
|
16
|
-
super
|
|
16
|
+
super
|
|
17
17
|
@stopped = false
|
|
18
18
|
end
|
|
19
19
|
|
|
@@ -8,7 +8,7 @@ module OpenTelemetry
|
|
|
8
8
|
module SDK
|
|
9
9
|
module Metrics
|
|
10
10
|
module Export
|
|
11
|
-
ExportError = Class.new(OpenTelemetry::Error)
|
|
11
|
+
ExportError = Class.new(OpenTelemetry::Error) # rubocop:disable Style/EmptyClassDefinition
|
|
12
12
|
|
|
13
13
|
# The operation finished successfully.
|
|
14
14
|
SUCCESS = 0
|
|
@@ -17,14 +17,16 @@ module OpenTelemetry
|
|
|
17
17
|
#
|
|
18
18
|
# Returns a new {Meter} instance.
|
|
19
19
|
#
|
|
20
|
-
# @param [String] name Instrumentation
|
|
21
|
-
# @param [String] version Instrumentation
|
|
20
|
+
# @param [String] name Instrumentation scope name
|
|
21
|
+
# @param [String] version Instrumentation scope version
|
|
22
|
+
# @param [optional Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}] attributes
|
|
23
|
+
# Instrumentation scope attributes
|
|
22
24
|
#
|
|
23
25
|
# @return [Meter]
|
|
24
|
-
def initialize(name, version, meter_provider)
|
|
26
|
+
def initialize(name, version, meter_provider, attributes: nil)
|
|
25
27
|
@mutex = Mutex.new
|
|
26
28
|
@instrument_registry = {}
|
|
27
|
-
@instrumentation_scope = InstrumentationScope.new(name, version)
|
|
29
|
+
@instrumentation_scope = InstrumentationScope.new(name, version, attributes || {}.freeze)
|
|
28
30
|
@meter_provider = meter_provider
|
|
29
31
|
end
|
|
30
32
|
|
|
@@ -12,7 +12,9 @@ module OpenTelemetry
|
|
|
12
12
|
# {MeterProvider} is the SDK implementation of {OpenTelemetry::Metrics::MeterProvider}.
|
|
13
13
|
# rubocop:disable Metrics/ClassLength
|
|
14
14
|
class MeterProvider < OpenTelemetry::Metrics::MeterProvider
|
|
15
|
-
|
|
15
|
+
EMPTY_ATTRIBUTES = {}.freeze
|
|
16
|
+
|
|
17
|
+
Key = Struct.new(:name, :version, :attributes)
|
|
16
18
|
private_constant(:Key)
|
|
17
19
|
|
|
18
20
|
attr_reader :resource, :metric_readers, :registered_views, :exemplar_filter
|
|
@@ -29,18 +31,22 @@ module OpenTelemetry
|
|
|
29
31
|
|
|
30
32
|
# Returns a {Meter} instance.
|
|
31
33
|
#
|
|
32
|
-
# @param [String] name Instrumentation
|
|
33
|
-
# @param [optional String] version Instrumentation
|
|
34
|
+
# @param [String] name Instrumentation scope name
|
|
35
|
+
# @param [optional String] version Instrumentation scope version
|
|
36
|
+
# @param [optional Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}] attributes
|
|
37
|
+
# Instrumentation scope attributes
|
|
34
38
|
#
|
|
35
39
|
# @return [Meter]
|
|
36
|
-
def meter(name, version: nil)
|
|
40
|
+
def meter(name, version: nil, attributes: nil)
|
|
37
41
|
version ||= ''
|
|
42
|
+
attributes = attributes&.dup&.freeze || EMPTY_ATTRIBUTES
|
|
43
|
+
|
|
38
44
|
if @stopped
|
|
39
45
|
OpenTelemetry.logger.warn 'calling MeterProvider#meter after shutdown, a noop meter will be returned.'
|
|
40
46
|
OpenTelemetry::Metrics::Meter.new
|
|
41
47
|
else
|
|
42
48
|
OpenTelemetry.logger.warn "Invalid meter name provided: #{name.nil? ? 'nil' : 'empty'} value" if name.to_s.empty?
|
|
43
|
-
@mutex.synchronize { @meter_registry[Key.new(name, version)] ||= Meter.new(name, version, self) }
|
|
49
|
+
@mutex.synchronize { @meter_registry[Key.new(name, version, attributes)] ||= Meter.new(name, version, self, attributes: attributes) }
|
|
44
50
|
end
|
|
45
51
|
end
|
|
46
52
|
|
|
@@ -131,7 +137,7 @@ module OpenTelemetry
|
|
|
131
137
|
alias register_asynchronous_instrument register_synchronous_instrument
|
|
132
138
|
|
|
133
139
|
def exemplar_filter_setup
|
|
134
|
-
case ENV
|
|
140
|
+
case ENV.fetch('OTEL_METRICS_EXEMPLAR_FILTER', nil)
|
|
135
141
|
when 'always_on'
|
|
136
142
|
@exemplar_filter = Exemplar::AlwaysOnExemplarFilter
|
|
137
143
|
when nil, '', 'trace_based'
|
|
@@ -139,7 +145,7 @@ module OpenTelemetry
|
|
|
139
145
|
when 'always_off'
|
|
140
146
|
@exemplar_filter = Exemplar::AlwaysOffExemplarFilter
|
|
141
147
|
else
|
|
142
|
-
OpenTelemetry.logger.warn("OTEL_METRICS_EXEMPLAR_FILTER #{ENV
|
|
148
|
+
OpenTelemetry.logger.warn("OTEL_METRICS_EXEMPLAR_FILTER #{ENV.fetch('OTEL_METRICS_EXEMPLAR_FILTER', nil)} is not part of the provided exemplar filters. Using trace_based.")
|
|
143
149
|
@exemplar_filter = Exemplar::TraceBasedExemplarFilter
|
|
144
150
|
end
|
|
145
151
|
end
|
|
@@ -177,9 +183,9 @@ module OpenTelemetry
|
|
|
177
183
|
#
|
|
178
184
|
# @return [nil] returns nil
|
|
179
185
|
#
|
|
180
|
-
def add_view(name, **
|
|
186
|
+
def add_view(name, **)
|
|
181
187
|
# TODO: add schema_url as part of options
|
|
182
|
-
@registered_views << View::RegisteredView.new(name, **
|
|
188
|
+
@registered_views << View::RegisteredView.new(name, **)
|
|
183
189
|
nil
|
|
184
190
|
end
|
|
185
191
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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.16.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenTelemetry Authors
|
|
@@ -43,14 +43,14 @@ dependencies:
|
|
|
43
43
|
requirements:
|
|
44
44
|
- - "~>"
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version:
|
|
46
|
+
version: 1.13.0
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version:
|
|
53
|
+
version: 1.13.0
|
|
54
54
|
description: A stats collection and distributed tracing framework
|
|
55
55
|
email:
|
|
56
56
|
- cncf-opentelemetry-contributors@lists.cncf.io
|
|
@@ -121,10 +121,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
|
|
|
121
121
|
licenses:
|
|
122
122
|
- Apache-2.0
|
|
123
123
|
metadata:
|
|
124
|
-
changelog_uri: https://rubydoc.info/gems/opentelemetry-metrics-sdk/0.
|
|
125
|
-
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/opentelemetry-metrics-sdk/v0.
|
|
124
|
+
changelog_uri: https://rubydoc.info/gems/opentelemetry-metrics-sdk/0.16.0/file/CHANGELOG.md
|
|
125
|
+
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/opentelemetry-metrics-sdk/v0.16.0/metrics_sdk
|
|
126
126
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
|
127
|
-
documentation_uri: https://rubydoc.info/gems/opentelemetry-metrics-sdk/0.
|
|
127
|
+
documentation_uri: https://rubydoc.info/gems/opentelemetry-metrics-sdk/0.16.0
|
|
128
128
|
rdoc_options: []
|
|
129
129
|
require_paths:
|
|
130
130
|
- lib
|
|
@@ -139,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
139
139
|
- !ruby/object:Gem::Version
|
|
140
140
|
version: '0'
|
|
141
141
|
requirements: []
|
|
142
|
-
rubygems_version: 4.0.
|
|
142
|
+
rubygems_version: 4.0.16
|
|
143
143
|
specification_version: 4
|
|
144
144
|
summary: A stats collection and distributed tracing framework
|
|
145
145
|
test_files: []
|