Skip to content

Commit 85b0ada

Browse files
authored
[CONFIGURATION] File configuration - log model (#3473)
1 parent 7dfc312 commit 85b0ada

12 files changed

+420
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
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/log_record_processor_configuration_visitor.h"
11+
#include "opentelemetry/version.h"
12+
13+
OPENTELEMETRY_BEGIN_NAMESPACE
14+
namespace sdk
15+
{
16+
namespace configuration
17+
{
18+
19+
// YAML-SCHEMA: schema/logger_provider.json
20+
// YAML-NODE: BatchLogRecordProcessor
21+
class BatchLogRecordProcessorConfiguration : public LogRecordProcessorConfiguration
22+
{
23+
public:
24+
void Accept(LogRecordProcessorConfigurationVisitor *visitor) const override
25+
{
26+
visitor->VisitBatch(this);
27+
}
28+
29+
std::size_t schedule_delay{0};
30+
std::size_t export_timeout{0};
31+
std::size_t max_queue_size{0};
32+
std::size_t max_export_batch_size{0};
33+
std::unique_ptr<LogRecordExporterConfiguration> exporter;
34+
};
35+
36+
} // namespace configuration
37+
} // namespace sdk
38+
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 "opentelemetry/sdk/configuration/log_record_exporter_configuration.h"
7+
#include "opentelemetry/sdk/configuration/log_record_exporter_configuration_visitor.h"
8+
#include "opentelemetry/version.h"
9+
10+
OPENTELEMETRY_BEGIN_NAMESPACE
11+
namespace sdk
12+
{
13+
namespace configuration
14+
{
15+
16+
// YAML-SCHEMA: schema/common.json
17+
// YAML-NODE: Console
18+
class ConsoleLogRecordExporterConfiguration : public LogRecordExporterConfiguration
19+
{
20+
public:
21+
void Accept(LogRecordExporterConfigurationVisitor *visitor) const override
22+
{
23+
visitor->VisitConsole(this);
24+
}
25+
};
26+
27+
} // namespace configuration
28+
} // namespace sdk
29+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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+
class LogRecordExporterConfigurationVisitor;
14+
15+
// YAML-SCHEMA: schema/logger_provider.json
16+
// YAML-NODE: LogRecordExporter
17+
class LogRecordExporterConfiguration
18+
{
19+
public:
20+
LogRecordExporterConfiguration() = default;
21+
LogRecordExporterConfiguration(LogRecordExporterConfiguration &&) = default;
22+
LogRecordExporterConfiguration(const LogRecordExporterConfiguration &) = default;
23+
LogRecordExporterConfiguration &operator=(LogRecordExporterConfiguration &&) = default;
24+
LogRecordExporterConfiguration &operator=(const LogRecordExporterConfiguration &other) = default;
25+
virtual ~LogRecordExporterConfiguration() = default;
26+
27+
virtual void Accept(LogRecordExporterConfigurationVisitor *visitor) const = 0;
28+
};
29+
30+
} // namespace configuration
31+
} // namespace sdk
32+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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+
class OtlpHttpLogRecordExporterConfiguration;
15+
class OtlpGrpcLogRecordExporterConfiguration;
16+
class OtlpFileLogRecordExporterConfiguration;
17+
class ConsoleLogRecordExporterConfiguration;
18+
class ExtensionLogRecordExporterConfiguration;
19+
20+
class LogRecordExporterConfigurationVisitor
21+
{
22+
public:
23+
LogRecordExporterConfigurationVisitor() = default;
24+
LogRecordExporterConfigurationVisitor(LogRecordExporterConfigurationVisitor &&) = default;
25+
LogRecordExporterConfigurationVisitor(const LogRecordExporterConfigurationVisitor &) = default;
26+
LogRecordExporterConfigurationVisitor &operator=(LogRecordExporterConfigurationVisitor &&) =
27+
default;
28+
LogRecordExporterConfigurationVisitor &operator=(
29+
const LogRecordExporterConfigurationVisitor &other) = default;
30+
virtual ~LogRecordExporterConfigurationVisitor() = default;
31+
32+
virtual void VisitOtlpHttp(const OtlpHttpLogRecordExporterConfiguration *model) = 0;
33+
virtual void VisitOtlpGrpc(const OtlpGrpcLogRecordExporterConfiguration *model) = 0;
34+
virtual void VisitOtlpFile(const OtlpFileLogRecordExporterConfiguration *model) = 0;
35+
virtual void VisitConsole(const ConsoleLogRecordExporterConfiguration *model) = 0;
36+
virtual void VisitExtension(const ExtensionLogRecordExporterConfiguration *model) = 0;
37+
};
38+
39+
} // namespace configuration
40+
} // namespace sdk
41+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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.json
15+
// YAML-NODE: LogRecordLimits
16+
class LogRecordLimitsConfiguration
17+
{
18+
public:
19+
std::size_t attribute_value_length_limit;
20+
std::size_t attribute_count_limit;
21+
};
22+
23+
} // namespace configuration
24+
} // namespace sdk
25+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
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+
class LogRecordProcessorConfigurationVisitor;
14+
15+
// YAML-SCHEMA: schema/logger_provider.json
16+
// YAML-NODE: LogRecordProcessor
17+
class LogRecordProcessorConfiguration
18+
{
19+
public:
20+
LogRecordProcessorConfiguration() = default;
21+
LogRecordProcessorConfiguration(LogRecordProcessorConfiguration &&) = default;
22+
LogRecordProcessorConfiguration(const LogRecordProcessorConfiguration &) = default;
23+
LogRecordProcessorConfiguration &operator=(LogRecordProcessorConfiguration &&) = default;
24+
LogRecordProcessorConfiguration &operator=(const LogRecordProcessorConfiguration &other) =
25+
default;
26+
virtual ~LogRecordProcessorConfiguration() = default;
27+
28+
virtual void Accept(LogRecordProcessorConfigurationVisitor *visitor) const = 0;
29+
};
30+
31+
} // namespace configuration
32+
} // namespace sdk
33+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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+
class BatchLogRecordProcessorConfiguration;
15+
class SimpleLogRecordProcessorConfiguration;
16+
class ExtensionLogRecordProcessorConfiguration;
17+
18+
class LogRecordProcessorConfigurationVisitor
19+
{
20+
public:
21+
LogRecordProcessorConfigurationVisitor() = default;
22+
LogRecordProcessorConfigurationVisitor(LogRecordProcessorConfigurationVisitor &&) = default;
23+
LogRecordProcessorConfigurationVisitor(const LogRecordProcessorConfigurationVisitor &) = default;
24+
LogRecordProcessorConfigurationVisitor &operator=(LogRecordProcessorConfigurationVisitor &&) =
25+
default;
26+
LogRecordProcessorConfigurationVisitor &operator=(
27+
const LogRecordProcessorConfigurationVisitor &other) = default;
28+
virtual ~LogRecordProcessorConfigurationVisitor() = default;
29+
30+
virtual void VisitBatch(const BatchLogRecordProcessorConfiguration *model) = 0;
31+
virtual void VisitSimple(const SimpleLogRecordProcessorConfiguration *model) = 0;
32+
virtual void VisitExtension(const ExtensionLogRecordProcessorConfiguration *model) = 0;
33+
};
34+
35+
} // namespace configuration
36+
} // namespace sdk
37+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include <memory>
7+
#include <vector>
8+
9+
#include "opentelemetry/sdk/configuration/log_record_limits_configuration.h"
10+
#include "opentelemetry/sdk/configuration/log_record_processor_configuration.h"
11+
#include "opentelemetry/version.h"
12+
13+
OPENTELEMETRY_BEGIN_NAMESPACE
14+
namespace sdk
15+
{
16+
namespace configuration
17+
{
18+
19+
// YAML-SCHEMA: schema/logger_provider.json
20+
// YAML-NODE: LoggerProvider
21+
class LoggerProviderConfiguration
22+
{
23+
public:
24+
std::vector<std::unique_ptr<LogRecordProcessorConfiguration>> processors;
25+
std::unique_ptr<LogRecordLimitsConfiguration> limits;
26+
// FIXME: logger_configurator
27+
};
28+
29+
} // namespace configuration
30+
} // namespace sdk
31+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
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/log_record_exporter_configuration.h"
9+
#include "opentelemetry/sdk/configuration/log_record_exporter_configuration_visitor.h"
10+
#include "opentelemetry/version.h"
11+
12+
OPENTELEMETRY_BEGIN_NAMESPACE
13+
namespace sdk
14+
{
15+
namespace configuration
16+
{
17+
18+
// YAML-SCHEMA: schema/common.json
19+
// YAML-NODE: ExperimentalOtlpFileExporter
20+
class OtlpFileLogRecordExporterConfiguration : public LogRecordExporterConfiguration
21+
{
22+
public:
23+
void Accept(LogRecordExporterConfigurationVisitor *visitor) const override
24+
{
25+
visitor->VisitOtlpFile(this);
26+
}
27+
28+
std::string output_stream;
29+
};
30+
31+
} // namespace configuration
32+
} // namespace sdk
33+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include <memory>
7+
#include <string>
8+
9+
#include "opentelemetry/sdk/configuration/headers_configuration.h"
10+
#include "opentelemetry/sdk/configuration/log_record_exporter_configuration.h"
11+
#include "opentelemetry/sdk/configuration/log_record_exporter_configuration_visitor.h"
12+
#include "opentelemetry/version.h"
13+
14+
OPENTELEMETRY_BEGIN_NAMESPACE
15+
namespace sdk
16+
{
17+
namespace configuration
18+
{
19+
20+
// YAML-SCHEMA: schema/common.json
21+
// YAML-NODE: Otlp
22+
class OtlpGrpcLogRecordExporterConfiguration : public LogRecordExporterConfiguration
23+
{
24+
public:
25+
void Accept(LogRecordExporterConfigurationVisitor *visitor) const override
26+
{
27+
visitor->VisitOtlpGrpc(this);
28+
}
29+
30+
std::string endpoint;
31+
std::string certificate_file;
32+
std::string client_key_file;
33+
std::string client_certificate_file;
34+
std::unique_ptr<HeadersConfiguration> headers;
35+
std::string headers_list;
36+
std::string compression;
37+
std::size_t timeout{0};
38+
bool insecure{false};
39+
};
40+
41+
} // namespace configuration
42+
} // namespace sdk
43+
OPENTELEMETRY_END_NAMESPACE

0 commit comments

Comments
 (0)