Skip to content

Commit 0ec8bb9

Browse files
authored
[CONFIGURATION] File configuration - Tracer/Meter/Logger config (#3920)
1 parent 2d3f5dc commit 0ec8bb9

25 files changed

+1115
-12
lines changed

sdk/include/opentelemetry/sdk/configuration/configuration_parser.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@
5050
#include "opentelemetry/sdk/configuration/log_record_exporter_configuration.h"
5151
#include "opentelemetry/sdk/configuration/log_record_limits_configuration.h"
5252
#include "opentelemetry/sdk/configuration/log_record_processor_configuration.h"
53+
#include "opentelemetry/sdk/configuration/logger_configurator_configuration.h"
5354
#include "opentelemetry/sdk/configuration/logger_provider_configuration.h"
55+
#include "opentelemetry/sdk/configuration/meter_configurator_configuration.h"
5456
#include "opentelemetry/sdk/configuration/meter_provider_configuration.h"
5557
#include "opentelemetry/sdk/configuration/metric_producer_configuration.h"
5658
#include "opentelemetry/sdk/configuration/metric_reader_configuration.h"
@@ -86,6 +88,7 @@
8688
#include "opentelemetry/sdk/configuration/sum_aggregation_configuration.h"
8789
#include "opentelemetry/sdk/configuration/temporality_preference.h"
8890
#include "opentelemetry/sdk/configuration/trace_id_ratio_based_sampler_configuration.h"
91+
#include "opentelemetry/sdk/configuration/tracer_configurator_configuration.h"
8992
#include "opentelemetry/sdk/configuration/tracer_provider_configuration.h"
9093
#include "opentelemetry/sdk/configuration/translation_strategy.h"
9194
#include "opentelemetry/sdk/configuration/view_configuration.h"
@@ -164,6 +167,15 @@ class ConfigurationParser
164167
std::unique_ptr<LoggerProviderConfiguration> ParseLoggerProviderConfiguration(
165168
const std::unique_ptr<DocumentNode> &node) const;
166169

170+
LoggerConfigConfiguration ParseLoggerConfigConfiguration(
171+
const std::unique_ptr<DocumentNode> &node) const;
172+
173+
LoggerMatcherAndConfigConfiguration ParseLoggerMatcherAndConfigConfiguration(
174+
const std::unique_ptr<DocumentNode> &node) const;
175+
176+
std::unique_ptr<LoggerConfiguratorConfiguration> ParseLoggerConfiguratorConfiguration(
177+
const std::unique_ptr<DocumentNode> &node) const;
178+
167179
DefaultHistogramAggregation ParseDefaultHistogramAggregation(
168180
const std::unique_ptr<DocumentNode> &node,
169181
const std::string &name) const;
@@ -266,6 +278,15 @@ class ConfigurationParser
266278
std::unique_ptr<MeterProviderConfiguration> ParseMeterProviderConfiguration(
267279
const std::unique_ptr<DocumentNode> &node) const;
268280

281+
MeterConfigConfiguration ParseMeterConfigConfiguration(
282+
const std::unique_ptr<DocumentNode> &node) const;
283+
284+
MeterMatcherAndConfigConfiguration ParseMeterMatcherAndConfigConfiguration(
285+
const std::unique_ptr<DocumentNode> &node) const;
286+
287+
std::unique_ptr<MeterConfiguratorConfiguration> ParseMeterConfiguratorConfiguration(
288+
const std::unique_ptr<DocumentNode> &node) const;
289+
269290
std::unique_ptr<PropagatorConfiguration> ParsePropagatorConfiguration(
270291
const std::unique_ptr<DocumentNode> &node) const;
271292

@@ -336,6 +357,15 @@ class ConfigurationParser
336357
std::unique_ptr<TracerProviderConfiguration> ParseTracerProviderConfiguration(
337358
const std::unique_ptr<DocumentNode> &node) const;
338359

360+
TracerConfigConfiguration ParseTracerConfigConfiguration(
361+
const std::unique_ptr<DocumentNode> &node) const;
362+
363+
TracerMatcherAndConfigConfiguration ParseTracerMatcherAndConfigConfiguration(
364+
const std::unique_ptr<DocumentNode> &node) const;
365+
366+
std::unique_ptr<TracerConfiguratorConfiguration> ParseTracerConfiguratorConfiguration(
367+
const std::unique_ptr<DocumentNode> &node) const;
368+
339369
std::unique_ptr<StringAttributeValueConfiguration> ParseStringAttributeValueConfiguration(
340370
const std::unique_ptr<DocumentNode> &node) const;
341371

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include "opentelemetry/version.h"
7+
8+
OPENTELEMETRY_BEGIN_NAMESPACE
9+
namespace sdk
10+
{
11+
namespace configuration
12+
{
13+
14+
// YAML-SCHEMA: schema/logger_provider.yaml
15+
// YAML-NODE: LoggerConfig
16+
class LoggerConfigConfiguration
17+
{
18+
public:
19+
bool enabled{true};
20+
};
21+
22+
} // namespace configuration
23+
} // namespace sdk
24+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include <vector>
7+
8+
#include "opentelemetry/sdk/configuration/logger_config_configuration.h"
9+
#include "opentelemetry/sdk/configuration/logger_matcher_and_config_configuration.h"
10+
#include "opentelemetry/version.h"
11+
12+
OPENTELEMETRY_BEGIN_NAMESPACE
13+
namespace sdk
14+
{
15+
namespace configuration
16+
{
17+
18+
// YAML-SCHEMA: schema/logger_provider.yaml
19+
// YAML-NODE: LoggerConfigurator
20+
class LoggerConfiguratorConfiguration
21+
{
22+
public:
23+
LoggerConfigConfiguration default_config;
24+
std::vector<LoggerMatcherAndConfigConfiguration> loggers;
25+
};
26+
27+
} // namespace configuration
28+
} // namespace sdk
29+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include <string>
7+
8+
#include "opentelemetry/sdk/configuration/logger_config_configuration.h"
9+
#include "opentelemetry/version.h"
10+
11+
OPENTELEMETRY_BEGIN_NAMESPACE
12+
namespace sdk
13+
{
14+
namespace configuration
15+
{
16+
17+
// YAML-SCHEMA: schema/logger_provider.yaml
18+
// YAML-NODE: LoggerMatcherAndConfig
19+
class LoggerMatcherAndConfigConfiguration
20+
{
21+
public:
22+
std::string name;
23+
LoggerConfigConfiguration config;
24+
};
25+
26+
} // namespace configuration
27+
} // namespace sdk
28+
OPENTELEMETRY_END_NAMESPACE

sdk/include/opentelemetry/sdk/configuration/logger_provider_configuration.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#include "opentelemetry/sdk/configuration/log_record_limits_configuration.h"
1010
#include "opentelemetry/sdk/configuration/log_record_processor_configuration.h"
11+
#include "opentelemetry/sdk/configuration/logger_configurator_configuration.h"
1112
#include "opentelemetry/version.h"
1213

1314
OPENTELEMETRY_BEGIN_NAMESPACE
@@ -16,14 +17,14 @@ namespace sdk
1617
namespace configuration
1718
{
1819

19-
// YAML-SCHEMA: schema/logger_provider.json
20+
// YAML-SCHEMA: schema/logger_provider.yaml
2021
// YAML-NODE: LoggerProvider
2122
class LoggerProviderConfiguration
2223
{
2324
public:
2425
std::vector<std::unique_ptr<LogRecordProcessorConfiguration>> processors;
2526
std::unique_ptr<LogRecordLimitsConfiguration> limits;
26-
// FIXME: logger_configurator
27+
std::unique_ptr<LoggerConfiguratorConfiguration> logger_configurator;
2728
};
2829

2930
} // namespace configuration
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include "opentelemetry/version.h"
7+
8+
OPENTELEMETRY_BEGIN_NAMESPACE
9+
namespace sdk
10+
{
11+
namespace configuration
12+
{
13+
14+
// YAML-SCHEMA: schema/meter_provider.yaml
15+
// YAML-NODE: MeterConfig
16+
class MeterConfigConfiguration
17+
{
18+
public:
19+
bool enabled{true};
20+
};
21+
22+
} // namespace configuration
23+
} // namespace sdk
24+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include <vector>
7+
8+
#include "opentelemetry/sdk/configuration/meter_config_configuration.h"
9+
#include "opentelemetry/sdk/configuration/meter_matcher_and_config_configuration.h"
10+
#include "opentelemetry/version.h"
11+
12+
OPENTELEMETRY_BEGIN_NAMESPACE
13+
namespace sdk
14+
{
15+
namespace configuration
16+
{
17+
18+
// YAML-SCHEMA: schema/meter_provider.yaml
19+
// YAML-NODE: MeterConfigurator
20+
class MeterConfiguratorConfiguration
21+
{
22+
public:
23+
MeterConfigConfiguration default_config;
24+
std::vector<MeterMatcherAndConfigConfiguration> meters;
25+
};
26+
27+
} // namespace configuration
28+
} // namespace sdk
29+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include <string>
7+
8+
#include "opentelemetry/sdk/configuration/meter_config_configuration.h"
9+
#include "opentelemetry/version.h"
10+
11+
OPENTELEMETRY_BEGIN_NAMESPACE
12+
namespace sdk
13+
{
14+
namespace configuration
15+
{
16+
17+
// YAML-SCHEMA: schema/meter_provider.yaml
18+
// YAML-NODE: MeterMatcherAndConfig
19+
class MeterMatcherAndConfigConfiguration
20+
{
21+
public:
22+
std::string name;
23+
MeterConfigConfiguration config;
24+
};
25+
26+
} // namespace configuration
27+
} // namespace sdk
28+
OPENTELEMETRY_END_NAMESPACE

sdk/include/opentelemetry/sdk/configuration/meter_provider_configuration.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <vector>
88

99
#include "opentelemetry/sdk/configuration/exemplar_filter.h"
10+
#include "opentelemetry/sdk/configuration/meter_configurator_configuration.h"
1011
#include "opentelemetry/sdk/configuration/metric_reader_configuration.h"
1112
#include "opentelemetry/sdk/configuration/view_configuration.h"
1213
#include "opentelemetry/version.h"
@@ -25,7 +26,7 @@ class MeterProviderConfiguration
2526
std::vector<std::unique_ptr<MetricReaderConfiguration>> readers;
2627
std::vector<std::unique_ptr<ViewConfiguration>> views;
2728
ExemplarFilter exemplar_filter = ExemplarFilter::trace_based;
28-
// FIXME: meter_configurator
29+
std::unique_ptr<MeterConfiguratorConfiguration> meter_configurator;
2930
};
3031

