fast-prometheus 0.2.0 → 0.3.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.
@@ -0,0 +1,169 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "fast/protowire"
4
+
5
+ module Fast
6
+ module Prometheus
7
+ module OTLP
8
+ # The OTLP metrics data model (proto/opentelemetry, proto3), declared
9
+ # for the wire: what the exporters send and the one response they read.
10
+ module Proto
11
+ class AnyValue < Fast::Protowire::Message
12
+ oneof :value do
13
+ field :string_value, :string, 1
14
+ field :bool_value, :bool, 2
15
+ field :int_value, :int64, 3
16
+ field :double_value, :double, 4
17
+ field :bytes_value, :bytes, 7
18
+ end
19
+ end
20
+
21
+ class KeyValue < Fast::Protowire::Message
22
+ field :key, :string, 1
23
+ field :value, AnyValue, 2
24
+ end
25
+
26
+ class InstrumentationScope < Fast::Protowire::Message
27
+ field :name, :string, 1
28
+ field :version, :string, 2
29
+ repeated :attributes, KeyValue, 3
30
+ field :dropped_attributes_count, :uint32, 4
31
+ end
32
+
33
+ class Resource < Fast::Protowire::Message
34
+ repeated :attributes, KeyValue, 1
35
+ field :dropped_attributes_count, :uint32, 2
36
+ end
37
+
38
+ AggregationTemporality = Fast::Protowire::Enum.define(
39
+ AGGREGATION_TEMPORALITY_UNSPECIFIED: 0,
40
+ AGGREGATION_TEMPORALITY_DELTA: 1,
41
+ AGGREGATION_TEMPORALITY_CUMULATIVE: 2
42
+ )
43
+
44
+ class NumberDataPoint < Fast::Protowire::Message
45
+ field :start_time_unix_nano, :fixed64, 2
46
+ field :time_unix_nano, :fixed64, 3
47
+ oneof :value do
48
+ field :as_double, :double, 4
49
+ field :as_int, :sfixed64, 6
50
+ end
51
+ repeated :attributes, KeyValue, 7
52
+ field :flags, :uint32, 8
53
+ end
54
+
55
+ class HistogramDataPoint < Fast::Protowire::Message
56
+ field :start_time_unix_nano, :fixed64, 2
57
+ field :time_unix_nano, :fixed64, 3
58
+ field :count, :fixed64, 4
59
+ optional :sum, :double, 5
60
+ repeated :bucket_counts, :fixed64, 6
61
+ repeated :explicit_bounds, :double, 7
62
+ repeated :attributes, KeyValue, 9
63
+ field :flags, :uint32, 10
64
+ optional :min, :double, 11
65
+ optional :max, :double, 12
66
+ end
67
+
68
+ class SummaryDataPoint < Fast::Protowire::Message
69
+ class ValueAtQuantile < Fast::Protowire::Message
70
+ field :quantile, :double, 1
71
+ field :value, :double, 2
72
+ end
73
+
74
+ field :start_time_unix_nano, :fixed64, 2
75
+ field :time_unix_nano, :fixed64, 3
76
+ field :count, :fixed64, 4
77
+ field :sum, :double, 5
78
+ repeated :quantile_values, ValueAtQuantile, 6
79
+ repeated :attributes, KeyValue, 7
80
+ field :flags, :uint32, 8
81
+ end
82
+
83
+ class ExponentialHistogramDataPoint < Fast::Protowire::Message
84
+ class Buckets < Fast::Protowire::Message
85
+ field :offset, :sint32, 1
86
+ repeated :bucket_counts, :uint64, 2
87
+ end
88
+
89
+ repeated :attributes, KeyValue, 1
90
+ field :start_time_unix_nano, :fixed64, 2
91
+ field :time_unix_nano, :fixed64, 3
92
+ field :count, :fixed64, 4
93
+ optional :sum, :double, 5
94
+ field :scale, :sint32, 6
95
+ field :zero_count, :fixed64, 7
96
+ field :positive, Buckets, 8
97
+ field :negative, Buckets, 9
98
+ field :flags, :uint32, 10
99
+ optional :min, :double, 12
100
+ optional :max, :double, 13
101
+ field :zero_threshold, :double, 14
102
+ end
103
+
104
+ class Gauge < Fast::Protowire::Message
105
+ repeated :data_points, NumberDataPoint, 1
106
+ end
107
+
108
+ class Sum < Fast::Protowire::Message
109
+ repeated :data_points, NumberDataPoint, 1
110
+ field :aggregation_temporality, AggregationTemporality, 2
111
+ field :is_monotonic, :bool, 3
112
+ end
113
+
114
+ class Histogram < Fast::Protowire::Message
115
+ repeated :data_points, HistogramDataPoint, 1
116
+ field :aggregation_temporality, AggregationTemporality, 2
117
+ end
118
+
119
+ class ExponentialHistogram < Fast::Protowire::Message
120
+ repeated :data_points, ExponentialHistogramDataPoint, 1
121
+ field :aggregation_temporality, AggregationTemporality, 2
122
+ end
123
+
124
+ class Summary < Fast::Protowire::Message
125
+ repeated :data_points, SummaryDataPoint, 1
126
+ end
127
+
128
+ class Metric < Fast::Protowire::Message
129
+ field :name, :string, 1
130
+ field :description, :string, 2
131
+ field :unit, :string, 3
132
+ oneof :data do
133
+ field :gauge, Gauge, 5
134
+ field :sum, Sum, 7
135
+ field :histogram, Histogram, 9
136
+ field :exponential_histogram, ExponentialHistogram, 10
137
+ field :summary, Summary, 11
138
+ end
139
+ repeated :metadata, KeyValue, 12
140
+ end
141
+
142
+ class ScopeMetrics < Fast::Protowire::Message
143
+ field :scope, InstrumentationScope, 1
144
+ repeated :metrics, Metric, 2
145
+ field :schema_url, :string, 3
146
+ end
147
+
148
+ class ResourceMetrics < Fast::Protowire::Message
149
+ field :resource, Resource, 1
150
+ repeated :scope_metrics, ScopeMetrics, 2
151
+ field :schema_url, :string, 3
152
+ end
153
+
154
+ class ExportMetricsServiceRequest < Fast::Protowire::Message
155
+ repeated :resource_metrics, ResourceMetrics, 1
156
+ end
157
+
158
+ class ExportMetricsPartialSuccess < Fast::Protowire::Message
159
+ field :rejected_data_points, :int64, 1
160
+ field :error_message, :string, 2
161
+ end
162
+
163
+ class ExportMetricsServiceResponse < Fast::Protowire::Message
164
+ field :partial_success, ExportMetricsPartialSuccess, 1
165
+ end
166
+ end
167
+ end
168
+ end
169
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "fast/prometheus"
4
4
  require "protocol/grpc/interface"
