opentelemetry-exporter-zipkin 0.20.0 → 0.22.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce9a72f8ea654dd6f51d8066e93c0cf54833ef7ae7abd5f75420a14be4ff1827
|
4
|
+
data.tar.gz: 95abf49f858e331a719a5f1bd815c67637b8ebacc2ffdd35f432a223fcd42cc3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0feb421e2bde5ae20949be3955a155b643efcc438a6355f637cc4afc9cfd9b954a4ca498560f4ef85ddbc5b13df6889b31faa805a8f362e3133ce352bea4026a
|
7
|
+
data.tar.gz: 1ce234a51afb7d73826bf9fb27bd2e6cbc64296ef12bba7d2decabd188e8e1fd79ac9d932ac21fd0323310099286e9143c9f21f3f8e8678f495bb7ff4097bb74
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Release History: opentelemetry-exporter-zipkin
|
2
2
|
|
3
|
+
### v0.22.0 / 2023-05-30
|
4
|
+
|
5
|
+
* ADDED: Custom Metrics Reporter Support for Zipkin
|
6
|
+
|
7
|
+
### v0.21.0 / 2022-09-14
|
8
|
+
|
9
|
+
* ADDED: Add dropped events/attributes/links counts to zipkin + jaeger exporters
|
10
|
+
* ADDED: Support InstrumentationScope, and update OTLP proto to 0.18.0
|
11
|
+
|
3
12
|
### v0.20.0 / 2022-06-09
|
4
13
|
|
5
14
|
* (No significant changes)
|
@@ -29,7 +29,8 @@ module OpenTelemetry
|
|
29
29
|
|
30
30
|
def initialize(endpoint: OpenTelemetry::Common::Utilities.config_opt('OTEL_EXPORTER_ZIPKIN_ENDPOINT', default: 'http://localhost:9411/api/v2/spans'),
|
31
31
|
headers: OpenTelemetry::Common::Utilities.config_opt('OTEL_EXPORTER_ZIPKIN_TRACES_HEADERS', 'OTEL_EXPORTER_ZIPKIN_HEADERS'),
|
32
|
-
timeout: OpenTelemetry::Common::Utilities.config_opt('OTEL_EXPORTER_ZIPKIN_TRACES_TIMEOUT', 'OTEL_EXPORTER_ZIPKIN_TIMEOUT', default: 10)
|
32
|
+
timeout: OpenTelemetry::Common::Utilities.config_opt('OTEL_EXPORTER_ZIPKIN_TRACES_TIMEOUT', 'OTEL_EXPORTER_ZIPKIN_TIMEOUT', default: 10),
|
33
|
+
metrics_reporter: nil)
|
33
34
|
raise ArgumentError, "invalid url for Zipkin::Exporter #{endpoint}" unless OpenTelemetry::Common::Utilities.valid_url?(endpoint)
|
34
35
|
raise ArgumentError, 'headers must be comma-separated k=v pairs or a Hash' unless valid_headers?(headers)
|
35
36
|
|
@@ -50,6 +51,7 @@ module OpenTelemetry
|
|
50
51
|
when Hash then headers
|
51
52
|
end
|
52
53
|
|
54
|
+
@metrics_reporter = metrics_reporter || OpenTelemetry::SDK::Trace::Export::MetricsReporter
|
53
55
|
@shutdown = false
|
54
56
|
end
|
55
57
|
|
@@ -66,6 +68,7 @@ module OpenTelemetry
|
|
66
68
|
zipkin_spans = encode_spans(span_data)
|
67
69
|
send_spans(zipkin_spans, timeout: timeout)
|
68
70
|
rescue StandardError => e
|
71
|
+
@metrics_reporter.add_to_counter('otel.zipkin_exporter.failure', labels: { 'reason' => e.class.to_s })
|
69
72
|
OpenTelemetry.handle_error(exception: e, message: 'unexpected error in Zipkin::Exporter#export')
|
70
73
|
FAILURE
|
71
74
|
end
|
@@ -112,7 +115,7 @@ module OpenTelemetry
|
|
112
115
|
false
|
113
116
|
end
|
114
117
|
|
115
|
-
def send_spans(zipkin_spans, timeout: nil) # rubocop:disable Metrics/
|
118
|
+
def send_spans(zipkin_spans, timeout: nil) # rubocop:disable Metrics/MethodLength
|
116
119
|
retry_count = 0
|
117
120
|
timeout ||= @timeout
|
118
121
|
start_time = OpenTelemetry::Common::Utilities.timeout_timestamp
|
@@ -130,7 +133,7 @@ module OpenTelemetry
|
|
130
133
|
@http.write_timeout = remaining_timeout if WRITE_TIMEOUT_SUPPORTED
|
131
134
|
@http.start unless @http.started?
|
132
135
|
|
133
|
-
response = @http.request(request)
|
136
|
+
response = measure_request_duration { @http.request(request) }
|
134
137
|
response.body # Read and discard body
|
135
138
|
# in opentelemetry-js 200-399 is succcess, in opentelemetry-collector zipkin exporter,200-299 is a success
|
136
139
|
# zipkin api docs list 202 as default success code
|
@@ -171,7 +174,7 @@ module OpenTelemetry
|
|
171
174
|
# TODO: figure out destination and reinitialize @http and @path
|
172
175
|
end
|
173
176
|
|
174
|
-
def backoff?(
|
177
|
+
def backoff?(retry_count:, reason:, retry_after: nil)
|
175
178
|
return false if retry_count > RETRY_COUNT
|
176
179
|
|
177
180
|
# TODO: metric exporter
|
@@ -197,6 +200,19 @@ module OpenTelemetry
|
|
197
200
|
sleep(sleep_interval)
|
198
201
|
true
|
199
202
|
end
|
203
|
+
|
204
|
+
def measure_request_duration
|
205
|
+
start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
206
|
+
begin
|
207
|
+
response = yield
|
208
|
+
ensure
|
209
|
+
stop = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
210
|
+
duration_ms = 1000.0 * (stop - start)
|
211
|
+
@metrics_reporter.record_value('otel.zipkin_exporter.request_duration',
|
212
|
+
value: duration_ms,
|
213
|
+
labels: { 'status' => response&.code || 'unknown' })
|
214
|
+
end
|
215
|
+
end
|
200
216
|
end
|
201
217
|
end
|
202
218
|
end
|
@@ -46,7 +46,7 @@ module OpenTelemetry
|
|
46
46
|
service_name = value if key == SERVICE_NAME_ATTRIBUTE_KEY
|
47
47
|
end
|
48
48
|
|
49
|
-
|
49
|
+
add_scope_tags(span_d, tags)
|
50
50
|
add_status_tags(span_d, tags)
|
51
51
|
tags = aggregate_span_tags(span_d, tags)
|
52
52
|
|
@@ -70,9 +70,12 @@ module OpenTelemetry
|
|
70
70
|
zipkin_span
|
71
71
|
end
|
72
72
|
|
73
|
-
def
|
74
|
-
tags['otel.
|
75
|
-
tags['otel.library.
|
73
|
+
def add_scope_tags(span_data, tags)
|
74
|
+
tags['otel.scope.name'] = span_data.instrumentation_scope.name
|
75
|
+
tags['otel.library.name'] = span_data.instrumentation_scope.name
|
76
|
+
|
77
|
+
tags['otel.scope.version'] = span_data.instrumentation_scope.version
|
78
|
+
tags['otel.library.version'] = span_data.instrumentation_scope.version
|
76
79
|
end
|
77
80
|
|
78
81
|
def add_status_tags(span_data, tags)
|
@@ -89,6 +92,13 @@ module OpenTelemetry
|
|
89
92
|
end
|
90
93
|
|
91
94
|
def add_conditional_tags(zipkin_span, span_data, tags, service_name)
|
95
|
+
dropped_attributes_count = span_data.total_recorded_attributes - span_data.attributes&.size.to_i
|
96
|
+
dropped_events_count = span_data.total_recorded_events - span_data.events&.size.to_i
|
97
|
+
dropped_links_count = span_data.total_recorded_links - span_data.links&.size.to_i
|
98
|
+
tags['otel.dropped_attributes_count'] = dropped_attributes_count.to_s if dropped_attributes_count.positive?
|
99
|
+
tags['otel.dropped_events_count'] = dropped_events_count.to_s if dropped_events_count.positive?
|
100
|
+
tags['otel.dropped_links_count'] = dropped_links_count.to_s if dropped_links_count.positive?
|
101
|
+
|
92
102
|
zipkin_span['tags'] = tags unless tags.empty?
|
93
103
|
zipkin_span['kind'] = KIND_MAP[span_data.kind] unless span_data.kind.nil?
|
94
104
|
zipkin_span['parentId'] = span_data.hex_parent_span_id unless span_data.parent_span_id == OpenTelemetry::Trace::INVALID_SPAN_ID
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentelemetry-exporter-zipkin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.22.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:
|
11
|
+
date: 2023-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-api
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: opentelemetry-common
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1.
|
47
|
+
version: '1.2'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '1.
|
54
|
+
version: '1.2'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: opentelemetry-semantic_conventions
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +142,14 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
145
|
+
version: 1.51.0
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
152
|
+
version: 1.51.0
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: simplecov
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -226,10 +226,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
|
|
226
226
|
licenses:
|
227
227
|
- Apache-2.0
|
228
228
|
metadata:
|
229
|
-
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-zipkin/v0.
|
229
|
+
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-zipkin/v0.22.0/file.CHANGELOG.html
|
230
230
|
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/exporter/zipkin
|
231
231
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
232
|
-
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-zipkin/v0.
|
232
|
+
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-zipkin/v0.22.0
|
233
233
|
post_install_message:
|
234
234
|
rdoc_options: []
|
235
235
|
require_paths:
|