3132
} // namespace configuration

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
#include "opentelemetry/sdk/configuration/extension_span_processor_configuration.h"
2525
#include "opentelemetry/sdk/configuration/integer_array_attribute_value_configuration.h"
2626
#include "opentelemetry/sdk/configuration/integer_attribute_value_configuration.h"
27+
#include "opentelemetry/sdk/configuration/logger_configurator_configuration.h"
28+
#include "opentelemetry/sdk/configuration/meter_configurator_configuration.h"
2729
#include "opentelemetry/sdk/configuration/metric_reader_configuration.h"
2830
#include "opentelemetry/sdk/configuration/otlp_file_log_record_exporter_configuration.h"
2931
#include "opentelemetry/sdk/configuration/otlp_file_push_metric_exporter_configuration.h"
@@ -44,14 +46,19 @@
4446
#include "opentelemetry/sdk/configuration/span_exporter_configuration.h"
4547
#include "opentelemetry/sdk/configuration/string_array_attribute_value_configuration.h"
4648
#include "opentelemetry/sdk/configuration/string_attribute_value_configuration.h"
49+
#include "opentelemetry/sdk/configuration/tracer_configurator_configuration.h"
50+
#include "opentelemetry/sdk/instrumentationscope/scope_configurator.h"
4751
#include "opentelemetry/sdk/logs/exporter.h"
52+
#include "opentelemetry/sdk/logs/logger_config.h"
4853
#include "opentelemetry/sdk/logs/logger_provider.h"
4954
#include "opentelemetry/sdk/metrics/export/periodic_exporting_metric_reader.h"
55+
#include "opentelemetry/sdk/metrics/meter_config.h"
5056
#include "opentelemetry/sdk/metrics/meter_provider.h"
5157
#include "opentelemetry/sdk/metrics/push_metric_exporter.h"
5258
#include "opentelemetry/sdk/trace/exporter.h"
5359
#include "opentelemetry/sdk/trace/processor.h"
5460
#include "opentelemetry/sdk/trace/sampler.h"
61+
#include "opentelemetry/sdk/trace/tracer_config.h"
5562
#include "opentelemetry/sdk/trace/tracer_provider.h"
5663
#include "opentelemetry/trace/tracer_provider.h"
5764
#include "opentelemetry/version.h"
@@ -125,6 +132,10 @@ class SdkBuilder
125132
const std::unique_ptr<opentelemetry::sdk::configuration::SpanProcessorConfiguration> &model)
126133
const;
127134

