diff --git a/MODULE.bazel b/MODULE.bazel index 3200237c6a..81abe235f3 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -18,6 +18,7 @@ bazel_dep(name = "opentracing-cpp", version = "1.6.0", repo_name = "com_github_o bazel_dep(name = "platforms", version = "0.0.11") bazel_dep(name = "prometheus-cpp", version = "1.3.0", repo_name = "com_github_jupp0r_prometheus_cpp") bazel_dep(name = "protobuf", version = "29.0", repo_name = "com_google_protobuf") +bazel_dep(name = "rapidyaml", version = "0.9.0") bazel_dep(name = "rules_proto", version = "7.0.2") bazel_dep(name = "zlib", version = "1.3.1.bcr.5") diff --git a/ci/do_ci.sh b/ci/do_ci.sh index bf5c5e8b60..976cc55c42 100755 --- a/ci/do_ci.sh +++ b/ci/do_ci.sh @@ -536,8 +536,11 @@ EOF examples/plugin/load/load_plugin_example ${PLUGIN_DIR}/libexample_plugin.so /dev/null exit 0 elif [[ "$1" == "bazel.no_bzlmod.test" ]]; then - bazel $BAZEL_STARTUP_OPTIONS build --enable_bzlmod=false $BAZEL_OPTIONS //... - bazel $BAZEL_STARTUP_OPTIONS test --enable_bzlmod=false $BAZEL_TEST_OPTIONS //... + # Rapidyaml 0.9.0 as is does not support bazel, + # modules in bazel central repository required + # to build configuration. + bazel $BAZEL_STARTUP_OPTIONS build --enable_bzlmod=false $BAZEL_OPTIONS -- //... -//examples/configuration/... -//sdk/src/configuration/... -//sdk/test/configuration/... + bazel $BAZEL_STARTUP_OPTIONS test --enable_bzlmod=false $BAZEL_TEST_OPTIONS -- //... -//examples/configuration/... -//sdk/src/configuration/... -//sdk/test/configuration/... exit 0 elif [[ "$1" == "bazel.test" ]]; then bazel $BAZEL_STARTUP_OPTIONS build $BAZEL_OPTIONS $BAZEL_WITH_PREVIEW //... @@ -564,8 +567,8 @@ elif [[ "$1" == "bazel.noexcept" ]]; then # there are some exceptions and error handling code from the Prometheus Client # as well as Opentracing shim (due to some third party code in its Opentracing dependency) # that make this test always fail. Ignore these packages in the noexcept test here. - bazel $BAZEL_STARTUP_OPTIONS build --copt=-fno-exceptions $BAZEL_OPTIONS_ASYNC -- //... -//exporters/prometheus/... -//examples/prometheus/... -//opentracing-shim/... - bazel $BAZEL_STARTUP_OPTIONS test --copt=-fno-exceptions $BAZEL_TEST_OPTIONS_ASYNC -- //... -//exporters/prometheus/... -//examples/prometheus/... -//opentracing-shim/... + bazel $BAZEL_STARTUP_OPTIONS build --copt=-fno-exceptions $BAZEL_OPTIONS_ASYNC -- //... -//exporters/prometheus/... -//examples/prometheus/... -//opentracing-shim/... -//examples/configuration/... -//sdk/src/configuration/... -//sdk/test/configuration/... + bazel $BAZEL_STARTUP_OPTIONS test --copt=-fno-exceptions $BAZEL_TEST_OPTIONS_ASYNC -- //... -//exporters/prometheus/... -//examples/prometheus/... -//opentracing-shim/... -//examples/configuration/... -//sdk/src/configuration/... -//sdk/test/configuration/... exit 0 elif [[ "$1" == "bazel.nortti" ]]; then # there are some exceptions and error handling code from the Prometheus Client diff --git a/examples/configuration/BUILD b/examples/configuration/BUILD new file mode 100644 index 0000000000..7c2245ca9c --- /dev/null +++ b/examples/configuration/BUILD @@ -0,0 +1,43 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +cc_binary( + name = "example_yaml", + srcs = glob(["*.cc"]) + glob(["*.h"]), + defines = [ + "OTEL_HAVE_OTLP_HTTP", + "OTEL_HAVE_OTLP_GRPC", + "OTEL_HAVE_OTLP_FILE", + "OTEL_HAVE_ZIPKIN", + "OTEL_HAVE_PROMETHEUS", + ], + tags = [ + "test", + "yaml", + ], + deps = [ + "//api", + "//examples/common/logs_foo_library:common_logs_foo_library", + "//examples/common/metrics_foo_library:common_metrics_foo_library", + "//exporters/ostream:ostream_log_record_exporter_builder", + "//exporters/ostream:ostream_metric_exporter_builder", + "//exporters/ostream:ostream_span_exporter_builder", + "//exporters/otlp:otlp_file_log_record_exporter_builder", + "//exporters/otlp:otlp_file_metric_exporter_builder", + "//exporters/otlp:otlp_file_span_exporter_builder", + "//exporters/otlp:otlp_grpc_log_record_exporter_builder", + "//exporters/otlp:otlp_grpc_metric_exporter_builder", + "//exporters/otlp:otlp_grpc_span_exporter_builder", + "//exporters/otlp:otlp_http_log_record_exporter_builder", + "//exporters/otlp:otlp_http_metric_exporter_builder", + "//exporters/otlp:otlp_http_span_exporter_builder", + "//exporters/prometheus:prometheus_exporter_builder", + "//exporters/zipkin:zipkin_exporter_builder", + "//sdk:headers", + "//sdk/src/configuration", + "//sdk/src/logs", + "//sdk/src/metrics", + "//sdk/src/trace", + "@com_google_googletest//:gtest_main", + ], +) diff --git a/exporters/ostream/BUILD b/exporters/ostream/BUILD index 177bf6a968..a5bd1e2384 100644 --- a/exporters/ostream/BUILD +++ b/exporters/ostream/BUILD @@ -21,6 +21,21 @@ cc_library( ], ) +cc_library( + name = "ostream_log_record_exporter_builder", + srcs = [ + "src/console_log_record_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/ostream/console_log_record_builder.h", + ], + strip_include_prefix = "include", + tags = ["ostream"], + deps = [ + ":ostream_log_record_exporter", + ], +) + cc_test( name = "ostream_log_test", srcs = ["test/ostream_log_test.cc"], @@ -55,6 +70,24 @@ cc_library( ], ) +cc_library( + name = "ostream_metric_exporter_builder", + srcs = [ + "src/console_push_metric_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/ostream/console_push_metric_builder.h", + ], + strip_include_prefix = "include", + tags = [ + "metrics", + "ostream", + ], + deps = [ + ":ostream_metric_exporter", + ], +) + cc_test( name = "ostream_metric_test", srcs = ["test/ostream_metric_test.cc"], @@ -86,6 +119,21 @@ cc_library( ], ) +cc_library( + name = "ostream_span_exporter_builder", + srcs = [ + "src/console_span_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/ostream/console_span_builder.h", + ], + strip_include_prefix = "include", + tags = ["ostream"], + deps = [ + ":ostream_span_exporter", + ], +) + cc_library( name = "ostream_capture", hdrs = [ diff --git a/exporters/otlp/BUILD b/exporters/otlp/BUILD index 2b841954a6..7c1128d7b2 100644 --- a/exporters/otlp/BUILD +++ b/exporters/otlp/BUILD @@ -39,6 +39,22 @@ cc_library( ], ) +cc_library( + name = "otlp_builder_utils", + srcs = [ + "src/otlp_builder_utils.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/otlp/otlp_builder_utils.h", + ], + strip_include_prefix = "include", + tags = ["otlp"], + deps = [ + ":otlp_http_client", + ":otlp_recordable", + ], +) + cc_library( name = "otlp_grpc_client", srcs = [ @@ -120,6 +136,25 @@ cc_library( ], ) +cc_library( + name = "otlp_grpc_span_exporter_builder", + srcs = [ + "src/otlp_grpc_span_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/otlp/otlp_grpc_span_builder.h", + ], + strip_include_prefix = "include", + tags = [ + "otlp", + "otlp_grpc", + ], + deps = [ + ":otlp_builder_utils", + ":otlp_grpc_exporter", + ], +) + cc_library( name = "otlp_http_client", srcs = [ @@ -189,6 +224,25 @@ cc_library( ], ) +cc_library( + name = "otlp_http_span_exporter_builder", + srcs = [ + "src/otlp_http_span_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/otlp/otlp_http_span_builder.h", + ], + strip_include_prefix = "include", + tags = [ + "otlp", + "otlp_http", + ], + deps = [ + ":otlp_builder_utils", + ":otlp_http_exporter", + ], +) + cc_library( name = "otlp_file_client", srcs = [ @@ -246,6 +300,24 @@ cc_library( ], ) +cc_library( + name = "otlp_file_span_exporter_builder", + srcs = [ + "src/otlp_file_span_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/otlp/otlp_file_span_builder.h", + ], + strip_include_prefix = "include", + tags = [ + "otlp", + "otlp_file", + ], + deps = [ + ":otlp_file_exporter", + ], +) + cc_library( name = "otlp_grpc_metric_exporter", srcs = [ @@ -278,6 +350,25 @@ cc_library( ], ) +cc_library( + name = "otlp_grpc_metric_exporter_builder", + srcs = [ + "src/otlp_grpc_push_metric_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/otlp/otlp_grpc_push_metric_builder.h", + ], + strip_include_prefix = "include", + tags = [ + "otlp", + "otlp_grpc_metric", + ], + deps = [ + ":otlp_builder_utils", + ":otlp_grpc_metric_exporter", + ], +) + cc_library( name = "otlp_http_metric_exporter", srcs = [ @@ -307,6 +398,25 @@ cc_library( ], ) +cc_library( + name = "otlp_http_metric_exporter_builder", + srcs = [ + "src/otlp_http_push_metric_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/otlp/otlp_http_push_metric_builder.h", + ], + strip_include_prefix = "include", + tags = [ + "otlp", + "otlp_http_metric", + ], + deps = [ + ":otlp_builder_utils", + ":otlp_http_metric_exporter", + ], +) + cc_library( name = "otlp_file_metric_exporter", srcs = [ @@ -336,6 +446,25 @@ cc_library( ], ) +cc_library( + name = "otlp_file_metric_exporter_builder", + srcs = [ + "src/otlp_file_push_metric_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/otlp/otlp_file_push_metric_builder.h", + ], + strip_include_prefix = "include", + tags = [ + "otlp", + "otlp_file_metric", + ], + deps = [ + ":otlp_builder_utils", + ":otlp_file_metric_exporter", + ], +) + cc_library( name = "otlp_http_log_record_exporter", srcs = [ @@ -365,6 +494,25 @@ cc_library( ], ) +cc_library( + name = "otlp_http_log_record_exporter_builder", + srcs = [ + "src/otlp_http_log_record_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/otlp/otlp_http_log_record_builder.h", + ], + strip_include_prefix = "include", + tags = [ + "otlp", + "otlp_http_log", + ], + deps = [ + ":otlp_builder_utils", + ":otlp_http_log_record_exporter", + ], +) + cc_library( name = "otlp_file_log_record_exporter", srcs = [ @@ -394,6 +542,25 @@ cc_library( ], ) +cc_library( + name = "otlp_file_log_record_exporter_builder", + srcs = [ + "src/otlp_file_log_record_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/otlp/otlp_file_log_record_builder.h", + ], + strip_include_prefix = "include", + tags = [ + "otlp", + "otlp_file_log", + ], + deps = [ + ":otlp_builder_utils", + ":otlp_file_log_record_exporter", + ], +) + cc_library( name = "otlp_grpc_log_record_exporter", srcs = [ @@ -425,6 +592,25 @@ cc_library( ], ) +cc_library( + name = "otlp_grpc_log_record_exporter_builder", + srcs = [ + "src/otlp_grpc_log_record_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/otlp/otlp_grpc_log_record_builder.h", + ], + strip_include_prefix = "include", + tags = [ + "otlp", + "otlp_grpc_log", + ], + deps = [ + ":otlp_builder_utils", + ":otlp_grpc_log_record_exporter", + ], +) + cc_test( name = "otlp_recordable_test", srcs = ["test/otlp_recordable_test.cc"], diff --git a/exporters/prometheus/BUILD b/exporters/prometheus/BUILD index fc981921d9..ef4da55a33 100644 --- a/exporters/prometheus/BUILD +++ b/exporters/prometheus/BUILD @@ -27,6 +27,21 @@ cc_library( ], ) +cc_library( + name = "prometheus_exporter_builder", + srcs = [ + "src/prometheus_pull_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/prometheus/prometheus_pull_builder.h", + ], + strip_include_prefix = "include", + tags = ["prometheus"], + deps = [ + ":prometheus_exporter", + ], +) + cc_library( name = "prometheus_exporter_utils", srcs = [ diff --git a/exporters/zipkin/BUILD b/exporters/zipkin/BUILD index 16774e80df..aad6ebd4a4 100644 --- a/exporters/zipkin/BUILD +++ b/exporters/zipkin/BUILD @@ -42,6 +42,21 @@ cc_library( ], ) +cc_library( + name = "zipkin_exporter_builder", + srcs = [ + "src/zipkin_builder.cc", + ], + hdrs = [ + "include/opentelemetry/exporters/zipkin/zipkin_builder.h", + ], + strip_include_prefix = "include", + tags = ["zipkin"], + deps = [ + ":zipkin_exporter", + ], +) + cc_test( name = "zipkin_recordable_test", srcs = ["test/zipkin_recordable_test.cc"], diff --git a/sdk/src/configuration/BUILD b/sdk/src/configuration/BUILD new file mode 100644 index 0000000000..bdf45a3af1 --- /dev/null +++ b/sdk/src/configuration/BUILD @@ -0,0 +1,15 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +package(default_visibility = ["//visibility:public"]) + +cc_library( + name = "configuration", + srcs = glob(["**/*.cc"]), + include_prefix = "src/configuration", + deps = [ + "//api", + "//sdk:headers", + "@rapidyaml", + ], +) diff --git a/sdk/test/configuration/BUILD b/sdk/test/configuration/BUILD new file mode 100644 index 0000000000..ec14533b71 --- /dev/null +++ b/sdk/test/configuration/BUILD @@ -0,0 +1,122 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +cc_test( + name = "yaml_logs_test", + srcs = [ + "yaml_logs_test.cc", + ], + tags = [ + "test", + "yaml", + ], + deps = [ + "//api", + "//sdk:headers", + "//sdk/src/configuration", + "//sdk/src/logs", + "//sdk/src/metrics", + "//sdk/src/trace", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "yaml_metrics_test", + srcs = [ + "yaml_metrics_test.cc", + ], + tags = [ + "test", + "yaml", + ], + deps = [ + "//api", + "//sdk:headers", + "//sdk/src/configuration", + "//sdk/src/logs", + "//sdk/src/metrics", + "//sdk/src/trace", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "yaml_propagator_test", + srcs = [ + "yaml_propagator_test.cc", + ], + tags = [ + "test", + "yaml", + ], + deps = [ + "//api", + "//sdk:headers", + "//sdk/src/configuration", + "//sdk/src/logs", + "//sdk/src/metrics", + "//sdk/src/trace", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "yaml_resource_test", + srcs = [ + "yaml_resource_test.cc", + ], + tags = [ + "test", + "yaml", + ], + deps = [ + "//api", + "//sdk:headers", + "//sdk/src/configuration", + "//sdk/src/logs", + "//sdk/src/metrics", + "//sdk/src/trace", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "yaml_test", + srcs = [ + "yaml_test.cc", + ], + tags = [ + "test", + "yaml", + ], + deps = [ + "//api", + "//sdk:headers", + "//sdk/src/configuration", + "//sdk/src/logs", + "//sdk/src/metrics", + "//sdk/src/trace", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "yaml_trace_test", + srcs = [ + "yaml_trace_test.cc", + ], + tags = [ + "test", + "yaml", + ], + deps = [ + "//api", + "//sdk:headers", + "//sdk/src/configuration", + "//sdk/src/logs", + "//sdk/src/metrics", + "//sdk/src/trace", + "@com_google_googletest//:gtest_main", + ], +)