diff --git a/.github/actions/test_gem/action.yml b/.github/actions/test_gem/action.yml
index fee7aa56cd..aa6486e360 100644
--- a/.github/actions/test_gem/action.yml
+++ b/.github/actions/test_gem/action.yml
@@ -58,21 +58,21 @@ runs:
# ...but not for appraisals, sadly.
- name: Install Ruby ${{ inputs.ruby }} with dependencies
if: "${{ steps.setup.outputs.appraisals == 'false' }}"
- uses: ruby/setup-ruby@v1.165.1
+ uses: ruby/setup-ruby@v1.179.0
with:
ruby-version: "${{ inputs.ruby }}"
working-directory: "${{ steps.setup.outputs.gem_dir }}"
- bundler: "latest"
+ bundler: "2.5.10"
bundler-cache: true
cache-version: "v1-${{ steps.setup.outputs.cache_key }}"
# If we're using appraisals, do it all manually.
- name: Install Ruby ${{ inputs.ruby }} without dependencies
if: "${{ steps.setup.outputs.appraisals == 'true' }}"
- uses: ruby/setup-ruby@v1.165.1
+ uses: ruby/setup-ruby@v1.179.0
with:
ruby-version: "${{ inputs.ruby }}"
- bundler: "latest"
+ bundler: "2.5.10"
working-directory: "${{ steps.setup.outputs.gem_dir }}"
- name: Install dependencies and generate appraisals
if: "${{ steps.setup.outputs.appraisals == 'true' }}"
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
deleted file mode 100644
index 2b877f8909..0000000000
--- a/.github/workflows/codeql.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-name: "CodeQL"
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
- workflow_dispatch:
-
-jobs:
- analyze:
- name: Analyze
- runs-on: ubuntu-latest
-
- env:
- CODEQL_ENABLE_EXPERIMENTAL_FEATURES: true
-
- strategy:
- fail-fast: false
- matrix:
- language: [ 'ruby' ]
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
-
- # Initializes the CodeQL tools for scanning.
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v1
- with:
- tools: latest
-
- - name: Autobuild
- uses: github/codeql-action/autobuild@v2
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
diff --git a/.github/workflows/release-hook-on-closed.yml b/.github/workflows/release-hook-on-closed.yml
index ea3f3fbd12..8e15e2124b 100644
--- a/.github/workflows/release-hook-on-closed.yml
+++ b/.github/workflows/release-hook-on-closed.yml
@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install Ruby ${{ env.ruby_version }}
- uses: ruby/setup-ruby@v1.165.1
+ uses: ruby/setup-ruby@v1.179.0
with:
ruby-version: ${{ env.ruby_version }}
- name: Checkout repo
diff --git a/.github/workflows/release-hook-on-push.yml b/.github/workflows/release-hook-on-push.yml
index 3b85109a7d..00cf10864c 100644
--- a/.github/workflows/release-hook-on-push.yml
+++ b/.github/workflows/release-hook-on-push.yml
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install Ruby ${{ env.ruby_version }}
- uses: ruby/setup-ruby@v1.165.1
+ uses: ruby/setup-ruby@v1.179.0
with:
ruby-version: ${{ env.ruby_version }}
- name: Checkout repo
diff --git a/.github/workflows/release-perform.yml b/.github/workflows/release-perform.yml
index e634cd3f9c..49aa216584 100644
--- a/.github/workflows/release-perform.yml
+++ b/.github/workflows/release-perform.yml
@@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install Ruby ${{ env.ruby_version }}
- uses: ruby/setup-ruby@v1.165.1
+ uses: ruby/setup-ruby@v1.179.0
with:
ruby-version: ${{ env.ruby_version }}
- name: Checkout repo
diff --git a/.github/workflows/release-request.yml b/.github/workflows/release-request.yml
index d67826602c..cd10d07fba 100644
--- a/.github/workflows/release-request.yml
+++ b/.github/workflows/release-request.yml
@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install Ruby ${{ env.ruby_version }}
- uses: ruby/setup-ruby@v1.165.1
+ uses: ruby/setup-ruby@v1.179.0
with:
ruby-version: ${{ env.ruby_version }}
- name: Checkout repo
diff --git a/.github/workflows/release-retry.yml b/.github/workflows/release-retry.yml
index f859a865d8..dc2f940691 100644
--- a/.github/workflows/release-retry.yml
+++ b/.github/workflows/release-retry.yml
@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install Ruby ${{ env.ruby_version }}
- uses: ruby/setup-ruby@v1.165.1
+ uses: ruby/setup-ruby@v1.179.0
with:
ruby-version: ${{ env.ruby_version }}
- name: Checkout repo
diff --git a/LICENSE b/LICENSE
index 1ef7dad2c5..261eeb9e9f 100644
--- a/LICENSE
+++ b/LICENSE
@@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
- Copyright The OpenTelemetry Authors
+ Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/README.md b/README.md
index 0675ba7748..93c256a470 100644
--- a/README.md
+++ b/README.md
@@ -54,6 +54,11 @@ The [opentelemetry-ruby-contrib repository][contrib-repo] contains instrumentati
OpenTelemetry Ruby follows the [versioning and stability document][otel-versioning] in the OpenTelemetry specification. Notably, we adhere to the outlined version numbering exception, which states that experimental signals may have a `0.x` version number.
+## Compatibility
+
+OpenTelemetry Ruby ensures compatibility with the current supported versions of
+the [Ruby language](https://www.ruby-lang.org/en/downloads/branches/).
+
## Useful links
- For more information on OpenTelemetry, visit:
diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md
index 8eab444104..43b6e5fb6d 100644
--- a/api/CHANGELOG.md
+++ b/api/CHANGELOG.md
@@ -1,5 +1,9 @@
# Release History: opentelemetry-api
+### v1.3.0 / 2024-07-24
+
+* ADDED: Add add_link to span api/sdk
+
### v1.2.5 / 2024-02-20
* FIXED: Replace Context stack on clear
diff --git a/api/lib/opentelemetry/version.rb b/api/lib/opentelemetry/version.rb
index db6ee4be29..009daf16ba 100644
--- a/api/lib/opentelemetry/version.rb
+++ b/api/lib/opentelemetry/version.rb
@@ -6,5 +6,5 @@
module OpenTelemetry
## Current OpenTelemetry version
- VERSION = '1.2.5'
+ VERSION = '1.3.0'
end
diff --git a/common/.rubocop.yml b/common/.rubocop.yml
index 94649e0bec..db98871e84 100644
--- a/common/.rubocop.yml
+++ b/common/.rubocop.yml
@@ -6,6 +6,8 @@ Bundler/OrderedGems:
Style/FrozenStringLiteralComment:
Exclude:
- gemfiles/**/*
+Style/ExplicitBlockArgument:
+ Enabled: false
Style/StringLiterals:
Exclude:
- gemfiles/**/*
diff --git a/common/CHANGELOG.md b/common/CHANGELOG.md
index 62000dd675..3fb88daaff 100644
--- a/common/CHANGELOG.md
+++ b/common/CHANGELOG.md
@@ -1,5 +1,9 @@
# Release History: opentelemetry-common
+### v0.21.0 / 2024-05-08
+
+* ADDED: Untraced method updated to support both block and non block structured calls
+
### v0.20.1 / 2024-02-06
* FIXED: Patch the issue for frozen string on ruby < 3.0 with string interpolation
diff --git a/common/lib/opentelemetry/common/utilities.rb b/common/lib/opentelemetry/common/utilities.rb
index 8667a6fd94..d13e251ff8 100644
--- a/common/lib/opentelemetry/common/utilities.rb
+++ b/common/lib/opentelemetry/common/utilities.rb
@@ -4,6 +4,8 @@
#
# SPDX-License-Identifier: Apache-2.0
+require 'uri'
+
module OpenTelemetry
module Common
# Utilities contains common helpers.
@@ -86,10 +88,17 @@ def truncate_attribute_value(value, limit)
end
end
- # Disables tracing within the provided block.
- def untraced
- Context.with_value(UNTRACED_KEY, true) do |ctx, _|
- yield ctx
+ # Disables tracing within the provided block
+ # If no block is provided instead returns an
+ # untraced ctx.
+ #
+ # @param [optional Context] context Accepts an explicit context, defaults to current
+ def untraced(context = Context.current)
+ context = context.set_value(UNTRACED_KEY, true)
+ if block_given?
+ Context.with_current(context) { |ctx| yield ctx }
+ else
+ context
end
end
diff --git a/common/lib/opentelemetry/common/version.rb b/common/lib/opentelemetry/common/version.rb
index 3943ebf24e..b290888e9e 100644
--- a/common/lib/opentelemetry/common/version.rb
+++ b/common/lib/opentelemetry/common/version.rb
@@ -6,6 +6,6 @@
module OpenTelemetry
module Common
- VERSION = '0.20.1'
+ VERSION = '0.21.0'
end
end
diff --git a/common/test/opentelemetry/common/utilities_test.rb b/common/test/opentelemetry/common/utilities_test.rb
index f931242fd8..555b87121d 100644
--- a/common/test/opentelemetry/common/utilities_test.rb
+++ b/common/test/opentelemetry/common/utilities_test.rb
@@ -26,6 +26,13 @@ def shutdown(timeout: nil); end
common_utils.untraced {}
assert_equal(false, common_utils.untraced?)
end
+
+ it 'supports non block format' do
+ token = OpenTelemetry::Context.attach(common_utils.untraced)
+ assert_equal(true, common_utils.untraced?)
+ OpenTelemetry::Context.detach(token)
+ assert_equal(false, common_utils.untraced?)
+ end
end
describe '#utf8_encode' do
diff --git a/exporter/otlp-common/lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb b/exporter/otlp-common/lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb
index 645dfd21f8..6cc98b0e7b 100644
--- a/exporter/otlp-common/lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb
+++ b/exporter/otlp-common/lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/collector/logs/v1/logs_service.proto
@@ -5,15 +6,11 @@
require 'opentelemetry/proto/logs/v1/logs_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/collector/logs/v1/logs_service.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest" do
- repeated :resource_logs, :message, 1, "opentelemetry.proto.logs.v1.ResourceLogs"
- end
- add_message "opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse" do
- end
- end
-end
+
+descriptor_data = "\n8opentelemetry/proto/collector/logs/v1/logs_service.proto\x12%opentelemetry.proto.collector.logs.v1\x1a&opentelemetry/proto/logs/v1/logs.proto\"\\\n\x18\x45xportLogsServiceRequest\x12@\n\rresource_logs\x18\x01 \x03(\x0b\x32).opentelemetry.proto.logs.v1.ResourceLogs\"\x1b\n\x19\x45xportLogsServiceResponse2\x9d\x01\n\x0bLogsService\x12\x8d\x01\n\x06\x45xport\x12?.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest\x1a@.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse\"\x00\x42p\n(io.opentelemetry.proto.collector.logs.v1B\x10LogsServiceProtoP\x01Z0go.opentelemetry.io/proto/otlp/collector/logs/v1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-common/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb b/exporter/otlp-common/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb
index 56e3bbea69..7e95f43cdb 100644
--- a/exporter/otlp-common/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb
+++ b/exporter/otlp-common/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/collector/metrics/v1/metrics_service.proto
@@ -5,15 +6,11 @@
require 'opentelemetry/proto/metrics/v1/metrics_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/collector/metrics/v1/metrics_service.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest" do
- repeated :resource_metrics, :message, 1, "opentelemetry.proto.metrics.v1.ResourceMetrics"
- end
- add_message "opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse" do
- end
- end
-end
+
+descriptor_data = "\n>opentelemetry/proto/collector/metrics/v1/metrics_service.proto\x12(opentelemetry.proto.collector.metrics.v1\x1a,opentelemetry/proto/metrics/v1/metrics.proto\"h\n\x1b\x45xportMetricsServiceRequest\x12I\n\x10resource_metrics\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.ResourceMetrics\"\x1e\n\x1c\x45xportMetricsServiceResponse2\xac\x01\n\x0eMetricsService\x12\x99\x01\n\x06\x45xport\x12\x45.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest\x1a\x46.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse\"\x00\x42y\n+io.opentelemetry.proto.collector.metrics.v1B\x13MetricsServiceProtoP\x01Z3go.opentelemetry.io/proto/otlp/collector/metrics/v1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-common/lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb b/exporter/otlp-common/lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb
index a71fbf168a..f6bc5efc5c 100644
--- a/exporter/otlp-common/lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb
+++ b/exporter/otlp-common/lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/collector/trace/v1/trace_service.proto
@@ -5,15 +6,11 @@
require 'opentelemetry/proto/trace/v1/trace_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/collector/trace/v1/trace_service.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest" do
- repeated :resource_spans, :message, 1, "opentelemetry.proto.trace.v1.ResourceSpans"
- end
- add_message "opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse" do
- end
- end
-end
+
+descriptor_data = "\n:opentelemetry/proto/collector/trace/v1/trace_service.proto\x12&opentelemetry.proto.collector.trace.v1\x1a(opentelemetry/proto/trace/v1/trace.proto\"`\n\x19\x45xportTraceServiceRequest\x12\x43\n\x0eresource_spans\x18\x01 \x03(\x0b\x32+.opentelemetry.proto.trace.v1.ResourceSpans\"\x1c\n\x1a\x45xportTraceServiceResponse2\xa2\x01\n\x0cTraceService\x12\x91\x01\n\x06\x45xport\x12\x41.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest\x1a\x42.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse\"\x00\x42s\n)io.opentelemetry.proto.collector.trace.v1B\x11TraceServiceProtoP\x01Z1go.opentelemetry.io/proto/otlp/collector/trace/v1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-common/lib/opentelemetry/proto/common/v1/common_pb.rb b/exporter/otlp-common/lib/opentelemetry/proto/common/v1/common_pb.rb
index 006d3047d0..c91fe92c51 100644
--- a/exporter/otlp-common/lib/opentelemetry/proto/common/v1/common_pb.rb
+++ b/exporter/otlp-common/lib/opentelemetry/proto/common/v1/common_pb.rb
@@ -1,41 +1,14 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/common/v1/common.proto
require 'google/protobuf'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/common/v1/common.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.common.v1.AnyValue" do
- oneof :value do
- optional :string_value, :string, 1
- optional :bool_value, :bool, 2
- optional :int_value, :int64, 3
- optional :double_value, :double, 4
- optional :array_value, :message, 5, "opentelemetry.proto.common.v1.ArrayValue"
- optional :kvlist_value, :message, 6, "opentelemetry.proto.common.v1.KeyValueList"
- optional :bytes_value, :bytes, 7
- end
- end
- add_message "opentelemetry.proto.common.v1.ArrayValue" do
- repeated :values, :message, 1, "opentelemetry.proto.common.v1.AnyValue"
- end
- add_message "opentelemetry.proto.common.v1.KeyValueList" do
- repeated :values, :message, 1, "opentelemetry.proto.common.v1.KeyValue"
- end
- add_message "opentelemetry.proto.common.v1.KeyValue" do
- optional :key, :string, 1
- optional :value, :message, 2, "opentelemetry.proto.common.v1.AnyValue"
- end
- add_message "opentelemetry.proto.common.v1.InstrumentationLibrary" do
- optional :name, :string, 1
- optional :version, :string, 2
- end
- add_message "opentelemetry.proto.common.v1.InstrumentationScope" do
- optional :name, :string, 1
- optional :version, :string, 2
- end
- end
-end
+
+descriptor_data = "\n*opentelemetry/proto/common/v1/common.proto\x12\x1dopentelemetry.proto.common.v1\"\x8c\x02\n\x08\x41nyValue\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x13\n\tint_value\x18\x03 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x04 \x01(\x01H\x00\x12@\n\x0b\x61rray_value\x18\x05 \x01(\x0b\x32).opentelemetry.proto.common.v1.ArrayValueH\x00\x12\x43\n\x0ckvlist_value\x18\x06 \x01(\x0b\x32+.opentelemetry.proto.common.v1.KeyValueListH\x00\x12\x15\n\x0b\x62ytes_value\x18\x07 \x01(\x0cH\x00\x42\x07\n\x05value\"E\n\nArrayValue\x12\x37\n\x06values\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.AnyValue\"G\n\x0cKeyValueList\x12\x37\n\x06values\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\"O\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.opentelemetry.proto.common.v1.AnyValue\";\n\x16InstrumentationLibrary\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t:\x02\x18\x01\"5\n\x14InstrumentationScope\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\tB[\n io.opentelemetry.proto.common.v1B\x0b\x43ommonProtoP\x01Z(go.opentelemetry.io/proto/otlp/common/v1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-common/lib/opentelemetry/proto/logs/v1/logs_pb.rb b/exporter/otlp-common/lib/opentelemetry/proto/logs/v1/logs_pb.rb
index d6ea3cd664..6fee743383 100644
--- a/exporter/otlp-common/lib/opentelemetry/proto/logs/v1/logs_pb.rb
+++ b/exporter/otlp-common/lib/opentelemetry/proto/logs/v1/logs_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/logs/v1/logs.proto
@@ -6,72 +7,11 @@
require 'opentelemetry/proto/common/v1/common_pb'
require 'opentelemetry/proto/resource/v1/resource_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/logs/v1/logs.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.logs.v1.LogsData" do
- repeated :resource_logs, :message, 1, "opentelemetry.proto.logs.v1.ResourceLogs"
- end
- add_message "opentelemetry.proto.logs.v1.ResourceLogs" do
- optional :resource, :message, 1, "opentelemetry.proto.resource.v1.Resource"
- repeated :scope_logs, :message, 2, "opentelemetry.proto.logs.v1.ScopeLogs"
- repeated :instrumentation_library_logs, :message, 1000, "opentelemetry.proto.logs.v1.InstrumentationLibraryLogs"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.logs.v1.ScopeLogs" do
- optional :scope, :message, 1, "opentelemetry.proto.common.v1.InstrumentationScope"
- repeated :log_records, :message, 2, "opentelemetry.proto.logs.v1.LogRecord"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.logs.v1.InstrumentationLibraryLogs" do
- optional :instrumentation_library, :message, 1, "opentelemetry.proto.common.v1.InstrumentationLibrary"
- repeated :log_records, :message, 2, "opentelemetry.proto.logs.v1.LogRecord"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.logs.v1.LogRecord" do
- optional :time_unix_nano, :fixed64, 1
- optional :observed_time_unix_nano, :fixed64, 11
- optional :severity_number, :enum, 2, "opentelemetry.proto.logs.v1.SeverityNumber"
- optional :severity_text, :string, 3
- optional :body, :message, 5, "opentelemetry.proto.common.v1.AnyValue"
- repeated :attributes, :message, 6, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 7
- optional :flags, :fixed32, 8
- optional :trace_id, :bytes, 9
- optional :span_id, :bytes, 10
- end
- add_enum "opentelemetry.proto.logs.v1.SeverityNumber" do
- value :SEVERITY_NUMBER_UNSPECIFIED, 0
- value :SEVERITY_NUMBER_TRACE, 1
- value :SEVERITY_NUMBER_TRACE2, 2
- value :SEVERITY_NUMBER_TRACE3, 3
- value :SEVERITY_NUMBER_TRACE4, 4
- value :SEVERITY_NUMBER_DEBUG, 5
- value :SEVERITY_NUMBER_DEBUG2, 6
- value :SEVERITY_NUMBER_DEBUG3, 7
- value :SEVERITY_NUMBER_DEBUG4, 8
- value :SEVERITY_NUMBER_INFO, 9
- value :SEVERITY_NUMBER_INFO2, 10
- value :SEVERITY_NUMBER_INFO3, 11
- value :SEVERITY_NUMBER_INFO4, 12
- value :SEVERITY_NUMBER_WARN, 13
- value :SEVERITY_NUMBER_WARN2, 14
- value :SEVERITY_NUMBER_WARN3, 15
- value :SEVERITY_NUMBER_WARN4, 16
- value :SEVERITY_NUMBER_ERROR, 17
- value :SEVERITY_NUMBER_ERROR2, 18
- value :SEVERITY_NUMBER_ERROR3, 19
- value :SEVERITY_NUMBER_ERROR4, 20
- value :SEVERITY_NUMBER_FATAL, 21
- value :SEVERITY_NUMBER_FATAL2, 22
- value :SEVERITY_NUMBER_FATAL3, 23
- value :SEVERITY_NUMBER_FATAL4, 24
- end
- add_enum "opentelemetry.proto.logs.v1.LogRecordFlags" do
- value :LOG_RECORD_FLAG_UNSPECIFIED, 0
- value :LOG_RECORD_FLAG_TRACE_FLAGS_MASK, 255
- end
- end
-end
+
+descriptor_data = "\n&opentelemetry/proto/logs/v1/logs.proto\x12\x1bopentelemetry.proto.logs.v1\x1a*opentelemetry/proto/common/v1/common.proto\x1a.opentelemetry/proto/resource/v1/resource.proto\"L\n\x08LogsData\x12@\n\rresource_logs\x18\x01 \x03(\x0b\x32).opentelemetry.proto.logs.v1.ResourceLogs\"\xff\x01\n\x0cResourceLogs\x12;\n\x08resource\x18\x01 \x01(\x0b\x32).opentelemetry.proto.resource.v1.Resource\x12:\n\nscope_logs\x18\x02 \x03(\x0b\x32&.opentelemetry.proto.logs.v1.ScopeLogs\x12\x62\n\x1cinstrumentation_library_logs\x18\xe8\x07 \x03(\x0b\x32\x37.opentelemetry.proto.logs.v1.InstrumentationLibraryLogsB\x02\x18\x01\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\xa0\x01\n\tScopeLogs\x12\x42\n\x05scope\x18\x01 \x01(\x0b\x32\x33.opentelemetry.proto.common.v1.InstrumentationScope\x12;\n\x0blog_records\x18\x02 \x03(\x0b\x32&.opentelemetry.proto.logs.v1.LogRecord\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\xc9\x01\n\x1aInstrumentationLibraryLogs\x12V\n\x17instrumentation_library\x18\x01 \x01(\x0b\x32\x35.opentelemetry.proto.common.v1.InstrumentationLibrary\x12;\n\x0blog_records\x18\x02 \x03(\x0b\x32&.opentelemetry.proto.logs.v1.LogRecord\x12\x12\n\nschema_url\x18\x03 \x01(\t:\x02\x18\x01\"\xef\x02\n\tLogRecord\x12\x16\n\x0etime_unix_nano\x18\x01 \x01(\x06\x12\x1f\n\x17observed_time_unix_nano\x18\x0b \x01(\x06\x12\x44\n\x0fseverity_number\x18\x02 \x01(\x0e\x32+.opentelemetry.proto.logs.v1.SeverityNumber\x12\x15\n\rseverity_text\x18\x03 \x01(\t\x12\x35\n\x04\x62ody\x18\x05 \x01(\x0b\x32\'.opentelemetry.proto.common.v1.AnyValue\x12;\n\nattributes\x18\x06 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x07 \x01(\r\x12\r\n\x05\x66lags\x18\x08 \x01(\x07\x12\x10\n\x08trace_id\x18\t \x01(\x0c\x12\x0f\n\x07span_id\x18\n \x01(\x0cJ\x04\x08\x04\x10\x05*\xc3\x05\n\x0eSeverityNumber\x12\x1f\n\x1bSEVERITY_NUMBER_UNSPECIFIED\x10\x00\x12\x19\n\x15SEVERITY_NUMBER_TRACE\x10\x01\x12\x1a\n\x16SEVERITY_NUMBER_TRACE2\x10\x02\x12\x1a\n\x16SEVERITY_NUMBER_TRACE3\x10\x03\x12\x1a\n\x16SEVERITY_NUMBER_TRACE4\x10\x04\x12\x19\n\x15SEVERITY_NUMBER_DEBUG\x10\x05\x12\x1a\n\x16SEVERITY_NUMBER_DEBUG2\x10\x06\x12\x1a\n\x16SEVERITY_NUMBER_DEBUG3\x10\x07\x12\x1a\n\x16SEVERITY_NUMBER_DEBUG4\x10\x08\x12\x18\n\x14SEVERITY_NUMBER_INFO\x10\t\x12\x19\n\x15SEVERITY_NUMBER_INFO2\x10\n\x12\x19\n\x15SEVERITY_NUMBER_INFO3\x10\x0b\x12\x19\n\x15SEVERITY_NUMBER_INFO4\x10\x0c\x12\x18\n\x14SEVERITY_NUMBER_WARN\x10\r\x12\x19\n\x15SEVERITY_NUMBER_WARN2\x10\x0e\x12\x19\n\x15SEVERITY_NUMBER_WARN3\x10\x0f\x12\x19\n\x15SEVERITY_NUMBER_WARN4\x10\x10\x12\x19\n\x15SEVERITY_NUMBER_ERROR\x10\x11\x12\x1a\n\x16SEVERITY_NUMBER_ERROR2\x10\x12\x12\x1a\n\x16SEVERITY_NUMBER_ERROR3\x10\x13\x12\x1a\n\x16SEVERITY_NUMBER_ERROR4\x10\x14\x12\x19\n\x15SEVERITY_NUMBER_FATAL\x10\x15\x12\x1a\n\x16SEVERITY_NUMBER_FATAL2\x10\x16\x12\x1a\n\x16SEVERITY_NUMBER_FATAL3\x10\x17\x12\x1a\n\x16SEVERITY_NUMBER_FATAL4\x10\x18*X\n\x0eLogRecordFlags\x12\x1f\n\x1bLOG_RECORD_FLAG_UNSPECIFIED\x10\x00\x12%\n LOG_RECORD_FLAG_TRACE_FLAGS_MASK\x10\xff\x01\x42U\n\x1eio.opentelemetry.proto.logs.v1B\tLogsProtoP\x01Z&go.opentelemetry.io/proto/otlp/logs/v1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-common/lib/opentelemetry/proto/metrics/v1/metrics_pb.rb b/exporter/otlp-common/lib/opentelemetry/proto/metrics/v1/metrics_pb.rb
index f85db6b9c1..eccff76040 100644
--- a/exporter/otlp-common/lib/opentelemetry/proto/metrics/v1/metrics_pb.rb
+++ b/exporter/otlp-common/lib/opentelemetry/proto/metrics/v1/metrics_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/metrics/v1/metrics.proto
@@ -6,135 +7,11 @@
require 'opentelemetry/proto/common/v1/common_pb'
require 'opentelemetry/proto/resource/v1/resource_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/metrics/v1/metrics.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.metrics.v1.MetricsData" do
- repeated :resource_metrics, :message, 1, "opentelemetry.proto.metrics.v1.ResourceMetrics"
- end
- add_message "opentelemetry.proto.metrics.v1.ResourceMetrics" do
- optional :resource, :message, 1, "opentelemetry.proto.resource.v1.Resource"
- repeated :scope_metrics, :message, 2, "opentelemetry.proto.metrics.v1.ScopeMetrics"
- repeated :instrumentation_library_metrics, :message, 1000, "opentelemetry.proto.metrics.v1.InstrumentationLibraryMetrics"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.metrics.v1.ScopeMetrics" do
- optional :scope, :message, 1, "opentelemetry.proto.common.v1.InstrumentationScope"
- repeated :metrics, :message, 2, "opentelemetry.proto.metrics.v1.Metric"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.metrics.v1.InstrumentationLibraryMetrics" do
- optional :instrumentation_library, :message, 1, "opentelemetry.proto.common.v1.InstrumentationLibrary"
- repeated :metrics, :message, 2, "opentelemetry.proto.metrics.v1.Metric"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.metrics.v1.Metric" do
- optional :name, :string, 1
- optional :description, :string, 2
- optional :unit, :string, 3
- oneof :data do
- optional :gauge, :message, 5, "opentelemetry.proto.metrics.v1.Gauge"
- optional :sum, :message, 7, "opentelemetry.proto.metrics.v1.Sum"
- optional :histogram, :message, 9, "opentelemetry.proto.metrics.v1.Histogram"
- optional :exponential_histogram, :message, 10, "opentelemetry.proto.metrics.v1.ExponentialHistogram"
- optional :summary, :message, 11, "opentelemetry.proto.metrics.v1.Summary"
- end
- end
- add_message "opentelemetry.proto.metrics.v1.Gauge" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.NumberDataPoint"
- end
- add_message "opentelemetry.proto.metrics.v1.Sum" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.NumberDataPoint"
- optional :aggregation_temporality, :enum, 2, "opentelemetry.proto.metrics.v1.AggregationTemporality"
- optional :is_monotonic, :bool, 3
- end
- add_message "opentelemetry.proto.metrics.v1.Histogram" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.HistogramDataPoint"
- optional :aggregation_temporality, :enum, 2, "opentelemetry.proto.metrics.v1.AggregationTemporality"
- end
- add_message "opentelemetry.proto.metrics.v1.ExponentialHistogram" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint"
- optional :aggregation_temporality, :enum, 2, "opentelemetry.proto.metrics.v1.AggregationTemporality"
- end
- add_message "opentelemetry.proto.metrics.v1.Summary" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.SummaryDataPoint"
- end
- add_message "opentelemetry.proto.metrics.v1.NumberDataPoint" do
- repeated :attributes, :message, 7, "opentelemetry.proto.common.v1.KeyValue"
- optional :start_time_unix_nano, :fixed64, 2
- optional :time_unix_nano, :fixed64, 3
- repeated :exemplars, :message, 5, "opentelemetry.proto.metrics.v1.Exemplar"
- optional :flags, :uint32, 8
- oneof :value do
- optional :as_double, :double, 4
- optional :as_int, :sfixed64, 6
- end
- end
- add_message "opentelemetry.proto.metrics.v1.HistogramDataPoint" do
- repeated :attributes, :message, 9, "opentelemetry.proto.common.v1.KeyValue"
- optional :start_time_unix_nano, :fixed64, 2
- optional :time_unix_nano, :fixed64, 3
- optional :count, :fixed64, 4
- proto3_optional :sum, :double, 5
- repeated :bucket_counts, :fixed64, 6
- repeated :explicit_bounds, :double, 7
- repeated :exemplars, :message, 8, "opentelemetry.proto.metrics.v1.Exemplar"
- optional :flags, :uint32, 10
- proto3_optional :min, :double, 11
- proto3_optional :max, :double, 12
- end
- add_message "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint" do
- repeated :attributes, :message, 1, "opentelemetry.proto.common.v1.KeyValue"
- optional :start_time_unix_nano, :fixed64, 2
- optional :time_unix_nano, :fixed64, 3
- optional :count, :fixed64, 4
- proto3_optional :sum, :double, 5
- optional :scale, :sint32, 6
- optional :zero_count, :fixed64, 7
- optional :positive, :message, 8, "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets"
- optional :negative, :message, 9, "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets"
- optional :flags, :uint32, 10
- repeated :exemplars, :message, 11, "opentelemetry.proto.metrics.v1.Exemplar"
- proto3_optional :min, :double, 12
- proto3_optional :max, :double, 13
- end
- add_message "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets" do
- optional :offset, :sint32, 1
- repeated :bucket_counts, :uint64, 2
- end
- add_message "opentelemetry.proto.metrics.v1.SummaryDataPoint" do
- repeated :attributes, :message, 7, "opentelemetry.proto.common.v1.KeyValue"
- optional :start_time_unix_nano, :fixed64, 2
- optional :time_unix_nano, :fixed64, 3
- optional :count, :fixed64, 4
- optional :sum, :double, 5
- repeated :quantile_values, :message, 6, "opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile"
- optional :flags, :uint32, 8
- end
- add_message "opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile" do
- optional :quantile, :double, 1
- optional :value, :double, 2
- end
- add_message "opentelemetry.proto.metrics.v1.Exemplar" do
- repeated :filtered_attributes, :message, 7, "opentelemetry.proto.common.v1.KeyValue"
- optional :time_unix_nano, :fixed64, 2
- optional :span_id, :bytes, 4
- optional :trace_id, :bytes, 5
- oneof :value do
- optional :as_double, :double, 3
- optional :as_int, :sfixed64, 6
- end
- end
- add_enum "opentelemetry.proto.metrics.v1.AggregationTemporality" do
- value :AGGREGATION_TEMPORALITY_UNSPECIFIED, 0
- value :AGGREGATION_TEMPORALITY_DELTA, 1
- value :AGGREGATION_TEMPORALITY_CUMULATIVE, 2
- end
- add_enum "opentelemetry.proto.metrics.v1.DataPointFlags" do
- value :FLAG_NONE, 0
- value :FLAG_NO_RECORDED_VALUE, 1
- end
- end
-end
+
+descriptor_data = "\n,opentelemetry/proto/metrics/v1/metrics.proto\x12\x1eopentelemetry.proto.metrics.v1\x1a*opentelemetry/proto/common/v1/common.proto\x1a.opentelemetry/proto/resource/v1/resource.proto\"X\n\x0bMetricsData\x12I\n\x10resource_metrics\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.ResourceMetrics\"\x94\x02\n\x0fResourceMetrics\x12;\n\x08resource\x18\x01 \x01(\x0b\x32).opentelemetry.proto.resource.v1.Resource\x12\x43\n\rscope_metrics\x18\x02 \x03(\x0b\x32,.opentelemetry.proto.metrics.v1.ScopeMetrics\x12k\n\x1finstrumentation_library_metrics\x18\xe8\x07 \x03(\x0b\x32=.opentelemetry.proto.metrics.v1.InstrumentationLibraryMetricsB\x02\x18\x01\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\x9f\x01\n\x0cScopeMetrics\x12\x42\n\x05scope\x18\x01 \x01(\x0b\x32\x33.opentelemetry.proto.common.v1.InstrumentationScope\x12\x37\n\x07metrics\x18\x02 \x03(\x0b\x32&.opentelemetry.proto.metrics.v1.Metric\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\xc8\x01\n\x1dInstrumentationLibraryMetrics\x12V\n\x17instrumentation_library\x18\x01 \x01(\x0b\x32\x35.opentelemetry.proto.common.v1.InstrumentationLibrary\x12\x37\n\x07metrics\x18\x02 \x03(\x0b\x32&.opentelemetry.proto.metrics.v1.Metric\x12\x12\n\nschema_url\x18\x03 \x01(\t:\x02\x18\x01\"\x92\x03\n\x06Metric\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0c\n\x04unit\x18\x03 \x01(\t\x12\x36\n\x05gauge\x18\x05 \x01(\x0b\x32%.opentelemetry.proto.metrics.v1.GaugeH\x00\x12\x32\n\x03sum\x18\x07 \x01(\x0b\x32#.opentelemetry.proto.metrics.v1.SumH\x00\x12>\n\thistogram\x18\t \x01(\x0b\x32).opentelemetry.proto.metrics.v1.HistogramH\x00\x12U\n\x15\x65xponential_histogram\x18\n \x01(\x0b\x32\x34.opentelemetry.proto.metrics.v1.ExponentialHistogramH\x00\x12:\n\x07summary\x18\x0b \x01(\x0b\x32\'.opentelemetry.proto.metrics.v1.SummaryH\x00\x42\x06\n\x04\x64\x61taJ\x04\x08\x04\x10\x05J\x04\x08\x06\x10\x07J\x04\x08\x08\x10\t\"M\n\x05Gauge\x12\x44\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.NumberDataPoint\"\xba\x01\n\x03Sum\x12\x44\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.NumberDataPoint\x12W\n\x17\x61ggregation_temporality\x18\x02 \x01(\x0e\x32\x36.opentelemetry.proto.metrics.v1.AggregationTemporality\x12\x14\n\x0cis_monotonic\x18\x03 \x01(\x08\"\xad\x01\n\tHistogram\x12G\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32\x32.opentelemetry.proto.metrics.v1.HistogramDataPoint\x12W\n\x17\x61ggregation_temporality\x18\x02 \x01(\x0e\x32\x36.opentelemetry.proto.metrics.v1.AggregationTemporality\"\xc3\x01\n\x14\x45xponentialHistogram\x12R\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32=.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint\x12W\n\x17\x61ggregation_temporality\x18\x02 \x01(\x0e\x32\x36.opentelemetry.proto.metrics.v1.AggregationTemporality\"P\n\x07Summary\x12\x45\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32\x30.opentelemetry.proto.metrics.v1.SummaryDataPoint\"\x86\x02\n\x0fNumberDataPoint\x12;\n\nattributes\x18\x07 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\x13\n\tas_double\x18\x04 \x01(\x01H\x00\x12\x10\n\x06\x61s_int\x18\x06 \x01(\x10H\x00\x12;\n\texemplars\x18\x05 \x03(\x0b\x32(.opentelemetry.proto.metrics.v1.Exemplar\x12\r\n\x05\x66lags\x18\x08 \x01(\rB\x07\n\x05valueJ\x04\x08\x01\x10\x02\"\xe6\x02\n\x12HistogramDataPoint\x12;\n\nattributes\x18\t \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\r\n\x05\x63ount\x18\x04 \x01(\x06\x12\x10\n\x03sum\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\rbucket_counts\x18\x06 \x03(\x06\x12\x17\n\x0f\x65xplicit_bounds\x18\x07 \x03(\x01\x12;\n\texemplars\x18\x08 \x03(\x0b\x32(.opentelemetry.proto.metrics.v1.Exemplar\x12\r\n\x05\x66lags\x18\n \x01(\r\x12\x10\n\x03min\x18\x0b \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03max\x18\x0c \x01(\x01H\x02\x88\x01\x01\x42\x06\n\x04_sumB\x06\n\x04_minB\x06\n\x04_maxJ\x04\x08\x01\x10\x02\"\xc2\x04\n\x1d\x45xponentialHistogramDataPoint\x12;\n\nattributes\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\r\n\x05\x63ount\x18\x04 \x01(\x06\x12\x10\n\x03sum\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\r\n\x05scale\x18\x06 \x01(\x11\x12\x12\n\nzero_count\x18\x07 \x01(\x06\x12W\n\x08positive\x18\x08 \x01(\x0b\x32\x45.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets\x12W\n\x08negative\x18\t \x01(\x0b\x32\x45.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets\x12\r\n\x05\x66lags\x18\n \x01(\r\x12;\n\texemplars\x18\x0b \x03(\x0b\x32(.opentelemetry.proto.metrics.v1.Exemplar\x12\x10\n\x03min\x18\x0c \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03max\x18\r \x01(\x01H\x02\x88\x01\x01\x1a\x30\n\x07\x42uckets\x12\x0e\n\x06offset\x18\x01 \x01(\x11\x12\x15\n\rbucket_counts\x18\x02 \x03(\x04\x42\x06\n\x04_sumB\x06\n\x04_minB\x06\n\x04_max\"\xc5\x02\n\x10SummaryDataPoint\x12;\n\nattributes\x18\x07 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\r\n\x05\x63ount\x18\x04 \x01(\x06\x12\x0b\n\x03sum\x18\x05 \x01(\x01\x12Y\n\x0fquantile_values\x18\x06 \x03(\x0b\x32@.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile\x12\r\n\x05\x66lags\x18\x08 \x01(\r\x1a\x32\n\x0fValueAtQuantile\x12\x10\n\x08quantile\x18\x01 \x01(\x01\x12\r\n\x05value\x18\x02 \x01(\x01J\x04\x08\x01\x10\x02\"\xc1\x01\n\x08\x45xemplar\x12\x44\n\x13\x66iltered_attributes\x18\x07 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x16\n\x0etime_unix_nano\x18\x02 \x01(\x06\x12\x13\n\tas_double\x18\x03 \x01(\x01H\x00\x12\x10\n\x06\x61s_int\x18\x06 \x01(\x10H\x00\x12\x0f\n\x07span_id\x18\x04 \x01(\x0c\x12\x10\n\x08trace_id\x18\x05 \x01(\x0c\x42\x07\n\x05valueJ\x04\x08\x01\x10\x02*\x8c\x01\n\x16\x41ggregationTemporality\x12\'\n#AGGREGATION_TEMPORALITY_UNSPECIFIED\x10\x00\x12!\n\x1d\x41GGREGATION_TEMPORALITY_DELTA\x10\x01\x12&\n\"AGGREGATION_TEMPORALITY_CUMULATIVE\x10\x02*;\n\x0e\x44\x61taPointFlags\x12\r\n\tFLAG_NONE\x10\x00\x12\x1a\n\x16\x46LAG_NO_RECORDED_VALUE\x10\x01\x42^\n!io.opentelemetry.proto.metrics.v1B\x0cMetricsProtoP\x01Z)go.opentelemetry.io/proto/otlp/metrics/v1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-common/lib/opentelemetry/proto/resource/v1/resource_pb.rb b/exporter/otlp-common/lib/opentelemetry/proto/resource/v1/resource_pb.rb
index a10d5ad1f5..a47c81d56f 100644
--- a/exporter/otlp-common/lib/opentelemetry/proto/resource/v1/resource_pb.rb
+++ b/exporter/otlp-common/lib/opentelemetry/proto/resource/v1/resource_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/resource/v1/resource.proto
@@ -5,14 +6,11 @@
require 'opentelemetry/proto/common/v1/common_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/resource/v1/resource.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.resource.v1.Resource" do
- repeated :attributes, :message, 1, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 2
- end
- end
-end
+
+descriptor_data = "\n.opentelemetry/proto/resource/v1/resource.proto\x12\x1fopentelemetry.proto.resource.v1\x1a*opentelemetry/proto/common/v1/common.proto\"i\n\x08Resource\x12;\n\nattributes\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x02 \x01(\rBa\n\"io.opentelemetry.proto.resource.v1B\rResourceProtoP\x01Z*go.opentelemetry.io/proto/otlp/resource/v1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-common/lib/opentelemetry/proto/trace/v1/trace_config_pb.rb b/exporter/otlp-common/lib/opentelemetry/proto/trace/v1/trace_config_pb.rb
index 540dc2d65d..453d8b556f 100644
--- a/exporter/otlp-common/lib/opentelemetry/proto/trace/v1/trace_config_pb.rb
+++ b/exporter/otlp-common/lib/opentelemetry/proto/trace/v1/trace_config_pb.rb
@@ -1,38 +1,14 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/trace/v1/trace_config.proto
require 'google/protobuf'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/trace/v1/trace_config.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.trace.v1.TraceConfig" do
- optional :max_number_of_attributes, :int64, 4
- optional :max_number_of_timed_events, :int64, 5
- optional :max_number_of_attributes_per_timed_event, :int64, 6
- optional :max_number_of_links, :int64, 7
- optional :max_number_of_attributes_per_link, :int64, 8
- oneof :sampler do
- optional :constant_sampler, :message, 1, "opentelemetry.proto.trace.v1.ConstantSampler"
- optional :trace_id_ratio_based, :message, 2, "opentelemetry.proto.trace.v1.TraceIdRatioBased"
- optional :rate_limiting_sampler, :message, 3, "opentelemetry.proto.trace.v1.RateLimitingSampler"
- end
- end
- add_message "opentelemetry.proto.trace.v1.ConstantSampler" do
- optional :decision, :enum, 1, "opentelemetry.proto.trace.v1.ConstantSampler.ConstantDecision"
- end
- add_enum "opentelemetry.proto.trace.v1.ConstantSampler.ConstantDecision" do
- value :ALWAYS_OFF, 0
- value :ALWAYS_ON, 1
- value :ALWAYS_PARENT, 2
- end
- add_message "opentelemetry.proto.trace.v1.TraceIdRatioBased" do
- optional :samplingRatio, :double, 1
- end
- add_message "opentelemetry.proto.trace.v1.RateLimitingSampler" do
- optional :qps, :int64, 1
- end
- end
-end
+
+descriptor_data = "\n/opentelemetry/proto/trace/v1/trace_config.proto\x12\x1copentelemetry.proto.trace.v1\"\xc8\x03\n\x0bTraceConfig\x12I\n\x10\x63onstant_sampler\x18\x01 \x01(\x0b\x32-.opentelemetry.proto.trace.v1.ConstantSamplerH\x00\x12O\n\x14trace_id_ratio_based\x18\x02 \x01(\x0b\x32/.opentelemetry.proto.trace.v1.TraceIdRatioBasedH\x00\x12R\n\x15rate_limiting_sampler\x18\x03 \x01(\x0b\x32\x31.opentelemetry.proto.trace.v1.RateLimitingSamplerH\x00\x12 \n\x18max_number_of_attributes\x18\x04 \x01(\x03\x12\"\n\x1amax_number_of_timed_events\x18\x05 \x01(\x03\x12\x30\n(max_number_of_attributes_per_timed_event\x18\x06 \x01(\x03\x12\x1b\n\x13max_number_of_links\x18\x07 \x01(\x03\x12)\n!max_number_of_attributes_per_link\x18\x08 \x01(\x03\x42\t\n\x07sampler\"\xa9\x01\n\x0f\x43onstantSampler\x12P\n\x08\x64\x65\x63ision\x18\x01 \x01(\x0e\x32>.opentelemetry.proto.trace.v1.ConstantSampler.ConstantDecision\"D\n\x10\x43onstantDecision\x12\x0e\n\nALWAYS_OFF\x10\x00\x12\r\n\tALWAYS_ON\x10\x01\x12\x11\n\rALWAYS_PARENT\x10\x02\"*\n\x11TraceIdRatioBased\x12\x15\n\rsamplingRatio\x18\x01 \x01(\x01\"\"\n\x13RateLimitingSampler\x12\x0b\n\x03qps\x18\x01 \x01(\x03\x42h\n\x1fio.opentelemetry.proto.trace.v1B\x10TraceConfigProtoP\x01Z1go.opentelemetry.io/proto/otlp/collector/trace/v1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-common/lib/opentelemetry/proto/trace/v1/trace_pb.rb b/exporter/otlp-common/lib/opentelemetry/proto/trace/v1/trace_pb.rb
index e06a34c0bf..b1ea7c5c0e 100644
--- a/exporter/otlp-common/lib/opentelemetry/proto/trace/v1/trace_pb.rb
+++ b/exporter/otlp-common/lib/opentelemetry/proto/trace/v1/trace_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/trace/v1/trace.proto
@@ -6,76 +7,11 @@
require 'opentelemetry/proto/common/v1/common_pb'
require 'opentelemetry/proto/resource/v1/resource_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/trace/v1/trace.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.trace.v1.TracesData" do
- repeated :resource_spans, :message, 1, "opentelemetry.proto.trace.v1.ResourceSpans"
- end
- add_message "opentelemetry.proto.trace.v1.ResourceSpans" do
- optional :resource, :message, 1, "opentelemetry.proto.resource.v1.Resource"
- repeated :scope_spans, :message, 2, "opentelemetry.proto.trace.v1.ScopeSpans"
- repeated :instrumentation_library_spans, :message, 1000, "opentelemetry.proto.trace.v1.InstrumentationLibrarySpans"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.trace.v1.ScopeSpans" do
- optional :scope, :message, 1, "opentelemetry.proto.common.v1.InstrumentationScope"
- repeated :spans, :message, 2, "opentelemetry.proto.trace.v1.Span"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.trace.v1.InstrumentationLibrarySpans" do
- optional :instrumentation_library, :message, 1, "opentelemetry.proto.common.v1.InstrumentationLibrary"
- repeated :spans, :message, 2, "opentelemetry.proto.trace.v1.Span"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.trace.v1.Span" do
- optional :trace_id, :bytes, 1
- optional :span_id, :bytes, 2
- optional :trace_state, :string, 3
- optional :parent_span_id, :bytes, 4
- optional :name, :string, 5
- optional :kind, :enum, 6, "opentelemetry.proto.trace.v1.Span.SpanKind"
- optional :start_time_unix_nano, :fixed64, 7
- optional :end_time_unix_nano, :fixed64, 8
- repeated :attributes, :message, 9, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 10
- repeated :events, :message, 11, "opentelemetry.proto.trace.v1.Span.Event"
- optional :dropped_events_count, :uint32, 12
- repeated :links, :message, 13, "opentelemetry.proto.trace.v1.Span.Link"
- optional :dropped_links_count, :uint32, 14
- optional :status, :message, 15, "opentelemetry.proto.trace.v1.Status"
- end
- add_message "opentelemetry.proto.trace.v1.Span.Event" do
- optional :time_unix_nano, :fixed64, 1
- optional :name, :string, 2
- repeated :attributes, :message, 3, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 4
- end
- add_message "opentelemetry.proto.trace.v1.Span.Link" do
- optional :trace_id, :bytes, 1
- optional :span_id, :bytes, 2
- optional :trace_state, :string, 3
- repeated :attributes, :message, 4, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 5
- end
- add_enum "opentelemetry.proto.trace.v1.Span.SpanKind" do
- value :SPAN_KIND_UNSPECIFIED, 0
- value :SPAN_KIND_INTERNAL, 1
- value :SPAN_KIND_SERVER, 2
- value :SPAN_KIND_CLIENT, 3
- value :SPAN_KIND_PRODUCER, 4
- value :SPAN_KIND_CONSUMER, 5
- end
- add_message "opentelemetry.proto.trace.v1.Status" do
- optional :message, :string, 2
- optional :code, :enum, 3, "opentelemetry.proto.trace.v1.Status.StatusCode"
- end
- add_enum "opentelemetry.proto.trace.v1.Status.StatusCode" do
- value :STATUS_CODE_UNSET, 0
- value :STATUS_CODE_OK, 1
- value :STATUS_CODE_ERROR, 2
- end
- end
-end
+
+descriptor_data = "\n(opentelemetry/proto/trace/v1/trace.proto\x12\x1copentelemetry.proto.trace.v1\x1a*opentelemetry/proto/common/v1/common.proto\x1a.opentelemetry/proto/resource/v1/resource.proto\"Q\n\nTracesData\x12\x43\n\x0eresource_spans\x18\x01 \x03(\x0b\x32+.opentelemetry.proto.trace.v1.ResourceSpans\"\x86\x02\n\rResourceSpans\x12;\n\x08resource\x18\x01 \x01(\x0b\x32).opentelemetry.proto.resource.v1.Resource\x12=\n\x0bscope_spans\x18\x02 \x03(\x0b\x32(.opentelemetry.proto.trace.v1.ScopeSpans\x12\x65\n\x1dinstrumentation_library_spans\x18\xe8\x07 \x03(\x0b\x32\x39.opentelemetry.proto.trace.v1.InstrumentationLibrarySpansB\x02\x18\x01\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\x97\x01\n\nScopeSpans\x12\x42\n\x05scope\x18\x01 \x01(\x0b\x32\x33.opentelemetry.proto.common.v1.InstrumentationScope\x12\x31\n\x05spans\x18\x02 \x03(\x0b\x32\".opentelemetry.proto.trace.v1.Span\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\xc0\x01\n\x1bInstrumentationLibrarySpans\x12V\n\x17instrumentation_library\x18\x01 \x01(\x0b\x32\x35.opentelemetry.proto.common.v1.InstrumentationLibrary\x12\x31\n\x05spans\x18\x02 \x03(\x0b\x32\".opentelemetry.proto.trace.v1.Span\x12\x12\n\nschema_url\x18\x03 \x01(\t:\x02\x18\x01\"\xe6\x07\n\x04Span\x12\x10\n\x08trace_id\x18\x01 \x01(\x0c\x12\x0f\n\x07span_id\x18\x02 \x01(\x0c\x12\x13\n\x0btrace_state\x18\x03 \x01(\t\x12\x16\n\x0eparent_span_id\x18\x04 \x01(\x0c\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x39\n\x04kind\x18\x06 \x01(\x0e\x32+.opentelemetry.proto.trace.v1.Span.SpanKind\x12\x1c\n\x14start_time_unix_nano\x18\x07 \x01(\x06\x12\x1a\n\x12\x65nd_time_unix_nano\x18\x08 \x01(\x06\x12;\n\nattributes\x18\t \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\n \x01(\r\x12\x38\n\x06\x65vents\x18\x0b \x03(\x0b\x32(.opentelemetry.proto.trace.v1.Span.Event\x12\x1c\n\x14\x64ropped_events_count\x18\x0c \x01(\r\x12\x36\n\x05links\x18\r \x03(\x0b\x32\'.opentelemetry.proto.trace.v1.Span.Link\x12\x1b\n\x13\x64ropped_links_count\x18\x0e \x01(\r\x12\x34\n\x06status\x18\x0f \x01(\x0b\x32$.opentelemetry.proto.trace.v1.Status\x1a\x8c\x01\n\x05\x45vent\x12\x16\n\x0etime_unix_nano\x18\x01 \x01(\x06\x12\x0c\n\x04name\x18\x02 \x01(\t\x12;\n\nattributes\x18\x03 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x04 \x01(\r\x1a\x9d\x01\n\x04Link\x12\x10\n\x08trace_id\x18\x01 \x01(\x0c\x12\x0f\n\x07span_id\x18\x02 \x01(\x0c\x12\x13\n\x0btrace_state\x18\x03 \x01(\t\x12;\n\nattributes\x18\x04 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x05 \x01(\r\"\x99\x01\n\x08SpanKind\x12\x19\n\x15SPAN_KIND_UNSPECIFIED\x10\x00\x12\x16\n\x12SPAN_KIND_INTERNAL\x10\x01\x12\x14\n\x10SPAN_KIND_SERVER\x10\x02\x12\x14\n\x10SPAN_KIND_CLIENT\x10\x03\x12\x16\n\x12SPAN_KIND_PRODUCER\x10\x04\x12\x16\n\x12SPAN_KIND_CONSUMER\x10\x05\"\xae\x01\n\x06Status\x12\x0f\n\x07message\x18\x02 \x01(\t\x12=\n\x04\x63ode\x18\x03 \x01(\x0e\x32/.opentelemetry.proto.trace.v1.Status.StatusCode\"N\n\nStatusCode\x12\x15\n\x11STATUS_CODE_UNSET\x10\x00\x12\x12\n\x0eSTATUS_CODE_OK\x10\x01\x12\x15\n\x11STATUS_CODE_ERROR\x10\x02J\x04\x08\x01\x10\x02\x42X\n\x1fio.opentelemetry.proto.trace.v1B\nTraceProtoP\x01Z\'go.opentelemetry.io/proto/otlp/trace/v1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-http/lib/opentelemetry/exporter/otlp/http/trace_exporter.rb b/exporter/otlp-http/lib/opentelemetry/exporter/otlp/http/trace_exporter.rb
index 0ae739df5a..de2b857788 100644
--- a/exporter/otlp-http/lib/opentelemetry/exporter/otlp/http/trace_exporter.rb
+++ b/exporter/otlp-http/lib/opentelemetry/exporter/otlp/http/trace_exporter.rb
@@ -180,8 +180,9 @@ def send_bytes(bytes, timeout:) # rubocop:disable Metrics/MethodLength
rescue Net::OpenTimeout, Net::ReadTimeout
retry if backoff?(retry_count: retry_count += 1, reason: 'timeout')
return FAILURE
- rescue OpenSSL::SSL::SSLError
+ rescue OpenSSL::SSL::SSLError => e
retry if backoff?(retry_count: retry_count += 1, reason: 'openssl_error')
+ OpenTelemetry.handle_error(exception: e, message: 'SSL error in OTLP::Exporter#send_bytes')
return FAILURE
rescue SocketError
retry if backoff?(retry_count: retry_count += 1, reason: 'socket_error')
diff --git a/exporter/otlp-metrics/lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb b/exporter/otlp-metrics/lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb
index ceeb940e82..d243dfbc07 100644
--- a/exporter/otlp-metrics/lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb
+++ b/exporter/otlp-metrics/lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/collector/logs/v1/logs_service.proto
@@ -5,20 +6,11 @@
require 'opentelemetry/proto/logs/v1/logs_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/collector/logs/v1/logs_service.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest" do
- repeated :resource_logs, :message, 1, "opentelemetry.proto.logs.v1.ResourceLogs"
- end
- add_message "opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse" do
- optional :partial_success, :message, 1, "opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess"
- end
- add_message "opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess" do
- optional :rejected_log_records, :int64, 1
- optional :error_message, :string, 2
- end
- end
-end
+
+descriptor_data = "\n8opentelemetry/proto/collector/logs/v1/logs_service.proto\x12%opentelemetry.proto.collector.logs.v1\x1a&opentelemetry/proto/logs/v1/logs.proto\"\\\n\x18\x45xportLogsServiceRequest\x12@\n\rresource_logs\x18\x01 \x03(\x0b\x32).opentelemetry.proto.logs.v1.ResourceLogs\"u\n\x19\x45xportLogsServiceResponse\x12X\n\x0fpartial_success\x18\x01 \x01(\x0b\x32?.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess\"O\n\x18\x45xportLogsPartialSuccess\x12\x1c\n\x14rejected_log_records\x18\x01 \x01(\x03\x12\x15\n\rerror_message\x18\x02 \x01(\t2\x9d\x01\n\x0bLogsService\x12\x8d\x01\n\x06\x45xport\x12?.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest\x1a@.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse\"\x00\x42\x98\x01\n(io.opentelemetry.proto.collector.logs.v1B\x10LogsServiceProtoP\x01Z0go.opentelemetry.io/proto/otlp/collector/logs/v1\xaa\x02%OpenTelemetry.Proto.Collector.Logs.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-metrics/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb b/exporter/otlp-metrics/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb
index 15654a2cfd..637fce86ce 100644
--- a/exporter/otlp-metrics/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb
+++ b/exporter/otlp-metrics/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/collector/metrics/v1/metrics_service.proto
@@ -5,20 +6,11 @@
require 'opentelemetry/proto/metrics/v1/metrics_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/collector/metrics/v1/metrics_service.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest" do
- repeated :resource_metrics, :message, 1, "opentelemetry.proto.metrics.v1.ResourceMetrics"
- end
- add_message "opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse" do
- optional :partial_success, :message, 1, "opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess"
- end
- add_message "opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess" do
- optional :rejected_data_points, :int64, 1
- optional :error_message, :string, 2
- end
- end
-end
+
+descriptor_data = "\n>opentelemetry/proto/collector/metrics/v1/metrics_service.proto\x12(opentelemetry.proto.collector.metrics.v1\x1a,opentelemetry/proto/metrics/v1/metrics.proto\"h\n\x1b\x45xportMetricsServiceRequest\x12I\n\x10resource_metrics\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.ResourceMetrics\"~\n\x1c\x45xportMetricsServiceResponse\x12^\n\x0fpartial_success\x18\x01 \x01(\x0b\x32\x45.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess\"R\n\x1b\x45xportMetricsPartialSuccess\x12\x1c\n\x14rejected_data_points\x18\x01 \x01(\x03\x12\x15\n\rerror_message\x18\x02 \x01(\t2\xac\x01\n\x0eMetricsService\x12\x99\x01\n\x06\x45xport\x12\x45.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest\x1a\x46.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse\"\x00\x42\xa4\x01\n+io.opentelemetry.proto.collector.metrics.v1B\x13MetricsServiceProtoP\x01Z3go.opentelemetry.io/proto/otlp/collector/metrics/v1\xaa\x02(OpenTelemetry.Proto.Collector.Metrics.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-metrics/lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb b/exporter/otlp-metrics/lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb
index 4d0d62f22e..95f802c0f6 100644
--- a/exporter/otlp-metrics/lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb
+++ b/exporter/otlp-metrics/lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/collector/trace/v1/trace_service.proto
@@ -5,20 +6,11 @@
require 'opentelemetry/proto/trace/v1/trace_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/collector/trace/v1/trace_service.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest" do
- repeated :resource_spans, :message, 1, "opentelemetry.proto.trace.v1.ResourceSpans"
- end
- add_message "opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse" do
- optional :partial_success, :message, 1, "opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess"
- end
- add_message "opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess" do
- optional :rejected_spans, :int64, 1
- optional :error_message, :string, 2
- end
- end
-end
+
+descriptor_data = "\n:opentelemetry/proto/collector/trace/v1/trace_service.proto\x12&opentelemetry.proto.collector.trace.v1\x1a(opentelemetry/proto/trace/v1/trace.proto\"`\n\x19\x45xportTraceServiceRequest\x12\x43\n\x0eresource_spans\x18\x01 \x03(\x0b\x32+.opentelemetry.proto.trace.v1.ResourceSpans\"x\n\x1a\x45xportTraceServiceResponse\x12Z\n\x0fpartial_success\x18\x01 \x01(\x0b\x32\x41.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess\"J\n\x19\x45xportTracePartialSuccess\x12\x16\n\x0erejected_spans\x18\x01 \x01(\x03\x12\x15\n\rerror_message\x18\x02 \x01(\t2\xa2\x01\n\x0cTraceService\x12\x91\x01\n\x06\x45xport\x12\x41.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest\x1a\x42.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse\"\x00\x42\x9c\x01\n)io.opentelemetry.proto.collector.trace.v1B\x11TraceServiceProtoP\x01Z1go.opentelemetry.io/proto/otlp/collector/trace/v1\xaa\x02&OpenTelemetry.Proto.Collector.Trace.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-metrics/lib/opentelemetry/proto/common/v1/common_pb.rb b/exporter/otlp-metrics/lib/opentelemetry/proto/common/v1/common_pb.rb
index a49580ec51..a9a74ad335 100644
--- a/exporter/otlp-metrics/lib/opentelemetry/proto/common/v1/common_pb.rb
+++ b/exporter/otlp-metrics/lib/opentelemetry/proto/common/v1/common_pb.rb
@@ -1,39 +1,14 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/common/v1/common.proto
require 'google/protobuf'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/common/v1/common.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.common.v1.AnyValue" do
- oneof :value do
- optional :string_value, :string, 1
- optional :bool_value, :bool, 2
- optional :int_value, :int64, 3
- optional :double_value, :double, 4
- optional :array_value, :message, 5, "opentelemetry.proto.common.v1.ArrayValue"
- optional :kvlist_value, :message, 6, "opentelemetry.proto.common.v1.KeyValueList"
- optional :bytes_value, :bytes, 7
- end
- end
- add_message "opentelemetry.proto.common.v1.ArrayValue" do
- repeated :values, :message, 1, "opentelemetry.proto.common.v1.AnyValue"
- end
- add_message "opentelemetry.proto.common.v1.KeyValueList" do
- repeated :values, :message, 1, "opentelemetry.proto.common.v1.KeyValue"
- end
- add_message "opentelemetry.proto.common.v1.KeyValue" do
- optional :key, :string, 1
- optional :value, :message, 2, "opentelemetry.proto.common.v1.AnyValue"
- end
- add_message "opentelemetry.proto.common.v1.InstrumentationScope" do
- optional :name, :string, 1
- optional :version, :string, 2
- repeated :attributes, :message, 3, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 4
- end
- end
-end
+
+descriptor_data = "\n*opentelemetry/proto/common/v1/common.proto\x12\x1dopentelemetry.proto.common.v1\"\x8c\x02\n\x08\x41nyValue\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x13\n\tint_value\x18\x03 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x04 \x01(\x01H\x00\x12@\n\x0b\x61rray_value\x18\x05 \x01(\x0b\x32).opentelemetry.proto.common.v1.ArrayValueH\x00\x12\x43\n\x0ckvlist_value\x18\x06 \x01(\x0b\x32+.opentelemetry.proto.common.v1.KeyValueListH\x00\x12\x15\n\x0b\x62ytes_value\x18\x07 \x01(\x0cH\x00\x42\x07\n\x05value\"E\n\nArrayValue\x12\x37\n\x06values\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.AnyValue\"G\n\x0cKeyValueList\x12\x37\n\x06values\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\"O\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.opentelemetry.proto.common.v1.AnyValue\"\x94\x01\n\x14InstrumentationScope\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12;\n\nattributes\x18\x03 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x04 \x01(\rB{\n io.opentelemetry.proto.common.v1B\x0b\x43ommonProtoP\x01Z(go.opentelemetry.io/proto/otlp/common/v1\xaa\x02\x1dOpenTelemetry.Proto.Common.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-metrics/lib/opentelemetry/proto/logs/v1/logs_pb.rb b/exporter/otlp-metrics/lib/opentelemetry/proto/logs/v1/logs_pb.rb
index 2419b86bfa..ba19937d1a 100644
--- a/exporter/otlp-metrics/lib/opentelemetry/proto/logs/v1/logs_pb.rb
+++ b/exporter/otlp-metrics/lib/opentelemetry/proto/logs/v1/logs_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/logs/v1/logs.proto
@@ -6,66 +7,11 @@
require 'opentelemetry/proto/common/v1/common_pb'
require 'opentelemetry/proto/resource/v1/resource_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/logs/v1/logs.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.logs.v1.LogsData" do
- repeated :resource_logs, :message, 1, "opentelemetry.proto.logs.v1.ResourceLogs"
- end
- add_message "opentelemetry.proto.logs.v1.ResourceLogs" do
- optional :resource, :message, 1, "opentelemetry.proto.resource.v1.Resource"
- repeated :scope_logs, :message, 2, "opentelemetry.proto.logs.v1.ScopeLogs"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.logs.v1.ScopeLogs" do
- optional :scope, :message, 1, "opentelemetry.proto.common.v1.InstrumentationScope"
- repeated :log_records, :message, 2, "opentelemetry.proto.logs.v1.LogRecord"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.logs.v1.LogRecord" do
- optional :time_unix_nano, :fixed64, 1
- optional :observed_time_unix_nano, :fixed64, 11
- optional :severity_number, :enum, 2, "opentelemetry.proto.logs.v1.SeverityNumber"
- optional :severity_text, :string, 3
- optional :body, :message, 5, "opentelemetry.proto.common.v1.AnyValue"
- repeated :attributes, :message, 6, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 7
- optional :flags, :fixed32, 8
- optional :trace_id, :bytes, 9
- optional :span_id, :bytes, 10
- end
- add_enum "opentelemetry.proto.logs.v1.SeverityNumber" do
- value :SEVERITY_NUMBER_UNSPECIFIED, 0
- value :SEVERITY_NUMBER_TRACE, 1
- value :SEVERITY_NUMBER_TRACE2, 2
- value :SEVERITY_NUMBER_TRACE3, 3
- value :SEVERITY_NUMBER_TRACE4, 4
- value :SEVERITY_NUMBER_DEBUG, 5
- value :SEVERITY_NUMBER_DEBUG2, 6
- value :SEVERITY_NUMBER_DEBUG3, 7
- value :SEVERITY_NUMBER_DEBUG4, 8
- value :SEVERITY_NUMBER_INFO, 9
- value :SEVERITY_NUMBER_INFO2, 10
- value :SEVERITY_NUMBER_INFO3, 11
- value :SEVERITY_NUMBER_INFO4, 12
- value :SEVERITY_NUMBER_WARN, 13
- value :SEVERITY_NUMBER_WARN2, 14
- value :SEVERITY_NUMBER_WARN3, 15
- value :SEVERITY_NUMBER_WARN4, 16
- value :SEVERITY_NUMBER_ERROR, 17
- value :SEVERITY_NUMBER_ERROR2, 18
- value :SEVERITY_NUMBER_ERROR3, 19
- value :SEVERITY_NUMBER_ERROR4, 20
- value :SEVERITY_NUMBER_FATAL, 21
- value :SEVERITY_NUMBER_FATAL2, 22
- value :SEVERITY_NUMBER_FATAL3, 23
- value :SEVERITY_NUMBER_FATAL4, 24
- end
- add_enum "opentelemetry.proto.logs.v1.LogRecordFlags" do
- value :LOG_RECORD_FLAGS_DO_NOT_USE, 0
- value :LOG_RECORD_FLAGS_TRACE_FLAGS_MASK, 255
- end
- end
-end
+
+descriptor_data = "\n&opentelemetry/proto/logs/v1/logs.proto\x12\x1bopentelemetry.proto.logs.v1\x1a*opentelemetry/proto/common/v1/common.proto\x1a.opentelemetry/proto/resource/v1/resource.proto\"L\n\x08LogsData\x12@\n\rresource_logs\x18\x01 \x03(\x0b\x32).opentelemetry.proto.logs.v1.ResourceLogs\"\xa3\x01\n\x0cResourceLogs\x12;\n\x08resource\x18\x01 \x01(\x0b\x32).opentelemetry.proto.resource.v1.Resource\x12:\n\nscope_logs\x18\x02 \x03(\x0b\x32&.opentelemetry.proto.logs.v1.ScopeLogs\x12\x12\n\nschema_url\x18\x03 \x01(\tJ\x06\x08\xe8\x07\x10\xe9\x07\"\xa0\x01\n\tScopeLogs\x12\x42\n\x05scope\x18\x01 \x01(\x0b\x32\x33.opentelemetry.proto.common.v1.InstrumentationScope\x12;\n\x0blog_records\x18\x02 \x03(\x0b\x32&.opentelemetry.proto.logs.v1.LogRecord\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\xef\x02\n\tLogRecord\x12\x16\n\x0etime_unix_nano\x18\x01 \x01(\x06\x12\x1f\n\x17observed_time_unix_nano\x18\x0b \x01(\x06\x12\x44\n\x0fseverity_number\x18\x02 \x01(\x0e\x32+.opentelemetry.proto.logs.v1.SeverityNumber\x12\x15\n\rseverity_text\x18\x03 \x01(\t\x12\x35\n\x04\x62ody\x18\x05 \x01(\x0b\x32\'.opentelemetry.proto.common.v1.AnyValue\x12;\n\nattributes\x18\x06 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x07 \x01(\r\x12\r\n\x05\x66lags\x18\x08 \x01(\x07\x12\x10\n\x08trace_id\x18\t \x01(\x0c\x12\x0f\n\x07span_id\x18\n \x01(\x0cJ\x04\x08\x04\x10\x05*\xc3\x05\n\x0eSeverityNumber\x12\x1f\n\x1bSEVERITY_NUMBER_UNSPECIFIED\x10\x00\x12\x19\n\x15SEVERITY_NUMBER_TRACE\x10\x01\x12\x1a\n\x16SEVERITY_NUMBER_TRACE2\x10\x02\x12\x1a\n\x16SEVERITY_NUMBER_TRACE3\x10\x03\x12\x1a\n\x16SEVERITY_NUMBER_TRACE4\x10\x04\x12\x19\n\x15SEVERITY_NUMBER_DEBUG\x10\x05\x12\x1a\n\x16SEVERITY_NUMBER_DEBUG2\x10\x06\x12\x1a\n\x16SEVERITY_NUMBER_DEBUG3\x10\x07\x12\x1a\n\x16SEVERITY_NUMBER_DEBUG4\x10\x08\x12\x18\n\x14SEVERITY_NUMBER_INFO\x10\t\x12\x19\n\x15SEVERITY_NUMBER_INFO2\x10\n\x12\x19\n\x15SEVERITY_NUMBER_INFO3\x10\x0b\x12\x19\n\x15SEVERITY_NUMBER_INFO4\x10\x0c\x12\x18\n\x14SEVERITY_NUMBER_WARN\x10\r\x12\x19\n\x15SEVERITY_NUMBER_WARN2\x10\x0e\x12\x19\n\x15SEVERITY_NUMBER_WARN3\x10\x0f\x12\x19\n\x15SEVERITY_NUMBER_WARN4\x10\x10\x12\x19\n\x15SEVERITY_NUMBER_ERROR\x10\x11\x12\x1a\n\x16SEVERITY_NUMBER_ERROR2\x10\x12\x12\x1a\n\x16SEVERITY_NUMBER_ERROR3\x10\x13\x12\x1a\n\x16SEVERITY_NUMBER_ERROR4\x10\x14\x12\x19\n\x15SEVERITY_NUMBER_FATAL\x10\x15\x12\x1a\n\x16SEVERITY_NUMBER_FATAL2\x10\x16\x12\x1a\n\x16SEVERITY_NUMBER_FATAL3\x10\x17\x12\x1a\n\x16SEVERITY_NUMBER_FATAL4\x10\x18*Y\n\x0eLogRecordFlags\x12\x1f\n\x1bLOG_RECORD_FLAGS_DO_NOT_USE\x10\x00\x12&\n!LOG_RECORD_FLAGS_TRACE_FLAGS_MASK\x10\xff\x01\x42s\n\x1eio.opentelemetry.proto.logs.v1B\tLogsProtoP\x01Z&go.opentelemetry.io/proto/otlp/logs/v1\xaa\x02\x1bOpenTelemetry.Proto.Logs.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-metrics/lib/opentelemetry/proto/metrics/v1/metrics_pb.rb b/exporter/otlp-metrics/lib/opentelemetry/proto/metrics/v1/metrics_pb.rb
index 743381736b..ada5f22e09 100644
--- a/exporter/otlp-metrics/lib/opentelemetry/proto/metrics/v1/metrics_pb.rb
+++ b/exporter/otlp-metrics/lib/opentelemetry/proto/metrics/v1/metrics_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/metrics/v1/metrics.proto
@@ -6,130 +7,11 @@
require 'opentelemetry/proto/common/v1/common_pb'
require 'opentelemetry/proto/resource/v1/resource_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/metrics/v1/metrics.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.metrics.v1.MetricsData" do
- repeated :resource_metrics, :message, 1, "opentelemetry.proto.metrics.v1.ResourceMetrics"
- end
- add_message "opentelemetry.proto.metrics.v1.ResourceMetrics" do
- optional :resource, :message, 1, "opentelemetry.proto.resource.v1.Resource"
- repeated :scope_metrics, :message, 2, "opentelemetry.proto.metrics.v1.ScopeMetrics"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.metrics.v1.ScopeMetrics" do
- optional :scope, :message, 1, "opentelemetry.proto.common.v1.InstrumentationScope"
- repeated :metrics, :message, 2, "opentelemetry.proto.metrics.v1.Metric"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.metrics.v1.Metric" do
- optional :name, :string, 1
- optional :description, :string, 2
- optional :unit, :string, 3
- oneof :data do
- optional :gauge, :message, 5, "opentelemetry.proto.metrics.v1.Gauge"
- optional :sum, :message, 7, "opentelemetry.proto.metrics.v1.Sum"
- optional :histogram, :message, 9, "opentelemetry.proto.metrics.v1.Histogram"
- optional :exponential_histogram, :message, 10, "opentelemetry.proto.metrics.v1.ExponentialHistogram"
- optional :summary, :message, 11, "opentelemetry.proto.metrics.v1.Summary"
- end
- end
- add_message "opentelemetry.proto.metrics.v1.Gauge" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.NumberDataPoint"
- end
- add_message "opentelemetry.proto.metrics.v1.Sum" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.NumberDataPoint"
- optional :aggregation_temporality, :enum, 2, "opentelemetry.proto.metrics.v1.AggregationTemporality"
- optional :is_monotonic, :bool, 3
- end
- add_message "opentelemetry.proto.metrics.v1.Histogram" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.HistogramDataPoint"
- optional :aggregation_temporality, :enum, 2, "opentelemetry.proto.metrics.v1.AggregationTemporality"
- end
- add_message "opentelemetry.proto.metrics.v1.ExponentialHistogram" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint"
- optional :aggregation_temporality, :enum, 2, "opentelemetry.proto.metrics.v1.AggregationTemporality"
- end
- add_message "opentelemetry.proto.metrics.v1.Summary" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.SummaryDataPoint"
- end
- add_message "opentelemetry.proto.metrics.v1.NumberDataPoint" do
- repeated :attributes, :message, 7, "opentelemetry.proto.common.v1.KeyValue"
- optional :start_time_unix_nano, :fixed64, 2
- optional :time_unix_nano, :fixed64, 3
- repeated :exemplars, :message, 5, "opentelemetry.proto.metrics.v1.Exemplar"
- optional :flags, :uint32, 8
- oneof :value do
- optional :as_double, :double, 4
- optional :as_int, :sfixed64, 6
- end
- end
- add_message "opentelemetry.proto.metrics.v1.HistogramDataPoint" do
- repeated :attributes, :message, 9, "opentelemetry.proto.common.v1.KeyValue"
- optional :start_time_unix_nano, :fixed64, 2
- optional :time_unix_nano, :fixed64, 3
- optional :count, :fixed64, 4
- proto3_optional :sum, :double, 5
- repeated :bucket_counts, :fixed64, 6
- repeated :explicit_bounds, :double, 7
- repeated :exemplars, :message, 8, "opentelemetry.proto.metrics.v1.Exemplar"
- optional :flags, :uint32, 10
- proto3_optional :min, :double, 11
- proto3_optional :max, :double, 12
- end
- add_message "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint" do
- repeated :attributes, :message, 1, "opentelemetry.proto.common.v1.KeyValue"
- optional :start_time_unix_nano, :fixed64, 2
- optional :time_unix_nano, :fixed64, 3
- optional :count, :fixed64, 4
- proto3_optional :sum, :double, 5
- optional :scale, :sint32, 6
- optional :zero_count, :fixed64, 7
- optional :positive, :message, 8, "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets"
- optional :negative, :message, 9, "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets"
- optional :flags, :uint32, 10
- repeated :exemplars, :message, 11, "opentelemetry.proto.metrics.v1.Exemplar"
- proto3_optional :min, :double, 12
- proto3_optional :max, :double, 13
- optional :zero_threshold, :double, 14
- end
- add_message "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets" do
- optional :offset, :sint32, 1
- repeated :bucket_counts, :uint64, 2
- end
- add_message "opentelemetry.proto.metrics.v1.SummaryDataPoint" do
- repeated :attributes, :message, 7, "opentelemetry.proto.common.v1.KeyValue"
- optional :start_time_unix_nano, :fixed64, 2
- optional :time_unix_nano, :fixed64, 3
- optional :count, :fixed64, 4
- optional :sum, :double, 5
- repeated :quantile_values, :message, 6, "opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile"
- optional :flags, :uint32, 8
- end
- add_message "opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile" do
- optional :quantile, :double, 1
- optional :value, :double, 2
- end
- add_message "opentelemetry.proto.metrics.v1.Exemplar" do
- repeated :filtered_attributes, :message, 7, "opentelemetry.proto.common.v1.KeyValue"
- optional :time_unix_nano, :fixed64, 2
- optional :span_id, :bytes, 4
- optional :trace_id, :bytes, 5
- oneof :value do
- optional :as_double, :double, 3
- optional :as_int, :sfixed64, 6
- end
- end
- add_enum "opentelemetry.proto.metrics.v1.AggregationTemporality" do
- value :AGGREGATION_TEMPORALITY_UNSPECIFIED, 0
- value :AGGREGATION_TEMPORALITY_DELTA, 1
- value :AGGREGATION_TEMPORALITY_CUMULATIVE, 2
- end
- add_enum "opentelemetry.proto.metrics.v1.DataPointFlags" do
- value :DATA_POINT_FLAGS_DO_NOT_USE, 0
- value :DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK, 1
- end
- end
-end
+
+descriptor_data = "\n,opentelemetry/proto/metrics/v1/metrics.proto\x12\x1eopentelemetry.proto.metrics.v1\x1a*opentelemetry/proto/common/v1/common.proto\x1a.opentelemetry/proto/resource/v1/resource.proto\"X\n\x0bMetricsData\x12I\n\x10resource_metrics\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.ResourceMetrics\"\xaf\x01\n\x0fResourceMetrics\x12;\n\x08resource\x18\x01 \x01(\x0b\x32).opentelemetry.proto.resource.v1.Resource\x12\x43\n\rscope_metrics\x18\x02 \x03(\x0b\x32,.opentelemetry.proto.metrics.v1.ScopeMetrics\x12\x12\n\nschema_url\x18\x03 \x01(\tJ\x06\x08\xe8\x07\x10\xe9\x07\"\x9f\x01\n\x0cScopeMetrics\x12\x42\n\x05scope\x18\x01 \x01(\x0b\x32\x33.opentelemetry.proto.common.v1.InstrumentationScope\x12\x37\n\x07metrics\x18\x02 \x03(\x0b\x32&.opentelemetry.proto.metrics.v1.Metric\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\x92\x03\n\x06Metric\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0c\n\x04unit\x18\x03 \x01(\t\x12\x36\n\x05gauge\x18\x05 \x01(\x0b\x32%.opentelemetry.proto.metrics.v1.GaugeH\x00\x12\x32\n\x03sum\x18\x07 \x01(\x0b\x32#.opentelemetry.proto.metrics.v1.SumH\x00\x12>\n\thistogram\x18\t \x01(\x0b\x32).opentelemetry.proto.metrics.v1.HistogramH\x00\x12U\n\x15\x65xponential_histogram\x18\n \x01(\x0b\x32\x34.opentelemetry.proto.metrics.v1.ExponentialHistogramH\x00\x12:\n\x07summary\x18\x0b \x01(\x0b\x32\'.opentelemetry.proto.metrics.v1.SummaryH\x00\x42\x06\n\x04\x64\x61taJ\x04\x08\x04\x10\x05J\x04\x08\x06\x10\x07J\x04\x08\x08\x10\t\"M\n\x05Gauge\x12\x44\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.NumberDataPoint\"\xba\x01\n\x03Sum\x12\x44\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.NumberDataPoint\x12W\n\x17\x61ggregation_temporality\x18\x02 \x01(\x0e\x32\x36.opentelemetry.proto.metrics.v1.AggregationTemporality\x12\x14\n\x0cis_monotonic\x18\x03 \x01(\x08\"\xad\x01\n\tHistogram\x12G\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32\x32.opentelemetry.proto.metrics.v1.HistogramDataPoint\x12W\n\x17\x61ggregation_temporality\x18\x02 \x01(\x0e\x32\x36.opentelemetry.proto.metrics.v1.AggregationTemporality\"\xc3\x01\n\x14\x45xponentialHistogram\x12R\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32=.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint\x12W\n\x17\x61ggregation_temporality\x18\x02 \x01(\x0e\x32\x36.opentelemetry.proto.metrics.v1.AggregationTemporality\"P\n\x07Summary\x12\x45\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32\x30.opentelemetry.proto.metrics.v1.SummaryDataPoint\"\x86\x02\n\x0fNumberDataPoint\x12;\n\nattributes\x18\x07 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\x13\n\tas_double\x18\x04 \x01(\x01H\x00\x12\x10\n\x06\x61s_int\x18\x06 \x01(\x10H\x00\x12;\n\texemplars\x18\x05 \x03(\x0b\x32(.opentelemetry.proto.metrics.v1.Exemplar\x12\r\n\x05\x66lags\x18\x08 \x01(\rB\x07\n\x05valueJ\x04\x08\x01\x10\x02\"\xe6\x02\n\x12HistogramDataPoint\x12;\n\nattributes\x18\t \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\r\n\x05\x63ount\x18\x04 \x01(\x06\x12\x10\n\x03sum\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\rbucket_counts\x18\x06 \x03(\x06\x12\x17\n\x0f\x65xplicit_bounds\x18\x07 \x03(\x01\x12;\n\texemplars\x18\x08 \x03(\x0b\x32(.opentelemetry.proto.metrics.v1.Exemplar\x12\r\n\x05\x66lags\x18\n \x01(\r\x12\x10\n\x03min\x18\x0b \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03max\x18\x0c \x01(\x01H\x02\x88\x01\x01\x42\x06\n\x04_sumB\x06\n\x04_minB\x06\n\x04_maxJ\x04\x08\x01\x10\x02\"\xda\x04\n\x1d\x45xponentialHistogramDataPoint\x12;\n\nattributes\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\r\n\x05\x63ount\x18\x04 \x01(\x06\x12\x10\n\x03sum\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\r\n\x05scale\x18\x06 \x01(\x11\x12\x12\n\nzero_count\x18\x07 \x01(\x06\x12W\n\x08positive\x18\x08 \x01(\x0b\x32\x45.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets\x12W\n\x08negative\x18\t \x01(\x0b\x32\x45.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets\x12\r\n\x05\x66lags\x18\n \x01(\r\x12;\n\texemplars\x18\x0b \x03(\x0b\x32(.opentelemetry.proto.metrics.v1.Exemplar\x12\x10\n\x03min\x18\x0c \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03max\x18\r \x01(\x01H\x02\x88\x01\x01\x12\x16\n\x0ezero_threshold\x18\x0e \x01(\x01\x1a\x30\n\x07\x42uckets\x12\x0e\n\x06offset\x18\x01 \x01(\x11\x12\x15\n\rbucket_counts\x18\x02 \x03(\x04\x42\x06\n\x04_sumB\x06\n\x04_minB\x06\n\x04_max\"\xc5\x02\n\x10SummaryDataPoint\x12;\n\nattributes\x18\x07 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\r\n\x05\x63ount\x18\x04 \x01(\x06\x12\x0b\n\x03sum\x18\x05 \x01(\x01\x12Y\n\x0fquantile_values\x18\x06 \x03(\x0b\x32@.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile\x12\r\n\x05\x66lags\x18\x08 \x01(\r\x1a\x32\n\x0fValueAtQuantile\x12\x10\n\x08quantile\x18\x01 \x01(\x01\x12\r\n\x05value\x18\x02 \x01(\x01J\x04\x08\x01\x10\x02\"\xc1\x01\n\x08\x45xemplar\x12\x44\n\x13\x66iltered_attributes\x18\x07 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x16\n\x0etime_unix_nano\x18\x02 \x01(\x06\x12\x13\n\tas_double\x18\x03 \x01(\x01H\x00\x12\x10\n\x06\x61s_int\x18\x06 \x01(\x10H\x00\x12\x0f\n\x07span_id\x18\x04 \x01(\x0c\x12\x10\n\x08trace_id\x18\x05 \x01(\x0c\x42\x07\n\x05valueJ\x04\x08\x01\x10\x02*\x8c\x01\n\x16\x41ggregationTemporality\x12\'\n#AGGREGATION_TEMPORALITY_UNSPECIFIED\x10\x00\x12!\n\x1d\x41GGREGATION_TEMPORALITY_DELTA\x10\x01\x12&\n\"AGGREGATION_TEMPORALITY_CUMULATIVE\x10\x02*^\n\x0e\x44\x61taPointFlags\x12\x1f\n\x1b\x44\x41TA_POINT_FLAGS_DO_NOT_USE\x10\x00\x12+\n\'DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK\x10\x01\x42\x7f\n!io.opentelemetry.proto.metrics.v1B\x0cMetricsProtoP\x01Z)go.opentelemetry.io/proto/otlp/metrics/v1\xaa\x02\x1eOpenTelemetry.Proto.Metrics.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-metrics/lib/opentelemetry/proto/resource/v1/resource_pb.rb b/exporter/otlp-metrics/lib/opentelemetry/proto/resource/v1/resource_pb.rb
index a10d5ad1f5..67abefd477 100644
--- a/exporter/otlp-metrics/lib/opentelemetry/proto/resource/v1/resource_pb.rb
+++ b/exporter/otlp-metrics/lib/opentelemetry/proto/resource/v1/resource_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/resource/v1/resource.proto
@@ -5,14 +6,11 @@
require 'opentelemetry/proto/common/v1/common_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/resource/v1/resource.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.resource.v1.Resource" do
- repeated :attributes, :message, 1, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 2
- end
- end
-end
+
+descriptor_data = "\n.opentelemetry/proto/resource/v1/resource.proto\x12\x1fopentelemetry.proto.resource.v1\x1a*opentelemetry/proto/common/v1/common.proto\"i\n\x08Resource\x12;\n\nattributes\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x02 \x01(\rB\x83\x01\n\"io.opentelemetry.proto.resource.v1B\rResourceProtoP\x01Z*go.opentelemetry.io/proto/otlp/resource/v1\xaa\x02\x1fOpenTelemetry.Proto.Resource.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-metrics/lib/opentelemetry/proto/trace/v1/trace_pb.rb b/exporter/otlp-metrics/lib/opentelemetry/proto/trace/v1/trace_pb.rb
index 48c5737352..cb45baa18b 100644
--- a/exporter/otlp-metrics/lib/opentelemetry/proto/trace/v1/trace_pb.rb
+++ b/exporter/otlp-metrics/lib/opentelemetry/proto/trace/v1/trace_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/trace/v1/trace.proto
@@ -6,70 +7,11 @@
require 'opentelemetry/proto/common/v1/common_pb'
require 'opentelemetry/proto/resource/v1/resource_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/trace/v1/trace.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.trace.v1.TracesData" do
- repeated :resource_spans, :message, 1, "opentelemetry.proto.trace.v1.ResourceSpans"
- end
- add_message "opentelemetry.proto.trace.v1.ResourceSpans" do
- optional :resource, :message, 1, "opentelemetry.proto.resource.v1.Resource"
- repeated :scope_spans, :message, 2, "opentelemetry.proto.trace.v1.ScopeSpans"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.trace.v1.ScopeSpans" do
- optional :scope, :message, 1, "opentelemetry.proto.common.v1.InstrumentationScope"
- repeated :spans, :message, 2, "opentelemetry.proto.trace.v1.Span"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.trace.v1.Span" do
- optional :trace_id, :bytes, 1
- optional :span_id, :bytes, 2
- optional :trace_state, :string, 3
- optional :parent_span_id, :bytes, 4
- optional :name, :string, 5
- optional :kind, :enum, 6, "opentelemetry.proto.trace.v1.Span.SpanKind"
- optional :start_time_unix_nano, :fixed64, 7
- optional :end_time_unix_nano, :fixed64, 8
- repeated :attributes, :message, 9, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 10
- repeated :events, :message, 11, "opentelemetry.proto.trace.v1.Span.Event"
- optional :dropped_events_count, :uint32, 12
- repeated :links, :message, 13, "opentelemetry.proto.trace.v1.Span.Link"
- optional :dropped_links_count, :uint32, 14
- optional :status, :message, 15, "opentelemetry.proto.trace.v1.Status"
- end
- add_message "opentelemetry.proto.trace.v1.Span.Event" do
- optional :time_unix_nano, :fixed64, 1
- optional :name, :string, 2
- repeated :attributes, :message, 3, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 4
- end
- add_message "opentelemetry.proto.trace.v1.Span.Link" do
- optional :trace_id, :bytes, 1
- optional :span_id, :bytes, 2
- optional :trace_state, :string, 3
- repeated :attributes, :message, 4, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 5
- end
- add_enum "opentelemetry.proto.trace.v1.Span.SpanKind" do
- value :SPAN_KIND_UNSPECIFIED, 0
- value :SPAN_KIND_INTERNAL, 1
- value :SPAN_KIND_SERVER, 2
- value :SPAN_KIND_CLIENT, 3
- value :SPAN_KIND_PRODUCER, 4
- value :SPAN_KIND_CONSUMER, 5
- end
- add_message "opentelemetry.proto.trace.v1.Status" do
- optional :message, :string, 2
- optional :code, :enum, 3, "opentelemetry.proto.trace.v1.Status.StatusCode"
- end
- add_enum "opentelemetry.proto.trace.v1.Status.StatusCode" do
- value :STATUS_CODE_UNSET, 0
- value :STATUS_CODE_OK, 1
- value :STATUS_CODE_ERROR, 2
- end
- end
-end
+
+descriptor_data = "\n(opentelemetry/proto/trace/v1/trace.proto\x12\x1copentelemetry.proto.trace.v1\x1a*opentelemetry/proto/common/v1/common.proto\x1a.opentelemetry/proto/resource/v1/resource.proto\"Q\n\nTracesData\x12\x43\n\x0eresource_spans\x18\x01 \x03(\x0b\x32+.opentelemetry.proto.trace.v1.ResourceSpans\"\xa7\x01\n\rResourceSpans\x12;\n\x08resource\x18\x01 \x01(\x0b\x32).opentelemetry.proto.resource.v1.Resource\x12=\n\x0bscope_spans\x18\x02 \x03(\x0b\x32(.opentelemetry.proto.trace.v1.ScopeSpans\x12\x12\n\nschema_url\x18\x03 \x01(\tJ\x06\x08\xe8\x07\x10\xe9\x07\"\x97\x01\n\nScopeSpans\x12\x42\n\x05scope\x18\x01 \x01(\x0b\x32\x33.opentelemetry.proto.common.v1.InstrumentationScope\x12\x31\n\x05spans\x18\x02 \x03(\x0b\x32\".opentelemetry.proto.trace.v1.Span\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\xe6\x07\n\x04Span\x12\x10\n\x08trace_id\x18\x01 \x01(\x0c\x12\x0f\n\x07span_id\x18\x02 \x01(\x0c\x12\x13\n\x0btrace_state\x18\x03 \x01(\t\x12\x16\n\x0eparent_span_id\x18\x04 \x01(\x0c\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x39\n\x04kind\x18\x06 \x01(\x0e\x32+.opentelemetry.proto.trace.v1.Span.SpanKind\x12\x1c\n\x14start_time_unix_nano\x18\x07 \x01(\x06\x12\x1a\n\x12\x65nd_time_unix_nano\x18\x08 \x01(\x06\x12;\n\nattributes\x18\t \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\n \x01(\r\x12\x38\n\x06\x65vents\x18\x0b \x03(\x0b\x32(.opentelemetry.proto.trace.v1.Span.Event\x12\x1c\n\x14\x64ropped_events_count\x18\x0c \x01(\r\x12\x36\n\x05links\x18\r \x03(\x0b\x32\'.opentelemetry.proto.trace.v1.Span.Link\x12\x1b\n\x13\x64ropped_links_count\x18\x0e \x01(\r\x12\x34\n\x06status\x18\x0f \x01(\x0b\x32$.opentelemetry.proto.trace.v1.Status\x1a\x8c\x01\n\x05\x45vent\x12\x16\n\x0etime_unix_nano\x18\x01 \x01(\x06\x12\x0c\n\x04name\x18\x02 \x01(\t\x12;\n\nattributes\x18\x03 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x04 \x01(\r\x1a\x9d\x01\n\x04Link\x12\x10\n\x08trace_id\x18\x01 \x01(\x0c\x12\x0f\n\x07span_id\x18\x02 \x01(\x0c\x12\x13\n\x0btrace_state\x18\x03 \x01(\t\x12;\n\nattributes\x18\x04 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x05 \x01(\r\"\x99\x01\n\x08SpanKind\x12\x19\n\x15SPAN_KIND_UNSPECIFIED\x10\x00\x12\x16\n\x12SPAN_KIND_INTERNAL\x10\x01\x12\x14\n\x10SPAN_KIND_SERVER\x10\x02\x12\x14\n\x10SPAN_KIND_CLIENT\x10\x03\x12\x16\n\x12SPAN_KIND_PRODUCER\x10\x04\x12\x16\n\x12SPAN_KIND_CONSUMER\x10\x05\"\xae\x01\n\x06Status\x12\x0f\n\x07message\x18\x02 \x01(\t\x12=\n\x04\x63ode\x18\x03 \x01(\x0e\x32/.opentelemetry.proto.trace.v1.Status.StatusCode\"N\n\nStatusCode\x12\x15\n\x11STATUS_CODE_UNSET\x10\x00\x12\x12\n\x0eSTATUS_CODE_OK\x10\x01\x12\x15\n\x11STATUS_CODE_ERROR\x10\x02J\x04\x08\x01\x10\x02\x42w\n\x1fio.opentelemetry.proto.trace.v1B\nTraceProtoP\x01Z\'go.opentelemetry.io/proto/otlp/trace/v1\xaa\x02\x1cOpenTelemetry.Proto.Trace.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp-metrics/opentelemetry-exporter-otlp-metrics.gemspec b/exporter/otlp-metrics/opentelemetry-exporter-otlp-metrics.gemspec
index 66eb57d918..655be1d78c 100644
--- a/exporter/otlp-metrics/opentelemetry-exporter-otlp-metrics.gemspec
+++ b/exporter/otlp-metrics/opentelemetry-exporter-otlp-metrics.gemspec
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
spec.required_ruby_version = '>= 3.0'
spec.add_dependency 'googleapis-common-protos-types', '~> 1.3'
- spec.add_dependency 'google-protobuf', '~> 3.14'
+ spec.add_dependency 'google-protobuf', '>= 3.18', '< 5.0'
spec.add_dependency 'opentelemetry-api', '~> 1.1'
spec.add_dependency 'opentelemetry-common', '~> 0.20'
spec.add_dependency 'opentelemetry-sdk', '~> 1.2'
diff --git a/exporter/otlp/CHANGELOG.md b/exporter/otlp/CHANGELOG.md
index 7cae65894b..88ee03a7dc 100644
--- a/exporter/otlp/CHANGELOG.md
+++ b/exporter/otlp/CHANGELOG.md
@@ -1,5 +1,17 @@
# Release History: opentelemetry-exporter-otlp
+### v0.28.1 / 2024-07-24
+
+* ADDED: Improve SSL error logging.
+
+### v0.28.0 / 2024-06-19
+
+* ADDED: Bump google_protobuf >=3.18, < 5.a
+
+### v0.27.0 / 2024-04-19
+
+* ADDED: Add stats for serialization time in otlp exporter
+
### v0.26.3 / 2024-02-01
* FIXED: do not log request failure in backoff?
diff --git a/exporter/otlp/lib/opentelemetry/exporter/otlp/exporter.rb b/exporter/otlp/lib/opentelemetry/exporter/otlp/exporter.rb
index 55d8fae054..1f32c4bd19 100644
--- a/exporter/otlp/lib/opentelemetry/exporter/otlp/exporter.rb
+++ b/exporter/otlp/lib/opentelemetry/exporter/otlp/exporter.rb
@@ -184,8 +184,9 @@ def send_bytes(bytes, timeout:) # rubocop:disable Metrics/CyclomaticComplexity,
rescue Net::OpenTimeout, Net::ReadTimeout
retry if backoff?(retry_count: retry_count += 1, reason: 'timeout')
return FAILURE
- rescue OpenSSL::SSL::SSLError
+ rescue OpenSSL::SSL::SSLError => e
retry if backoff?(retry_count: retry_count += 1, reason: 'openssl_error')
+ OpenTelemetry.handle_error(exception: e, message: 'SSL error in OTLP::Exporter#send_bytes')
return FAILURE
rescue SocketError
retry if backoff?(retry_count: retry_count += 1, reason: 'socket_error')
@@ -271,6 +272,7 @@ def backoff?(retry_count:, reason:, retry_after: nil) # rubocop:disable Metrics/
end
def encode(span_data) # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity
+ start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
Opentelemetry::Proto::Collector::Trace::V1::ExportTraceServiceRequest.encode(
Opentelemetry::Proto::Collector::Trace::V1::ExportTraceServiceRequest.new(
resource_spans: span_data
@@ -298,6 +300,11 @@ def encode(span_data) # rubocop:disable Metrics/MethodLength, Metrics/Cyclomatic
rescue StandardError => e
OpenTelemetry.handle_error(exception: e, message: 'unexpected error in OTLP::Exporter#encode')
nil
+ ensure
+ stop = Process.clock_gettime(Process::CLOCK_MONOTONIC)
+ duration_ms = 1000.0 * (stop - start)
+ @metrics_reporter.record_value('otel.otlp_exporter.encode_duration',
+ value: duration_ms)
end
def as_otlp_span(span_data) # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
diff --git a/exporter/otlp/lib/opentelemetry/exporter/otlp/version.rb b/exporter/otlp/lib/opentelemetry/exporter/otlp/version.rb
index 35e8a783b7..b12e7e7de2 100644
--- a/exporter/otlp/lib/opentelemetry/exporter/otlp/version.rb
+++ b/exporter/otlp/lib/opentelemetry/exporter/otlp/version.rb
@@ -8,7 +8,7 @@ module OpenTelemetry
module Exporter
module OTLP
## Current OpenTelemetry OTLP exporter version
- VERSION = '0.26.3'
+ VERSION = '0.28.1'
end
end
end
diff --git a/exporter/otlp/lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb b/exporter/otlp/lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb
index ceeb940e82..d243dfbc07 100644
--- a/exporter/otlp/lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb
+++ b/exporter/otlp/lib/opentelemetry/proto/collector/logs/v1/logs_service_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/collector/logs/v1/logs_service.proto
@@ -5,20 +6,11 @@
require 'opentelemetry/proto/logs/v1/logs_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/collector/logs/v1/logs_service.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest" do
- repeated :resource_logs, :message, 1, "opentelemetry.proto.logs.v1.ResourceLogs"
- end
- add_message "opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse" do
- optional :partial_success, :message, 1, "opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess"
- end
- add_message "opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess" do
- optional :rejected_log_records, :int64, 1
- optional :error_message, :string, 2
- end
- end
-end
+
+descriptor_data = "\n8opentelemetry/proto/collector/logs/v1/logs_service.proto\x12%opentelemetry.proto.collector.logs.v1\x1a&opentelemetry/proto/logs/v1/logs.proto\"\\\n\x18\x45xportLogsServiceRequest\x12@\n\rresource_logs\x18\x01 \x03(\x0b\x32).opentelemetry.proto.logs.v1.ResourceLogs\"u\n\x19\x45xportLogsServiceResponse\x12X\n\x0fpartial_success\x18\x01 \x01(\x0b\x32?.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess\"O\n\x18\x45xportLogsPartialSuccess\x12\x1c\n\x14rejected_log_records\x18\x01 \x01(\x03\x12\x15\n\rerror_message\x18\x02 \x01(\t2\x9d\x01\n\x0bLogsService\x12\x8d\x01\n\x06\x45xport\x12?.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest\x1a@.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse\"\x00\x42\x98\x01\n(io.opentelemetry.proto.collector.logs.v1B\x10LogsServiceProtoP\x01Z0go.opentelemetry.io/proto/otlp/collector/logs/v1\xaa\x02%OpenTelemetry.Proto.Collector.Logs.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb b/exporter/otlp/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb
index 15654a2cfd..637fce86ce 100644
--- a/exporter/otlp/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb
+++ b/exporter/otlp/lib/opentelemetry/proto/collector/metrics/v1/metrics_service_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/collector/metrics/v1/metrics_service.proto
@@ -5,20 +6,11 @@
require 'opentelemetry/proto/metrics/v1/metrics_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/collector/metrics/v1/metrics_service.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest" do
- repeated :resource_metrics, :message, 1, "opentelemetry.proto.metrics.v1.ResourceMetrics"
- end
- add_message "opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse" do
- optional :partial_success, :message, 1, "opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess"
- end
- add_message "opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess" do
- optional :rejected_data_points, :int64, 1
- optional :error_message, :string, 2
- end
- end
-end
+
+descriptor_data = "\n>opentelemetry/proto/collector/metrics/v1/metrics_service.proto\x12(opentelemetry.proto.collector.metrics.v1\x1a,opentelemetry/proto/metrics/v1/metrics.proto\"h\n\x1b\x45xportMetricsServiceRequest\x12I\n\x10resource_metrics\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.ResourceMetrics\"~\n\x1c\x45xportMetricsServiceResponse\x12^\n\x0fpartial_success\x18\x01 \x01(\x0b\x32\x45.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess\"R\n\x1b\x45xportMetricsPartialSuccess\x12\x1c\n\x14rejected_data_points\x18\x01 \x01(\x03\x12\x15\n\rerror_message\x18\x02 \x01(\t2\xac\x01\n\x0eMetricsService\x12\x99\x01\n\x06\x45xport\x12\x45.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest\x1a\x46.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse\"\x00\x42\xa4\x01\n+io.opentelemetry.proto.collector.metrics.v1B\x13MetricsServiceProtoP\x01Z3go.opentelemetry.io/proto/otlp/collector/metrics/v1\xaa\x02(OpenTelemetry.Proto.Collector.Metrics.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp/lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb b/exporter/otlp/lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb
index 4d0d62f22e..95f802c0f6 100644
--- a/exporter/otlp/lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb
+++ b/exporter/otlp/lib/opentelemetry/proto/collector/trace/v1/trace_service_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/collector/trace/v1/trace_service.proto
@@ -5,20 +6,11 @@
require 'opentelemetry/proto/trace/v1/trace_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/collector/trace/v1/trace_service.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest" do
- repeated :resource_spans, :message, 1, "opentelemetry.proto.trace.v1.ResourceSpans"
- end
- add_message "opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse" do
- optional :partial_success, :message, 1, "opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess"
- end
- add_message "opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess" do
- optional :rejected_spans, :int64, 1
- optional :error_message, :string, 2
- end
- end
-end
+
+descriptor_data = "\n:opentelemetry/proto/collector/trace/v1/trace_service.proto\x12&opentelemetry.proto.collector.trace.v1\x1a(opentelemetry/proto/trace/v1/trace.proto\"`\n\x19\x45xportTraceServiceRequest\x12\x43\n\x0eresource_spans\x18\x01 \x03(\x0b\x32+.opentelemetry.proto.trace.v1.ResourceSpans\"x\n\x1a\x45xportTraceServiceResponse\x12Z\n\x0fpartial_success\x18\x01 \x01(\x0b\x32\x41.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess\"J\n\x19\x45xportTracePartialSuccess\x12\x16\n\x0erejected_spans\x18\x01 \x01(\x03\x12\x15\n\rerror_message\x18\x02 \x01(\t2\xa2\x01\n\x0cTraceService\x12\x91\x01\n\x06\x45xport\x12\x41.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest\x1a\x42.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse\"\x00\x42\x9c\x01\n)io.opentelemetry.proto.collector.trace.v1B\x11TraceServiceProtoP\x01Z1go.opentelemetry.io/proto/otlp/collector/trace/v1\xaa\x02&OpenTelemetry.Proto.Collector.Trace.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp/lib/opentelemetry/proto/common/v1/common_pb.rb b/exporter/otlp/lib/opentelemetry/proto/common/v1/common_pb.rb
index a49580ec51..a9a74ad335 100644
--- a/exporter/otlp/lib/opentelemetry/proto/common/v1/common_pb.rb
+++ b/exporter/otlp/lib/opentelemetry/proto/common/v1/common_pb.rb
@@ -1,39 +1,14 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/common/v1/common.proto
require 'google/protobuf'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/common/v1/common.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.common.v1.AnyValue" do
- oneof :value do
- optional :string_value, :string, 1
- optional :bool_value, :bool, 2
- optional :int_value, :int64, 3
- optional :double_value, :double, 4
- optional :array_value, :message, 5, "opentelemetry.proto.common.v1.ArrayValue"
- optional :kvlist_value, :message, 6, "opentelemetry.proto.common.v1.KeyValueList"
- optional :bytes_value, :bytes, 7
- end
- end
- add_message "opentelemetry.proto.common.v1.ArrayValue" do
- repeated :values, :message, 1, "opentelemetry.proto.common.v1.AnyValue"
- end
- add_message "opentelemetry.proto.common.v1.KeyValueList" do
- repeated :values, :message, 1, "opentelemetry.proto.common.v1.KeyValue"
- end
- add_message "opentelemetry.proto.common.v1.KeyValue" do
- optional :key, :string, 1
- optional :value, :message, 2, "opentelemetry.proto.common.v1.AnyValue"
- end
- add_message "opentelemetry.proto.common.v1.InstrumentationScope" do
- optional :name, :string, 1
- optional :version, :string, 2
- repeated :attributes, :message, 3, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 4
- end
- end
-end
+
+descriptor_data = "\n*opentelemetry/proto/common/v1/common.proto\x12\x1dopentelemetry.proto.common.v1\"\x8c\x02\n\x08\x41nyValue\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x13\n\tint_value\x18\x03 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x04 \x01(\x01H\x00\x12@\n\x0b\x61rray_value\x18\x05 \x01(\x0b\x32).opentelemetry.proto.common.v1.ArrayValueH\x00\x12\x43\n\x0ckvlist_value\x18\x06 \x01(\x0b\x32+.opentelemetry.proto.common.v1.KeyValueListH\x00\x12\x15\n\x0b\x62ytes_value\x18\x07 \x01(\x0cH\x00\x42\x07\n\x05value\"E\n\nArrayValue\x12\x37\n\x06values\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.AnyValue\"G\n\x0cKeyValueList\x12\x37\n\x06values\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\"O\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.opentelemetry.proto.common.v1.AnyValue\"\x94\x01\n\x14InstrumentationScope\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12;\n\nattributes\x18\x03 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x04 \x01(\rB{\n io.opentelemetry.proto.common.v1B\x0b\x43ommonProtoP\x01Z(go.opentelemetry.io/proto/otlp/common/v1\xaa\x02\x1dOpenTelemetry.Proto.Common.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp/lib/opentelemetry/proto/logs/v1/logs_pb.rb b/exporter/otlp/lib/opentelemetry/proto/logs/v1/logs_pb.rb
index 2419b86bfa..ba19937d1a 100644
--- a/exporter/otlp/lib/opentelemetry/proto/logs/v1/logs_pb.rb
+++ b/exporter/otlp/lib/opentelemetry/proto/logs/v1/logs_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/logs/v1/logs.proto
@@ -6,66 +7,11 @@
require 'opentelemetry/proto/common/v1/common_pb'
require 'opentelemetry/proto/resource/v1/resource_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/logs/v1/logs.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.logs.v1.LogsData" do
- repeated :resource_logs, :message, 1, "opentelemetry.proto.logs.v1.ResourceLogs"
- end
- add_message "opentelemetry.proto.logs.v1.ResourceLogs" do
- optional :resource, :message, 1, "opentelemetry.proto.resource.v1.Resource"
- repeated :scope_logs, :message, 2, "opentelemetry.proto.logs.v1.ScopeLogs"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.logs.v1.ScopeLogs" do
- optional :scope, :message, 1, "opentelemetry.proto.common.v1.InstrumentationScope"
- repeated :log_records, :message, 2, "opentelemetry.proto.logs.v1.LogRecord"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.logs.v1.LogRecord" do
- optional :time_unix_nano, :fixed64, 1
- optional :observed_time_unix_nano, :fixed64, 11
- optional :severity_number, :enum, 2, "opentelemetry.proto.logs.v1.SeverityNumber"
- optional :severity_text, :string, 3
- optional :body, :message, 5, "opentelemetry.proto.common.v1.AnyValue"
- repeated :attributes, :message, 6, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 7
- optional :flags, :fixed32, 8
- optional :trace_id, :bytes, 9
- optional :span_id, :bytes, 10
- end
- add_enum "opentelemetry.proto.logs.v1.SeverityNumber" do
- value :SEVERITY_NUMBER_UNSPECIFIED, 0
- value :SEVERITY_NUMBER_TRACE, 1
- value :SEVERITY_NUMBER_TRACE2, 2
- value :SEVERITY_NUMBER_TRACE3, 3
- value :SEVERITY_NUMBER_TRACE4, 4
- value :SEVERITY_NUMBER_DEBUG, 5
- value :SEVERITY_NUMBER_DEBUG2, 6
- value :SEVERITY_NUMBER_DEBUG3, 7
- value :SEVERITY_NUMBER_DEBUG4, 8
- value :SEVERITY_NUMBER_INFO, 9
- value :SEVERITY_NUMBER_INFO2, 10
- value :SEVERITY_NUMBER_INFO3, 11
- value :SEVERITY_NUMBER_INFO4, 12
- value :SEVERITY_NUMBER_WARN, 13
- value :SEVERITY_NUMBER_WARN2, 14
- value :SEVERITY_NUMBER_WARN3, 15
- value :SEVERITY_NUMBER_WARN4, 16
- value :SEVERITY_NUMBER_ERROR, 17
- value :SEVERITY_NUMBER_ERROR2, 18
- value :SEVERITY_NUMBER_ERROR3, 19
- value :SEVERITY_NUMBER_ERROR4, 20
- value :SEVERITY_NUMBER_FATAL, 21
- value :SEVERITY_NUMBER_FATAL2, 22
- value :SEVERITY_NUMBER_FATAL3, 23
- value :SEVERITY_NUMBER_FATAL4, 24
- end
- add_enum "opentelemetry.proto.logs.v1.LogRecordFlags" do
- value :LOG_RECORD_FLAGS_DO_NOT_USE, 0
- value :LOG_RECORD_FLAGS_TRACE_FLAGS_MASK, 255
- end
- end
-end
+
+descriptor_data = "\n&opentelemetry/proto/logs/v1/logs.proto\x12\x1bopentelemetry.proto.logs.v1\x1a*opentelemetry/proto/common/v1/common.proto\x1a.opentelemetry/proto/resource/v1/resource.proto\"L\n\x08LogsData\x12@\n\rresource_logs\x18\x01 \x03(\x0b\x32).opentelemetry.proto.logs.v1.ResourceLogs\"\xa3\x01\n\x0cResourceLogs\x12;\n\x08resource\x18\x01 \x01(\x0b\x32).opentelemetry.proto.resource.v1.Resource\x12:\n\nscope_logs\x18\x02 \x03(\x0b\x32&.opentelemetry.proto.logs.v1.ScopeLogs\x12\x12\n\nschema_url\x18\x03 \x01(\tJ\x06\x08\xe8\x07\x10\xe9\x07\"\xa0\x01\n\tScopeLogs\x12\x42\n\x05scope\x18\x01 \x01(\x0b\x32\x33.opentelemetry.proto.common.v1.InstrumentationScope\x12;\n\x0blog_records\x18\x02 \x03(\x0b\x32&.opentelemetry.proto.logs.v1.LogRecord\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\xef\x02\n\tLogRecord\x12\x16\n\x0etime_unix_nano\x18\x01 \x01(\x06\x12\x1f\n\x17observed_time_unix_nano\x18\x0b \x01(\x06\x12\x44\n\x0fseverity_number\x18\x02 \x01(\x0e\x32+.opentelemetry.proto.logs.v1.SeverityNumber\x12\x15\n\rseverity_text\x18\x03 \x01(\t\x12\x35\n\x04\x62ody\x18\x05 \x01(\x0b\x32\'.opentelemetry.proto.common.v1.AnyValue\x12;\n\nattributes\x18\x06 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x07 \x01(\r\x12\r\n\x05\x66lags\x18\x08 \x01(\x07\x12\x10\n\x08trace_id\x18\t \x01(\x0c\x12\x0f\n\x07span_id\x18\n \x01(\x0cJ\x04\x08\x04\x10\x05*\xc3\x05\n\x0eSeverityNumber\x12\x1f\n\x1bSEVERITY_NUMBER_UNSPECIFIED\x10\x00\x12\x19\n\x15SEVERITY_NUMBER_TRACE\x10\x01\x12\x1a\n\x16SEVERITY_NUMBER_TRACE2\x10\x02\x12\x1a\n\x16SEVERITY_NUMBER_TRACE3\x10\x03\x12\x1a\n\x16SEVERITY_NUMBER_TRACE4\x10\x04\x12\x19\n\x15SEVERITY_NUMBER_DEBUG\x10\x05\x12\x1a\n\x16SEVERITY_NUMBER_DEBUG2\x10\x06\x12\x1a\n\x16SEVERITY_NUMBER_DEBUG3\x10\x07\x12\x1a\n\x16SEVERITY_NUMBER_DEBUG4\x10\x08\x12\x18\n\x14SEVERITY_NUMBER_INFO\x10\t\x12\x19\n\x15SEVERITY_NUMBER_INFO2\x10\n\x12\x19\n\x15SEVERITY_NUMBER_INFO3\x10\x0b\x12\x19\n\x15SEVERITY_NUMBER_INFO4\x10\x0c\x12\x18\n\x14SEVERITY_NUMBER_WARN\x10\r\x12\x19\n\x15SEVERITY_NUMBER_WARN2\x10\x0e\x12\x19\n\x15SEVERITY_NUMBER_WARN3\x10\x0f\x12\x19\n\x15SEVERITY_NUMBER_WARN4\x10\x10\x12\x19\n\x15SEVERITY_NUMBER_ERROR\x10\x11\x12\x1a\n\x16SEVERITY_NUMBER_ERROR2\x10\x12\x12\x1a\n\x16SEVERITY_NUMBER_ERROR3\x10\x13\x12\x1a\n\x16SEVERITY_NUMBER_ERROR4\x10\x14\x12\x19\n\x15SEVERITY_NUMBER_FATAL\x10\x15\x12\x1a\n\x16SEVERITY_NUMBER_FATAL2\x10\x16\x12\x1a\n\x16SEVERITY_NUMBER_FATAL3\x10\x17\x12\x1a\n\x16SEVERITY_NUMBER_FATAL4\x10\x18*Y\n\x0eLogRecordFlags\x12\x1f\n\x1bLOG_RECORD_FLAGS_DO_NOT_USE\x10\x00\x12&\n!LOG_RECORD_FLAGS_TRACE_FLAGS_MASK\x10\xff\x01\x42s\n\x1eio.opentelemetry.proto.logs.v1B\tLogsProtoP\x01Z&go.opentelemetry.io/proto/otlp/logs/v1\xaa\x02\x1bOpenTelemetry.Proto.Logs.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp/lib/opentelemetry/proto/metrics/v1/metrics_pb.rb b/exporter/otlp/lib/opentelemetry/proto/metrics/v1/metrics_pb.rb
index 743381736b..ada5f22e09 100644
--- a/exporter/otlp/lib/opentelemetry/proto/metrics/v1/metrics_pb.rb
+++ b/exporter/otlp/lib/opentelemetry/proto/metrics/v1/metrics_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/metrics/v1/metrics.proto
@@ -6,130 +7,11 @@
require 'opentelemetry/proto/common/v1/common_pb'
require 'opentelemetry/proto/resource/v1/resource_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/metrics/v1/metrics.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.metrics.v1.MetricsData" do
- repeated :resource_metrics, :message, 1, "opentelemetry.proto.metrics.v1.ResourceMetrics"
- end
- add_message "opentelemetry.proto.metrics.v1.ResourceMetrics" do
- optional :resource, :message, 1, "opentelemetry.proto.resource.v1.Resource"
- repeated :scope_metrics, :message, 2, "opentelemetry.proto.metrics.v1.ScopeMetrics"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.metrics.v1.ScopeMetrics" do
- optional :scope, :message, 1, "opentelemetry.proto.common.v1.InstrumentationScope"
- repeated :metrics, :message, 2, "opentelemetry.proto.metrics.v1.Metric"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.metrics.v1.Metric" do
- optional :name, :string, 1
- optional :description, :string, 2
- optional :unit, :string, 3
- oneof :data do
- optional :gauge, :message, 5, "opentelemetry.proto.metrics.v1.Gauge"
- optional :sum, :message, 7, "opentelemetry.proto.metrics.v1.Sum"
- optional :histogram, :message, 9, "opentelemetry.proto.metrics.v1.Histogram"
- optional :exponential_histogram, :message, 10, "opentelemetry.proto.metrics.v1.ExponentialHistogram"
- optional :summary, :message, 11, "opentelemetry.proto.metrics.v1.Summary"
- end
- end
- add_message "opentelemetry.proto.metrics.v1.Gauge" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.NumberDataPoint"
- end
- add_message "opentelemetry.proto.metrics.v1.Sum" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.NumberDataPoint"
- optional :aggregation_temporality, :enum, 2, "opentelemetry.proto.metrics.v1.AggregationTemporality"
- optional :is_monotonic, :bool, 3
- end
- add_message "opentelemetry.proto.metrics.v1.Histogram" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.HistogramDataPoint"
- optional :aggregation_temporality, :enum, 2, "opentelemetry.proto.metrics.v1.AggregationTemporality"
- end
- add_message "opentelemetry.proto.metrics.v1.ExponentialHistogram" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint"
- optional :aggregation_temporality, :enum, 2, "opentelemetry.proto.metrics.v1.AggregationTemporality"
- end
- add_message "opentelemetry.proto.metrics.v1.Summary" do
- repeated :data_points, :message, 1, "opentelemetry.proto.metrics.v1.SummaryDataPoint"
- end
- add_message "opentelemetry.proto.metrics.v1.NumberDataPoint" do
- repeated :attributes, :message, 7, "opentelemetry.proto.common.v1.KeyValue"
- optional :start_time_unix_nano, :fixed64, 2
- optional :time_unix_nano, :fixed64, 3
- repeated :exemplars, :message, 5, "opentelemetry.proto.metrics.v1.Exemplar"
- optional :flags, :uint32, 8
- oneof :value do
- optional :as_double, :double, 4
- optional :as_int, :sfixed64, 6
- end
- end
- add_message "opentelemetry.proto.metrics.v1.HistogramDataPoint" do
- repeated :attributes, :message, 9, "opentelemetry.proto.common.v1.KeyValue"
- optional :start_time_unix_nano, :fixed64, 2
- optional :time_unix_nano, :fixed64, 3
- optional :count, :fixed64, 4
- proto3_optional :sum, :double, 5
- repeated :bucket_counts, :fixed64, 6
- repeated :explicit_bounds, :double, 7
- repeated :exemplars, :message, 8, "opentelemetry.proto.metrics.v1.Exemplar"
- optional :flags, :uint32, 10
- proto3_optional :min, :double, 11
- proto3_optional :max, :double, 12
- end
- add_message "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint" do
- repeated :attributes, :message, 1, "opentelemetry.proto.common.v1.KeyValue"
- optional :start_time_unix_nano, :fixed64, 2
- optional :time_unix_nano, :fixed64, 3
- optional :count, :fixed64, 4
- proto3_optional :sum, :double, 5
- optional :scale, :sint32, 6
- optional :zero_count, :fixed64, 7
- optional :positive, :message, 8, "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets"
- optional :negative, :message, 9, "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets"
- optional :flags, :uint32, 10
- repeated :exemplars, :message, 11, "opentelemetry.proto.metrics.v1.Exemplar"
- proto3_optional :min, :double, 12
- proto3_optional :max, :double, 13
- optional :zero_threshold, :double, 14
- end
- add_message "opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets" do
- optional :offset, :sint32, 1
- repeated :bucket_counts, :uint64, 2
- end
- add_message "opentelemetry.proto.metrics.v1.SummaryDataPoint" do
- repeated :attributes, :message, 7, "opentelemetry.proto.common.v1.KeyValue"
- optional :start_time_unix_nano, :fixed64, 2
- optional :time_unix_nano, :fixed64, 3
- optional :count, :fixed64, 4
- optional :sum, :double, 5
- repeated :quantile_values, :message, 6, "opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile"
- optional :flags, :uint32, 8
- end
- add_message "opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile" do
- optional :quantile, :double, 1
- optional :value, :double, 2
- end
- add_message "opentelemetry.proto.metrics.v1.Exemplar" do
- repeated :filtered_attributes, :message, 7, "opentelemetry.proto.common.v1.KeyValue"
- optional :time_unix_nano, :fixed64, 2
- optional :span_id, :bytes, 4
- optional :trace_id, :bytes, 5
- oneof :value do
- optional :as_double, :double, 3
- optional :as_int, :sfixed64, 6
- end
- end
- add_enum "opentelemetry.proto.metrics.v1.AggregationTemporality" do
- value :AGGREGATION_TEMPORALITY_UNSPECIFIED, 0
- value :AGGREGATION_TEMPORALITY_DELTA, 1
- value :AGGREGATION_TEMPORALITY_CUMULATIVE, 2
- end
- add_enum "opentelemetry.proto.metrics.v1.DataPointFlags" do
- value :DATA_POINT_FLAGS_DO_NOT_USE, 0
- value :DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK, 1
- end
- end
-end
+
+descriptor_data = "\n,opentelemetry/proto/metrics/v1/metrics.proto\x12\x1eopentelemetry.proto.metrics.v1\x1a*opentelemetry/proto/common/v1/common.proto\x1a.opentelemetry/proto/resource/v1/resource.proto\"X\n\x0bMetricsData\x12I\n\x10resource_metrics\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.ResourceMetrics\"\xaf\x01\n\x0fResourceMetrics\x12;\n\x08resource\x18\x01 \x01(\x0b\x32).opentelemetry.proto.resource.v1.Resource\x12\x43\n\rscope_metrics\x18\x02 \x03(\x0b\x32,.opentelemetry.proto.metrics.v1.ScopeMetrics\x12\x12\n\nschema_url\x18\x03 \x01(\tJ\x06\x08\xe8\x07\x10\xe9\x07\"\x9f\x01\n\x0cScopeMetrics\x12\x42\n\x05scope\x18\x01 \x01(\x0b\x32\x33.opentelemetry.proto.common.v1.InstrumentationScope\x12\x37\n\x07metrics\x18\x02 \x03(\x0b\x32&.opentelemetry.proto.metrics.v1.Metric\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\x92\x03\n\x06Metric\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0c\n\x04unit\x18\x03 \x01(\t\x12\x36\n\x05gauge\x18\x05 \x01(\x0b\x32%.opentelemetry.proto.metrics.v1.GaugeH\x00\x12\x32\n\x03sum\x18\x07 \x01(\x0b\x32#.opentelemetry.proto.metrics.v1.SumH\x00\x12>\n\thistogram\x18\t \x01(\x0b\x32).opentelemetry.proto.metrics.v1.HistogramH\x00\x12U\n\x15\x65xponential_histogram\x18\n \x01(\x0b\x32\x34.opentelemetry.proto.metrics.v1.ExponentialHistogramH\x00\x12:\n\x07summary\x18\x0b \x01(\x0b\x32\'.opentelemetry.proto.metrics.v1.SummaryH\x00\x42\x06\n\x04\x64\x61taJ\x04\x08\x04\x10\x05J\x04\x08\x06\x10\x07J\x04\x08\x08\x10\t\"M\n\x05Gauge\x12\x44\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.NumberDataPoint\"\xba\x01\n\x03Sum\x12\x44\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32/.opentelemetry.proto.metrics.v1.NumberDataPoint\x12W\n\x17\x61ggregation_temporality\x18\x02 \x01(\x0e\x32\x36.opentelemetry.proto.metrics.v1.AggregationTemporality\x12\x14\n\x0cis_monotonic\x18\x03 \x01(\x08\"\xad\x01\n\tHistogram\x12G\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32\x32.opentelemetry.proto.metrics.v1.HistogramDataPoint\x12W\n\x17\x61ggregation_temporality\x18\x02 \x01(\x0e\x32\x36.opentelemetry.proto.metrics.v1.AggregationTemporality\"\xc3\x01\n\x14\x45xponentialHistogram\x12R\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32=.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint\x12W\n\x17\x61ggregation_temporality\x18\x02 \x01(\x0e\x32\x36.opentelemetry.proto.metrics.v1.AggregationTemporality\"P\n\x07Summary\x12\x45\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32\x30.opentelemetry.proto.metrics.v1.SummaryDataPoint\"\x86\x02\n\x0fNumberDataPoint\x12;\n\nattributes\x18\x07 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\x13\n\tas_double\x18\x04 \x01(\x01H\x00\x12\x10\n\x06\x61s_int\x18\x06 \x01(\x10H\x00\x12;\n\texemplars\x18\x05 \x03(\x0b\x32(.opentelemetry.proto.metrics.v1.Exemplar\x12\r\n\x05\x66lags\x18\x08 \x01(\rB\x07\n\x05valueJ\x04\x08\x01\x10\x02\"\xe6\x02\n\x12HistogramDataPoint\x12;\n\nattributes\x18\t \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\r\n\x05\x63ount\x18\x04 \x01(\x06\x12\x10\n\x03sum\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\rbucket_counts\x18\x06 \x03(\x06\x12\x17\n\x0f\x65xplicit_bounds\x18\x07 \x03(\x01\x12;\n\texemplars\x18\x08 \x03(\x0b\x32(.opentelemetry.proto.metrics.v1.Exemplar\x12\r\n\x05\x66lags\x18\n \x01(\r\x12\x10\n\x03min\x18\x0b \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03max\x18\x0c \x01(\x01H\x02\x88\x01\x01\x42\x06\n\x04_sumB\x06\n\x04_minB\x06\n\x04_maxJ\x04\x08\x01\x10\x02\"\xda\x04\n\x1d\x45xponentialHistogramDataPoint\x12;\n\nattributes\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\r\n\x05\x63ount\x18\x04 \x01(\x06\x12\x10\n\x03sum\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\r\n\x05scale\x18\x06 \x01(\x11\x12\x12\n\nzero_count\x18\x07 \x01(\x06\x12W\n\x08positive\x18\x08 \x01(\x0b\x32\x45.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets\x12W\n\x08negative\x18\t \x01(\x0b\x32\x45.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets\x12\r\n\x05\x66lags\x18\n \x01(\r\x12;\n\texemplars\x18\x0b \x03(\x0b\x32(.opentelemetry.proto.metrics.v1.Exemplar\x12\x10\n\x03min\x18\x0c \x01(\x01H\x01\x88\x01\x01\x12\x10\n\x03max\x18\r \x01(\x01H\x02\x88\x01\x01\x12\x16\n\x0ezero_threshold\x18\x0e \x01(\x01\x1a\x30\n\x07\x42uckets\x12\x0e\n\x06offset\x18\x01 \x01(\x11\x12\x15\n\rbucket_counts\x18\x02 \x03(\x04\x42\x06\n\x04_sumB\x06\n\x04_minB\x06\n\x04_max\"\xc5\x02\n\x10SummaryDataPoint\x12;\n\nattributes\x18\x07 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x1c\n\x14start_time_unix_nano\x18\x02 \x01(\x06\x12\x16\n\x0etime_unix_nano\x18\x03 \x01(\x06\x12\r\n\x05\x63ount\x18\x04 \x01(\x06\x12\x0b\n\x03sum\x18\x05 \x01(\x01\x12Y\n\x0fquantile_values\x18\x06 \x03(\x0b\x32@.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile\x12\r\n\x05\x66lags\x18\x08 \x01(\r\x1a\x32\n\x0fValueAtQuantile\x12\x10\n\x08quantile\x18\x01 \x01(\x01\x12\r\n\x05value\x18\x02 \x01(\x01J\x04\x08\x01\x10\x02\"\xc1\x01\n\x08\x45xemplar\x12\x44\n\x13\x66iltered_attributes\x18\x07 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12\x16\n\x0etime_unix_nano\x18\x02 \x01(\x06\x12\x13\n\tas_double\x18\x03 \x01(\x01H\x00\x12\x10\n\x06\x61s_int\x18\x06 \x01(\x10H\x00\x12\x0f\n\x07span_id\x18\x04 \x01(\x0c\x12\x10\n\x08trace_id\x18\x05 \x01(\x0c\x42\x07\n\x05valueJ\x04\x08\x01\x10\x02*\x8c\x01\n\x16\x41ggregationTemporality\x12\'\n#AGGREGATION_TEMPORALITY_UNSPECIFIED\x10\x00\x12!\n\x1d\x41GGREGATION_TEMPORALITY_DELTA\x10\x01\x12&\n\"AGGREGATION_TEMPORALITY_CUMULATIVE\x10\x02*^\n\x0e\x44\x61taPointFlags\x12\x1f\n\x1b\x44\x41TA_POINT_FLAGS_DO_NOT_USE\x10\x00\x12+\n\'DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK\x10\x01\x42\x7f\n!io.opentelemetry.proto.metrics.v1B\x0cMetricsProtoP\x01Z)go.opentelemetry.io/proto/otlp/metrics/v1\xaa\x02\x1eOpenTelemetry.Proto.Metrics.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp/lib/opentelemetry/proto/resource/v1/resource_pb.rb b/exporter/otlp/lib/opentelemetry/proto/resource/v1/resource_pb.rb
index a10d5ad1f5..67abefd477 100644
--- a/exporter/otlp/lib/opentelemetry/proto/resource/v1/resource_pb.rb
+++ b/exporter/otlp/lib/opentelemetry/proto/resource/v1/resource_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/resource/v1/resource.proto
@@ -5,14 +6,11 @@
require 'opentelemetry/proto/common/v1/common_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/resource/v1/resource.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.resource.v1.Resource" do
- repeated :attributes, :message, 1, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 2
- end
- end
-end
+
+descriptor_data = "\n.opentelemetry/proto/resource/v1/resource.proto\x12\x1fopentelemetry.proto.resource.v1\x1a*opentelemetry/proto/common/v1/common.proto\"i\n\x08Resource\x12;\n\nattributes\x18\x01 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x02 \x01(\rB\x83\x01\n\"io.opentelemetry.proto.resource.v1B\rResourceProtoP\x01Z*go.opentelemetry.io/proto/otlp/resource/v1\xaa\x02\x1fOpenTelemetry.Proto.Resource.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp/lib/opentelemetry/proto/trace/v1/trace_pb.rb b/exporter/otlp/lib/opentelemetry/proto/trace/v1/trace_pb.rb
index 48c5737352..cb45baa18b 100644
--- a/exporter/otlp/lib/opentelemetry/proto/trace/v1/trace_pb.rb
+++ b/exporter/otlp/lib/opentelemetry/proto/trace/v1/trace_pb.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: true
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: opentelemetry/proto/trace/v1/trace.proto
@@ -6,70 +7,11 @@
require 'opentelemetry/proto/common/v1/common_pb'
require 'opentelemetry/proto/resource/v1/resource_pb'
-Google::Protobuf::DescriptorPool.generated_pool.build do
- add_file("opentelemetry/proto/trace/v1/trace.proto", :syntax => :proto3) do
- add_message "opentelemetry.proto.trace.v1.TracesData" do
- repeated :resource_spans, :message, 1, "opentelemetry.proto.trace.v1.ResourceSpans"
- end
- add_message "opentelemetry.proto.trace.v1.ResourceSpans" do
- optional :resource, :message, 1, "opentelemetry.proto.resource.v1.Resource"
- repeated :scope_spans, :message, 2, "opentelemetry.proto.trace.v1.ScopeSpans"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.trace.v1.ScopeSpans" do
- optional :scope, :message, 1, "opentelemetry.proto.common.v1.InstrumentationScope"
- repeated :spans, :message, 2, "opentelemetry.proto.trace.v1.Span"
- optional :schema_url, :string, 3
- end
- add_message "opentelemetry.proto.trace.v1.Span" do
- optional :trace_id, :bytes, 1
- optional :span_id, :bytes, 2
- optional :trace_state, :string, 3
- optional :parent_span_id, :bytes, 4
- optional :name, :string, 5
- optional :kind, :enum, 6, "opentelemetry.proto.trace.v1.Span.SpanKind"
- optional :start_time_unix_nano, :fixed64, 7
- optional :end_time_unix_nano, :fixed64, 8
- repeated :attributes, :message, 9, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 10
- repeated :events, :message, 11, "opentelemetry.proto.trace.v1.Span.Event"
- optional :dropped_events_count, :uint32, 12
- repeated :links, :message, 13, "opentelemetry.proto.trace.v1.Span.Link"
- optional :dropped_links_count, :uint32, 14
- optional :status, :message, 15, "opentelemetry.proto.trace.v1.Status"
- end
- add_message "opentelemetry.proto.trace.v1.Span.Event" do
- optional :time_unix_nano, :fixed64, 1
- optional :name, :string, 2
- repeated :attributes, :message, 3, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 4
- end
- add_message "opentelemetry.proto.trace.v1.Span.Link" do
- optional :trace_id, :bytes, 1
- optional :span_id, :bytes, 2
- optional :trace_state, :string, 3
- repeated :attributes, :message, 4, "opentelemetry.proto.common.v1.KeyValue"
- optional :dropped_attributes_count, :uint32, 5
- end
- add_enum "opentelemetry.proto.trace.v1.Span.SpanKind" do
- value :SPAN_KIND_UNSPECIFIED, 0
- value :SPAN_KIND_INTERNAL, 1
- value :SPAN_KIND_SERVER, 2
- value :SPAN_KIND_CLIENT, 3
- value :SPAN_KIND_PRODUCER, 4
- value :SPAN_KIND_CONSUMER, 5
- end
- add_message "opentelemetry.proto.trace.v1.Status" do
- optional :message, :string, 2
- optional :code, :enum, 3, "opentelemetry.proto.trace.v1.Status.StatusCode"
- end
- add_enum "opentelemetry.proto.trace.v1.Status.StatusCode" do
- value :STATUS_CODE_UNSET, 0
- value :STATUS_CODE_OK, 1
- value :STATUS_CODE_ERROR, 2
- end
- end
-end
+
+descriptor_data = "\n(opentelemetry/proto/trace/v1/trace.proto\x12\x1copentelemetry.proto.trace.v1\x1a*opentelemetry/proto/common/v1/common.proto\x1a.opentelemetry/proto/resource/v1/resource.proto\"Q\n\nTracesData\x12\x43\n\x0eresource_spans\x18\x01 \x03(\x0b\x32+.opentelemetry.proto.trace.v1.ResourceSpans\"\xa7\x01\n\rResourceSpans\x12;\n\x08resource\x18\x01 \x01(\x0b\x32).opentelemetry.proto.resource.v1.Resource\x12=\n\x0bscope_spans\x18\x02 \x03(\x0b\x32(.opentelemetry.proto.trace.v1.ScopeSpans\x12\x12\n\nschema_url\x18\x03 \x01(\tJ\x06\x08\xe8\x07\x10\xe9\x07\"\x97\x01\n\nScopeSpans\x12\x42\n\x05scope\x18\x01 \x01(\x0b\x32\x33.opentelemetry.proto.common.v1.InstrumentationScope\x12\x31\n\x05spans\x18\x02 \x03(\x0b\x32\".opentelemetry.proto.trace.v1.Span\x12\x12\n\nschema_url\x18\x03 \x01(\t\"\xe6\x07\n\x04Span\x12\x10\n\x08trace_id\x18\x01 \x01(\x0c\x12\x0f\n\x07span_id\x18\x02 \x01(\x0c\x12\x13\n\x0btrace_state\x18\x03 \x01(\t\x12\x16\n\x0eparent_span_id\x18\x04 \x01(\x0c\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x39\n\x04kind\x18\x06 \x01(\x0e\x32+.opentelemetry.proto.trace.v1.Span.SpanKind\x12\x1c\n\x14start_time_unix_nano\x18\x07 \x01(\x06\x12\x1a\n\x12\x65nd_time_unix_nano\x18\x08 \x01(\x06\x12;\n\nattributes\x18\t \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\n \x01(\r\x12\x38\n\x06\x65vents\x18\x0b \x03(\x0b\x32(.opentelemetry.proto.trace.v1.Span.Event\x12\x1c\n\x14\x64ropped_events_count\x18\x0c \x01(\r\x12\x36\n\x05links\x18\r \x03(\x0b\x32\'.opentelemetry.proto.trace.v1.Span.Link\x12\x1b\n\x13\x64ropped_links_count\x18\x0e \x01(\r\x12\x34\n\x06status\x18\x0f \x01(\x0b\x32$.opentelemetry.proto.trace.v1.Status\x1a\x8c\x01\n\x05\x45vent\x12\x16\n\x0etime_unix_nano\x18\x01 \x01(\x06\x12\x0c\n\x04name\x18\x02 \x01(\t\x12;\n\nattributes\x18\x03 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x04 \x01(\r\x1a\x9d\x01\n\x04Link\x12\x10\n\x08trace_id\x18\x01 \x01(\x0c\x12\x0f\n\x07span_id\x18\x02 \x01(\x0c\x12\x13\n\x0btrace_state\x18\x03 \x01(\t\x12;\n\nattributes\x18\x04 \x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12 \n\x18\x64ropped_attributes_count\x18\x05 \x01(\r\"\x99\x01\n\x08SpanKind\x12\x19\n\x15SPAN_KIND_UNSPECIFIED\x10\x00\x12\x16\n\x12SPAN_KIND_INTERNAL\x10\x01\x12\x14\n\x10SPAN_KIND_SERVER\x10\x02\x12\x14\n\x10SPAN_KIND_CLIENT\x10\x03\x12\x16\n\x12SPAN_KIND_PRODUCER\x10\x04\x12\x16\n\x12SPAN_KIND_CONSUMER\x10\x05\"\xae\x01\n\x06Status\x12\x0f\n\x07message\x18\x02 \x01(\t\x12=\n\x04\x63ode\x18\x03 \x01(\x0e\x32/.opentelemetry.proto.trace.v1.Status.StatusCode\"N\n\nStatusCode\x12\x15\n\x11STATUS_CODE_UNSET\x10\x00\x12\x12\n\x0eSTATUS_CODE_OK\x10\x01\x12\x15\n\x11STATUS_CODE_ERROR\x10\x02J\x04\x08\x01\x10\x02\x42w\n\x1fio.opentelemetry.proto.trace.v1B\nTraceProtoP\x01Z\'go.opentelemetry.io/proto/otlp/trace/v1\xaa\x02\x1cOpenTelemetry.Proto.Trace.V1b\x06proto3"
+
+pool = Google::Protobuf::DescriptorPool.generated_pool
+pool.add_serialized_file(descriptor_data)
module Opentelemetry
module Proto
diff --git a/exporter/otlp/opentelemetry-exporter-otlp.gemspec b/exporter/otlp/opentelemetry-exporter-otlp.gemspec
index 0fb029cec0..3b79b3a0bd 100644
--- a/exporter/otlp/opentelemetry-exporter-otlp.gemspec
+++ b/exporter/otlp/opentelemetry-exporter-otlp.gemspec
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
spec.required_ruby_version = '>= 3.0'
spec.add_dependency 'googleapis-common-protos-types', '~> 1.3'
- spec.add_dependency 'google-protobuf', '~> 3.14'
+ spec.add_dependency 'google-protobuf', '>= 3.18'
spec.add_dependency 'opentelemetry-api', '~> 1.1'
spec.add_dependency 'opentelemetry-common', '~> 0.20'
spec.add_dependency 'opentelemetry-sdk', '~> 1.2'
diff --git a/exporter/otlp/test/opentelemetry/exporter/otlp/exporter_test.rb b/exporter/otlp/test/opentelemetry/exporter/otlp/exporter_test.rb
index aa0232d5d9..0f19d9142d 100644
--- a/exporter/otlp/test/opentelemetry/exporter/otlp/exporter_test.rb
+++ b/exporter/otlp/test/opentelemetry/exporter/otlp/exporter_test.rb
@@ -382,6 +382,17 @@
_(result).must_equal(SUCCESS)
end
+ it 'records metrics' do
+ metrics_reporter = Minitest::Mock.new
+ exporter = OpenTelemetry::Exporter::OTLP::Exporter.new(metrics_reporter: metrics_reporter)
+ stub_request(:post, 'http://localhost:4318/v1/traces').to_timeout.then.to_return(status: 200)
+ metrics_reporter.expect(:record_value, nil) { |m, _, _| m == 'otel.otlp_exporter.encode_duration' }
+ metrics_reporter.expect(:record_value, nil) { |m, _, _| m == 'otel.otlp_exporter.message.uncompressed_size' }
+ metrics_reporter.expect(:record_value, nil) { |m, _, _| m == 'otel.otlp_exporter.message.compressed_size' }
+ metrics_reporter.expect(:add_to_counter, nil) { |m, _, _| m == 'otel.otlp_exporter.failure' }
+ exporter.export([OpenTelemetry::TestHelpers.create_span_data])
+ end
+
it 'retries on timeout' do
stub_request(:post, 'http://localhost:4318/v1/traces').to_timeout.then.to_return(status: 200)
span_data = OpenTelemetry::TestHelpers.create_span_data
diff --git a/logs_api/lib/opentelemetry/logs/logger.rb b/logs_api/lib/opentelemetry/logs/logger.rb
index c1ba38987a..6374b296b1 100644
--- a/logs_api/lib/opentelemetry/logs/logger.rb
+++ b/logs_api/lib/opentelemetry/logs/logger.rb
@@ -17,26 +17,31 @@ def initialize
# Emit a {LogRecord} to the processing pipeline.
#
- # @param timestamp [optional Float, Time] Time in nanoseconds since Unix
- # epoch when the event occurred measured by the origin clock, i.e. the
- # time at the source.
- # @param observed_timestamp [optional Float, Time] Time in nanoseconds
- # since Unix epoch when the event was observed by the collection system.
- # Intended default: Process.clock_gettime(Process::CLOCK_REALTIME, :nanosecond)
+ # @param timestamp [optional Time] Time when the event occurred.
+ # @param observed_timestamp [optional Time] Time when the event was
+ # observed by the collection system.
# @param context [optional Context] The Context to associate with the
# LogRecord. Intended default: OpenTelemetry::Context.current
# @param severity_number [optional Integer] Numerical value of the
# severity. Smaller numerical values correspond to less severe events
# (such as debug events), larger numerical values correspond to more
# severe events (such as errors and critical events).
- # @param severity_text [optional String] Original string representation of
+ # @param [optional String] severity_text Original string representation of
# the severity as it is known at the source. Also known as log level.
- # @param body [optional String, Numeric, Boolean, Array, Hash{String => String, Numeric, Boolean, Array}] A value containing the body of the log record.
- # @param attributes [optional Hash{String => String, Numeric, Boolean,
- # Array}] Additional information about the
- # event.
+ # Numeric, Boolean>}] body A value containing the body of the log record.
+ # @param [optional String] trace_id The trace ID associated with the
+ # current context.
+ # @param [optional String] span_id The span ID associated with the
+ # current context.
+ # @param [optional TraceFlags] trace_flags The trace flags associated
+ # with the current context.
+ # @param [optional Hash{String => String, Numeric, Boolean,
+ # Array}] attributes Additional information
+ # about the event.
+ # @param [optional Context] context The Context to associate with the
+ # LogRecord. Intended default: OpenTelemetry::Context.current
#
# @api public
def on_emit(
diff --git a/logs_sdk/lib/opentelemetry/sdk/logs.rb b/logs_sdk/lib/opentelemetry/sdk/logs.rb
index 5f83d72532..f22f39bbac 100644
--- a/logs_sdk/lib/opentelemetry/sdk/logs.rb
+++ b/logs_sdk/lib/opentelemetry/sdk/logs.rb
@@ -8,6 +8,8 @@
require_relative 'logs/configuration_patch'
require_relative 'logs/logger'
require_relative 'logs/logger_provider'
+require_relative 'logs/log_record'
+require_relative 'logs/log_record_data'
require_relative 'logs/log_record_processor'
require_relative 'logs/export'
require_relative 'logs/log_record'
diff --git a/logs_sdk/lib/opentelemetry/sdk/logs/log_record.rb b/logs_sdk/lib/opentelemetry/sdk/logs/log_record.rb
index 380b0dcb44..0b46bdba43 100644
--- a/logs_sdk/lib/opentelemetry/sdk/logs/log_record.rb
+++ b/logs_sdk/lib/opentelemetry/sdk/logs/log_record.rb
@@ -27,11 +27,12 @@ class LogRecord < OpenTelemetry::Logs::LogRecord
# Creates a new {LogRecord}.
#
- # @param [optional Float, Time] timestamp Time when the event occurred.
- # @param [optional Float, Time] observed_timestamp Time when the event
+ # @param [optional Time] timestamp Time when the event occurred.
+ # @param [optional Time] observed_timestamp Time when the event
# was observed by the collection system. If nil, will first attempt
- # to set to `timestamp`. If `timestamp` is nil, will set to
- # `Process.clock_gettime(Process::CLOCK_REALTIME, :nanosecond)`.
+ # to set to `timestamp`. If `timestamp` is nil, will set to Time.now.
+ # @param [optional OpenTelemetry::Trace::SpanContext] span_context The
+ # OpenTelemetry::Trace::SpanContext to associate with the LogRecord.
# @param [optional String] severity_text The log severity, also known as
# log level.
# @param [optional Integer] severity_number The numerical value of the
@@ -46,11 +47,16 @@ class LogRecord < OpenTelemetry::Logs::LogRecord
# current context.
# @param [optional String] span_id The span ID associated with the
# current context.
- # @param [optional TraceFlags] trace_flags The trace flags associated
- # with the current context.
- # @param [optional OpenTelemetry::SDK::Logs::Logger] logger The logger that
- # created the {LogRecord}. Used to set `resource` and
- # `instrumentation_scope`.
+ # @param [optional OpenTelemetry::Trace::TraceFlags] trace_flags The
+ # trace flags associated with the current context.
+ # @param [optional OpenTelemetry::SDK::Resources::Resource] recource The
+ # source of the log, desrived from the LoggerProvider.
+ # @param [optional OpenTelemetry::SDK::InstrumentationScope] instrumentation_scope
+ # The instrumentation scope, derived from the emitting Logger
+ # @param [optional] OpenTelemetry::SDK::LogRecordLimits] log_record_limits
+ # Attribute limits
+ #
+ #
#
# @return [LogRecord]
def initialize(
@@ -63,10 +69,12 @@ def initialize(
trace_id: nil,
span_id: nil,
trace_flags: nil,
- logger: nil
+ resource: nil,
+ instrumentation_scope: nil,
+ log_record_limits: nil
)
@timestamp = timestamp
- @observed_timestamp = observed_timestamp || timestamp || Process.clock_gettime(Process::CLOCK_REALTIME, :nanosecond)
+ @observed_timestamp = observed_timestamp || timestamp || Time.now
@severity_text = severity_text
@severity_number = severity_number
@body = body
@@ -74,9 +82,9 @@ def initialize(
@trace_id = trace_id
@span_id = span_id
@trace_flags = trace_flags
- @resource = logger&.resource
- @instrumentation_scope = logger&.instrumentation_scope
- @log_record_limits = logger&.log_record_limits || LogRecordLimits::DEFAULT
+ @resource = resource
+ @instrumentation_scope = instrumentation_scope
+ @log_record_limits = log_record_limits || LogRecordLimits::DEFAULT
@total_recorded_attributes = @attributes&.size || 0
trim_attributes(@attributes)
@@ -84,8 +92,8 @@ def initialize(
def to_log_record_data
LogRecordData.new(
- @timestamp,
- @observed_timestamp,
+ to_integer_nanoseconds(@timestamp),
+ to_integer_nanoseconds(@observed_timestamp),
@severity_text,
@severity_number,
@body,
@@ -102,6 +110,7 @@ def to_log_record_data
private
# Do we have sufficient logging for dropped attributes?
+ # TODO: Validate attributes the same way as we do in Spans
def trim_attributes(attributes)
return if attributes.nil?
@@ -124,6 +133,12 @@ def truncate_attribute_values(attributes, attribute_length_limit)
attributes
end
+
+ def to_integer_nanoseconds(timestamp)
+ return unless timestamp.is_a?(Time)
+
+ t = (timestamp.to_r * 10**9).to_i
+ end
end
end
end
diff --git a/logs_sdk/lib/opentelemetry/sdk/logs/log_record_data.rb b/logs_sdk/lib/opentelemetry/sdk/logs/log_record_data.rb
index be185cc624..5bf304f85c 100644
--- a/logs_sdk/lib/opentelemetry/sdk/logs/log_record_data.rb
+++ b/logs_sdk/lib/opentelemetry/sdk/logs/log_record_data.rb
@@ -8,36 +8,21 @@ module OpenTelemetry
module SDK
module Logs
# LogRecordData is a Struct containing {LogRecord} data for export.
- LogRecordData = Struct.new(:timestamp, # optional Integer nanoseconds since Epoch
- :observed_timestamp, # Integer nanoseconds since Epoch
- :severity_text, # optional String
- :severity_number, # optional Integer
- :body, # optional String, Numeric, Boolean, Array, Hash{String => String, Numeric, Boolean,
- # Array}
- :attributes, # optional Hash{String => String, Numeric, Boolean, Array}
- :trace_id, # optional String (16-byte binary)
- :span_id, # optional String (8-byte binary)
- :trace_flags, # optional Integer (8-bit byte of bit flags)
- :resource, # optional OpenTelemetry::SDK::Resources::Resource
- :instrumentation_scope, # OpenTelemetry::SDK::InstrumentationScope
- :total_recorded_attributes) do # Integer
- def unix_nano_timestamp
- if timestamp.is_a?(Time)
- (timestamp.to_r * 1_000_000_000).to_i
- else
- timestamp
- end
- end
-
- def unix_nano_observed_timestamp
- if timestamp.is_a?(Time)
- (timestamp.to_r * 1_000_000_000).to_i
- else
- timestamp
- end
- end
- end
+ LogRecordData = Struct.new(:timestamp, # optional Integer nanoseconds since Epoch
+ :observed_timestamp, # Integer nanoseconds since Epoch
+ :severity_text, # optional String
+ :severity_number, # optional Integer
+ :body, # optional String, Numeric, Boolean, Array, Hash{String => String, Numeric, Boolean,
+ # Array}
+ :attributes, # optional Hash{String => String, Numeric, Boolean,
+ # Array}
+ :trace_id, # optional String (16-byte binary)
+ :span_id, # optional String (8-byte binary)
+ :trace_flags, # optional Integer (8-bit byte of bit flags)
+ :resource, # optional OpenTelemetry::SDK::Resources::Resource
+ :instrumentation_scope, # optional OpenTelemetry::SDK::InstrumentationScope
+ :total_recorded_attributes) # Integer
end
end
end
diff --git a/logs_sdk/lib/opentelemetry/sdk/logs/logger.rb b/logs_sdk/lib/opentelemetry/sdk/logs/logger.rb
index ecd530bf05..52e6a12318 100644
--- a/logs_sdk/lib/opentelemetry/sdk/logs/logger.rb
+++ b/logs_sdk/lib/opentelemetry/sdk/logs/logger.rb
@@ -11,8 +11,6 @@ module SDK
module Logs
# The SDK implementation of OpenTelemetry::Logs::Logger
class Logger < OpenTelemetry::Logs::Logger
- attr_reader :instrumentation_scope, :logger_provider
-
# @api private
#
# Returns a new {OpenTelemetry::SDK::Logs::Logger} instance. This should
@@ -30,25 +28,21 @@ def initialize(name, version, logger_provider)
@logger_provider = logger_provider
end
- def resource
- logger_provider.resource
- end
-
def log_record_limits
logger_provider.log_record_limits
end
# Emit a {LogRecord} to the processing pipeline.
#
- # @param [optional Float, Time] timestamp Time in nanoseconds since Unix
- # epoch when the event occurred measured by the origin clock, i.e. the
- # time at the source.
- # @param [optional Float, Time] observed_timestamp Time in nanoseconds
- # since Unix epoch when the event was observed by the collection system.
- # Intended default: Process.clock_gettime(Process::CLOCK_REALTIME, :nanosecond)
+ # @param [optional Time] timestamp Time when the event occurred.
+ # @param [optional Time] observed_timestamp Time when the event was
+ # observed by the collection system.
+ # @param [optional OpenTelemetry::Trace::SpanContext] span_context The
+ # OpenTelemetry::Trace::SpanContext to associate with the
+ # {LogRecord}.
# @param [optional String] severity_text Original string representation of
# the severity as it is known at the source. Also known as log level.
- # @param [optional Integer] severity_number Numerical value of the
+ # @param severity_number [optional Integer] Numerical value of the
# severity. Smaller numerical values correspond to less severe events
# (such as debug events), larger numerical values correspond to more
# severe events (such as errors and critical events).
@@ -74,30 +68,30 @@ def log_record_limits
#
# @api public
def on_emit(timestamp: nil,
- observed_timestamp: Process.clock_gettime(Process::CLOCK_REALTIME, :nanosecond),
- severity_text: nil,
- severity_number: nil,
- body: nil,
- attributes: nil,
- trace_id: nil,
- span_id: nil,
- trace_flags: nil,
- context: OpenTelemetry::Context.current)
+ observed_timestamp: Time.now,
+ severity_text: nil,
+ severity_number: nil,
+ body: nil,
+ attributes: nil,
+ trace_id: nil,
+ span_id: nil,
+ trace_flags: nil,
+ context: OpenTelemetry::Context.current)
current_span = OpenTelemetry::Trace.current_span(context)
- span_context = current_span.context unless OpenTelemetry::Trace::Span::INVALID == current_span
- log_record = LogRecord.new(timestamp: timestamp,
- observed_timestamp: observed_timestamp,
- severity_text: severity_text,
- severity_number: severity_number,
- body: body,
- attributes: attributes,
- trace_id: span_context&.trace_id,
- span_id: span_context&.span_id,
- trace_flags: span_context&.trace_flags,
- logger: self)
+ span_context = current_span.context unless current_span == OpenTelemetry::Trace::Span::INVALID
- logger_provider.on_emit(log_record, context)
+ @logger_provider.on_emit(timestamp: timestamp,
+ observed_timestamp: observed_timestamp,
+ severity_text: severity_text,
+ severity_number: severity_number,
+ body: body,
+ attributes: attributes,
+ trace_id: trace_id || span_context&.trace_id,
+ span_id: span_id || span_context&.span_id,
+ trace_flags: trace_flags || span_context&.trace_flags,
+ instrumentation_scope: @instrumentation_scope,
+ context: context)
end
end
end
diff --git a/logs_sdk/lib/opentelemetry/sdk/logs/logger_provider.rb b/logs_sdk/lib/opentelemetry/sdk/logs/logger_provider.rb
index 89dd939ca7..8e98c4f177 100644
--- a/logs_sdk/lib/opentelemetry/sdk/logs/logger_provider.rb
+++ b/logs_sdk/lib/opentelemetry/sdk/logs/logger_provider.rb
@@ -12,8 +12,6 @@ class LoggerProvider < OpenTelemetry::Logs::LoggerProvider
Key = Struct.new(:name, :version)
private_constant(:Key)
- attr_reader :resource, :log_record_limits
-
UNEXPECTED_ERROR_MESSAGE = 'unexpected error in ' \
'OpenTelemetry::SDK::Logs::LoggerProvider#%s'
@@ -144,7 +142,33 @@ def force_flush(timeout: nil)
end
end
- def on_emit(log_record, context)
+ # @api private
+ def on_emit(timestamp: nil,
+ observed_timestamp: nil,
+ severity_text: nil,
+ severity_number: nil,
+ body: nil,
+ attributes: nil,
+ trace_id: nil,
+ span_id: nil,
+ trace_flags: nil,
+ instrumentation_scope: nil,
+ context: nil)
+
+ log_record = LogRecord.new(timestamp: timestamp,
+ observed_timestamp: observed_timestamp,
+ severity_text: severity_text,
+ severity_number: severity_number,
+ body: body,
+ attributes: attributes,
+ trace_id: trace_id,
+ span_id: span_id,
+ trace_flags: trace_flags,
+ resource: @resource,
+ instrumentation_scope: instrumentation_scope,
+ log_record_limits: @log_record_limits
+ )
+
@log_record_processors.each { |processor| processor.on_emit(log_record, context) }
end
end
diff --git a/logs_sdk/test/opentelemetry/sdk/logs/log_record_test.rb b/logs_sdk/test/opentelemetry/sdk/logs/log_record_test.rb
index 5d5192b1e6..3c250696af 100644
--- a/logs_sdk/test/opentelemetry/sdk/logs/log_record_test.rb
+++ b/logs_sdk/test/opentelemetry/sdk/logs/log_record_test.rb
@@ -7,7 +7,7 @@
require 'test_helper'
describe OpenTelemetry::SDK::Logs::LogRecord do
- Logs = OpenTelemetry::SDK::Logs # rubocop:disable Lint/ConstantDefinitionInBlock
+ Logs = OpenTelemetry::SDK::Logs
let(:log_record) { Logs::LogRecord.new(**args) }
let(:args) { {} }
let(:logger) { Logs::Logger.new('', '', Logs::LoggerProvider.new) }
@@ -15,7 +15,8 @@
describe '#initialize' do
describe 'observed_timestamp' do
describe 'when observed_timestamp is present' do
- let(:observed_timestamp) { '1692661486.2841358' }
+ let(:current_time) { Time.now }
+ let(:observed_timestamp) { current_time + 1 }
let(:args) { { observed_timestamp: observed_timestamp } }
it 'is equal to observed_timestamp' do
@@ -26,18 +27,13 @@
refute_equal(log_record.timestamp, log_record.observed_timestamp)
end
- # Process.clock_gettime is used to set the current time
- # That method returns a Float. Since the stubbed value of
- # observed_timestamp is a String, we can know the the
- # observed_timestamp was not set to the value of Process.clock_gettime
- # by making sure its value is not a Float.
it 'is not equal to the current time' do
- refute_instance_of(Float, log_record.observed_timestamp)
+ refute_equal(current_time, log_record.observed_timestamp)
end
end
describe 'when timestamp is present' do
- let(:timestamp) { Process.clock_gettime(Process::CLOCK_REALTIME) }
+ let(:timestamp) { Time.now }
let(:args) { { timestamp: timestamp } }
it 'is equal to timestamp' do
@@ -57,7 +53,7 @@
# I'm going to assert it's an Integer, which is the
# Process.clock_gettime return value class when passed the
# :nanosecond option
- assert_instance_of(Integer, log_record.observed_timestamp)
+ assert_instance_of(Time, log_record.observed_timestamp)
end
end
end
@@ -66,8 +62,8 @@
let(:args) do
span_context = OpenTelemetry::Trace::SpanContext.new
{
- timestamp: Process.clock_gettime(Process::CLOCK_REALTIME),
- observed_timestamp: Process.clock_gettime(Process::CLOCK_REALTIME),
+ timestamp: Time.now,
+ observed_timestamp: Time.now + 1,
severity_text: 'DEBUG',
severity_number: 0,
body: 'body',
@@ -75,15 +71,16 @@
trace_id: span_context.trace_id,
span_id: span_context.span_id,
trace_flags: span_context.trace_flags,
- logger: logger
+ resource: logger.instance_variable_get(:@logger_provider).instance_variable_get(:@resource),
+ instrumentation_scope: logger.instance_variable_get(:@instrumentation_scope)
}
end
it 'transforms the LogRecord into a LogRecordData' do
log_record_data = log_record.to_log_record_data
- assert_equal(args[:timestamp], log_record_data.timestamp)
- assert_equal(args[:observed_timestamp], log_record_data.observed_timestamp)
+ assert_equal(args[:timestamp].strftime("%s%N").to_i, log_record_data.timestamp)
+ assert_equal(args[:observed_timestamp].strftime("%s%N").to_i, log_record_data.observed_timestamp)
assert_equal(args[:severity_text], log_record_data.severity_text)
assert_equal(args[:severity_number], log_record_data.severity_number)
assert_equal(args[:body], log_record_data.body)
@@ -91,95 +88,74 @@
assert_equal(args[:trace_id], log_record_data.trace_id)
assert_equal(args[:span_id], log_record_data.span_id)
assert_equal(args[:trace_flags], log_record_data.trace_flags)
- assert_equal(args[:logger].resource, log_record_data.resource)
- assert_equal(args[:logger].instrumentation_scope, log_record_data.instrumentation_scope)
+ assert_equal(args[:resource], log_record_data.resource)
+ assert_equal(args[:instrumentation_scope], log_record_data.instrumentation_scope)
end
end
- describe 'attributes set through logger' do
- let(:logger_provider) { Logs::LoggerProvider.new }
- let(:resource) { OpenTelemetry::SDK::Resources::Resource.create }
- let(:instrumentation_scope) { OpenTelemetry::SDK::InstrumentationScope.new('name', 'version') }
- let(:logger) { Logs::Logger.new(resource, instrumentation_scope, logger_provider) }
- let(:args) { { logger: logger } }
+ describe 'attribute limits' do
+ it 'uses the limits set by the logger provider via the logger' do
+ # Spy on the console output
+ captured_stdout = StringIO.new
+ original_stdout = $stdout
+ $stdout = captured_stdout
- describe 'resource' do
- it 'is set to the resource of the logger given on initialization' do
- assert_equal(logger.resource, log_record.resource)
- end
- end
+ # Create the LoggerProvider with the console exporter and an attribute limit of 1
+ limits = Logs::LogRecordLimits.new(attribute_count_limit: 1)
+ logger_provider = Logs::LoggerProvider.new(log_record_limits: limits)
+ console_exporter = Logs::Export::SimpleLogRecordProcessor.new(Logs::Export::ConsoleLogRecordExporter.new)
+ logger_provider.add_log_record_processor(Logs::Export::SimpleLogRecordProcessor.new(Logs::Export::ConsoleLogRecordExporter.new))
- describe 'instrumentation_scope' do
- it 'is set to the instrumentation_scope of the logger given on initialization' do
- assert_equal(logger.instrumentation_scope, log_record.instrumentation_scope)
- end
- end
+ # Create a logger that uses the given LoggerProvider
+ logger = Logs::Logger.new('', '', logger_provider)
- describe 'when logger is nil' do
- let(:logger) { nil }
+ # Emit a log from that logger, with attribute count exceeding the limit
+ logger.on_emit(attributes: {'a' => 'a', 'b' => 'b'})
- it 'sets the resource to nil' do
- assert_nil(log_record.resource)
- end
+ # Look at the captured output to see if the attributes have been truncated
+ assert_match(/attributes={\"b\"=>\"b\"}/, captured_stdout.string)
+ refute_match(/\"a\"=>\"a\"/, captured_stdout.string)
- it 'sets the instrumentation_scope to nil' do
- assert_nil(log_record.instrumentation_scope)
- end
+ # Return STDOUT to its normal output
+ $stdout = original_stdout
end
- describe 'attribute limits' do
- it 'uses the limits set by the logger provider via the logger' do
- limits = Logs::LogRecordLimits.new
- logger_provider = Logs::LoggerProvider.new(log_record_limits: limits)
- logger = Logs::Logger.new('', '', logger_provider)
- log_record = Logs::LogRecord.new(logger: logger)
+ it 'uses the default limits if none provided' do
+ log_record = Logs::LogRecord.new
+ default = Logs::LogRecordLimits::DEFAULT
- assert_equal(log_record.instance_variable_get(:@log_record_limits), limits)
- end
+ assert_equal(default.attribute_count_limit, log_record.instance_variable_get(:@log_record_limits).attribute_count_limit)
+ # default length is nil
+ assert_nil(log_record.instance_variable_get(:@log_record_limits).attribute_length_limit)
+ end
- it 'uses the default limits if none provided' do
- log_record = Logs::LogRecord.new
- default = Logs::LogRecordLimits::DEFAULT
+ it 'trims the oldest attributes' do
+ limits = Logs::LogRecordLimits.new(attribute_count_limit: 1)
+ attributes = { 'old' => 'old', 'new' => 'new' }
+ log_record = Logs::LogRecord.new(log_record_limits: limits, attributes: attributes)
- assert_equal(default.attribute_count_limit, log_record.instance_variable_get(:@log_record_limits).attribute_count_limit)
- # default length is nil
- assert_nil(log_record.instance_variable_get(:@log_record_limits).attribute_length_limit)
- end
+ assert_equal({ 'new' => 'new' }, log_record.attributes)
+ end
+ end
- it 'trims the oldest attributes' do
- limits = Logs::LogRecordLimits.new(attribute_count_limit: 1)
- logger_provider = Logs::LoggerProvider.new(log_record_limits: limits)
- logger = Logs::Logger.new('', '', logger_provider)
- attributes = { 'old' => 'old', 'new' => 'new' }
- log_record = Logs::LogRecord.new(logger: logger, attributes: attributes)
+ describe 'attribute value limit' do
+ it 'truncates the values that are too long' do
+ length_limit = 32
+ too_long = 'a' * (length_limit + 1)
+ just_right = 'a' * (length_limit - 3) # truncation removes 3 chars for the '...'
+ limits = Logs::LogRecordLimits.new(attribute_length_limit: length_limit)
+ log_record = Logs::LogRecord.new(log_record_limits: limits, attributes: { 'key' => too_long })
- assert_equal({ 'new' => 'new' }, log_record.attributes)
- end
+ assert_equal({ 'key' => "#{just_right}..." }, log_record.attributes)
end
- describe 'attribute value limit' do
- it 'truncates the values that are too long' do
- length_limit = 32
- too_long = 'a' * (length_limit + 1)
- just_right = 'a' * (length_limit - 3) # truncation removes 3 chars for the '...'
- limits = Logs::LogRecordLimits.new(attribute_length_limit: length_limit)
- logger_provider = Logs::LoggerProvider.new(log_record_limits: limits)
- logger = Logs::Logger.new('', '', logger_provider)
- log_record = Logs::LogRecord.new(logger: logger, attributes: { 'key' => too_long })
-
- assert_equal({ 'key' => "#{just_right}..." }, log_record.attributes)
- end
-
- it 'does not alter values within the range' do
- length_limit = 32
- within_range = 'a' * length_limit
- limits = Logs::LogRecordLimits.new(attribute_length_limit: length_limit)
- logger_provider = Logs::LoggerProvider.new(log_record_limits: limits)
- logger = Logs::Logger.new('', '', logger_provider)
- log_record = Logs::LogRecord.new(logger: logger, attributes: { 'key' => within_range })
+ it 'does not alter values within the range' do
+ length_limit = 32
+ within_range = 'a' * length_limit
+ limits = Logs::LogRecordLimits.new(attribute_length_limit: length_limit)
+ log_record = Logs::LogRecord.new(log_record_limits: limits, attributes: { 'key' => within_range })
- assert_equal({ 'key' => within_range }, log_record.attributes)
- end
+ assert_equal({ 'key' => within_range }, log_record.attributes)
end
end
end
diff --git a/logs_sdk/test/opentelemetry/sdk/logs/logger_provider_test.rb b/logs_sdk/test/opentelemetry/sdk/logs/logger_provider_test.rb
index bb19c5d8df..9741364fe7 100644
--- a/logs_sdk/test/opentelemetry/sdk/logs/logger_provider_test.rb
+++ b/logs_sdk/test/opentelemetry/sdk/logs/logger_provider_test.rb
@@ -19,14 +19,17 @@
it 'allows a resource to be associated with the logger provider' do
assert_instance_of(
- OpenTelemetry::SDK::Resources::Resource, logger_provider.resource
+ OpenTelemetry::SDK::Resources::Resource, logger_provider.instance_variable_get(:@resource)
)
end
end
describe '#initialize' do
it 'activates a default LogRecordLimits' do
- assert_equal(OpenTelemetry::SDK::Logs::LogRecordLimits::DEFAULT, logger_provider.log_record_limits)
+ assert_equal(
+ OpenTelemetry::SDK::Logs::LogRecordLimits::DEFAULT,
+ logger_provider.instance_variable_get(:@log_record_limits)
+ )
end
end
@@ -211,4 +214,49 @@
end
end
end
+
+ describe '#on_emit' do
+ let(:mock_context) do
+ mock_context = Minitest::Mock.new
+ def mock_context.value(key); OpenTelemetry::Trace::Span::INVALID; end # rubocop:disable Style/SingleLineMethods
+
+ mock_context
+ end
+
+ let(:args) do
+ span_context = OpenTelemetry::Trace::SpanContext.new
+ {
+ timestamp: Time.now,
+ observed_timestamp: Time.now + 1,
+ severity_text: 'DEBUG',
+ severity_number: 0,
+ body: 'body',
+ attributes: { 'a' => 'b' },
+ trace_id: span_context.trace_id,
+ span_id: span_context.span_id,
+ trace_flags: span_context.trace_flags,
+ instrumentation_scope: OpenTelemetry::SDK::InstrumentationScope,
+ context: mock_context,
+ }
+ end
+
+ it 'creates a new log record' do
+ output = 'union station'
+ OpenTelemetry::SDK::Logs::LogRecord.stub(:new, ->(_) { puts output }) do
+ assert_output(/#{output}/) { logger_provider.on_emit(**args) }
+ end
+ end
+
+ it 'sends the log record to the processors' do
+ mock_log_record = Minitest::Mock.new
+
+ OpenTelemetry::SDK::Logs::LogRecord.stub :new, mock_log_record do
+ logger_provider.add_log_record_processor(mock_log_record_processor)
+ mock_log_record_processor.expect(:on_emit, nil, [mock_log_record, mock_context])
+
+ logger_provider.on_emit(**args)
+ mock_log_record_processor.verify
+ end
+ end
+ end
end
diff --git a/logs_sdk/test/opentelemetry/sdk/logs/logger_test.rb b/logs_sdk/test/opentelemetry/sdk/logs/logger_test.rb
index 983fdea8ef..6fae3a85f8 100644
--- a/logs_sdk/test/opentelemetry/sdk/logs/logger_test.rb
+++ b/logs_sdk/test/opentelemetry/sdk/logs/logger_test.rb
@@ -10,12 +10,6 @@
let(:logger_provider) { OpenTelemetry::SDK::Logs::LoggerProvider.new }
let(:logger) { logger_provider.logger(name: 'default_logger') }
- describe '#resource' do
- it 'returns the resource associated with the logger_provider' do
- assert_equal(logger.resource, logger_provider.resource)
- end
- end
-
describe '#on_emit' do
it 'creates a new LogRecord' do
output = 'chocolate cherry'
@@ -27,7 +21,7 @@
it 'sends the newly-created log record to the processors' do
mock_log_record = Minitest::Mock.new
mock_context = Minitest::Mock.new
- def mock_context.value(key); OpenTelemetry::Trace::Span::INVALID; end
+ def mock_context.value(key); OpenTelemetry::Trace::Span::INVALID; end # rubocop:disable Style/SingleLineMethods
OpenTelemetry::SDK::Logs::LogRecord.stub(:new, ->(_) { mock_log_record }) do
mock_log_record_processor = Minitest::Mock.new
diff --git a/metrics_api/lib/opentelemetry/metrics/meter.rb b/metrics_api/lib/opentelemetry/metrics/meter.rb
index 846424995b..1335437c02 100644
--- a/metrics_api/lib/opentelemetry/metrics/meter.rb
+++ b/metrics_api/lib/opentelemetry/metrics/meter.rb
@@ -15,7 +15,7 @@ class Meter
UP_DOWN_COUNTER = Instrument::UpDownCounter.new
OBSERVABLE_UP_DOWN_COUNTER = Instrument::ObservableUpDownCounter.new
- NAME_REGEX = /^[a-zA-Z][-.\w]{0,62}$/
+ NAME_REGEX = /\A[a-zA-Z][-.\w]{0,62}\z/
private_constant(:COUNTER, :OBSERVABLE_COUNTER, :HISTOGRAM, :OBSERVABLE_GAUGE, :UP_DOWN_COUNTER, :OBSERVABLE_UP_DOWN_COUNTER)
diff --git a/sdk/CHANGELOG.md b/sdk/CHANGELOG.md
index 7404541b84..a832c5ed8a 100644
--- a/sdk/CHANGELOG.md
+++ b/sdk/CHANGELOG.md
@@ -1,5 +1,10 @@
# Release History: opentelemetry-sdk
+### v1.5.0 / 2024-07-24
+
+* ADDED: Add add_link to span api/sdk
+* FIXED: Update `untraced` to suppress logging "Calling finish on an ended Span" warnings
+
### v1.4.1 / 2024-03-21
* FIXED: ForwardingLogger should forward block param.
diff --git a/sdk/lib/opentelemetry/sdk/trace/tracer.rb b/sdk/lib/opentelemetry/sdk/trace/tracer.rb
index 4a9ab340fb..1224b989ad 100644
--- a/sdk/lib/opentelemetry/sdk/trace/tracer.rb
+++ b/sdk/lib/opentelemetry/sdk/trace/tracer.rb
@@ -29,8 +29,6 @@ def start_root_span(name, attributes: nil, links: nil, start_timestamp: nil, kin
def start_span(name, with_parent: nil, attributes: nil, links: nil, start_timestamp: nil, kind: nil)
with_parent ||= Context.current
- return super(name, with_parent: with_parent, attributes: attributes, links: links, start_timestamp: start_timestamp, kind: kind) if Common::Utilities.untraced?(with_parent)
-
name ||= 'empty'
kind ||= :internal
diff --git a/sdk/lib/opentelemetry/sdk/trace/tracer_provider.rb b/sdk/lib/opentelemetry/sdk/trace/tracer_provider.rb
index 10a8ed8aea..3569451635 100644
--- a/sdk/lib/opentelemetry/sdk/trace/tracer_provider.rb
+++ b/sdk/lib/opentelemetry/sdk/trace/tracer_provider.rb
@@ -126,7 +126,7 @@ def add_span_processor(span_processor)
end
# @api private
- def internal_start_span(name, kind, attributes, links, start_timestamp, parent_context, instrumentation_scope) # rubocop:disable Metrics/MethodLength
+ def internal_start_span(name, kind, attributes, links, start_timestamp, parent_context, instrumentation_scope) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
parent_span = OpenTelemetry::Trace.current_span(parent_context)
parent_span_context = parent_span.context
@@ -134,8 +134,13 @@ def internal_start_span(name, kind, attributes, links, start_timestamp, parent_c
parent_span_id = parent_span_context.span_id
trace_id = parent_span_context.trace_id
end
-
trace_id ||= @id_generator.generate_trace_id
+
+ if OpenTelemetry::Common::Utilities.untraced?(parent_context)
+ span_id = parent_span_id || @id_generator.generate_span_id
+ return OpenTelemetry::Trace.non_recording_span(OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id, span_id: span_id))
+ end
+
result = @sampler.should_sample?(trace_id: trace_id, parent_context: parent_context, links: links, name: name, kind: kind, attributes: attributes)
span_id = @id_generator.generate_span_id
if result.recording? && !@stopped
diff --git a/sdk/lib/opentelemetry/sdk/version.rb b/sdk/lib/opentelemetry/sdk/version.rb
index c875cf6efe..bdc6d2eacd 100644
--- a/sdk/lib/opentelemetry/sdk/version.rb
+++ b/sdk/lib/opentelemetry/sdk/version.rb
@@ -7,6 +7,6 @@
module OpenTelemetry
module SDK
## Current OpenTelemetry version
- VERSION = '1.4.1'
+ VERSION = '1.5.0'
end
end
diff --git a/sdk/test/opentelemetry/sdk/trace/tracer_test.rb b/sdk/test/opentelemetry/sdk/trace/tracer_test.rb
index 2ced763dd6..e5488d689b 100644
--- a/sdk/test/opentelemetry/sdk/trace/tracer_test.rb
+++ b/sdk/test/opentelemetry/sdk/trace/tracer_test.rb
@@ -329,5 +329,28 @@
_(span.status.code).must_equal(OpenTelemetry::Trace::Status::ERROR)
_(span.status.description).must_equal('Unhandled exception of type: RuntimeError')
end
+
+ it 'yields a no-op span within an untraced block' do
+ tracer.in_span('root') do
+ span_id = OpenTelemetry::Trace.current_span.context.span_id
+ OpenTelemetry::Common::Utilities.untraced do
+ tracer.in_span('op') do |span|
+ _(span).must_be_instance_of(OpenTelemetry::Trace::Span)
+ _(span.context.span_id).must_equal span_id
+ _(span.context.trace_flags).wont_be :sampled?
+ _(span).wont_be :recording?
+ end
+ end
+ end
+ end
+
+ it 'does not log "Calling finish on an ended Span" warnings when untraced? is called' do
+ OpenTelemetry::TestHelpers.with_test_logger do |log_stream|
+ tracer.in_span('root') do
+ OpenTelemetry::Common::Utilities.untraced { tracer.in_span('op') {} }
+ end
+ _(log_stream.string).wont_include 'Calling finish on an ended Span'
+ end
+ end
end
end
diff --git a/semantic_conventions/CHANGELOG.md b/semantic_conventions/CHANGELOG.md
index 4d8825a434..71c8e5c007 100644
--- a/semantic_conventions/CHANGELOG.md
+++ b/semantic_conventions/CHANGELOG.md
@@ -1,5 +1,11 @@
# Release History: opentelemetry-semantic_conventions
+### v1.10.1 / 2024-07-24
+
+* BREAKING CHANGE: Remove support for EoL Ruby 2.7
+
+* ADDED: Remove support for EoL Ruby 2.7
+
### v1.10.0 / 2023-05-30
* FIXED: Warning messages from gem build
diff --git a/semantic_conventions/lib/opentelemetry/semantic_conventions/version.rb b/semantic_conventions/lib/opentelemetry/semantic_conventions/version.rb
index b323abd7e3..c40014a4ed 100644
--- a/semantic_conventions/lib/opentelemetry/semantic_conventions/version.rb
+++ b/semantic_conventions/lib/opentelemetry/semantic_conventions/version.rb
@@ -6,6 +6,6 @@
module OpenTelemetry
module SemanticConventions
- VERSION = '1.10.0'
+ VERSION = '1.10.1'
end
end