Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include <memory>

#include "opentelemetry/sdk/configuration/log_record_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/log_record_processor_configuration.h"
#include "opentelemetry/sdk/configuration/log_record_processor_configuration_visitor.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/logger_provider.json
// YAML-NODE: BatchLogRecordProcessor
class BatchLogRecordProcessorConfiguration : public LogRecordProcessorConfiguration
{
public:
void Accept(LogRecordProcessorConfigurationVisitor *visitor) const override
{
visitor->VisitBatch(this);
}

std::size_t schedule_delay{0};
std::size_t export_timeout{0};
std::size_t max_queue_size{0};
std::size_t max_export_batch_size{0};
std::unique_ptr<LogRecordExporterConfiguration> exporter;
};

} // namespace configuration
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "opentelemetry/sdk/configuration/log_record_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/log_record_exporter_configuration_visitor.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/common.json
// YAML-NODE: Console
class ConsoleLogRecordExporterConfiguration : public LogRecordExporterConfiguration
{
public:
void Accept(LogRecordExporterConfigurationVisitor *visitor) const override
{
visitor->VisitConsole(this);
}
};

} // namespace configuration
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{
class LogRecordExporterConfigurationVisitor;

// YAML-SCHEMA: schema/logger_provider.json
// YAML-NODE: LogRecordExporter
class LogRecordExporterConfiguration
{
public:
LogRecordExporterConfiguration() = default;
LogRecordExporterConfiguration(LogRecordExporterConfiguration &&) = default;
LogRecordExporterConfiguration(const LogRecordExporterConfiguration &) = default;
LogRecordExporterConfiguration &operator=(LogRecordExporterConfiguration &&) = default;
LogRecordExporterConfiguration &operator=(const LogRecordExporterConfiguration &other) = default;
virtual ~LogRecordExporterConfiguration() = default;

virtual void Accept(LogRecordExporterConfigurationVisitor *visitor) const = 0;
};

} // namespace configuration
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

class OtlpHttpLogRecordExporterConfiguration;
class OtlpGrpcLogRecordExporterConfiguration;
class OtlpFileLogRecordExporterConfiguration;
class ConsoleLogRecordExporterConfiguration;
class ExtensionLogRecordExporterConfiguration;

class LogRecordExporterConfigurationVisitor
{
public:
LogRecordExporterConfigurationVisitor() = default;
LogRecordExporterConfigurationVisitor(LogRecordExporterConfigurationVisitor &&) = default;
LogRecordExporterConfigurationVisitor(const LogRecordExporterConfigurationVisitor &) = default;
LogRecordExporterConfigurationVisitor &operator=(LogRecordExporterConfigurationVisitor &&) =
default;
LogRecordExporterConfigurationVisitor &operator=(
const LogRecordExporterConfigurationVisitor &other) = default;
virtual ~LogRecordExporterConfigurationVisitor() = default;

virtual void VisitOtlpHttp(const OtlpHttpLogRecordExporterConfiguration *model) = 0;
virtual void VisitOtlpGrpc(const OtlpGrpcLogRecordExporterConfiguration *model) = 0;
virtual void VisitOtlpFile(const OtlpFileLogRecordExporterConfiguration *model) = 0;
virtual void VisitConsole(const ConsoleLogRecordExporterConfiguration *model) = 0;
virtual void VisitExtension(const ExtensionLogRecordExporterConfiguration *model) = 0;
};

} // namespace configuration
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/logger_provider.json
// YAML-NODE: LogRecordLimits
class LogRecordLimitsConfiguration
{
public:
std::size_t attribute_value_length_limit;
std::size_t attribute_count_limit;
};

} // namespace configuration
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{
class LogRecordProcessorConfigurationVisitor;

// YAML-SCHEMA: schema/logger_provider.json
// YAML-NODE: LogRecordProcessor
class LogRecordProcessorConfiguration
{
public:
LogRecordProcessorConfiguration() = default;
LogRecordProcessorConfiguration(LogRecordProcessorConfiguration &&) = default;
LogRecordProcessorConfiguration(const LogRecordProcessorConfiguration &) = default;
LogRecordProcessorConfiguration &operator=(LogRecordProcessorConfiguration &&) = default;
LogRecordProcessorConfiguration &operator=(const LogRecordProcessorConfiguration &other) =
default;
virtual ~LogRecordProcessorConfiguration() = default;

virtual void Accept(LogRecordProcessorConfigurationVisitor *visitor) const = 0;
};

} // namespace configuration
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

