Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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,33 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "opentelemetry/sdk/configuration/headers_configuration.h"
#include "opentelemetry/sdk/configuration/push_metric_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/push_metric_exporter_configuration_visitor.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/common.json
// YAML-NODE: Console
class ConsolePushMetricExporterConfiguration : public PushMetricExporterConfiguration
{
public:
ConsolePushMetricExporterConfiguration() = default;
~ConsolePushMetricExporterConfiguration() override = default;

void Accept(PushMetricExporterConfigurationVisitor *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,30 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include <memory>

#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{
class MetricProducerConfigurationVisitor;

// YAML-SCHEMA: schema/meter_provider.json
// YAML-NODE: MetricProducer
class MetricProducerConfiguration
{
public:
MetricProducerConfiguration() = default;
virtual ~MetricProducerConfiguration() = default;

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

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

#pragma once

#include <memory>

#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{
class MetricReaderConfigurationVisitor;

// YAML-SCHEMA: schema/meter_provider.json
// YAML-NODE: MetricReader
class MetricReaderConfiguration
{
public:
MetricReaderConfiguration() = default;
virtual ~MetricReaderConfiguration() = default;

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

} // 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/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

class PeriodicMetricReaderConfiguration;
class PullMetricReaderConfiguration;

class MetricReaderConfigurationVisitor
{
public:
MetricReaderConfigurationVisitor() = default;
virtual ~MetricReaderConfigurationVisitor() = default;

virtual void VisitPeriodic(const PeriodicMetricReaderConfiguration *model) = 0;
virtual void VisitPull(const PullMetricReaderConfiguration *model) = 0;
};

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

#pragma once

#include <string>

#include "opentelemetry/sdk/configuration/exporter_default_histogram_aggregation.h"
#include "opentelemetry/sdk/configuration/headers_configuration.h"
#include "opentelemetry/sdk/configuration/push_metric_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/push_metric_exporter_configuration_visitor.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/meter_provider.json
// YAML-NODE: ExperimentalOtlpFileMetricExporter
class OtlpFilePushMetricExporterConfiguration : public PushMetricExporterConfiguration
{
public:
OtlpFilePushMetricExporterConfiguration() = default;
~OtlpFilePushMetricExporterConfiguration() override = default;

void Accept(PushMetricExporterConfigurationVisitor *visitor) const override
{
visitor->VisitOtlpFile(this);
}

std::string output_stream;
std::string temporality_preference; // FIXME: enum
enum_default_histogram_aggregation default_histogram_aggregation{explicit_bucket_histogram};
};

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

#pragma once

#include <memory>
#include <string>

#include "opentelemetry/sdk/configuration/exporter_default_histogram_aggregation.h"
#include "opentelemetry/sdk/configuration/headers_configuration.h"
#include "opentelemetry/sdk/configuration/push_metric_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/push_metric_exporter_configuration_visitor.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/meter_provider.json
// YAML-NODE: OtlpGrpcMetricExporter
class OtlpGrpcPushMetricExporterConfiguration : public PushMetricExporterConfiguration
{
public:
OtlpGrpcPushMetricExporterConfiguration() = default;
~OtlpGrpcPushMetricExporterConfiguration() override = default;

void Accept(PushMetricExporterConfigurationVisitor *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;
size_t timeout{0};
bool insecure{false};
std::string temporality_preference; // FIXME: enum
enum_default_histogram_aggregation default_histogram_aggregation{explicit_bucket_histogram};
};

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

#pragma once

#include <memory>
#include <string>

#include "opentelemetry/sdk/configuration/exporter_default_histogram_aggregation.h"
#include "opentelemetry/sdk/configuration/headers_configuration.h"
#include "opentelemetry/sdk/configuration/otlp_http_encoding.h"
#include "opentelemetry/sdk/configuration/push_metric_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/push_metric_exporter_configuration_visitor.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/meter_provider.json
// YAML-NODE: OtlpHttpMetricExporter
class OtlpHttpPushMetricExporterConfiguration : public PushMetricExporterConfiguration
{
public:
OtlpHttpPushMetricExporterConfiguration() = default;
~OtlpHttpPushMetricExporterConfiguration() override = default;

void Accept(PushMetricExporterConfigurationVisitor *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;
size_t timeout{0};
enum_otlp_http_encoding encoding{protobuf};
std::string temporality_preference; // FIXME: enum
enum_default_histogram_aggregation default_histogram_aggregation{explicit_bucket_histogram};
};

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

#pragma once

#include <memory>
#include <vector>

#include "opentelemetry/sdk/configuration/metric_producer_configuration.h"
#include "opentelemetry/sdk/configuration/metric_reader_configuration.h"
#include "opentelemetry/sdk/configuration/metric_reader_configuration_visitor.h"
#include "opentelemetry/sdk/configuration/push_metric_exporter_configuration.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/meter_provider.json
// YAML-NODE: PeriodicMetricReader
class PeriodicMetricReaderConfiguration : public MetricReaderConfiguration
{
public:
PeriodicMetricReaderConfiguration() = default;
~PeriodicMetricReaderConfiguration() override = default;

void Accept(MetricReaderConfigurationVisitor *visitor) const override
{
visitor->VisitPeriodic(this);
}

size_t interval{0};
size_t timeout{0};
std::unique_ptr<PushMetricExporterConfiguration> exporter;
std::vector<std::unique_ptr<MetricProducerConfiguration>> producers;
};

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

#pragma once

#include <string>

#include "opentelemetry/sdk/configuration/headers_configuration.h"
#include "opentelemetry/sdk/configuration/pull_metric_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/pull_metric_exporter_configuration_visitor.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{

// YAML-SCHEMA: schema/meter_provider.json
// YAML-NODE: Prometheus
class PrometheusPullMetricExporterConfiguration : public PullMetricExporterConfiguration
{
public:
PrometheusPullMetricExporterConfiguration() = default;
~PrometheusPullMetricExporterConfiguration() override = default;

void Accept(PullMetricExporterConfigurationVisitor *visitor) const override
{
visitor->VisitPrometheus(this);
}

std::string host;
size_t port{0};
bool without_units{false};
bool without_type_suffix{false};
bool without_scope_info{false};
// FIXME: with_resource_constant_labels;
};

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

#pragma once

#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace configuration
{
class PullMetricExporterConfigurationVisitor;

class PullMetricExporterConfiguration
{
public:
PullMetricExporterConfiguration() = default;
virtual ~PullMetricExporterConfiguration() = default;

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

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