Skip to content

Commit 71cbf11

Browse files
authored
[CONFIGURATION] Break the configuration_core dependency on the SDK logs library (#4553)
1 parent c7c9343 commit 71cbf11

9 files changed

Lines changed: 491 additions & 426 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ Increment the:
6868

6969
* [CONFIGURATION] SDK signal provider builder interface
7070
[#4426](https://github.com/open-telemetry/opentelemetry-cpp/pull/4426)
71+
72+
* [CONFIGURATION] Break the configuration_core dependency on SDK logs
73+
[#4553](https://github.com/open-telemetry/opentelemetry-cpp/pull/4553)
74+
7175
* [CONFIGURATION] Support environment variable substitution for attributes
7276
[#4474](https://github.com/open-telemetry/opentelemetry-cpp/pull/4474)
7377

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include <memory>
7+
8+
#include "opentelemetry/sdk/configuration/log_record_exporter_configuration.h"
9+
#include "opentelemetry/sdk/configuration/log_record_processor_configuration.h"
10+
#include "opentelemetry/sdk/configuration/logger_configurator_configuration.h"
11+
#include "opentelemetry/sdk/configuration/registry.h"
12+
#include "opentelemetry/sdk/instrumentationscope/scope_configurator.h"
13+
#include "opentelemetry/sdk/logs/exporter.h"
14+
#include "opentelemetry/sdk/logs/logger_config.h"
15+
#include "opentelemetry/sdk/logs/processor.h"
16+
#include "opentelemetry/version.h"
17+
18+
OPENTELEMETRY_BEGIN_NAMESPACE
19+
namespace sdk
20+
{
21+
namespace configuration
22+
{
23+
24+
/**
25+
* Common utility functions for building logs SDK components from configuration models
26+
*/
27+
class LogsBuilderUtils
28+
{
29+
public:
30+
static std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter> CreateLogRecordExporter(
31+
const Registry *registry,
32+
const std::unique_ptr<LogRecordExporterConfiguration> &model);
33+
34+
static std::unique_ptr<opentelemetry::sdk::logs::LogRecordProcessor> CreateLogRecordProcessor(
35+
const Registry *registry,
36+
const std::unique_ptr<LogRecordProcessorConfiguration> &model);
37+
38+
static std::unique_ptr<opentelemetry::sdk::instrumentationscope::ScopeConfigurator<
39+
opentelemetry::sdk::logs::LoggerConfig>>
40+
CreateLoggerConfigurator(const Registry *registry,
41+
const std::unique_ptr<LoggerConfiguratorConfiguration> &model);
42+
};
43+
44+
} // namespace configuration
45+
} // namespace sdk
46+
OPENTELEMETRY_END_NAMESPACE

‎sdk/include/opentelemetry/sdk/configuration/sdk_builder.h‎

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,6 @@
5858
#include "opentelemetry/sdk/configuration/string_attribute_value_configuration.h"
5959
#include "opentelemetry/sdk/configuration/tracer_configurator_configuration.h"
6060
#include "opentelemetry/sdk/instrumentationscope/scope_configurator.h"
61-
#include "opentelemetry/sdk/logs/exporter.h"
62-
#include "opentelemetry/sdk/logs/logger_config.h"
63-
#include "opentelemetry/sdk/logs/logger_provider.h"
6461
#include "opentelemetry/sdk/resource/resource_detector.h"
6562
#include "opentelemetry/sdk/trace/exporter.h"
6663
#include "opentelemetry/sdk/trace/processor.h"
@@ -168,49 +165,6 @@ class SdkBuilder
168165
const std::unique_ptr<opentelemetry::sdk::configuration::PropagatorConfiguration> &model)
169166
const;
170167

171-
std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter> CreateOtlpHttpLogRecordExporter(
172-
const opentelemetry::sdk::configuration::OtlpHttpLogRecordExporterConfiguration *model) const;
173-
174-
std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter> CreateOtlpGrpcLogRecordExporter(
175-
const opentelemetry::sdk::configuration::OtlpGrpcLogRecordExporterConfiguration *model) const;
176-
177-
std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter> CreateOtlpFileLogRecordExporter(
178-
const opentelemetry::sdk::configuration::OtlpFileLogRecordExporterConfiguration *model) const;
179-
180-
std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter> CreateConsoleLogRecordExporter(
181-
const opentelemetry::sdk::configuration::ConsoleLogRecordExporterConfiguration *model) const;
182-
183-
std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter> CreateExtensionLogRecordExporter(
184-
const opentelemetry::sdk::configuration::ExtensionLogRecordExporterConfiguration *model)
185-
const;
186-
187-
std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter> CreateLogRecordExporter(
188-
const std::unique_ptr<opentelemetry::sdk::configuration::LogRecordExporterConfiguration>
189-
&model) const;
190-
191-
std::unique_ptr<opentelemetry::sdk::logs::LogRecordProcessor> CreateBatchLogRecordProcessor(
192-
const opentelemetry::sdk::configuration::BatchLogRecordProcessorConfiguration *model) const;
193-
194-
std::unique_ptr<opentelemetry::sdk::logs::LogRecordProcessor> CreateSimpleLogRecordProcessor(
195-
const opentelemetry::sdk::configuration::SimpleLogRecordProcessorConfiguration *model) const;
196-
197-
std::unique_ptr<opentelemetry::sdk::logs::LogRecordProcessor> CreateExtensionLogRecordProcessor(
198-
const opentelemetry::sdk::configuration::ExtensionLogRecordProcessorConfiguration *model)
199-
const;
200-
201-
std::unique_ptr<opentelemetry::sdk::logs::LogRecordProcessor> CreateLogRecordProcessor(
202-
const std::unique_ptr<opentelemetry::sdk::configuration::LogRecordProcessorConfiguration>
203-
&model) const;
204-
205-
std::unique_ptr<opentelemetry::sdk::instrumentationscope::ScopeConfigurator<
206-
opentelemetry::sdk::logs::LoggerConfig>>
207-
CreateLoggerConfigurator(const std::unique_ptr<LoggerConfiguratorConfiguration> &model) const;
208-
209-
std::unique_ptr<opentelemetry::sdk::logs::LoggerProvider> CreateLoggerProvider(
210-
const std::unique_ptr<opentelemetry::sdk::configuration::LoggerProviderConfiguration> &model,
211-
const opentelemetry::sdk::resource::Resource &resource,
212-
const AttributeLimitsConfiguration *attribute_limits = nullptr) const;
213-
214168
std::unique_ptr<opentelemetry::sdk::resource::ResourceDetector> CreateContainerResourceDetector(
215169
const opentelemetry::sdk::configuration::ContainerResourceDetectorConfiguration *model) const;
216170

‎sdk/src/configuration/BUILD‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ cc_library(
2323
"//api",
2424
"//sdk:headers",
2525
"//sdk/src/common:wildcard_match",
26-
"//sdk/src/logs",
2726
"//sdk/src/resource",
2827
"//sdk/src/trace",
2928
],
@@ -43,7 +42,10 @@ cc_library(
4342

4443
cc_library(
4544
name = "configuration_logs_builders",
46-
srcs = ["logs_builders.cc"],
45+
srcs = [
46+
"logs_builder_utils.cc",
47+
"logs_builders.cc",
48+
],
4749
include_prefix = "src/configuration",
4850
deps = [
4951
":configuration_core",

‎sdk/src/configuration/CMakeLists.txt‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ target_include_directories(
2828
target_link_libraries(
2929
opentelemetry_configuration_core
3030
PUBLIC opentelemetry_api opentelemetry_common opentelemetry_resources
31-
opentelemetry_trace opentelemetry_logs)
31+
opentelemetry_trace)
3232

3333
# Trace SDK component builders
3434
add_library(opentelemetry_configuration_trace_builders trace_builders.cc)
@@ -47,7 +47,8 @@ target_link_libraries(
4747
PUBLIC opentelemetry_trace opentelemetry_configuration_core)
4848

4949
# Logs SDK component builders
50-
add_library(opentelemetry_configuration_logs_builders logs_builders.cc)
50+
add_library(opentelemetry_configuration_logs_builders logs_builders.cc
51+
logs_builder_utils.cc)
5152

5253
set_target_properties(opentelemetry_configuration_logs_builders
5354
PROPERTIES EXPORT_NAME configuration_logs_builders)

0 commit comments

Comments
 (0)