135+
std::unique_ptr<opentelemetry::sdk::instrumentationscope::ScopeConfigurator<
136+
opentelemetry::sdk::trace::TracerConfig>>
137+
CreateTracerConfigurator(const std::unique_ptr<TracerConfiguratorConfiguration> &model) const;
138+
128139
std::unique_ptr<opentelemetry::sdk::trace::TracerProvider> CreateTracerProvider(
129140
const std::unique_ptr<opentelemetry::sdk::configuration::TracerProviderConfiguration> &model,
130141
const opentelemetry::sdk::resource::Resource &resource) const;
@@ -204,6 +215,10 @@ class SdkBuilder
204215
opentelemetry::sdk::metrics::ViewRegistry *view_registry,
205216
const std::unique_ptr<opentelemetry::sdk::configuration::ViewConfiguration> &model) const;
206217

218+
std::unique_ptr<opentelemetry::sdk::instrumentationscope::ScopeConfigurator<
219+
opentelemetry::sdk::metrics::MeterConfig>>
220+
CreateMeterConfigurator(const std::unique_ptr<MeterConfiguratorConfiguration> &model) const;
221+
207222
std::unique_ptr<opentelemetry::sdk::metrics::MeterProvider> CreateMeterProvider(
208223
const std::unique_ptr<opentelemetry::sdk::configuration::MeterProviderConfiguration> &model,
209224
const opentelemetry::sdk::resource::Resource &resource) const;
@@ -242,6 +257,10 @@ class SdkBuilder
242257
const std::unique_ptr<opentelemetry::sdk::configuration::LogRecordProcessorConfiguration>
243258
&model) const;
244259

260+
std::unique_ptr<opentelemetry::sdk::instrumentationscope::ScopeConfigurator<
261+
opentelemetry::sdk::logs::LoggerConfig>>
262+
CreateLoggerConfigurator(const std::unique_ptr<LoggerConfiguratorConfiguration> &model) const;
263+
245264
std::unique_ptr<opentelemetry::sdk::logs::LoggerProvider> CreateLoggerProvider(
246265
const std::unique_ptr<opentelemetry::sdk::configuration::LoggerProviderConfiguration> &model,
247266
const opentelemetry::sdk::resource::Resource &resource) const;

0 commit comments

Comments
 (0)