opentelemetry-exporter-otlp 0.26.1 → 0.26.3

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: fb071dc1c0134311f132447de543f3ca59c2f0180f1fce9e5a944649626b0afc
4
- data.tar.gz: 67bbd4fcfdb43ff12e0634de1c2fb1894de132cf5ebab5d52f78762a007f266c
3
+ metadata.gz: 7bc7e8bbf3754ac0b3e7666565be7a3b18c5a0efe17324785a50585d091bbf4a
4
+ data.tar.gz: d69c6affa0eaa01c894f86bf943e71053ea0c18b127e4492b219c397ca1376e5
5
5
  SHA512:
6
- metadata.gz: 64cbdfa923fd9c836a4d315d44798df650b74b31936024300562e3d65a688166e5ce3c8e518db6047f908f1411bb9ebb00ce3fa9246c1cae0fcf24b7ccaea968
7
- data.tar.gz: 1a47dabce4a7ae7f623ee533fa8e99287efcc12e873153f6fe1966039cde385df7d38ba90472694843aaccdf6bcabea13cf76c36d4f1c6dd6e57a72d1494ec63
6
+ metadata.gz: f882b1c1e1ae24c283ce2e83c97f80b055a1ae95d0d35b27f7dc3bd271053b712232b0b939d44b4cd35fd9cd2edbaff50ac54a2e698f834773d7e3c5e448519a
7
+ data.tar.gz: 65c48f81bf8a89d24ded2d1078d819894f26cbabf6ce0df6a48d8f64fc62a1e8246aad91495733838f1c6e38339eddb6d1651fc39520f7832db000eb5d99c1a5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Release History: opentelemetry-exporter-otlp
2
2
 
3
+ ### v0.26.3 / 2024-02-01
4
+
5
+ * FIXED: do not log request failure in backoff?
6
+
7
+ ### v0.26.2 / 2024-01-23
8
+
9
+ * FIXED: Align endpoint environment variable handling with spec
10
+ * FIXED: Require csv for ruby-3.4 compatibility
11
+ * FIXED: Add context to metrics reporting of buffer-full events
12
+
3
13
  ### v0.26.1 / 2023-07-29
4
14
 
5
15
  * FIXED: Regenerate v0.20.0 protos
@@ -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: OpenTelemetry::Common::Utilities.config_opt('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT', 'OTEL_EXPORTER_OTLP_ENDPOINT', default: 'http://localhost:4318/v1/traces'),
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
- raise ArgumentError, "invalid url for OTLP::Exporter #{endpoint}" unless OpenTelemetry::Common::Utilities.valid_url?(endpoint)
58
- raise ArgumentError, "unsupported compression key #{compression}" unless compression.nil? || %w[gzip none].include?(compression)
56
+ @uri = prepare_endpoint(endpoint)
59
57
 
60
- @uri = if endpoint == ENV['OTEL_EXPORTER_OTLP_ENDPOINT']
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
- OpenTelemetry.handle_error(message: "OTLP exporter received http.code=404 for uri: '#{@path}'")
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
@@ -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)
@@ -8,7 +8,7 @@ module OpenTelemetry
8
8
  module Exporter
9
9
  module OTLP
10
10
  ## Current OpenTelemetry OTLP exporter version
11
- VERSION = '0.26.1'
11
+ VERSION = '0.26.3'
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-otlp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.26.1
4
+ version: 0.26.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-01 00:00:00.000000000 Z
11
+ date: 2024-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: googleapis-common-protos-types
@@ -289,10 +289,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
289
289
  licenses:
290
290
  - Apache-2.0
291
291
  metadata:
292
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v0.26.1/file.CHANGELOG.html
292
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v0.26.3/file.CHANGELOG.html
293
293
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/exporter/otlp
294
294
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
295
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v0.26.1
295
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v0.26.3
296
296
  post_install_message:
297
297
  rdoc_options: []
298
298
  require_paths: