Skip to content

Commit ccd0453

Browse files
authored
Merge branch 'main' into merge_config_metric_model
2 parents 86dc419 + 82bddef commit ccd0453

21 files changed

+767
-0
lines changed
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/sampler_configuration.h"
7+
#include "opentelemetry/sdk/configuration/sampler_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/tracer_provider.json
17+
// YAML-NODE: always_off
18+
class AlwaysOffSamplerConfiguration : public SamplerConfiguration
19+
{
20+
public:
21+
void Accept(SamplerConfigurationVisitor *visitor) const override
22+
{
23+
visitor->VisitAlwaysOff(this);
24+
}
25+
};
26+
27+
} // namespace configuration
28+
} // namespace sdk
29+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include "opentelemetry/sdk/configuration/sampler_configuration.h"
7+
#include "opentelemetry/sdk/configuration/sampler_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/tracer_provider.json
17+
// YAML-NODE: always_on
18+
class AlwaysOnSamplerConfiguration : public SamplerConfiguration
19+
{
20+
public:
21+
void Accept(SamplerConfigurationVisitor *visitor) const override { visitor->VisitAlwaysOn(this); }
22+
};
23+
24+
} // namespace configuration
25+
} // namespace sdk
26+
OPENTELEMETRY_END_NAMESPACE
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/span_exporter_configuration.h"
9+
#include "opentelemetry/sdk/configuration/span_processor_configuration.h"
10+
#include "opentelemetry/sdk/configuration/span_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/tracer_provider.json
20+
// YAML-NODE: BatchSpanProcessor
21+
class BatchSpanProcessorConfiguration : public SpanProcessorConfiguration
22+
{
23+
public:
24+
void Accept(SpanProcessorConfigurationVisitor *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<SpanExporterConfiguration> exporter;
34+
};
35+
36+
} // namespace configuration
37+
} // namespace sdk
38+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
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/attribute_limits_configuration.h"
10+
#include "opentelemetry/sdk/configuration/document.h"
11+
#include "opentelemetry/sdk/configuration/logger_provider_configuration.h"
12+
#include "opentelemetry/sdk/configuration/meter_provider_configuration.h"
13+
#include "opentelemetry/sdk/configuration/propagator_configuration.h"
14+
#include "opentelemetry/sdk/configuration/resource_configuration.h"
15+
#include "opentelemetry/sdk/configuration/tracer_provider_configuration.h"
16+
#include "opentelemetry/version.h"
17+
18+
/*
19+
* General notes about configuration classes.
20+
*
21+
* Each Yaml node that exists in the yaml schema,
22+
* as defined by https://github.com/open-telemetry/opentelemetry-configuration
23+
* is represented by a C++ class.
24+
* Special comments are used to relate the C++ class to
25+
* the Yaml node it represents.
26+
*
27+
* YAML-SCHEMA: points to the relevant file within the
28+
* opentelemetry-configuration repository
29+
* YAML-NODE: points to the relevant node within the file.
30+
*
31+
* For example,
32+
* C++ class opentelemetry::sdk::configuration::Configuration
33+
* corresponds to
34+
* Yaml node OpenTelemetryConfiguration,
35+
* in file
36+
* https://github.com/open-telemetry/opentelemetry-configuration/blob/main/schema/opentelemetry_configuration.json
37+
*/
38+
39+
OPENTELEMETRY_BEGIN_NAMESPACE
40+
namespace sdk
41+
{
42+
namespace configuration
43+
{
44+
45+
// YAML-SCHEMA: schema/opentelemetry_configuration.json
46+
// YAML-NODE: OpenTelemetryConfiguration
47+
class Configuration
48+
{
49+
public:
50+
Configuration(std::unique_ptr<Document> doc) : doc_(std::move(doc)) {}
51+
Configuration(Configuration &&) = delete;
52+
Configuration(const Configuration &) = delete;
53+
Configuration &operator=(Configuration &&) = delete;
54+
Configuration &operator=(const Configuration &other) = delete;
55+
~Configuration() = default;
56+
57+
std::string file_format;
58+
bool disabled{false};
59+
std::string log_level;
60+
61+
std::unique_ptr<AttributeLimitsConfiguration> attribute_limits;
62+
std::unique_ptr<LoggerProviderConfiguration> logger_provider;
63+
std::unique_ptr<MeterProviderConfiguration> meter_provider;
64+
std::unique_ptr<PropagatorConfiguration> propagator;
65+
std::unique_ptr<TracerProviderConfiguration> tracer_provider;
66+
std::unique_ptr<ResourceConfiguration> resource;
67+
// Ignored: instrumentation
68+
69+
private:
70+
std::unique_ptr<Document> doc_;
71+
};
72+
73+
} // namespace configuration
74+
} // namespace sdk
75+
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/span_exporter_configuration.h"
7+
#include "opentelemetry/sdk/configuration/span_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 ConsoleSpanExporterConfiguration : public SpanExporterConfiguration
19+
{
20+
public:
21+
void Accept(SpanExporterConfigurationVisitor *visitor) const override
22+
{
23+
visitor->VisitConsole(this);
24+
}
25+
};
26+
27+
} // namespace configuration
28+
} // namespace sdk
29+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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/sampler_configuration.h"
10+
#include "opentelemetry/sdk/configuration/sampler_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/tracer_provider.json
20+
// YAML-NODE: jaeger_remote
21+
class JaegerRemoteSamplerConfiguration : public SamplerConfiguration
22+
{
23+
public:
24+
void Accept(SamplerConfigurationVisitor *visitor) const override
25+
{
26+
visitor->VisitJaegerRemote(this);
27+
}
28+
29+
std::string endpoint;
30+
std::size_t interval{0};
31+
std::unique_ptr<SamplerConfiguration> initial_sampler;
32+
};
33+
34+
} // namespace configuration
35+
} // namespace sdk
36+
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/span_exporter_configuration.h"
9+
#include "opentelemetry/sdk/configuration/span_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 OtlpFileSpanExporterConfiguration : public SpanExporterConfiguration
21+
{
22+
public:
23+
void Accept(SpanExporterConfigurationVisitor *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/span_exporter_configuration.h"
11+
#include "opentelemetry/sdk/configuration/span_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: OtlpGrpcExporter
22+
class OtlpGrpcSpanExporterConfiguration : public SpanExporterConfiguration
23+
{
24+
public:
25+
void Accept(SpanExporterConfigurationVisitor *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
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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/otlp_http_encoding.h"
11+
#include "opentelemetry/sdk/configuration/span_exporter_configuration.h"
12+
#include "opentelemetry/sdk/configuration/span_exporter_configuration_visitor.h"
13+
#include "opentelemetry/version.h"
14+
15+
OPENTELEMETRY_BEGIN_NAMESPACE
16+
namespace sdk
17+
{
18+
namespace configuration
19+
{
20+
21+
// YAML-SCHEMA: schema/common.json
22+
// YAML-NODE: OtlpHttpExporter
23+
class OtlpHttpSpanExporterConfiguration : public SpanExporterConfiguration
24+
{
25+
public:
26+
void Accept(SpanExporterConfigurationVisitor *visitor) const override
27+
{
28+
visitor->VisitOtlpHttp(this);
29+
}
30+
31+
std::string endpoint;
32+
std::string certificate_file;
33+
std::string client_key_file;
34+
std::string client_certificate_file;
35+
std::unique_ptr<HeadersConfiguration> headers;
36+
std::string headers_list;
37+
std::string compression;
38+
std::size_t timeout{0};
39+
enum_otlp_http_encoding encoding{protobuf};
40+
};
41+
42+
} // namespace configuration
43+
} // namespace sdk
44+
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 <memory>
7+
8+
#include "opentelemetry/sdk/configuration/sampler_configuration.h"
9+
#include "opentelemetry/sdk/configuration/sampler_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/tracer_provider.json
19+
// YAML-NODE: parent_based
20+
class ParentBasedSamplerConfiguration : public SamplerConfiguration
21+
{
22+
public:
23+
void Accept(SamplerConfigurationVisitor *visitor) const override
24+
{
25+
visitor->VisitParentBased(this);
26+
}
27+
28+
std::unique_ptr<SamplerConfiguration> root;
29+
std::unique_ptr<SamplerConfiguration> remote_parent_sampled;
30+
std::unique_ptr<SamplerConfiguration> remote_parent_not_sampled;
31+
std::unique_ptr<SamplerConfiguration> local_parent_sampled;
32+
std::unique_ptr<SamplerConfiguration> local_parent_not_sampled;
33+
};
34+
35+
} // namespace configuration
36+
} // namespace sdk
37+
OPENTELEMETRY_END_NAMESPACE

0 commit comments

Comments
 (0)