opentelemetry-metrics-sdk 0.4.1 → 0.6.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 +15 -6
- data/README.md +1 -1
- data/lib/opentelemetry/sdk/metrics/aggregation/sum.rb +8 -1
- data/lib/opentelemetry/sdk/metrics/instrument/counter.rb +1 -1
- data/lib/opentelemetry/sdk/metrics/instrument/gauge.rb +47 -0
- data/lib/opentelemetry/sdk/metrics/instrument/up_down_counter.rb +1 -1
- data/lib/opentelemetry/sdk/metrics/instrument.rb +1 -0
- data/lib/opentelemetry/sdk/metrics/meter.rb +1 -0
- data/lib/opentelemetry/sdk/metrics/state/metric_data.rb +2 -1
- data/lib/opentelemetry/sdk/metrics/state/metric_stream.rb +4 -1
- data/lib/opentelemetry/sdk/metrics/version.rb +1 -1
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a74df1307dfb40dbdaf08d87781c35d2736916d94ae06eef45b3237b3ba38631
|
4
|
+
data.tar.gz: 3a108b46150f768890f6cef2acd49557d83331cc4a84613b8c7de38861cfebdb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b168a69a35cee4b798cf9195b0af540d79b2b9cbb687dd98abe295a517e38683fce1976a7028ab822f8e5aec3157b53043ed9ddbb436cf5a2f25101ddc50b61
|
7
|
+
data.tar.gz: a06ace144467243b00a4d19bec891d66d55f3da2c611d4569e393b805d31979ab47eed39dbb86d4b9d508519b69ce2f827acb3281c446d83fe8201a6e84150fe
|
data/CHANGELOG.md
CHANGED
@@ -1,22 +1,31 @@
|
|
1
1
|
# Release History: opentelemetry-metrics-sdk
|
2
2
|
|
3
|
+
### v0.6.0 / 2025-02-25
|
4
|
+
|
5
|
+
- ADDED: Support 3.1 Min Version
|
6
|
+
- FIXED: Add is_monotonic flag to sum
|
7
|
+
|
8
|
+
### v0.5.0 / 2025-01-08
|
9
|
+
|
10
|
+
- ADDED: Add synchronous gauge
|
11
|
+
|
3
12
|
### v0.4.1 / 2024-12-04
|
4
13
|
|
5
|
-
|
14
|
+
- FIXED: Handle float value in NumberDataPoint
|
6
15
|
|
7
16
|
### v0.4.0 / 2024-11-20
|
8
17
|
|
9
|
-
|
18
|
+
- ADDED: Update metrics configuration patch
|
10
19
|
|
11
20
|
### v0.3.0 / 2024-10-22
|
12
21
|
|
13
|
-
|
14
|
-
|
15
|
-
|
22
|
+
- ADDED: Add basic metrics view
|
23
|
+
- FIXED: Coerce aggregation_temporality to symbol
|
24
|
+
- FIXED: Add warning if invalid meter name given
|
16
25
|
|
17
26
|
### v0.2.0 / 2024-08-27
|
18
27
|
|
19
|
-
|
28
|
+
- ADDED: Add basic periodic exporting metric_reader
|
20
29
|
|
21
30
|
### v0.1.0 / 2024-07-31
|
22
31
|
|
data/README.md
CHANGED
@@ -25,6 +25,7 @@ At this time, you should be able to:
|
|
25
25
|
* observable up down counters
|
26
26
|
* Export using a pull exporter
|
27
27
|
* Use delta aggregation temporality
|
28
|
+
* Periodic Exporting Metric Reader
|
28
29
|
|
29
30
|
We do not yet have support for:
|
30
31
|
|
@@ -32,7 +33,6 @@ We do not yet have support for:
|
|
32
33
|
* Cumulative aggregation temporality
|
33
34
|
* Metrics Views
|
34
35
|
* Metrics Exemplars
|
35
|
-
* Periodic Exporting Metric Reader
|
36
36
|
* Push metric exporting
|
37
37
|
|
38
38
|
These lists are incomplete and are intended to give a broad description of what's available.
|
@@ -13,9 +13,10 @@ module OpenTelemetry
|
|
13
13
|
class Sum
|
14
14
|
attr_reader :aggregation_temporality
|
15
15
|
|
16
|
-
def initialize(aggregation_temporality: ENV.fetch('OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE', :delta))
|
16
|
+
def initialize(aggregation_temporality: ENV.fetch('OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE', :delta), monotonic: false)
|
17
17
|
# TODO: the default should be :cumulative, see issue #1555
|
18
18
|
@aggregation_temporality = aggregation_temporality.to_sym
|
19
|
+
@monotonic = monotonic
|
19
20
|
end
|
20
21
|
|
21
22
|
def collect(start_time, end_time, data_points)
|
@@ -38,7 +39,13 @@ module OpenTelemetry
|
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
42
|
+
def monotonic?
|
43
|
+
@monotonic
|
44
|
+
end
|
45
|
+
|
41
46
|
def update(increment, attributes, data_points)
|
47
|
+
return if @monotonic && increment < 0
|
48
|
+
|
42
49
|
ndp = data_points[attributes] || data_points[attributes] = NumberDataPoint.new(
|
43
50
|
attributes,
|
44
51
|
nil,
|
@@ -0,0 +1,47 @@
|
|
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
|
+
module Instrument
|
11
|
+
# {Gauge} is the SDK implementation of {OpenTelemetry::Metrics::Gauge}.
|
12
|
+
class Gauge < OpenTelemetry::SDK::Metrics::Instrument::SynchronousInstrument
|
13
|
+
# Returns the instrument kind as a Symbol
|
14
|
+
#
|
15
|
+
# @return [Symbol]
|
16
|
+
def instrument_kind
|
17
|
+
:gauge
|
18
|
+
end
|
19
|
+
|
20
|
+
# Record the absolute value of the Gauge.
|
21
|
+
#
|
22
|
+
# @param [numeric] value The current absolute value.
|
23
|
+
# @param [Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}] attributes
|
24
|
+
# Values must be non-nil and (array of) string, boolean or numeric type.
|
25
|
+
# Array values must not contain nil elements and all elements must be of
|
26
|
+
# the same basic type (string, numeric, boolean).
|
27
|
+
def record(value, attributes: {})
|
28
|
+
# TODO: When the metrics SDK stabilizes and is merged into the main SDK,
|
29
|
+
# we can leverage the SDK Internal validation classes to enforce this:
|
30
|
+
# https://github.com/open-telemetry/opentelemetry-ruby/blob/6bec625ef49004f364457c26263df421526b60d6/sdk/lib/opentelemetry/sdk/internal.rb#L47
|
31
|
+
update(value, attributes)
|
32
|
+
nil
|
33
|
+
rescue StandardError => e
|
34
|
+
OpenTelemetry.handle_error(exception: e)
|
35
|
+
nil
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def default_aggregation
|
41
|
+
OpenTelemetry::SDK::Metrics::Aggregation::LastValue.new
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -20,3 +20,4 @@ require 'opentelemetry/sdk/metrics/instrument/observable_counter'
|
|
20
20
|
require 'opentelemetry/sdk/metrics/instrument/observable_gauge'
|
21
21
|
require 'opentelemetry/sdk/metrics/instrument/observable_up_down_counter'
|
22
22
|
require 'opentelemetry/sdk/metrics/instrument/up_down_counter'
|
23
|
+
require 'opentelemetry/sdk/metrics/instrument/gauge'
|
@@ -46,6 +46,7 @@ module OpenTelemetry
|
|
46
46
|
case kind
|
47
47
|
when :counter then OpenTelemetry::SDK::Metrics::Instrument::Counter.new(name, unit, description, @instrumentation_scope, @meter_provider)
|
48
48
|
when :observable_counter then OpenTelemetry::SDK::Metrics::Instrument::ObservableCounter.new(name, unit, description, callback, @instrumentation_scope, @meter_provider)
|
49
|
+
when :gauge then OpenTelemetry::SDK::Metrics::Instrument::Gauge.new(name, unit, description, @instrumentation_scope, @meter_provider)
|
49
50
|
when :histogram then OpenTelemetry::SDK::Metrics::Instrument::Histogram.new(name, unit, description, @instrumentation_scope, @meter_provider)
|
50
51
|
when :observable_gauge then OpenTelemetry::SDK::Metrics::Instrument::ObservableGauge.new(name, unit, description, callback, @instrumentation_scope, @meter_provider)
|
51
52
|
when :up_down_counter then OpenTelemetry::SDK::Metrics::Instrument::UpDownCounter.new(name, unit, description, @instrumentation_scope, @meter_provider)
|
@@ -18,7 +18,8 @@ module OpenTelemetry
|
|
18
18
|
:data_points, # Hash{Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>} => Numeric}
|
19
19
|
:aggregation_temporality, # Symbol
|
20
20
|
:start_time_unix_nano, # Integer nanoseconds since Epoch
|
21
|
-
:time_unix_nano
|
21
|
+
:time_unix_nano, # Integer nanoseconds since Epoch
|
22
|
+
:is_monotonic) # Boolean
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
@@ -67,6 +67,8 @@ module OpenTelemetry
|
|
67
67
|
|
68
68
|
def aggregate_metric_data(start_time, end_time, aggregation: nil)
|
69
69
|
aggregator = aggregation || @default_aggregation
|
70
|
+
is_monotonic = aggregator.respond_to?(:monotonic?) ? aggregator.monotonic? : nil
|
71
|
+
|
70
72
|
MetricData.new(
|
71
73
|
@name,
|
72
74
|
@description,
|
@@ -77,7 +79,8 @@ module OpenTelemetry
|
|
77
79
|
aggregator.collect(start_time, end_time, @data_points),
|
78
80
|
aggregator.aggregation_temporality,
|
79
81
|
start_time,
|
80
|
-
end_time
|
82
|
+
end_time,
|
83
|
+
is_monotonic
|
81
84
|
)
|
82
85
|
end
|
83
86
|
|
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.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenTelemetry Authors
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-api
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: '0.2'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: '0.2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: opentelemetry-sdk
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -220,6 +220,7 @@ files:
|
|
220
220
|
- lib/opentelemetry/sdk/metrics/export/periodic_metric_reader.rb
|
221
221
|
- lib/opentelemetry/sdk/metrics/instrument.rb
|
222
222
|
- lib/opentelemetry/sdk/metrics/instrument/counter.rb
|
223
|
+
- lib/opentelemetry/sdk/metrics/instrument/gauge.rb
|
223
224
|
- lib/opentelemetry/sdk/metrics/instrument/histogram.rb
|
224
225
|
- lib/opentelemetry/sdk/metrics/instrument/observable_counter.rb
|
225
226
|
- lib/opentelemetry/sdk/metrics/instrument/observable_gauge.rb
|
@@ -239,11 +240,11 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
|
|
239
240
|
licenses:
|
240
241
|
- Apache-2.0
|
241
242
|
metadata:
|
242
|
-
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-metrics-sdk/v0.
|
243
|
+
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-metrics-sdk/v0.6.0/file.CHANGELOG.html
|
243
244
|
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/metrics_sdk
|
244
245
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
245
|
-
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-metrics-sdk/v0.
|
246
|
-
post_install_message:
|
246
|
+
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-metrics-sdk/v0.6.0
|
247
|
+
post_install_message:
|
247
248
|
rdoc_options: []
|
248
249
|
require_paths:
|
249
250
|
- lib
|
@@ -251,15 +252,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
251
252
|
requirements:
|
252
253
|
- - ">="
|
253
254
|
- !ruby/object:Gem::Version
|
254
|
-
version: '3.
|
255
|
+
version: '3.1'
|
255
256
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
256
257
|
requirements:
|
257
258
|
- - ">="
|
258
259
|
- !ruby/object:Gem::Version
|
259
260
|
version: '0'
|
260
261
|
requirements: []
|
261
|
-
rubygems_version: 3.
|
262
|
-
signing_key:
|
262
|
+
rubygems_version: 3.3.27
|
263
|
+
signing_key:
|
263
264
|
specification_version: 4
|
264
265
|
summary: A stats collection and distributed tracing framework
|
265
266
|
test_files: []
|