Skip to content

Commit

Permalink
Merge branch 'main' into metrics-asynchronous
Browse files Browse the repository at this point in the history
  • Loading branch information
xuan-cao-swi authored Jan 7, 2025
2 parents 0a92445 + 035c32a commit 5566e01
Show file tree
Hide file tree
Showing 80 changed files with 2,964 additions and 46 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ jobs:
- opentelemetry-exporter-otlp-grpc
- opentelemetry-exporter-otlp-http
- opentelemetry-exporter-zipkin
- opentelemetry-exporter-otlp-logs
- opentelemetry-exporter-otlp-metrics
os:
- ubuntu-latest
Expand Down Expand Up @@ -134,8 +135,9 @@ jobs:
echo "skip=false" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "opentelemetry-exporter-otlp" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "opentelemetry-exporter-otlp-common" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "opentelemetry-exporter-otlp-http" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "opentelemetry-exporter-otlp-grpc" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "opentelemetry-exporter-otlp-http" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "opentelemetry-exporter-otlp-logs" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "opentelemetry-exporter-otlp-metrics" ]] && echo "skip=true" >> $GITHUB_OUTPUT
# This is essentially a bash script getting evaluated, so we need to return true or the whole job fails.
true
Expand Down
14 changes: 14 additions & 0 deletions .toys/.data/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@ gems:
directory: exporter/otlp
version_constant: [OpenTelemetry, Exporter, OTLP, VERSION]

- name: opentelemetry-exporter-otlp-logs
directory: exporter/otlp-logs
version_constant: [OpenTelemetry, Exporter, OTLP, Logs, VERSION]

- name: opentelemetry-exporter-otlp-metrics
directory: exporter/otlp-metrics
version_constant: [OpenTelemetry, Exporter, OTLP, Metrics, VERSION]
Expand Down Expand Up @@ -98,3 +102,13 @@ gems:
directory: metrics_sdk
version_rb_path: lib/opentelemetry/sdk/metrics/version.rb
version_constant: [OpenTelemetry, SDK, Metrics, VERSION]

- name: opentelemetry-logs-api
directory: logs_api
version_rb_path: lib/opentelemetry/logs/version.rb
version_constant: [OpenTelemetry, Logs, VERSION]

- name: opentelemetry-logs-sdk
directory: logs_sdk
version_rb_path: lib/opentelemetry/sdk/logs/version.rb
version_constant: [OpenTelemetry, SDK, Logs, VERSION]
5 changes: 3 additions & 2 deletions examples/http/Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

source "https://rubygems.org"

gem "faraday", "~> 0.16.1"
gem "faraday", "~> 2.0"
gem "opentelemetry-api"
gem "opentelemetry-common"
gem "opentelemetry-sdk"
gem "sinatra", "~> 2.0"
gem "sinatra", "~> 4.1"
gem "puma"
gem "rackup"
31 changes: 31 additions & 0 deletions examples/logs_sdk/logs_console.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# frozen_string_literal: true

require 'bundler/inline'

gemfile(true) do
source 'https://rubygems.org'

gem 'opentelemetry-logs-api', path: '../../logs_api'
gem 'opentelemetry-logs-sdk', path: '../../logs_sdk'
end

require 'opentelemetry-logs-sdk'

# Create a LoggerProvider
logger_provider = OpenTelemetry::SDK::Logs::LoggerProvider.new
# Create a batching processor configured to export to the OTLP exporter
processor = OpenTelemetry::SDK::Logs::Export::SimpleLogRecordProcessor.new(OpenTelemetry::SDK::Logs::Export::ConsoleLogRecordExporter.new)
# Add the processor to the LoggerProvider
logger_provider.add_log_record_processor(processor)
# Access a Logger for your library from your LoggerProvider
logger = logger_provider.logger(name: 'my_app_or_gem', version: '0.1.0')

# Use your Logger to emit a log record
logger.on_emit(
timestamp: Time.now,
severity_text: 'INFO',
body: 'Thuja plicata',
attributes: { 'cedar' => true },
)

logger_provider.shutdown
31 changes: 31 additions & 0 deletions examples/logs_sdk/logs_console_with_sdk.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# frozen_string_literal: true

require 'bundler/inline'

gemfile(true) do
source 'https://rubygems.org'

gem 'opentelemetry-sdk', path: '../../sdk'
gem 'opentelemetry-logs-api', path: '../../logs_api'
gem 'opentelemetry-logs-sdk', path: '../../logs_sdk'
end

require 'opentelemetry-sdk'
require 'opentelemetry-logs-sdk'