5
- require_relative "mapper"
5
+ require_relative "proto"
6
6
 
7
7
  module Fast
8
8
  module Prometheus
@@ -10,8 +10,8 @@ module Fast
10
10
  # Protocol::GRPC::Interface for opentelemetry.proto.collector.metrics.v1.MetricsService.
11
11
  class MetricsServiceInterface < Protocol::GRPC::Interface
12
12
  rpc :Export,
13
- request_class: Opentelemetry::Proto::Collector::Metrics::V1::ExportMetricsServiceRequest,
14
- response_class: Opentelemetry::Proto::Collector::Metrics::V1::ExportMetricsServiceResponse
13
+ request_class: Proto::ExportMetricsServiceRequest,
14
+ response_class: Proto::ExportMetricsServiceResponse
15
15
  end
16
16
  end
17
17
  end
@@ -2,38 +2,40 @@
2
2
 
3
3
  module Fast
4
4
  module Prometheus
5
- # Immutable value types for snapshots. Deep-frozen Data types.
6
-
7
- HistogramValue = Data.define(:sum, :count, :cumulative_buckets)
8
-
9
- NativeHistogramValue = Data.define(:schema, :zero_threshold, :zero_count, :sum, :count,
10
- :positive_buckets, :negative_buckets)
11
-
12
- Series = Data.define(:labels, :value)
13
-
14
- SummaryValue = Data.define(:sum, :count)
5
+ # Immutable value types for snapshots.
6
+ #
7
+ # A MetricSnapshot's +series+ is the metric's store as it stood at one
8
+ # instant: a frozen Hash from each series' label values (an Array in
9
+ # +label_names+ order, the store's own key) to its value. Counter and
10
+ # gauge values are Floats; the other types' values are the frozen
11
+ # Structs below, built from the live slot while the store was locked.
12
+ # Nothing per series is copied beyond that, so a snapshot of any size
13
+ # costs one Hash per metric.
14
+ #
15
+ # The value shapes are Structs frozen where they are built, not Data:
16
+ # Data.new allocates two objects besides the instance, and a scrape
17
+ # builds one of these per histogram, summary or native histogram series.
18
+ # (sum and count shadow Enumerable's on the Structs, as they would on Data.)
19
+
20
+ HistogramValue = Struct.new(:sum, :count, :cumulative_buckets) # rubocop:disable Lint/StructNewOverride
21
+
22
+ NativeHistogramValue = Struct.new(:schema, :zero_threshold, :zero_count, :sum, :count, # rubocop:disable Lint/StructNewOverride
23
+ :positive_buckets, :negative_buckets)
24
+
25
+ SummaryValue = Struct.new(:sum, :count) # rubocop:disable Lint/StructNewOverride
15
26
 
