Skip to content

[pull] main from open-telemetry:main #484

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 28, 2025
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,33 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include <memory>

#include "opentelemetry/sdk/configuration/console_log_record_exporter_builder.h"
#include "opentelemetry/sdk/configuration/console_log_record_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/registry.h"
#include "opentelemetry/sdk/logs/exporter.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace exporter
{
namespace logs
{

class OPENTELEMETRY_EXPORT ConsoleLogRecordBuilder
: public opentelemetry::sdk::configuration::ConsoleLogRecordExporterBuilder
{
public:
static void Register(opentelemetry::sdk::configuration::Registry *registry);

std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter> Build(
const opentelemetry::sdk::configuration::ConsoleLogRecordExporterConfiguration *model)
const override;
};

} // namespace logs
} // namespace exporter
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 <memory>

#include "opentelemetry/sdk/configuration/console_push_metric_exporter_builder.h"
#include "opentelemetry/sdk/configuration/console_push_metric_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/registry.h"
#include "opentelemetry/sdk/metrics/push_metric_exporter.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace exporter
{
namespace metrics
{

class OPENTELEMETRY_EXPORT ConsolePushMetricBuilder
: public opentelemetry::sdk::configuration::ConsolePushMetricExporterBuilder
{
public:
static void Register(opentelemetry::sdk::configuration::Registry *registry);

std::unique_ptr<opentelemetry::sdk::metrics::PushMetricExporter> Build(
const opentelemetry::sdk::configuration::ConsolePushMetricExporterConfiguration *model)
const override;
};

} // namespace metrics
} // namespace exporter
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 <memory>

#include "opentelemetry/sdk/configuration/console_span_exporter_builder.h"
#include "opentelemetry/sdk/configuration/console_span_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/registry.h"
#include "opentelemetry/sdk/trace/exporter.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace exporter
{
namespace trace
{

class OPENTELEMETRY_EXPORT ConsoleSpanBuilder
: public opentelemetry::sdk::configuration::ConsoleSpanExporterBuilder
{
public:
static void Register(opentelemetry::sdk::configuration::Registry *registry);

std::unique_ptr<opentelemetry::sdk::trace::SpanExporter> Build(
const opentelemetry::sdk::configuration::ConsoleSpanExporterConfiguration *model)
const override;
};

} // namespace trace
} // namespace exporter
OPENTELEMETRY_END_NAMESPACE
36 changes: 36 additions & 0 deletions exporters/ostream/src/console_log_record_builder.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#include <memory>
#include <utility>

#include "opentelemetry/exporters/ostream/console_log_record_builder.h"
#include "opentelemetry/exporters/ostream/log_record_exporter_factory.h"
#include "opentelemetry/sdk/configuration/console_log_record_exporter_builder.h"
#include "opentelemetry/sdk/configuration/console_log_record_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/registry.h"
#include "opentelemetry/sdk/logs/exporter.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace exporter
{
namespace logs
{

void ConsoleLogRecordBuilder::Register(opentelemetry::sdk::configuration::Registry *registry)
{
auto builder = std::make_unique<ConsoleLogRecordBuilder>();
registry->SetConsoleLogRecordBuilder(std::move(builder));
}

std::unique_ptr<opentelemetry::sdk::logs::LogRecordExporter> ConsoleLogRecordBuilder::Build(
const opentelemetry::sdk::configuration::ConsoleLogRecordExporterConfiguration * /* model */)
const
{
return OStreamLogRecordExporterFactory::Create();
}

} // namespace logs
} // namespace exporter
OPENTELEMETRY_END_NAMESPACE
36 changes: 36 additions & 0 deletions exporters/ostream/src/console_push_metric_builder.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#include <memory>
#include <utility>

