forked from open-telemetry/opentelemetry-ruby
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Implement Logs Bridge API (open-telemetry#1509)
This provides an interface for: * LoggerProvider * Logger * LogRecord This API will be consumed by the forthcoming Logs SDK. Follows specification v 1.23.0.
- Loading branch information
1 parent
e96deb7
commit 864966c
Showing
11 changed files
with
152 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# frozen_string_literal: true | ||
|
||
# Copyright The OpenTelemetry Authors | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
module OpenTelemetry | ||
module Logs | ||
# No-op implementation of an emitted log and its associated attributes. | ||
class LogRecord; end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# frozen_string_literal: true | ||
|
||
# Copyright The OpenTelemetry Authors | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
module OpenTelemetry | ||
module Logs | ||
# No-op implementation of logger. | ||
class Logger | ||
# rubocop:disable Style/EmptyMethod | ||
|
||
# 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) | ||
# @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 | ||
# the severity as it is known at the source. Also known as log level. | ||
# @param body [optional String, Numeric, Boolean, Array<String, Numeric, | ||
# Boolean>, Hash{String => String, Numeric, Boolean, Array<String, | ||
# Numeric, Boolean>}] A value containing the body of the log record. | ||
# @param attributes [optional Hash{String => String, Numeric, Boolean, | ||
# Array<String, Numeric, Boolean>}] Additional information about the | ||
# event. | ||
# | ||
# @api public | ||
def emit( | ||
timestamp: nil, | ||
observed_timestamp: nil, | ||
context: nil, | ||
severity_number: nil, | ||
severity_text: nil, | ||
body: nil, | ||
attributes: nil | ||
) | ||
end | ||
# rubocop:enable Style/EmptyMethod | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# frozen_string_literal: true | ||
|
||
# Copyright The OpenTelemetry Authors | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
module OpenTelemetry | ||
module Logs | ||
# No-op implementation of a logger provider. | ||
class LoggerProvider | ||
NOOP_LOGGER = OpenTelemetry::Logs::Logger.new | ||
private_constant :NOOP_LOGGER | ||
|
||
# Returns an {OpenTelemetry::Logs::Logger} instance. | ||
# | ||
# @param [optional String] name Instrumentation package name | ||
# @param [optional String] version Instrumentation package version | ||
# | ||
# @return [OpenTelemetry::Logs::Logger] | ||
def logger(name = nil, version = nil) | ||
@logger ||= NOOP_LOGGER | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
inherit_from: ../.rubocop.yml | ||
|
||
Metrics/BlockLength: | ||
Enabled: false | ||
Metrics/LineLength: | ||
Enabled: false | ||
Metrics/AbcSize: | ||
Enabled: false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# frozen_string_literal: true | ||
|
||
# Copyright The OpenTelemetry Authors | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
require 'test_helper' | ||
|
||
describe OpenTelemetry::Logs::LoggerProvider do | ||
let(:logger_provider) { OpenTelemetry::Logs::LoggerProvider.new } | ||
let(:args) { { name: 'component', version: '1.0' } } | ||
let(:args2) { { name: 'component2', version: '1.0' } } | ||
|
||
describe '#logger' do | ||
it 'returns the same no-op logger' do | ||
assert_same( | ||
logger_provider.logger(**args), | ||
logger_provider.logger(**args2) | ||
) | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# frozen_string_literal: true | ||
|
||
# Copyright The OpenTelemetry Authors | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
require 'test_helper' | ||
|
||
describe OpenTelemetry::Logs::Logger do | ||
let(:logger) { OpenTelemetry::Logs::Logger.new } | ||
|
||
describe '#emit' do | ||
it 'returns nil, as it is a no-op method' do | ||
assert_nil(logger.emit) | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters