opentelemetry-exporter-otlp 0.26.0 → 0.26.2
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 +11 -0
- data/README.md +51 -2
- data/lib/opentelemetry/exporter/otlp/exporter.rb +27 -13
- data/lib/opentelemetry/exporter/otlp/version.rb +1 -1
- metadata +20 -10
- data/lib/opentelemetry/proto/collector/logs/v1/logs_service_services_pb.rb +0 -50
- data/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_services_pb.rb +0 -50
- data/lib/opentelemetry/proto/collector/trace/v1/trace_service_services_pb.rb +0 -50
- data/lib/opentelemetry/proto/trace/v1/trace_config_pb.rb +0 -49
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f511b15fd3e7e4d1452f58f852d9e29c97bff2743b520c080b187c657801b1bc
|
4
|
+
data.tar.gz: 52b9151d21904c685e026a813323415ef6b2be589e208b3a2307ad22fe5bead0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d7c6101418e338123fa98b097028e819a94297a45d5c693ddea11226f9e984026f5951ad74076453636fcb6aee478b57721287d5c6807f8caa112a66f2786ed
|
7
|
+
data.tar.gz: 17a6022b2146e6b94cbae099cf47b3e86bb825c1a49a6e77548febdef93ddded862fa1685a9601c22235cb2996493a1f68db49e8b1399684482ab2bb3cd06cfd
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
# Release History: opentelemetry-exporter-otlp
|
2
2
|
|
3
|
+
### v0.26.2 / 2024-01-23
|
4
|
+
|
5
|
+
* FIXED: Align endpoint environment variable handling with spec
|
6
|
+
* FIXED: Require csv for ruby-3.4 compatibility
|
7
|
+
* FIXED: Add context to metrics reporting of buffer-full events
|
8
|
+
|
9
|
+
### v0.26.1 / 2023-07-29
|
10
|
+
|
11
|
+
* FIXED: Regenerate v0.20.0 protos
|
12
|
+
* ADDED: Allow google-protobuf ~> 3.14
|
13
|
+
|
3
14
|
### v0.26.0 / 2023-06-13
|
4
15
|
|
5
16
|
* ADDED: Use OTLP 0.20.0 protos
|
data/README.md
CHANGED
@@ -16,15 +16,17 @@ Generally, *libraries* that produce telemetry data should avoid depending direct
|
|
16
16
|
|
17
17
|
### Supported protocol version
|
18
18
|
|
19
|
-
This gem supports the [v0.
|
19
|
+
This gem supports the [v0.20.0 release][otel-proto-release] of OTLP.
|
20
20
|
|
21
21
|
## How do I get started?
|
22
22
|
|
23
23
|
Install the gem using:
|
24
24
|
|
25
|
-
```
|
25
|
+
```console
|
26
|
+
|
26
27
|
gem install opentelemetry-sdk
|
27
28
|
gem install opentelemetry-exporter-otlp
|
29
|
+
|
28
30
|
```
|
29
31
|
|
30
32
|
Or, if you use [bundler][bundler-home], include `opentelemetry-sdk` in your `Gemfile`.
|
@@ -93,6 +95,48 @@ The OpenTelemetry Ruby gems are maintained by the OpenTelemetry-Ruby special int
|
|
93
95
|
|
94
96
|
The `opentelemetry-exporter-otlp` gem is distributed under the Apache 2.0 license. See [LICENSE][license-github] for more information.
|
95
97
|
|
98
|
+
## Working with Proto Definitions
|
99
|
+
|
100
|
+
The OTel community maintains a [repository with protobuf definitions][otel-proto-github] that language and collector implementors use to generate code.
|
101
|
+
|
102
|
+
Maintainers are expected to keep up to date with the latest version of protos. This guide will provide you with step-by-step instructions on updating the OTLP Exporter gem with the latest definitions.
|
103
|
+
|
104
|
+
### System Requirements
|
105
|
+
|
106
|
+
- [`git` 2.41+][git-install]
|
107
|
+
- [`protoc` 22.5][protoc-install]
|
108
|
+
- [Ruby 3+][ruby-downloads]
|
109
|
+
|
110
|
+
> :warning: `protoc 23.x` *changes the Ruby code generator to emit a serialized proto instead of a DSL.* <https://protobuf.dev/news/2023-04-20/>. Please ensure you use `protoc` version `22.x` in order to ensure we remain compatible with versions of protobuf prior to `google-protobuf` gem `3.18`.
|
111
|
+
|
112
|
+
### Upgrade Proto Definitions
|
113
|
+
|
114
|
+
**Update the target otel-proto version in the `Rakefile` that matches a release `tag` in the proto repo, e.g.**
|
115
|
+
|
116
|
+
```ruby
|
117
|
+
# Rakefile
|
118
|
+
|
119
|
+
# https://github.com/open-telemetry/opentelemetry-proto/tree/v0.20.0
|
120
|
+
PROTO_VERSION = `v0.20.0`
|
121
|
+
```
|
122
|
+
|
123
|
+
**Generate the Ruby source files using `rake`:**
|
124
|
+
|
125
|
+
```console
|
126
|
+
|
127
|
+
$> bundle exec rake protobuf:generate
|
128
|
+
|
129
|
+
```
|
130
|
+
|
131
|
+
**Run tests and fix any errors:**
|
132
|
+
|
133
|
+
```console
|
134
|
+
|
135
|
+
$> bundle exec rake test
|
136
|
+
|
137
|
+
```
|
138
|
+
|
139
|
+
**Commit the chnages and open a PR!**
|
96
140
|
|
97
141
|
[opentelemetry-collector-home]: https://opentelemetry.io/docs/collector/about/
|
98
142
|
[opentelemetry-home]: https://opentelemetry.io
|
@@ -103,3 +147,8 @@ The `opentelemetry-exporter-otlp` gem is distributed under the Apache 2.0 licens
|
|
103
147
|
[ruby-sig]: https://github.com/open-telemetry/community#ruby-sig
|
104
148
|
[community-meetings]: https://github.com/open-telemetry/community#community-meetings
|
105
149
|
[discussions-url]: https://github.com/open-telemetry/opentelemetry-ruby/discussions
|
150
|
+
[git-install]: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
|
151
|
+
[protoc-install]: https://github.com/protocolbuffers/protobuf/releases/tag/v22.5
|
152
|
+
[ruby-downloads]: https://www.ruby-lang.org/en/downloads/
|
153
|
+
[otel-proto-github]: https://github.com/open-telemetry/opentelemetry-proto
|
154
|
+
[otel-proto-release]: https://github.com/open-telemetry/opentelemetry-proto/releases/tag/v0.20.0
|
@@ -7,7 +7,6 @@
|
|
7
7
|
require 'opentelemetry/common'
|
8
8
|
require 'opentelemetry/sdk'
|
9
9
|
require 'net/http'
|
10
|
-
require 'csv'
|
11
10
|
require 'zlib'
|
12
11
|
|
13
12
|
require 'google/rpc/status_pb'
|
@@ -47,21 +46,16 @@ module OpenTelemetry
|
|
47
46
|
end
|
48
47
|
end
|
49
48
|
|
50
|
-
def initialize(endpoint:
|
49
|
+
def initialize(endpoint: nil,
|
51
50
|
certificate_file: OpenTelemetry::Common::Utilities.config_opt('OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE', 'OTEL_EXPORTER_OTLP_CERTIFICATE'),
|
52
51
|
ssl_verify_mode: Exporter.ssl_verify_mode,
|
53
52
|
headers: OpenTelemetry::Common::Utilities.config_opt('OTEL_EXPORTER_OTLP_TRACES_HEADERS', 'OTEL_EXPORTER_OTLP_HEADERS', default: {}),
|
54
53
|
compression: OpenTelemetry::Common::Utilities.config_opt('OTEL_EXPORTER_OTLP_TRACES_COMPRESSION', 'OTEL_EXPORTER_OTLP_COMPRESSION', default: 'gzip'),
|
55
54
|
timeout: OpenTelemetry::Common::Utilities.config_opt('OTEL_EXPORTER_OTLP_TRACES_TIMEOUT', 'OTEL_EXPORTER_OTLP_TIMEOUT', default: 10),
|
56
55
|
metrics_reporter: nil)
|
57
|
-
|
58
|
-
raise ArgumentError, "unsupported compression key #{compression}" unless compression.nil? || %w[gzip none].include?(compression)
|
56
|
+
@uri = prepare_endpoint(endpoint)
|
59
57
|
|
60
|
-
|
61
|
-
URI.join(endpoint, 'v1/traces')
|
62
|
-
else
|
63
|
-
URI(endpoint)
|
64
|
-
end
|
58
|
+
raise ArgumentError, "unsupported compression key #{compression}" unless compression.nil? || %w[gzip none].include?(compression)
|
65
59
|
|
66
60
|
@http = http_connection(@uri, ssl_verify_mode, certificate_file)
|
67
61
|
|
@@ -172,8 +166,7 @@ module OpenTelemetry
|
|
172
166
|
redo if backoff?(retry_count: retry_count += 1, reason: response.code)
|
173
167
|
FAILURE
|
174
168
|
when Net::HTTPNotFound
|
175
|
-
|
176
|
-
@metrics_reporter.add_to_counter('otel.otlp_exporter.failure', labels: { 'reason' => response.code })
|
169
|
+
log_request_failure(response.code)
|
177
170
|
FAILURE
|
178
171
|
when Net::HTTPBadRequest, Net::HTTPClientError, Net::HTTPServerError
|
179
172
|
log_status(response.body)
|
@@ -185,6 +178,7 @@ module OpenTelemetry
|
|
185
178
|
redo if backoff?(retry_after: 0, retry_count: retry_count += 1, reason: response.code)
|
186
179
|
else
|
187
180
|
@http.finish
|
181
|
+
log_request_failure(response.code)
|
188
182
|
FAILURE
|
189
183
|
end
|
190
184
|
rescue Net::OpenTimeout, Net::ReadTimeout
|
@@ -227,11 +221,16 @@ module OpenTelemetry
|
|
227
221
|
klass_or_nil = ::Google::Protobuf::DescriptorPool.generated_pool.lookup(detail.type_name).msgclass
|
228
222
|
detail.unpack(klass_or_nil) if klass_or_nil
|
229
223
|
end.compact
|
230
|
-
OpenTelemetry.handle_error(message: "OTLP exporter received rpc.Status{message=#{status.message}, details=#{details}}")
|
224
|
+
OpenTelemetry.handle_error(message: "OTLP exporter received rpc.Status{message=#{status.message}, details=#{details}} for uri=#{@uri}")
|
231
225
|
rescue StandardError => e
|
232
226
|
OpenTelemetry.handle_error(exception: e, message: 'unexpected error decoding rpc.Status in OTLP::Exporter#log_status')
|
233
227
|
end
|
234
228
|
|
229
|
+
def log_request_failure(response_code)
|
230
|
+
OpenTelemetry.handle_error(message: "OTLP exporter received http.code=#{response_code} for uri='#{@uri}' in OTLP::Exporter#send_bytes")
|
231
|
+
@metrics_reporter.add_to_counter('otel.otlp_exporter.failure', labels: { 'reason' => response_code })
|
232
|
+
end
|
233
|
+
|
235
234
|
def measure_request_duration
|
236
235
|
start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
237
236
|
begin
|
@@ -246,7 +245,7 @@ module OpenTelemetry
|
|
246
245
|
end
|
247
246
|
|
248
247
|
def backoff?(retry_count:, reason:, retry_after: nil) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
249
|
-
|
248
|
+
log_request_failure(reason)
|
250
249
|
return false if retry_count > RETRY_COUNT
|
251
250
|
|
252
251
|
sleep_interval = nil
|
@@ -386,6 +385,21 @@ module OpenTelemetry
|
|
386
385
|
result
|
387
386
|
end
|
388
387
|
|
388
|
+
def prepare_endpoint(endpoint)
|
389
|
+
endpoint ||= ENV['OTEL_EXPORTER_OTLP_TRACES_ENDPOINT']
|
390
|
+
if endpoint.nil?
|
391
|
+
endpoint = ENV['OTEL_EXPORTER_OTLP_ENDPOINT'] || 'http://localhost:4318'
|
392
|
+
endpoint += '/' unless endpoint.end_with?('/')
|
393
|
+
URI.join(endpoint, 'v1/traces')
|
394
|
+
elsif endpoint.strip.empty?
|
395
|
+
raise ArgumentError, "invalid url for OTLP::Exporter #{endpoint}"
|
396
|
+
else
|
397
|
+
URI(endpoint)
|
398
|
+
end
|
399
|
+
rescue URI::InvalidURIError
|
400
|
+
raise ArgumentError, "invalid url for OTLP::Exporter #{endpoint}"
|
401
|
+
end
|
402
|
+
|
389
403
|
def prepare_headers(config_headers)
|
390
404
|
headers = case config_headers
|
391
405
|
when String then parse_headers(config_headers)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentelemetry-exporter-otlp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.26.
|
4
|
+
version: 0.26.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenTelemetry Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: googleapis-common-protos-types
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '3.
|
33
|
+
version: '3.14'
|
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: '3.
|
40
|
+
version: '3.14'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: opentelemetry-api
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: appraisal
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.2.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.2.0
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: bundler
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -264,25 +278,21 @@ files:
|
|
264
278
|
- lib/opentelemetry/exporter/otlp/exporter.rb
|
265
279
|
- lib/opentelemetry/exporter/otlp/version.rb
|
266
280
|
- lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb
|
267
|
-
- lib/opentelemetry/proto/collector/logs/v1/logs_service_services_pb.rb
|
268
281
|
- lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb
|
269
|
-
- lib/opentelemetry/proto/collector/metrics/v1/metrics_service_services_pb.rb
|
270
282
|
- lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb
|
271
|
-
- lib/opentelemetry/proto/collector/trace/v1/trace_service_services_pb.rb
|
272
283
|
- lib/opentelemetry/proto/common/v1/common_pb.rb
|
273
284
|
- lib/opentelemetry/proto/logs/v1/logs_pb.rb
|
274
285
|
- lib/opentelemetry/proto/metrics/v1/metrics_pb.rb
|
275
286
|
- lib/opentelemetry/proto/resource/v1/resource_pb.rb
|
276
|
-
- lib/opentelemetry/proto/trace/v1/trace_config_pb.rb
|
277
287
|
- lib/opentelemetry/proto/trace/v1/trace_pb.rb
|
278
288
|
homepage: https://github.com/open-telemetry/opentelemetry-ruby
|
279
289
|
licenses:
|
280
290
|
- Apache-2.0
|
281
291
|
metadata:
|
282
|
-
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v0.26.
|
292
|
+
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v0.26.2/file.CHANGELOG.html
|
283
293
|
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/exporter/otlp
|
284
294
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
285
|
-
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v0.26.
|
295
|
+
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v0.26.2
|
286
296
|
post_install_message:
|
287
297
|
rdoc_options: []
|
288
298
|
require_paths:
|
@@ -1,50 +0,0 @@
|
|
1
|
-
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
-
# Source: opentelemetry/proto/collector/logs/v1/logs_service.proto for package 'opentelemetry.proto.collector.logs.v1'
|
3
|
-
# Original file comments:
|
4
|
-
# Copyright 2020, OpenTelemetry Authors
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
require 'grpc'
|
20
|
-
require 'opentelemetry/proto/collector/logs/v1/logs_service_pb'
|
21
|
-
|
22
|
-
module Opentelemetry
|
23
|
-
module Proto
|
24
|
-
module Collector
|
25
|
-
module Logs
|
26
|
-
module V1
|
27
|
-
module LogsService
|
28
|
-
# Service that can be used to push logs between one Application instrumented with
|
29
|
-
# OpenTelemetry and an collector, or between an collector and a central collector (in this
|
30
|
-
# case logs are sent/received to/from multiple Applications).
|
31
|
-
class Service
|
32
|
-
|
33
|
-
include ::GRPC::GenericService
|
34
|
-
|
35
|
-
self.marshal_class_method = :encode
|
36
|
-
self.unmarshal_class_method = :decode
|
37
|
-
self.service_name = 'opentelemetry.proto.collector.logs.v1.LogsService'
|
38
|
-
|
39
|
-
# For performance reasons, it is recommended to keep this RPC
|
40
|
-
# alive for the entire life of the application.
|
41
|
-
rpc :Export, ::Opentelemetry::Proto::Collector::Logs::V1::ExportLogsServiceRequest, ::Opentelemetry::Proto::Collector::Logs::V1::ExportLogsServiceResponse
|
42
|
-
end
|
43
|
-
|
44
|
-
Stub = Service.rpc_stub_class
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
-
# Source: opentelemetry/proto/collector/metrics/v1/metrics_service.proto for package 'opentelemetry.proto.collector.metrics.v1'
|
3
|
-
# Original file comments:
|
4
|
-
# Copyright 2019, OpenTelemetry Authors
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
require 'grpc'
|
20
|
-
require 'opentelemetry/proto/collector/metrics/v1/metrics_service_pb'
|
21
|
-
|
22
|
-
module Opentelemetry
|
23
|
-
module Proto
|
24
|
-
module Collector
|
25
|
-
module Metrics
|
26
|
-
module V1
|
27
|
-
module MetricsService
|
28
|
-
# Service that can be used to push metrics between one Application
|
29
|
-
# instrumented with OpenTelemetry and a collector, or between a collector and a
|
30
|
-
# central collector.
|
31
|
-
class Service
|
32
|
-
|
33
|
-
include ::GRPC::GenericService
|
34
|
-
|
35
|
-
self.marshal_class_method = :encode
|
36
|
-
self.unmarshal_class_method = :decode
|
37
|
-
self.service_name = 'opentelemetry.proto.collector.metrics.v1.MetricsService'
|
38
|
-
|
39
|
-
# For performance reasons, it is recommended to keep this RPC
|
40
|
-
# alive for the entire life of the application.
|
41
|
-
rpc :Export, ::Opentelemetry::Proto::Collector::Metrics::V1::ExportMetricsServiceRequest, ::Opentelemetry::Proto::Collector::Metrics::V1::ExportMetricsServiceResponse
|
42
|
-
end
|
43
|
-
|
44
|
-
Stub = Service.rpc_stub_class
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
-
# Source: opentelemetry/proto/collector/trace/v1/trace_service.proto for package 'opentelemetry.proto.collector.trace.v1'
|
3
|
-
# Original file comments:
|
4
|
-
# Copyright 2019, OpenTelemetry Authors
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
require 'grpc'
|
20
|
-
require 'opentelemetry/proto/collector/trace/v1/trace_service_pb'
|
21
|
-
|
22
|
-
module Opentelemetry
|
23
|
-
module Proto
|
24
|
-
module Collector
|
25
|
-
module Trace
|
26
|
-
module V1
|
27
|
-
module TraceService
|
28
|
-
# Service that can be used to push spans between one Application instrumented with
|
29
|
-
# OpenTelemetry and a collector, or between a collector and a central collector (in this
|
30
|
-
# case spans are sent/received to/from multiple Applications).
|
31
|
-
class Service
|
32
|
-
|
33
|
-
include ::GRPC::GenericService
|
34
|
-
|
35
|
-
self.marshal_class_method = :encode
|
36
|
-
self.unmarshal_class_method = :decode
|
37
|
-
self.service_name = 'opentelemetry.proto.collector.trace.v1.TraceService'
|
38
|
-
|
39
|
-
# For performance reasons, it is recommended to keep this RPC
|
40
|
-
# alive for the entire life of the application.
|
41
|
-
rpc :Export, ::Opentelemetry::Proto::Collector::Trace::V1::ExportTraceServiceRequest, ::Opentelemetry::Proto::Collector::Trace::V1::ExportTraceServiceResponse
|
42
|
-
end
|
43
|
-
|
44
|
-
Stub = Service.rpc_stub_class
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
-
# source: opentelemetry/proto/trace/v1/trace_config.proto
|
3
|
-
|
4
|
-
require 'google/protobuf'
|
5
|
-
|
6
|
-
Google::Protobuf::DescriptorPool.generated_pool.build do
|
7
|
-
add_file("opentelemetry/proto/trace/v1/trace_config.proto", :syntax => :proto3) do
|
8
|
-
add_message "opentelemetry.proto.trace.v1.TraceConfig" do
|
9
|
-
optional :max_number_of_attributes, :int64, 4
|
10
|
-
optional :max_number_of_timed_events, :int64, 5
|
11
|
-
optional :max_number_of_attributes_per_timed_event, :int64, 6
|
12
|
-
optional :max_number_of_links, :int64, 7
|
13
|
-
optional :max_number_of_attributes_per_link, :int64, 8
|
14
|
-
oneof :sampler do
|
15
|
-
optional :constant_sampler, :message, 1, "opentelemetry.proto.trace.v1.ConstantSampler"
|
16
|
-
optional :trace_id_ratio_based, :message, 2, "opentelemetry.proto.trace.v1.TraceIdRatioBased"
|
17
|
-
optional :rate_limiting_sampler, :message, 3, "opentelemetry.proto.trace.v1.RateLimitingSampler"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
add_message "opentelemetry.proto.trace.v1.ConstantSampler" do
|
21
|
-
optional :decision, :enum, 1, "opentelemetry.proto.trace.v1.ConstantSampler.ConstantDecision"
|
22
|
-
end
|
23
|
-
add_enum "opentelemetry.proto.trace.v1.ConstantSampler.ConstantDecision" do
|
24
|
-
value :ALWAYS_OFF, 0
|
25
|
-
value :ALWAYS_ON, 1
|
26
|
-
value :ALWAYS_PARENT, 2
|
27
|
-
end
|
28
|
-
add_message "opentelemetry.proto.trace.v1.TraceIdRatioBased" do
|
29
|
-
optional :samplingRatio, :double, 1
|
30
|
-
end
|
31
|
-
add_message "opentelemetry.proto.trace.v1.RateLimitingSampler" do
|
32
|
-
optional :qps, :int64, 1
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
module Opentelemetry
|
38
|
-
module Proto
|
39
|
-
module Trace
|
40
|
-
module V1
|
41
|
-
TraceConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.trace.v1.TraceConfig").msgclass
|
42
|
-
ConstantSampler = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.trace.v1.ConstantSampler").msgclass
|
43
|
-
ConstantSampler::ConstantDecision = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.trace.v1.ConstantSampler.ConstantDecision").enummodule
|
44
|
-
TraceIdRatioBased = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.trace.v1.TraceIdRatioBased").msgclass
|
45
|
-
RateLimitingSampler = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("opentelemetry.proto.trace.v1.RateLimitingSampler").msgclass
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|