Skip to content
Open
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
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ Increment the:

* [CONFIGURATION] Add a configuration builder for the host resource detector
[#4451](https://github.com/open-telemetry/opentelemetry-cpp/issues/4451)

* [CONFIGURATION] Cleanup build targets and docs
[#4486](https://github.com/open-telemetry/opentelemetry-cpp/pull/4486)

* [CONFIGURATION] Build the configured resource detectors in SdkBuilder, apply
the `detection.attributes` include/exclude filter to the detected attributes,
and merge the resource per the resource SDK specification.
Expand Down
9 changes: 7 additions & 2 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -242,8 +242,13 @@ build configuration.
| | opentelemetry-cpp::trace |
| | opentelemetry-cpp::metrics |
| | opentelemetry-cpp::logs |
| | opentelemetry-cpp::configuration_core (EXPERIMENTAL: Programmatic configuration) |
| **configuration** | opentelemetry-cpp::configuration (EXPERIMENTAL: YAML configuration) |
| | opentelemetry-cpp::configuration_core (EXPERIMENTAL: Model, Builder and Interfaces) |
| | opentelemetry-cpp::configuration_trace_builders (EXPERIMENTAL: Trace SDK default builders) |
| | opentelemetry-cpp::configuration_metrics_builders (EXPERIMENTAL: Metrics SDK default builders) |
| | opentelemetry-cpp::configuration_logs_builders (EXPERIMENTAL: Logs SDK default builders) |
| | opentelemetry-cpp::configuration_registry_factory (EXPERIMENTAL: Built-in registry creator) |
| **configuration** | opentelemetry-cpp::configuration_yaml (EXPERIMENTAL: YAML configuration) |
| | opentelemetry-cpp::configuration (EXPERIMENTAL: All config targets interface) |
| **ext_common** | opentelemetry-cpp::ext |
| **ext_http_curl** | opentelemetry-cpp::http_client_curl |
| **ext_dll** | opentelemetry-cpp::opentelemetry_cpp |
Expand Down
8 changes: 7 additions & 1 deletion ci/verify_packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,11 @@ for exporter in prometheus prometheus_builder zipkin_trace elasticsearch_logs in
validate_package "opentelemetry_exporter_${exporter}"
done

# Optional features
# SDK configuration core and builders
for pkg in configuration_core configuration_trace_builders configuration_logs_builders configuration_metrics_builders configuration_registry_factory; do
pkg-config --validate "opentelemetry_${pkg}" --print-errors
done

# Optional features (YAML parser and full interface)
validate_package "opentelemetry_configuration_yaml"
validate_package "opentelemetry_configuration"
5 changes: 5 additions & 0 deletions cmake/templates/opentelemetry-cpp-config.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,11 @@
# opentelemetry-cpp::metrics - Imported target of COMPONENT sdk
# opentelemetry-cpp::logs - Imported target of COMPONENT sdk
# opentelemetry-cpp::configuration_core - Imported target of COMPONENT sdk
# opentelemetry-cpp::configuration_trace_builders - Imported target of COMPONENT sdk
# opentelemetry-cpp::configuration_metrics_builders - Imported target of COMPONENT sdk
# opentelemetry-cpp::configuration_logs_builders - Imported target of COMPONENT sdk
# opentelemetry-cpp::configuration_registry_factory - Imported target of COMPONENT sdk
# opentelemetry-cpp::configuration_yaml - Imported target of COMPONENT configuration
# opentelemetry-cpp::configuration - Imported target of COMPONENT configuration
# opentelemetry-cpp::ext - Imported target of COMPONENT ext_common
# opentelemetry-cpp::http_client_curl - Imported target of COMPONENT ext_http_curl
Expand Down
3 changes: 0 additions & 3 deletions examples/configuration/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ cc_test(
"//resource_detectors:resource_detectors_builders",
"//sdk:headers",
"//sdk/src/configuration",
"//sdk/src/configuration:configuration_registry_factory",
"//sdk/src/logs",
"//sdk/src/metrics",
"//sdk/src/trace",
Expand Down Expand Up @@ -75,7 +74,6 @@ cc_test(
"//exporters/ostream:ostream_span_exporter_builder",
"//sdk:headers",
"//sdk/src/configuration",
"//sdk/src/configuration:configuration_registry_factory",
"//sdk/src/logs",
"//sdk/src/metrics",
"//sdk/src/trace",
Expand Down Expand Up @@ -106,7 +104,6 @@ cc_test(
"//exporters/ostream:ostream_span_exporter_builder",
"//sdk:headers",
"//sdk/src/configuration",
"//sdk/src/configuration:configuration_registry_factory",
"//sdk/src/logs",
"//sdk/src/metrics",
"//sdk/src/trace",
Expand Down
1 change: 0 additions & 1 deletion examples/configuration/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ add_executable(
target_link_libraries(
example_yaml
PRIVATE ${CMAKE_THREAD_LIBS_INIT}
opentelemetry-cpp::configuration_registry_factory
opentelemetry-cpp::configuration
common_metrics_foo_library
common_logs_foo_library
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ include(GoogleTest)
add_executable(configuration_test ${INSTALL_TEST_SRC_DIR}/test_configuration.cc)
target_link_libraries(
configuration_test
PRIVATE opentelemetry-cpp::configuration_registry_factory
opentelemetry-cpp::configuration
PRIVATE opentelemetry-cpp::configuration
opentelemetry-cpp::ostream_log_record_exporter_builder
opentelemetry-cpp::ostream_metrics_exporter_builder
opentelemetry-cpp::ostream_span_exporter_builder
Expand Down
1 change: 1 addition & 0 deletions install/test/cmake/fetch_content_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ target_link_libraries(
opentelemetry-cpp::configuration_metrics_builders
opentelemetry-cpp::configuration_logs_builders
opentelemetry-cpp::configuration_registry_factory
opentelemetry-cpp::configuration_yaml
opentelemetry-cpp::configuration
opentelemetry-cpp::resource_detectors
opentelemetry-cpp::resource_detectors_builders
Expand Down
1 change: 1 addition & 0 deletions sdk/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ if(OTELCPP_WITH_CONFIGURATION)
COMPONENT
configuration
TARGETS
opentelemetry_configuration_yaml
opentelemetry_configuration
FILES_DIRECTORY
"include/opentelemetry/"
Expand Down
14 changes: 13 additions & 1 deletion sdk/src/configuration/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ cc_library(
)

cc_library(
name = "configuration",
name = "configuration_yaml",
srcs = [
"configuration_parser.cc",
"ryml_document.cc",
Expand All @@ -97,3 +97,15 @@ cc_library(
"@rapidyaml",
],
)

cc_library(
name = "configuration",
deps = [
":configuration_core",
":configuration_logs_builders",
":configuration_metrics_builders",
":configuration_registry_factory",
":configuration_trace_builders",
":configuration_yaml",
],
)
111 changes: 90 additions & 21 deletions sdk/src/configuration/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@ target_include_directories(
PUBLIC "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/sdk/include>"
"$<INSTALL_INTERFACE:include>")

# TODO: Remove trace, metrics and logs library links from config core. See:
# https://github.com/open-telemetry/opentelemetry-cpp/issues/4352
target_link_libraries(
opentelemetry_configuration_core
PUBLIC opentelemetry_api opentelemetry_common opentelemetry_trace
opentelemetry_metrics opentelemetry_logs opentelemetry_resources
PRIVATE)
PUBLIC opentelemetry_api opentelemetry_common opentelemetry_resources
opentelemetry_trace opentelemetry_metrics opentelemetry_logs)

# Trace SDK component builders
add_library(opentelemetry_configuration_trace_builders trace_builders.cc)
Expand All @@ -43,8 +44,7 @@ target_include_directories(

target_link_libraries(
opentelemetry_configuration_trace_builders
PUBLIC opentelemetry_trace
PRIVATE opentelemetry_configuration_core)
PUBLIC opentelemetry_trace opentelemetry_configuration_core)

# Logs SDK component builders
add_library(opentelemetry_configuration_logs_builders logs_builders.cc)
Expand All @@ -60,8 +60,7 @@ target_include_directories(

target_link_libraries(
opentelemetry_configuration_logs_builders
PUBLIC opentelemetry_logs
PRIVATE opentelemetry_configuration_core)
PUBLIC opentelemetry_logs opentelemetry_configuration_core)

# Metrics SDK component builders
add_library(opentelemetry_configuration_metrics_builders metrics_builders.cc)
Expand All @@ -77,8 +76,7 @@ target_include_directories(

target_link_libraries(
opentelemetry_configuration_metrics_builders
PUBLIC opentelemetry_metrics
PRIVATE opentelemetry_configuration_core)
PUBLIC opentelemetry_metrics opentelemetry_configuration_core)

# Registry factory for to register all SDK component builders
add_library(opentelemetry_configuration_registry_factory registry_factory.cc)
Expand All @@ -95,37 +93,108 @@ target_include_directories(
target_link_libraries(
opentelemetry_configuration_registry_factory
PUBLIC opentelemetry_configuration_core
opentelemetry_configuration_trace_builders
opentelemetry_configuration_metrics_builders
opentelemetry_configuration_logs_builders)
PRIVATE opentelemetry_configuration_trace_builders
opentelemetry_configuration_metrics_builders
opentelemetry_configuration_logs_builders)

if(OPENTELEMETRY_INSTALL)
opentelemetry_add_pkgconfig(
configuration_core
"OpenTelemetry SDK - Configuration Core"
"Programmatic configuration model, registry, and SDK builder."
"opentelemetry_api"
"opentelemetry_common"
"opentelemetry_trace"
"opentelemetry_metrics"
"opentelemetry_logs"
"opentelemetry_resources")

opentelemetry_add_pkgconfig(
configuration_trace_builders
"OpenTelemetry SDK - Configuration Trace Builders"
"Default trace SDK component builders for programmatic configuration."
"opentelemetry_trace"
"opentelemetry_configuration_core")

opentelemetry_add_pkgconfig(
configuration_logs_builders
"OpenTelemetry SDK - Configuration Logs Builders"
"Default logs SDK component builders for programmatic configuration."
"opentelemetry_logs"
"opentelemetry_configuration_core")

opentelemetry_add_pkgconfig(
configuration_metrics_builders
"OpenTelemetry SDK - Configuration Metrics Builders"
"Default metrics SDK component builders for programmatic configuration."
"opentelemetry_metrics"
"opentelemetry_configuration_core")

opentelemetry_add_pkgconfig(
configuration_registry_factory
"OpenTelemetry SDK - Configuration Registry Factory"
"Registry factory pre-populated with default SDK component builders."
"opentelemetry_configuration_core"
"opentelemetry_configuration_trace_builders"
"opentelemetry_configuration_metrics_builders"
"opentelemetry_configuration_logs_builders")
endif()

if(OTELCPP_WITH_CONFIGURATION)

# YAML configuration parser
add_library(
opentelemetry_configuration
opentelemetry_configuration_yaml
configuration_parser.cc yaml_configuration_parser.cc ryml_document.cc
ryml_document_node.cc)

set_target_properties(opentelemetry_configuration PROPERTIES EXPORT_NAME
configuration)
set_target_version(opentelemetry_configuration)
set_target_properties(opentelemetry_configuration_yaml
PROPERTIES EXPORT_NAME configuration_yaml)
set_target_version(opentelemetry_configuration_yaml)

target_include_directories(
opentelemetry_configuration
opentelemetry_configuration_yaml
PUBLIC "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/sdk/include>"
"$<INSTALL_INTERFACE:include>")

target_link_libraries(
opentelemetry_configuration
opentelemetry_configuration_yaml
PUBLIC opentelemetry_configuration_core
PRIVATE ryml::ryml)

# Full configuration interface target (links to all configuration libraries)
# Link to this for all SDK default built-in component builders and YAML
# parsing
add_library(opentelemetry_configuration INTERFACE)
set_target_properties(opentelemetry_configuration PROPERTIES EXPORT_NAME
configuration)

set_target_version(opentelemetry_configuration)
target_link_libraries(
opentelemetry_configuration
INTERFACE opentelemetry_configuration_core
opentelemetry_configuration_yaml
opentelemetry_configuration_registry_factory
opentelemetry_configuration_trace_builders
opentelemetry_configuration_metrics_builders
opentelemetry_configuration_logs_builders)

if(OPENTELEMETRY_INSTALL)
opentelemetry_add_pkgconfig(
configuration "OpenTelemetry SDK - Configuration"
"Components for exporting traces in the OpenTelemetry SDK."
"opentelemetry_configuration")
configuration_yaml "OpenTelemetry SDK - Configuration YAML"
"YAML configuration parser for the OpenTelemetry SDK."
"opentelemetry_configuration_core")

opentelemetry_add_pkgconfig(
configuration
"OpenTelemetry SDK - Configuration"
"Full YAML configuration interface: parser, registry, and all default builders."
"opentelemetry_configuration_core"
"opentelemetry_configuration_yaml"
"opentelemetry_configuration_registry_factory"
"opentelemetry_configuration_trace_builders"
"opentelemetry_configuration_metrics_builders"
"opentelemetry_configuration_logs_builders")
endif()

endif(OTELCPP_WITH_CONFIGURATION)
14 changes: 7 additions & 7 deletions sdk/test/configuration/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ cc_test(
deps = [
"//api",
"//sdk:headers",
"//sdk/src/configuration",
"//sdk/src/configuration:configuration_yaml",
"//sdk/src/logs",
"//sdk/src/metrics",
"//sdk/src/trace",
Expand All @@ -170,7 +170,7 @@ cc_test(
deps = [
"//api",
"//sdk:headers",
"//sdk/src/configuration",
"//sdk/src/configuration:configuration_yaml",
"//sdk/src/logs",
"//sdk/src/metrics",
"//sdk/src/trace",
Expand All @@ -190,7 +190,7 @@ cc_test(
deps = [
"//api",
"//sdk:headers",
"//sdk/src/configuration",
"//sdk/src/configuration:configuration_yaml",
"//sdk/src/logs",
"//sdk/src/metrics",
"//sdk/src/trace",
Expand All @@ -210,7 +210,7 @@ cc_test(
deps = [
"//api",
"//sdk:headers",
"//sdk/src/configuration",
"//sdk/src/configuration:configuration_yaml",
"//sdk/src/logs",
"//sdk/src/metrics",
"//sdk/src/trace",
Expand All @@ -230,7 +230,7 @@ cc_test(
deps = [
"//api",
"//sdk:headers",
"//sdk/src/configuration",
"//sdk/src/configuration:configuration_yaml",
"//sdk/src/logs",
"//sdk/src/metrics",
"//sdk/src/trace",
Expand All @@ -250,7 +250,7 @@ cc_test(
deps = [
"//api",
"//sdk:headers",
"//sdk/src/configuration",
"//sdk/src/configuration:configuration_yaml",
"//sdk/src/logs",
"//sdk/src/metrics",
"//sdk/src/trace",
Expand All @@ -270,7 +270,7 @@ cc_test(
deps = [
"//api",
"//sdk:headers",
"//sdk/src/configuration",
"//sdk/src/configuration:configuration_yaml",
"//sdk/src/logs",
"//sdk/src/metrics",
"//sdk/src/trace",
Expand Down
2 changes: 1 addition & 1 deletion sdk/test/configuration/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ if(WITH_CONFIGURATION)
add_executable(${testname} "${testname}.cc")
target_link_libraries(
${testname} PRIVATE ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}
opentelemetry_configuration)
opentelemetry_configuration_yaml)
gtest_add_tests(
TARGET ${testname}
TEST_PREFIX yaml.
Expand Down
Loading