16
27
  MetricSnapshot = Data.define(:name, :docstring, :type, :label_names, :series) do
17
- # Build a MetricSnapshot from a live metric. Reads only public readers
18
- # and copies all mutable structures. The whole build runs under the
19
- # metric's lock so no series is observed mid-mutation and no writer
20
- # interleaves between series.
28
+ # Build a MetricSnapshot from a live metric. +series+ is the metric's
29
+ # store copied and its slots frozen under the metric's lock (see
30
+ # Metric#snapshot_values), so no series is observed mid-mutation and
31
+ # no writer interleaves between series.
21
32
  def self.of(metric)
22
- metric.synchronize do
23
- new(
24
- metric.name,
25
- metric.docstring,
26
- metric.type,
27
- metric.labels.dup.freeze,
28
- build_series(metric).freeze
29
- )
30
- end
33
+ new(metric.name, metric.docstring, metric.type, metric.labels.dup.freeze, metric.snapshot_values.freeze)
31
34
  end
32
35
 
33
- def self.build_series(metric)
34
- metric.snapshot_values.map do |labels, value|
35
- Series.new(labels: labels.dup.freeze, value: value)
36
- end
36
+ # The {name => value} Hash for one series' label values.
37
+ def labels(values)
38
+ label_names.zip(values).to_h
37
39
  end
38
40
  end
39
41
 
@@ -17,8 +17,10 @@ module Fast
17
17
  @monitor = Monitor.new
18
18
  end
19
19
 
20
- def synchronize(&block)
21
- @monitor.synchronize(&block)
20
+ # Written with yield rather than a captured &block, so taking the lock
21
+ # allocates nothing.
22
+ def synchronize
23
+ @monitor.synchronize { yield } # rubocop:disable Style/ExplicitBlockArgument
22
24
  end
23
25
 
24
26
  def [](key)
@@ -21,7 +21,7 @@ module Fast
21
21
  :summary
22
22
  end
23
23
 
24
- def observe(value, labels: {})
24
+ def observe(value, labels: NO_LABELS)
25
25
  key = resolve(labels)
26
26
  store.synchronize do
27
27
  slot = store[key] ||= Value.new
@@ -31,7 +31,7 @@ module Fast
31
31
  end
32
32
 
33
33
  # {"count" => Integer, "sum" => Float}. Zero-valued for an unobserved series.
34
- def get(labels: {})
34
+ def get(labels: NO_LABELS)
35
35
  key = resolve(labels)
36
36
  store.synchronize { hash_shape(store[key] || zero_value) }
37
37
  end
@@ -58,7 +58,7 @@ module Fast
58
58
  end
59
59
 
60
60
  def snapshot_value(slot)
61
- SummaryValue.new(sum: slot.sum, count: slot.count)
61
+ SummaryValue.new(slot.sum, slot.count).freeze
62
62
  end
63
63
 
64
64
  def hash_shape(slot)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Fast
4
4
  module Prometheus
5
- VERSION = "0.2.0"
5
+ VERSION = "0.3.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fast-prometheus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Jacobs
@@ -66,19 +66,19 @@ dependencies:
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0.7'
68
68
  - !ruby/object:Gem::Dependency
69
- name: google-protobuf
69
+ name: fast-protowire
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '4.35'
74
+ version: '0.1'
75
75
  type: :runtime
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '4.35'
81
+ version: '0.1'
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: console
84
84
  requirement: !ruby/object:Gem::Requirement
@@ -104,7 +104,7 @@ files:
104
104
  - lib/fast/prometheus/counter.rb
105
105
  - lib/fast/prometheus/errors.rb
106
106
  - lib/fast/prometheus/exposition.rb
107
- - lib/fast/prometheus/formats/metrics_pb.rb
107
+ - lib/fast/prometheus/formats/metrics_proto.rb
108
108
  - lib/fast/prometheus/formats/protobuf.rb
109
109
  - lib/fast/prometheus/formats/text.rb
110
110
  - lib/fast/prometheus/gauge.rb