class BatchLogRecordProcessorConfiguration;
class SimpleLogRecordProcessorConfiguration;
class ExtensionLogRecordProcessorConfiguration;

class LogRecordProcessorConfigurationVisitor
{
public:
LogRecordProcessorConfigurationVisitor() = default;
LogRecordProcessorConfigurationVisitor(LogRecordProcessorConfigurationVisitor &&) = default;
LogRecordProcessorConfigurationVisitor(const LogRecordProcessorConfigurationVisitor &) = default;
LogRecordProcessorConfigurationVisitor &operator=(LogRecordProcessorConfigurationVisitor &&) =
default;
LogRecordProcessorConfigurationVisitor &operator=(
const LogRecordProcessorConfigurationVisitor &other) = default;
virtual ~LogRecordProcessorConfigurationVisitor() = default;

virtual void VisitBatch(const BatchLogRecordProcessorConfiguration *model) = 0;
virtual void VisitSimple(const SimpleLogRecordProcessorConfiguration *model) = 0;
virtual void VisitExtension(const ExtensionLogRecordProcessorConfiguration *model) = 0;
};

} // namespace configuration
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include <memory>
#include <vector>

#include "opentelemetry/sdk/configuration/log_record_limits_configuration.h"
#include "opentelemetry/sdk/configuration/log_record_processor_configuration.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/logger_provider.json
// YAML-NODE: LoggerProvider
class LoggerProviderConfiguration
{
public:
std::vector<std::unique_ptr<LogRecordProcessorConfiguration>> processors;
std::unique_ptr<LogRecordLimitsConfiguration> limits;
// FIXME: logger_configurator
};

} // namespace configuration
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include <string>

#include "opentelemetry/sdk/configuration/log_record_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/log_record_exporter_configuration_visitor.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/common.json
// YAML-NODE: ExperimentalOtlpFileExporter
class OtlpFileLogRecordExporterConfiguration : public LogRecordExporterConfiguration
{
public:
void Accept(LogRecordExporterConfigurationVisitor *visitor) const override
{
visitor->VisitOtlpFile(this);
}

std::string output_stream;
};

} // namespace configuration
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include <memory>
#include <string>

#include "opentelemetry/sdk/configuration/headers_configuration.h"
#include "opentelemetry/sdk/configuration/log_record_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/log_record_exporter_configuration_visitor.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/common.json
// YAML-NODE: Otlp
class OtlpGrpcLogRecordExporterConfiguration : public LogRecordExporterConfiguration
{
public:
void Accept(LogRecordExporterConfigurationVisitor *visitor) const override
{
visitor->VisitOtlpGrpc(this);
}

std::string endpoint;
std::string certificate_file;
std::string client_key_file;
std::string client_certificate_file;
std::unique_ptr<HeadersConfiguration> headers;
std::string headers_list;
std::string compression;
std::size_t timeout{0};
bool insecure{false};
};

} // namespace configuration
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include <memory>
#include <string>

#include "opentelemetry/sdk/configuration/headers_configuration.h"
#include "opentelemetry/sdk/configuration/log_record_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/log_record_exporter_configuration_visitor.h"
#include "opentelemetry/sdk/configuration/otlp_http_encoding.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/common.json
// YAML-NODE: OtlpHttpExporter
class OtlpHttpLogRecordExporterConfiguration : public LogRecordExporterConfiguration
{
public:
void Accept(LogRecordExporterConfigurationVisitor *visitor) const override
{
visitor->VisitOtlpHttp(this);
}

std::string endpoint;
std::string certificate_file;
std::string client_key_file;
std::string client_certificate_file;
std::unique_ptr<HeadersConfiguration> headers;
std::string headers_list;
std::string compression;
std::size_t timeout{0};
enum_otlp_http_encoding encoding{protobuf};
};

} // namespace configuration
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE
Loading
Loading