# Export logs to the console
ENV['OTEL_LOGS_EXPORTER'] = 'console'

# Configure SDK with defaults, this will apply the OTEL_LOGS_EXPORTER env var
OpenTelemetry::SDK.configure

# Access a Logger for your library from the LoggerProvider configured by the OpenTelemetry API
logger = OpenTelemetry.logger_provider.logger(name: 'my_app_or_gem', version: '0.1.0')

# Use your Logger to emit a log record
logger.on_emit(
timestamp: Time.now,
severity_text: 'INFO',
body: 'Thuja plicata',
attributes: { 'cedar' => true },
)
33 changes: 33 additions & 0 deletions examples/logs_sdk/logs_otlp.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# frozen_string_literal: true

require 'bundler/inline'

gemfile(true) do
source 'https://rubygems.org'

gem 'opentelemetry-logs-api', path: '../../logs_api'
gem 'opentelemetry-logs-sdk', path: '../../logs_sdk'
gem 'opentelemetry-exporter-otlp-logs', path: '../../exporter/otlp-logs'
end

require 'opentelemetry-logs-sdk'
require 'opentelemetry/exporter/otlp_logs'

# Create a LoggerProvider
logger_provider = OpenTelemetry::SDK::Logs::LoggerProvider.new
# Create a batching processor configured to export to the OTLP exporter
processor = OpenTelemetry::SDK::Logs::Export::BatchLogRecordProcessor.new(OpenTelemetry::Exporter::OTLP::Logs::LogsExporter.new)
# Add the processor to the LoggerProvider
logger_provider.add_log_record_processor(processor)
# Access a Logger for your library from your LoggerProvider
logger = logger_provider.logger(name: 'my_app_or_gem', version: '0.1.0')

# Use your Logger to emit a log record
logger.on_emit(
timestamp: Time.now,
severity_text: 'INFO',
body: 'Thuja plicata',
attributes: { 'cedar' => true },
)

logger_provider.shutdown
19 changes: 19 additions & 0 deletions exporter/otlp-logs/.rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
inherit_from:
- ../../contrib/rubocop.yml

AllCops:
Exclude:
- "lib/opentelemetry/proto/**/*"
- "vendor/**/*"

Naming/FileName:
Exclude:
- lib/opentelemetry-exporter-otlp-logs.rb
Style/StringLiterals:
Exclude:
- gemfiles/**/*
Style/FrozenStringLiteralComment:
Exclude:
- gemfiles/**/*
Metrics/BlockLength:
Enabled: false
9 changes: 9 additions & 0 deletions exporter/otlp-logs/.yardopts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
--no-private
--title=OpenTelemetry OTLP Logs Exporter
--markup=markdown
--main=README.md
./lib/opentelemetry/exporter/otlp-logs/**/*.rb
./lib/opentelemetry/exporter/otlp.rb
-
README.md
CHANGELOG.md
21 changes: 21 additions & 0 deletions exporter/otlp-logs/Appraisals
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# frozen_string_literal: true

# Copyright The OpenTelemetry Authors
#
# SPDX-License-Identifier: Apache-2.0

appraise 'google-protobuf-3.18.0' do
gem 'google-protobuf', '~> 3.18.0'
end

appraise 'google-protobuf-3.25.0' do
gem 'google-protobuf', '~> 3.25.0'
end

appraise 'google-protobuf-4.29.0' do
gem 'google-protobuf', '~> 4.29.0'
end

appraise 'google-protobuf-latest' do
gem 'google-protobuf'
end
5 changes: 5 additions & 0 deletions exporter/otlp-logs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Release History: opentelemetry-exporter-otlp-logs

### v0.1.0 / 2024-12-04

Initial release.
24 changes: 24 additions & 0 deletions exporter/otlp-logs/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# frozen_string_literal: true

# Copyright The OpenTelemetry Authors
#
# SPDX-License-Identifier: Apache-2.0

source 'https://rubygems.org'

gemspec

group :test, :development do
gem 'opentelemetry-api', path: '../../api'
gem 'opentelemetry-common', path: '../../common'
gem 'opentelemetry-logs-api', path: '../../logs_api'
gem 'opentelemetry-logs-sdk', path: '../../logs_sdk'
gem 'opentelemetry-registry', path: '../../registry'
gem 'opentelemetry-sdk', path: '../../sdk'
gem 'opentelemetry-semantic_conventions', path: '../../semantic_conventions'
gem 'opentelemetry-test-helpers', path: '../../test_helpers'
end

group :test do
gem 'minitest-stub-const'
end
Loading

0 comments on commit 5566e01

Please sign in to comment.