opentelemetry-exporter-otlp 0.8.0 → 0.9.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 +7 -0
- data/lib/opentelemetry/exporter/otlp/exporter.rb +26 -11
- data/lib/opentelemetry/exporter/otlp/version.rb +1 -1
- metadata +20 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7422364466e3ef80afdaf0e64bce127f2b6c282b926521d44c5a92a41ab7af8e
|
4
|
+
data.tar.gz: 4ade3413f85673da608dc9e0ecc5a083edc2991751121d91f19d3b0025d37020
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bed0bf05f7c85a78ea08d0c7a7920396fdf8619b50bde257908eb0bbb9139bb6883ac858153032e10c19408319a200ff2127a0589ed22f4055f97cb1ff7f425e
|
7
|
+
data.tar.gz: 0ecfe8df94c4838736fd6a84a5a9672f470973b6c3c5941403dd1ce3975ed6ec3eac6b3f78609aed9995a3f6a301c133be7880f7e2b6223ac364fd51f3d1e73a
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Release History: opentelemetry-exporter-otlp
|
2
2
|
|
3
|
+
### v0.9.0 / 2020-11-27
|
4
|
+
|
5
|
+
* BREAKING CHANGE: Add timeout for force_flush and shutdown
|
6
|
+
|
7
|
+
* ADDED: Add timeout for force_flush and shutdown
|
8
|
+
* FIXED: Remove unused kwarg from otlp exporter retry
|
9
|
+
|
3
10
|
### v0.8.0 / 2020-10-27
|
4
11
|
|
5
12
|
* BREAKING CHANGE: Move context/span methods to Trace module
|
@@ -4,6 +4,7 @@
|
|
4
4
|
#
|
5
5
|
# SPDX-License-Identifier: Apache-2.0
|
6
6
|
|
7
|
+
require 'opentelemetry/common'
|
7
8
|
require 'opentelemetry/sdk'
|
8
9
|
require 'net/http'
|
9
10
|
require 'csv'
|
@@ -21,14 +22,14 @@ module OpenTelemetry
|
|
21
22
|
class Exporter # rubocop:disable Metrics/ClassLength
|
22
23
|
SUCCESS = OpenTelemetry::SDK::Trace::Export::SUCCESS
|
23
24
|
FAILURE = OpenTelemetry::SDK::Trace::Export::FAILURE
|
24
|
-
|
25
|
+
TIMEOUT = OpenTelemetry::SDK::Trace::Export::TIMEOUT
|
26
|
+
private_constant(:SUCCESS, :FAILURE, :TIMEOUT)
|
25
27
|
|
26
28
|
# Default timeouts in seconds.
|
27
29
|
KEEP_ALIVE_TIMEOUT = 30
|
28
|
-
OPEN_TIMEOUT = 5
|
29
|
-
READ_TIMEOUT = 5
|
30
30
|
RETRY_COUNT = 5
|
31
|
-
|
31
|
+
WRITE_TIMEOUT_SUPPORTED = Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.6')
|
32
|
+
private_constant(:KEEP_ALIVE_TIMEOUT, :RETRY_COUNT, :WRITE_TIMEOUT_SUPPORTED)
|
32
33
|
|
33
34
|
def initialize(endpoint: config_opt('OTEL_EXPORTER_OTLP_SPAN_ENDPOINT', 'OTEL_EXPORTER_OTLP_ENDPOINT', default: 'localhost:55681/v1/trace'), # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
34
35
|
insecure: config_opt('OTEL_EXPORTER_OTLP_SPAN_INSECURE', 'OTEL_EXPORTER_OTLP_INSECURE', default: false),
|
@@ -45,8 +46,6 @@ module OpenTelemetry
|
|
45
46
|
@http.use_ssl = insecure.to_s.downcase == 'false'
|
46
47
|
@http.ca_file = certificate_file unless certificate_file.nil?
|
47
48
|
@http.keep_alive_timeout = KEEP_ALIVE_TIMEOUT
|
48
|
-
@http.open_timeout = OPEN_TIMEOUT
|
49
|
-
@http.read_timeout = READ_TIMEOUT
|
50
49
|
|
51
50
|
@path = uri.path
|
52
51
|
@headers = case headers
|
@@ -64,17 +63,20 @@ module OpenTelemetry
|
|
64
63
|
# @param [Enumerable<OpenTelemetry::SDK::Trace::SpanData>] span_data the
|
65
64
|
# list of recorded {OpenTelemetry::SDK::Trace::SpanData} structs to be
|
66
65
|
# exported.
|
66
|
+
# @param [optional Numeric] timeout An optional timeout in seconds.
|
67
67
|
# @return [Integer] the result of the export.
|
68
|
-
def export(span_data)
|
68
|
+
def export(span_data, timeout: nil)
|
69
69
|
return FAILURE if @shutdown
|
70
70
|
|
71
|
-
send_bytes(encode(span_data))
|
71
|
+
send_bytes(encode(span_data), timeout: timeout)
|
72
72
|
end
|
73
73
|
|
74
74
|
# Called when {OpenTelemetry::SDK::Trace::Tracer#shutdown} is called, if
|
75
75
|
# this exporter is registered to a {OpenTelemetry::SDK::Trace::Tracer}
|
76
76
|
# object.
|
77
|
-
|
77
|
+
#
|
78
|
+
# @param [optional Numeric] timeout An optional timeout in seconds.
|
79
|
+
def shutdown(timeout: nil)
|
78
80
|
@shutdown = true
|
79
81
|
@http.finish if @http.started?
|
80
82
|
end
|
@@ -108,8 +110,10 @@ module OpenTelemetry
|
|
108
110
|
true
|
109
111
|
end
|
110
112
|
|
111
|
-
def send_bytes(bytes) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
113
|
+
def send_bytes(bytes, timeout:) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
112
114
|
retry_count = 0
|
115
|
+
timeout ||= @timeout
|
116
|
+
start_time = Time.now
|
113
117
|
untraced do # rubocop:disable Metrics/BlockLength
|
114
118
|
request = Net::HTTP::Post.new(@path)
|
115
119
|
request.body = if @compression == 'gzip'
|
@@ -121,6 +125,12 @@ module OpenTelemetry
|
|
121
125
|
request.add_field('Content-Type', 'application/x-protobuf')
|
122
126
|
@headers&.each { |key, value| request.add_field(key, value) }
|
123
127
|
|
128
|
+
remaining_timeout = OpenTelemetry::Common::Utilities.maybe_timeout(timeout, start_time)
|
129
|
+
return TIMEOUT if remaining_timeout.zero?
|
130
|
+
|
131
|
+
@http.open_timeout = remaining_timeout
|
132
|
+
@http.read_timeout = remaining_timeout
|
133
|
+
@http.write_timeout = remaining_timeout if WRITE_TIMEOUT_SUPPORTED
|
124
134
|
@http.start unless @http.started?
|
125
135
|
response = @http.request(request)
|
126
136
|
|
@@ -152,6 +162,11 @@ module OpenTelemetry
|
|
152
162
|
retry if backoff?(retry_count: retry_count += 1)
|
153
163
|
return FAILURE
|
154
164
|
end
|
165
|
+
ensure
|
166
|
+
# Reset timeouts to defaults for the next call.
|
167
|
+
@http.open_timeout = @timeout
|
168
|
+
@http.read_timeout = @timeout
|
169
|
+
@http.write_timeout = @timeout if WRITE_TIMEOUT_SUPPORTED
|
155
170
|
end
|
156
171
|
|
157
172
|
def handle_redirect(location)
|
@@ -162,7 +177,7 @@ module OpenTelemetry
|
|
162
177
|
OpenTelemetry::Trace.with_span(OpenTelemetry::Trace::Span.new) { yield }
|
163
178
|
end
|
164
179
|
|
165
|
-
def backoff?(retry_after: nil, retry_count
|
180
|
+
def backoff?(retry_after: nil, retry_count:)
|
166
181
|
return false if retry_count > RETRY_COUNT
|
167
182
|
|
168
183
|
sleep_interval = nil
|
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.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenTelemetry Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-protobuf
|
@@ -36,14 +36,28 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 0.
|
39
|
+
version: 0.9.0
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 0.
|
46
|
+
version: 0.9.0
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: opentelemetry-common
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.9.0
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 0.9.0
|
47
61
|
- !ruby/object:Gem::Dependency
|
48
62
|
name: bundler
|
49
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,10 +207,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
|
|
193
207
|
licenses:
|
194
208
|
- Apache-2.0
|
195
209
|
metadata:
|
196
|
-
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v0.
|
210
|
+
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v0.9.0/file.CHANGELOG.html
|
197
211
|
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/master/exporter/otlp
|
198
212
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
199
|
-
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v0.
|
213
|
+
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v0.9.0
|
200
214
|
post_install_message:
|
201
215
|
rdoc_options: []
|
202
216
|
require_paths:
|