#include "opentelemetry/exporters/ostream/console_push_metric_builder.h"
#include "opentelemetry/exporters/ostream/metric_exporter_factory.h"
#include "opentelemetry/sdk/configuration/console_push_metric_exporter_builder.h"
#include "opentelemetry/sdk/configuration/console_push_metric_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/registry.h"
#include "opentelemetry/sdk/metrics/push_metric_exporter.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace exporter
{
namespace metrics
{

void ConsolePushMetricBuilder::Register(opentelemetry::sdk::configuration::Registry *registry)
{
auto builder = std::make_unique<ConsolePushMetricBuilder>();
registry->SetConsolePushMetricExporterBuilder(std::move(builder));
}

std::unique_ptr<opentelemetry::sdk::metrics::PushMetricExporter> ConsolePushMetricBuilder::Build(
const opentelemetry::sdk::configuration::ConsolePushMetricExporterConfiguration * /* model */)
const
{
return OStreamMetricExporterFactory::Create();
}

} // namespace metrics
} // namespace exporter
OPENTELEMETRY_END_NAMESPACE
35 changes: 35 additions & 0 deletions exporters/ostream/src/console_span_builder.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#include <memory>
#include <utility>

#include "opentelemetry/exporters/ostream/console_span_builder.h"
#include "opentelemetry/exporters/ostream/span_exporter_factory.h"
#include "opentelemetry/sdk/configuration/console_span_exporter_builder.h"
#include "opentelemetry/sdk/configuration/console_span_exporter_configuration.h"
#include "opentelemetry/sdk/configuration/registry.h"
#include "opentelemetry/sdk/trace/exporter.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace exporter
{
namespace trace
{

void ConsoleSpanBuilder::Register(opentelemetry::sdk::configuration::Registry *registry)
{
auto builder = std::make_unique<ConsoleSpanBuilder>();
registry->SetConsoleSpanBuilder(std::move(builder));
}

std::unique_ptr<opentelemetry::sdk::trace::SpanExporter> ConsoleSpanBuilder::Build(
const opentelemetry::sdk::configuration::ConsoleSpanExporterConfiguration * /* model */) const
{
return OStreamSpanExporterFactory::Create();
}

} // namespace trace
} // namespace exporter
OPENTELEMETRY_END_NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ namespace logs
{

/**
* Struct to hold batch SpanProcessor options.
* Struct to hold batch LogRecordProcessor options.
*/
struct BatchLogRecordProcessorOptions
{
Expand Down
21 changes: 8 additions & 13 deletions sdk/include/opentelemetry/sdk/resource/resource.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,14 @@ using ResourceAttributes = opentelemetry::sdk::common::AttributeMap;
class Resource
{
public:
Resource(const Resource &) = default;
Resource() noexcept;

Resource(const ResourceAttributes &attributes) noexcept;

Resource(const ResourceAttributes &attributes, const std::string &schema_url) noexcept;

Resource(const Resource &) = default;
Resource &operator=(const Resource &) = default;

const ResourceAttributes &GetAttributes() const noexcept;
const std::string &GetSchemaURL() const noexcept;
Expand Down Expand Up @@ -61,21 +68,9 @@ class Resource

static Resource &GetDefault();

protected:
/**
* The constructor is protected and only for use internally by the class and
* inside ResourceDetector class.
* Users should use the Create factory method to obtain a Resource
* instance.
*/
Resource(const ResourceAttributes &attributes = ResourceAttributes(),
const std::string &schema_url = std::string{}) noexcept;

private:
ResourceAttributes attributes_;
std::string schema_url_;

friend class ResourceDetector;
};

} // namespace resource
Expand Down
6 changes: 6 additions & 0 deletions sdk/src/resource/resource.cc
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ namespace sdk
namespace resource
{

Resource::Resource() noexcept : attributes_(), schema_url_() {}

Resource::Resource(const ResourceAttributes &attributes) noexcept
: attributes_(attributes), schema_url_()
{}

Resource::Resource(const ResourceAttributes &attributes, const std::string &schema_url) noexcept
: attributes_(attributes), schema_url_(schema_url)
{}
Expand Down
Loading