@@ -116,10 +116,7 @@ files:
116
116
  - lib/fast/prometheus/otlp/grpc_exporter.rb
117
117
  - lib/fast/prometheus/otlp/http_exporter.rb
118
118
  - lib/fast/prometheus/otlp/mapper.rb
119
- - lib/fast/prometheus/otlp/pb/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb
120
- - lib/fast/prometheus/otlp/pb/opentelemetry/proto/common/v1/common_pb.rb
121
- - lib/fast/prometheus/otlp/pb/opentelemetry/proto/metrics/v1/metrics_pb.rb
122
- - lib/fast/prometheus/otlp/pb/opentelemetry/proto/resource/v1/resource_pb.rb
119
+ - lib/fast/prometheus/otlp/proto.rb
123
120
  - lib/fast/prometheus/otlp/push.rb
124
121
  - lib/fast/prometheus/otlp/service_interface.rb
125
122
  - lib/fast/prometheus/rack/exporter.rb
@@ -152,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
149
  - !ruby/object:Gem::Version
153
150
  version: '0'
154
151
  requirements: []
155
- rubygems_version: 4.0.10
152
+ rubygems_version: 4.0.20
156
153
  specification_version: 4
157
154
  summary: A fiber-native Prometheus client for modern Ruby.
158
155
  test_files: []
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: metrics.proto
4
-
5
- require 'google/protobuf'
6
-
7
- require 'google/protobuf/timestamp_pb'
8
-
9
-
10
- descriptor_data = "\n\rmetrics.proto\x12\x14io.prometheus.client\x1a\x1fgoogle/protobuf/timestamp.proto\"(\n\tLabelPair\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\x16\n\x05Gauge\x12\r\n\x05value\x18\x01 \x01(\x01\"\x7f\n\x07\x43ounter\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x30\n\x08\x65xemplar\x18\x02 \x01(\x0b\x32\x1e.io.prometheus.client.Exemplar\x12\x33\n\x0fstart_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"+\n\x08Quantile\x12\x10\n\x08quantile\x18\x01 \x01(\x01\x12\r\n\x05value\x18\x02 \x01(\x01\"\x9a\x01\n\x07Summary\x12\x14\n\x0csample_count\x18\x01 \x01(\x04\x12\x12\n\nsample_sum\x18\x02 \x01(\x01\x12\x30\n\x08quantile\x18\x03 \x03(\x0b\x32\x1e.io.prometheus.client.Quantile\x12\x33\n\x0fstart_timestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x18\n\x07Untyped\x12\r\n\x05value\x18\x01 \x01(\x01\"\x8f\x04\n\tHistogram\x12\x14\n\x0csample_count\x18\x01 \x01(\x04\x12\x1a\n\x12sample_count_float\x18\x04 \x01(\x01\x12\x12\n\nsample_sum\x18\x02 \x01(\x01\x12,\n\x06\x62ucket\x18\x03 \x03(\x0b\x32\x1c.io.prometheus.client.Bucket\x12\x33\n\x0fstart_timestamp\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06schema\x18\x05 \x01(\x11\x12\x16\n\x0ezero_threshold\x18\x06 \x01(\x01\x12\x12\n\nzero_count\x18\x07 \x01(\x04\x12\x18\n\x10zero_count_float\x18\x08 \x01(\x01\x12\x37\n\rnegative_span\x18\t \x03(\x0b\x32 .io.prometheus.client.BucketSpan\x12\x16\n\x0enegative_delta\x18\n \x03(\x12\x12\x16\n\x0enegative_count\x18\x0b \x03(\x01\x12\x37\n\rpositive_span\x18\x0c \x03(\x0b\x32 .io.prometheus.client.BucketSpan\x12\x16\n\x0epositive_delta\x18\r \x03(\x12\x12\x16\n\x0epositive_count\x18\x0e \x03(\x01\x12\x31\n\texemplars\x18\x10 \x03(\x0b\x32\x1e.io.prometheus.client.Exemplar\"\x89\x01\n\x06\x42ucket\x12\x18\n\x10\x63umulative_count\x18\x01 \x01(\x04\x12\x1e\n\x16\x63umulative_count_float\x18\x04 \x01(\x01\x12\x13\n\x0bupper_bound\x18\x02 \x01(\x01\x12\x30\n\x08\x65xemplar\x18\x03 \x01(\x0b\x32\x1e.io.prometheus.client.Exemplar\",\n\nBucketSpan\x12\x0e\n\x06offset\x18\x01 \x01(\x11\x12\x0e\n\x06length\x18\x02 \x01(\r\"x\n\x08\x45xemplar\x12.\n\x05label\x18\x01 \x03(\x0b\x32\x1f.io.prometheus.client.LabelPair\x12\r\n\x05value\x18\x02 \x01(\x01\x12-\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xbe\x02\n\x06Metric\x12.\n\x05label\x18\x01 \x03(\x0b\x32\x1f.io.prometheus.client.LabelPair\x12*\n\x05gauge\x18\x02 \x01(\x0b\x32\x1b.io.prometheus.client.Gauge\x12.\n\x07\x63ounter\x18\x03 \x01(\x0b\x32\x1d.io.prometheus.client.Counter\x12.\n\x07summary\x18\x04 \x01(\x0b\x32\x1d.io.prometheus.client.Summary\x12.\n\x07untyped\x18\x05 \x01(\x0b\x32\x1d.io.prometheus.client.Untyped\x12\x32\n\thistogram\x18\x07 \x01(\x0b\x32\x1f.io.prometheus.client.Histogram\x12\x14\n\x0ctimestamp_ms\x18\x06 \x01(\x03\"\x96\x01\n\x0cMetricFamily\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04help\x18\x02 \x01(\t\x12.\n\x04type\x18\x03 \x01(\x0e\x32 .io.prometheus.client.MetricType\x12,\n\x06metric\x18\x04 \x03(\x0b\x32\x1c.io.prometheus.client.Metric\x12\x0c\n\x04unit\x18\x05 \x01(\t*b\n\nMetricType\x12\x0b\n\x07\x43OUNTER\x10\x00\x12\t\n\x05GAUGE\x10\x01\x12\x0b\n\x07SUMMARY\x10\x02\x12\x0b\n\x07UNTYPED\x10\x03\x12\r\n\tHISTOGRAM\x10\x04\x12\x13\n\x0fGAUGE_HISTOGRAM\x10\x05\x42\x16Z\x14io_prometheus_clientb\x06proto3"
11
-
12
- pool = ::Google::Protobuf::DescriptorPool.generated_pool
13
- pool.add_serialized_file(descriptor_data)
14
-
15
- module Io
16
- module Prometheus
17
- module Client
18
- LabelPair = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.LabelPair").msgclass
19
- Gauge = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.Gauge").msgclass
20
- Counter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.Counter").msgclass
21
- Quantile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.Quantile").msgclass
22
- Summary = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.Summary").msgclass
23
- Untyped = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.Untyped").msgclass
24
- Histogram = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.Histogram").msgclass
25
- Bucket = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.Bucket").msgclass
26
- BucketSpan = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.BucketSpan").msgclass
27
- Exemplar = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.Exemplar").msgclass
28
- Metric = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.Metric").msgclass
29
- MetricFamily = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.MetricFamily").msgclass
30
- MetricType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("io.prometheus.client.MetricType").enummodule
31
- end
32
- end
33
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: opentelemetry/proto/collector/metrics/v1/metrics_service.proto
4
-
5
- require 'google/protobuf'
6
-
7
- require 'opentelemetry/proto/metrics/v1/metrics_pb'
8
-
9
-
10
- descriptor_data = "\n>opentelemetry/proto/collector/metrics/v1/metrics_service.proto\x12(opentelemetry.proto.collector.metrics.v1\x1a,opentelemetry/proto/metrics/v1/metrics.proto\"h\n\x1b\x45xportMetricsServiceRequest\x12I\n\x10resource_metrics\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.ResourceMetrics\"~\n\x1c\x45xportMetricsServiceResponse\x12^\n\x0fpartial_success\x18\x01 \x01(\x0b\x32\x45.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess\"R\n\x1b\x45xportMetricsPartialSuccess\x12\x1c\n\x14rejected_data_points\x18\x01 \x01(\x03\x12\x15\n\rerror_message\x18\x02 \x01(\t2\xac\x01\n\x0eMetricsService\x12\x99\x01\n\x06\x45xport\x12\x45.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest\x1a\x46.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse\"\x00\x42\xa4\x01\n+io.opentelemetry.proto.collector.metrics.v1B\x13MetricsServiceProtoP\x01Z3go.opentelemetry.io/proto/otlp/collector/metrics/v1\xaa\x02(OpenTelemetry.Proto.Collector.Metrics.V1b\x06proto3"
11
-
12
- pool = ::Google::Protobuf::DescriptorPool.generated_pool
13
- pool.add_serialized_file(descriptor_data)
14
-
15
- module Opentelemetry
16
- module Proto
17
- module Collector
18
- module Metrics
19
- module V1
20
- ExportMetricsServiceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest").msgclass
21
- ExportMetricsServiceResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse").msgclass
22
- ExportMetricsPartialSuccess = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess").msgclass
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: opentelemetry/proto/common/v1/common.proto
4
-
5
- require 'google/protobuf'
6
-
7
-
8
- descriptor_data = "\n*opentelemetry/proto/common/v1/common.proto\x12\x1dopentelemetry.proto.common.v1\"\xad\x02\n\x08\x41nyValue\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x13\n\tint_value\x18\x03 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x04 \x01(\x01H\x00\x12@\n\x0b\x61rray_value\x18\x05 \x01(\x0b\x32).opentelemetry.proto.common.v1.ArrayValueH\x00\x12\x43\n\x0ckvlist_value\x18\x06 \x01(\x0b\x32+.opentelemetry.proto.common.v1.KeyValueListH\x00\x12\x15\n\x0b\x62ytes_value\x18\x07 \x01(\x0cH\x00\x12\x1f\n\x15string_value_strindex\x18\x08 \x01(\x05H\x00\x42\x07\n\x05value\"E\n\nArrayValue\x12\x37\n\x06values\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.AnyValue\"G\n\x0cKeyValueList\x12\x37\n\x06values\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\"e\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.opentelemetry.proto.common.v1.AnyValue\x12\x14\n\x0ckey_strindex\x18\x03 \x01(\x05\"\x94\x01\n\x14InstrumentationScope\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12;\n\nattributes\x18\x03 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x04 \x01(\r\"X\n\tEntityRef\x12\x12\n\nschema_url\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0f\n\x07id_keys\x18\x03 \x03(\t\x12\x18\n\x10\x64\x65scription_keys\x18\x04 \x03(\tB{\n io.opentelemetry.proto.common.v1B\x0b\x43ommonProtoP\x01Z(go.opentelemetry.io/proto/otlp/common/v1\xaa\x02\x1dOpenTelemetry.Proto.Common.V1b\x06proto3"
9
-
10
- pool = ::Google::Protobuf::DescriptorPool.generated_pool
11
- pool.add_serialized_file(descriptor_data)
12
-
13
- module Opentelemetry
14
- module Proto
15
- module Common
16
- module V1
17
- AnyValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.common.v1.AnyValue").msgclass
18
- ArrayValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.common.v1.ArrayValue").msgclass
19
- KeyValueList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.common.v1.KeyValueList").msgclass
20
- KeyValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.common.v1.KeyValue").msgclass
21
- InstrumentationScope = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.common.v1.InstrumentationScope").msgclass
22
- EntityRef = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.common.v1.EntityRef").msgclass
23
- end
24
- end
25
- end
26
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: opentelemetry/proto/metrics/v1/metrics.proto
4
-
5
- require 'google/protobuf'
6
-
7
- require 'opentelemetry/proto/common/v1/common_pb'
8
- require 'opentelemetry/proto/resource/v1/resource_pb'
9
-
10
-
11
- descriptor_data = "\n,opentelemetry/proto/metrics/v1/metrics.proto\x12\x1eopentelemetry.proto.metrics.v1\x1a*opentelemetry/proto/common/v1/common.proto\x1a.opentelemetry/proto/resource/v1/resource.proto\"X\n\x0bMetricsData\x12I\n\x10resource_metrics\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.ResourceMetrics\"\xaf\x01\n\x0fResourceMetrics\x12;\n\x08resource\x18\x01 \x01(\x0b\x32).opentelemetry.proto.resource.v1.Resource\x12\x43\n\rscope_metrics\x18\x02 \x03(\x0b\x32,.opentelemetry.proto.metrics.v1.ScopeMetrics\x12\x12\n\nschema_url\x18\x03 \x01(\tJ\x06\x08\xe8\x07\x10\xe9\x07\"\x9f\x01\n\x0cScopeMetrics\x12\x42\n\x05scope\x18\x01 \x01(\x0b\x32\x33.opentelemetry.proto.common.v1.InstrumentationScope\x12\x37\n\x07metrics\x18\x02 \x03(\x0b\x32&.opentelemetry.proto.metrics.v1.Metric\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\xcd\x03\n\x06Metric\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0c\n\x04unit\x18\x03 \x01(\t\x12\x36\n\x05gauge\x18\x05 \x01(\x0b\x32%.opentelemetry.proto.metrics.v1.GaugeH\x00\x12\x32\n\x03sum\x18\x07 \x01(\x0b\x32#.opentelemetry.proto.metrics.v1.SumH\x00\x12>\n\thistogram\x18\t \x01(\x0b\x32).opentelemetry.proto.metrics.v1.HistogramH\x00\x12U\n\x15\x65xponential_histogram\x18\n \x01(\x0b\x32\x34.opentelemetry.proto.metrics.v1.ExponentialHistogramH\x00\x12:\n\x07summary\x18\x0b \x01(\x0b\x32\'.opentelemetry.proto.metrics.v1.SummaryH\x00\x12\x39\n\x08metadata\x18\x0c \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValueB\x06\n\x04\x64\x61taJ\x04\x08\x04\x10\x05J\x04\x08\x06\x10\x07J\x04\x08\x08\x10\t\"M\n\x05Gauge\x12\x44\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.NumberDataPoint\"\xba\x01\n\x03Sum\x12\x44\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.NumberDataPoint\x12W\n\x17\x61ggregation_temporality\x18\x02 \x01(\x0e\x32\x36.opentelemetry.proto.metrics.v1.AggregationTemporality\x12\x14\n\x0cis_monotonic\x18\x03 \x01(\x08\"\xad\x01\n\tHistogram\x12G\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32\x32.opentelemetry.proto.metrics.v1.HistogramDataPoint\x12W\n\x17\x61ggregation_temporality\x18\x02 \x01(\x0e\x32\x36.opentelemetry.proto.metrics.v1.AggregationTemporality\"\xc3\x01\n\x14\x45xponentialHistogram\x12R\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32=.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint\x12W\n\x17\x61ggregation_temporality\x18\x02 \x01(\x0e\x32\x36.opentelemetry.proto.metrics.v1.AggregationTemporality\"P\n\x07Summary\x12\x45\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32\x30.opentelemetry.proto.metrics.v1.SummaryDataPoint\"\x86\x02\n\x0fNumberDataPoint\x12;\n\nattributes\x18\x07 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\x13\n\tas_double\x18\x04 \x01(\x01H\x00\x12\x10\n\x06\x61s_int\x18\x06 \x01(\x10H\x00\x12;\n\texemplars\x18\x05 \x03(\x0b\x32(.opentelemetry.proto.metrics.v1.Exemplar\x12\r\n\x05\x66lags\x18\x08 \x01(\rB\x07\n\x05valueJ\x04\x08\x01\x10\x02\"\xe6\x02\n\x12HistogramDataPoint\x12;\n\nattributes\x18\t \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\r\n\x05\x63ount\x18\x04 \x01(\x06\x12\x10\n\x03sum\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\rbucket_counts\x18\x06 \x03(\x06\x12\x17\n\x0f\x65xplicit_bounds\x18\x07 \x03(\x01\x12;\n\texemplars\x18\x08 \x03(\x0b\x32(.opentelemetry.proto.metrics.v1.Exemplar\x12\r\n\x05\x66lags\x18\n \x01(\r\x12\x10\n\x03min\x18\x0b \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03max\x18\x0c \x01(\x01H\x02\x88\x01\x01\x42\x06\n\x04_sumB\x06\n\x04_minB\x06\n\x04_maxJ\x04\x08\x01\x10\x02\"\xda\x04\n\x1d\x45xponentialHistogramDataPoint\x12;\n\nattributes\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\r\n\x05\x63ount\x18\x04 \x01(\x06\x12\x10\n\x03sum\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\r\n\x05scale\x18\x06 \x01(\x11\x12\x12\n\nzero_count\x18\x07 \x01(\x06\x12W\n\x08positive\x18\x08 \x01(\x0b\x32\x45.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets\x12W\n\x08negative\x18\t \x01(\x0b\x32\x45.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets\x12\r\n\x05\x66lags\x18\n \x01(\r\x12;\n\texemplars\x18\x0b \x03(\x0b\x32(.opentelemetry.proto.metrics.v1.Exemplar\x12\x10\n\x03min\x18\x0c \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03max\x18\r \x01(\x01H\x02\x88\x01\x01\x12\x16\n\x0ezero_threshold\x18\x0e \x01(\x01\x1a\x30\n\x07\x42uckets\x12\x0e\n\x06offset\x18\x01 \x01(\x11\x12\x15\n\rbucket_counts\x18\x02 \x03(\x04\x42\x06\n\x04_sumB\x06\n\x04_minB\x06\n\x04_max\"\xc5\x02\n\x10SummaryDataPoint\x12;\n\nattributes\x18\x07 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\r\n\x05\x63ount\x18\x04 \x01(\x06\x12\x0b\n\x03sum\x18\x05 \x01(\x01\x12Y\n\x0fquantile_values\x18\x06 \x03(\x0b\x32@.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile\x12\r\n\x05\x66lags\x18\x08 \x01(\r\x1a\x32\n\x0fValueAtQuantile\x12\x10\n\x08quantile\x18\x01 \x01(\x01\x12\r\n\x05value\x18\x02 \x01(\x01J\x04\x08\x01\x10\x02\"\xc1\x01\n\x08\x45xemplar\x12\x44\n\x13\x66iltered_attributes\x18\x07 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x16\n\x0etime_unix_nano\x18\x02 \x01(\x06\x12\x13\n\tas_double\x18\x03 \x01(\x01H\x00\x12\x10\n\x06\x61s_int\x18\x06 \x01(\x10H\x00\x12\x0f\n\x07span_id\x18\x04 \x01(\x0c\x12\x10\n\x08trace_id\x18\x05 \x01(\x0c\x42\x07\n\x05valueJ\x04\x08\x01\x10\x02*\x8c\x01\n\x16\x41ggregationTemporality\x12\'\n#AGGREGATION_TEMPORALITY_UNSPECIFIED\x10\x00\x12!\n\x1d\x41GGREGATION_TEMPORALITY_DELTA\x10\x01\x12&\n\"AGGREGATION_TEMPORALITY_CUMULATIVE\x10\x02*^\n\x0e\x44\x61taPointFlags\x12\x1f\n\x1b\x44\x41TA_POINT_FLAGS_DO_NOT_USE\x10\x00\x12+\n\'DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK\x10\x01\x42\x7f\n!io.opentelemetry.proto.metrics.v1B\x0cMetricsProtoP\x01Z)go.opentelemetry.io/proto/otlp/metrics/v1\xaa\x02\x1eOpenTelemetry.Proto.Metrics.V1b\x06proto3"
12
-
13
- pool = ::Google::Protobuf::DescriptorPool.generated_pool
14
- pool.add_serialized_file(descriptor_data)
15
-
16
- module Opentelemetry
17
- module Proto
18
- module Metrics
19
- module V1
20
- MetricsData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.MetricsData").msgclass
21
- ResourceMetrics = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.ResourceMetrics").msgclass
22
- ScopeMetrics = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.ScopeMetrics").msgclass
23
- Metric = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.Metric").msgclass
24
- Gauge = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.Gauge").msgclass
25
- Sum = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.Sum").msgclass
26
- Histogram = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.Histogram").msgclass
27
- ExponentialHistogram = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.ExponentialHistogram").msgclass
28
- Summary = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.Summary").msgclass
29
- NumberDataPoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.NumberDataPoint").msgclass
30
- HistogramDataPoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.HistogramDataPoint").msgclass
31
- ExponentialHistogramDataPoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint").msgclass
32
- ExponentialHistogramDataPoint::Buckets = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets").msgclass
33
- SummaryDataPoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.SummaryDataPoint").msgclass
34
- SummaryDataPoint::ValueAtQuantile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile").msgclass
35
- Exemplar = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.Exemplar").msgclass
36
- AggregationTemporality = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.AggregationTemporality").enummodule
37
- DataPointFlags = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.metrics.v1.DataPointFlags").enummodule
38
- end
39
- end
40
- end
41
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: opentelemetry/proto/resource/v1/resource.proto
4
-
5
- require 'google/protobuf'
6
-
7
- require 'opentelemetry/proto/common/v1/common_pb'
8
-
9
-
10
- descriptor_data = "\n.opentelemetry/proto/resource/v1/resource.proto\x12\x1fopentelemetry.proto.resource.v1\x1a*opentelemetry/proto/common/v1/common.proto\"\xa8\x01\n\x08Resource\x12;\n\nattributes\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x02 \x01(\r\x12=\n\x0b\x65ntity_refs\x18\x03 \x03(\x0b\x32(.opentelemetry.proto.common.v1.EntityRefB\x83\x01\n\"io.opentelemetry.proto.resource.v1B\rResourceProtoP\x01Z*go.opentelemetry.io/proto/otlp/resource/v1\xaa\x02\x1fOpenTelemetry.Proto.Resource.V1b\x06proto3"
11
-
12
- pool = ::Google::Protobuf::DescriptorPool.generated_pool
13
- pool.add_serialized_file(descriptor_data)
14
-
15
- module Opentelemetry
16
- module Proto
17
- module Resource
18
- module V1
19
- Resource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.resource.v1.Resource").msgclass
20
- end
21
- end
22
- end
23
- end