opentelemetry-exporter-zipkin 0.21.0 → 0.23.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: d572b09f0066b69a3921976bae352633b33bb14ec8fd6b6967a20dd95734e7f8
4
- data.tar.gz: c94a8173c854214cacdf1c2e890d9f68069fe39633763d9abc0d6ac533629156
3
+ metadata.gz: eb192745d9de9b710c3bb323b3a7d9fd1d3dff3efeb35a6ec70a0a07c4465fc2
4
+ data.tar.gz: b69bcd05aaed8a6f778b0d9ad836feeee5b44bbe47cc139177b75176224bcb1b
5
5
  SHA512:
6
- metadata.gz: 6c1c41d3b801f75b9f2d64bf4f53a31ffa369d86b22b1d8a75be84fa917eaa2be6b189ff58f9570fc87fdf49b0666844dea1befc33013bd2721aebca37273890
7
- data.tar.gz: 33245dc0a3f436071c00f545d1c0974de109fea5d949264d274e3f3812f62065495fd6c6832c186ffdacc35241f84cc079ba727b1fc2cbf578eb864c1950d4a8
6
+ metadata.gz: 0d52d8c89884b0e7683d578cbaf32526d3cde2aa1024a2dada78a7631278ef9cb9409fe1c1c1ee2853d2f0b7be0691896ecd2749baa8737b1881c0c6f3533897
7
+ data.tar.gz: d77bf93999d54282da404cf172e61095e98c48dbb6824fdeee1f59a8a1513e305078f2e05405a150734718b8a85828c05ad5f24d3298937f64e0d21d23544cf4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Release History: opentelemetry-exporter-zipkin
2
2
 
3
+ ### v0.23.0 / 2023-06-08
4
+
5
+ * BREAKING CHANGE: Remove support for EoL Ruby 2.7
6
+
7
+ * ADDED: Remove support for EoL Ruby 2.7
8
+
9
+ ### v0.22.0 / 2023-05-30
10
+
11
+ * ADDED: Custom Metrics Reporter Support for Zipkin
12
+
3
13
  ### v0.21.0 / 2022-09-14
4
14
 
5
15
  * ADDED: Add dropped events/attributes/links counts to zipkin + jaeger exporters
@@ -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/CyclomaticComplexity, Metrics/MethodLength
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?(retry_after: nil, retry_count:, reason:)
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
@@ -91,7 +91,7 @@ module OpenTelemetry
91
91
  end
92
92
  end
93
93
 
94
- def add_conditional_tags(zipkin_span, span_data, tags, service_name) # rubocop:disable Metrics/CyclomaticComplexity
94
+ def add_conditional_tags(zipkin_span, span_data, tags, service_name)
95
95
  dropped_attributes_count = span_data.total_recorded_attributes - span_data.attributes&.size.to_i
96
96
  dropped_events_count = span_data.total_recorded_events - span_data.events&.size.to_i
97
97
  dropped_links_count = span_data.total_recorded_links - span_data.links&.size.to_i
@@ -8,7 +8,7 @@ module OpenTelemetry
8
8
  module Exporter
9
9
  module Zipkin
10
10
  ## Current OpenTelemetry Zipkin exporter version
11
- VERSION = '0.21.0'
11
+ VERSION = '0.23.0'
12
12
  end
13
13
  end
14
14
  end
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.21.0
4
+ version: 0.23.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: 2022-09-14 00:00:00.000000000 Z
11
+ date: 2023-06-13 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.19.6
33
+ version: '0.20'
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.19.6
40
+ version: '0.20'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: opentelemetry-sdk
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 0.73.0
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: 0.73.0
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.21.0/file.CHANGELOG.html
229
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-zipkin/v0.23.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.21.0
232
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-zipkin/v0.23.0
233
233
  post_install_message:
234
234
  rdoc_options: []
235
235
  require_paths:
@@ -238,14 +238,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
238
238
  requirements:
239
239
  - - ">="
240
240
  - !ruby/object:Gem::Version
241
- version: 2.6.0
241
+ version: '3.0'
242
242
  required_rubygems_version: !ruby/object:Gem::Requirement
243
243
  requirements:
244
244
  - - ">="
245
245
  - !ruby/object:Gem::Version
246
246
  version: '0'
247
247
  requirements: []
248
- rubygems_version: 3.1.6
248
+ rubygems_version: 3.2.33
249
249
  signing_key:
250
250
  specification_version: 4
251
251
  summary: Zipkin trace exporter for the OpenTelemetry framework