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
6 changes: 3 additions & 3 deletions deps/opentelemetry-cpp/.bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ build --copt -DGRPC_BAZEL_BUILD
build:windows --dynamic_mode=off

# Set minimum supported C++ version
build:macos --host_cxxopt=-std=c++14 --cxxopt=-std=c++14
build:linux --host_cxxopt=-std=c++14 --cxxopt=-std=c++14
build:windows --host_cxxopt=/std:c++14 --cxxopt=/std:c++14
build:macos --host_cxxopt=-std=c++17 --cxxopt=-std=c++17
build:linux --host_cxxopt=-std=c++17 --cxxopt=-std=c++17
build:windows --host_cxxopt=/std:c++17 --cxxopt=/std:c++17

# --config=asan : Address Sanitizer.
common:asan --copt -DADDRESS_SANITIZER
Expand Down
2 changes: 1 addition & 1 deletion deps/opentelemetry-cpp/.bazelversion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7.1.1
8.5.0
58 changes: 58 additions & 0 deletions deps/opentelemetry-cpp/.bcr/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# BCR Publishing Configuration

This directory contains the template files required for publishing opentelemetry-cpp to the [Bazel Central Registry (BCR)](https://github.com/bazelbuild/bazel-central-registry).

## Files

### metadata.template.json
Contains the module metadata including homepage, maintainers, and repository information. This is used to create/update the BCR metadata for the module.

### source.template.json
Defines the source archive location and format. Placeholders like `{OWNER}`, `{REPO}`, `{TAG}`, and `{VERSION}` are automatically replaced during publishing.

### presubmit.yml
Defines the BCR presubmit tests that run when a new version is published. Currently configured to test on:
- Platforms: debian10, macos, ubuntu2004, windows
- Bazel versions: 7.x, 8.x, 9.*

## Publishing Process

The publish-to-bcr workflow (`.github/workflows/publish-to-bcr.yml`) automates publishing to BCR.

### Prerequisites

**Create a Personal Access Token (PAT)**:
- Create a Classic PAT with `workflow` and `repo` permissions
- Add it as a secret named `BCR_PUBLISH_TOKEN` in repository settings

### How to Publish

The workflow can be triggered in two ways:

1. **Automatically**: When a new GitHub release is published
2. **Manually**: Via workflow dispatch in GitHub Actions UI
- Go to Actions → Publish to BCR → Run workflow
- Enter the tag name (e.g., `v1.24.0`)

### What Happens

When triggered, the workflow:
1. Generates a BCR entry using these templates
2. Pushes the entry to your BCR fork
3. Opens a pull request against the upstream BCR

### Using a Fork Registry

For development and testing, you can use a fork of the Bazel Central Registry:

1. Fork https://github.com/bazelbuild/bazel-central-registry
2. Configure your fork URL in the workflow (modify the `publish-to-bcr.yml` file)
3. Test changes in your fork before submitting to the official BCR

The configuration in this repository points to the **official** Bazel Central Registry at https://github.com/bazelbuild/bazel-central-registry. However, using a fork registry is recommended for testing and development to avoid polluting the official registry during experimentation.

## References

- [Publish to BCR Action](https://github.com/bazel-contrib/publish-to-bcr)
- [Bazel Central Registry](https://github.com/bazelbuild/bazel-central-registry)
- [BCR Module: opentelemetry-cpp](https://github.com/bazelbuild/bazel-central-registry/tree/main/modules/opentelemetry-cpp)
22 changes: 22 additions & 0 deletions deps/opentelemetry-cpp/.bcr/metadata.template.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"homepage": "https://github.com/open-telemetry/opentelemetry-cpp",
"maintainers": [
{
"name": "Keith Smiley",
"email": "[email protected]",
"github": "keith",
"github_user_id": 283886
},
{
"name": "Marc Alff",
"email": "[email protected]",
"github": "marcalff",
"github_user_id": 17238896
}
],
"repository": [
"github:open-telemetry/opentelemetry-cpp"
],
"versions": [],
"yanked_versions": {}
}
14 changes: 14 additions & 0 deletions deps/opentelemetry-cpp/.bcr/presubmit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Copyright The OpenTelemetry Authors
# SPDX-License-Identifier: Apache-2.0
matrix:
platform: ["debian10", "macos", "ubuntu2004", "windows"]
bazel: ["7.x", "8.x", "9.x"]
tasks:
verify_targets:
platform: ${{ platform }}
bazel: ${{ bazel }}
build_flags:
- '--cxxopt=-std=c++17'
- '--host_cxxopt=-std=c++17'
build_targets:
- '@opentelemetry-cpp//api'
Comment on lines +10 to +14
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# First, locate and read the full presubmit.yml file
find . -name "presubmit.yml" -type f 2>/dev/null | head -20

Repository: nodesource/nsolid

Length of output: 244


🏁 Script executed:

# Also locate the .bazelrc file mentioned in the review
find . -name ".bazelrc" -type f 2>/dev/null | head -20

Repository: nodesource/nsolid

Length of output: 159


🏁 Script executed:

# Read the full presubmit.yml file
cat -n ./deps/opentelemetry-cpp/.bcr/presubmit.yml

Repository: nodesource/nsolid

Length of output: 540


🏁 Script executed:

# Read the .bazelrc file
cat -n ./deps/opentelemetry-cpp/.bazelrc

Repository: nodesource/nsolid

Length of output: 2186


🌐 Web query:

BCR presubmit.yml bazelrc platform windows cxxopt flag

💡 Result:

In Bazel Central Registry (BCR), you don’t put these flags in a bazelrc; you put them in the module version’s presubmit.yml under a task’s build_flags / test_flags (and each task must declare a bazel: version). [1]

For C++ standard flags, BCR presubmits typically use:

  • Unix-like toolchains: --cxxopt=-std=c++17 (or similar)
  • Windows (MSVC): --cxxopt=/std:c++17 (note the /std: form)

Example pattern from an actual BCR presubmit.yml that splits Unix vs Windows and uses the correct Windows cxxopt form: [2]

If you’re doing this in your own repo via .bazelrc, enable platform-specific configs and then add per-platform sections, e.g. build:windows ... (this is how Bazel’s own .bazelrc and large projects structure platform-specific options): [3] [4]


🌐 Web query:

Bazel presubmit windows platform specific config cxxopt

💡 Result:

To make Windows-only C++ compiler options apply in a presubmit (CI) without breaking Linux/macOS, do it via named .bazelrc configs, not select() inside --cxxopt (that doesn’t work because select() is a BUILD attribute mechanism, not a flag-language feature). (bazel.build)

1) Put platform-specific cxxopt in .bazelrc

# .bazelrc

# Default for GCC/Clang on Linux/macOS
build:posix --cxxopt=-std=c++17

# MSVC on Windows
build:windows --cxxopt=/std:c++17

(Windows uses /std:c++17 vs GCC/Clang -std=c++17.) (stackoverflow.com)

2) In presubmit, select the right config per job

  • Windows CI job: bazel test //... --config=windows
  • Linux/macOS CI job: bazel test //... --config=posix

3) If you need platform-specific options inside BUILD rules, use select() on platform constraints

Prefer @platforms//os:windows over @bazel_tools//src/conditions:windows. (reviews.llvm.org)

cc_library(
    name = "mylib",
    srcs = ["mylib.cc"],
    copts = select({
        "@platforms//os:windows": ["/DWIN32_LEAN_AND_MEAN"],
        "//conditions:default": [],
    }),
)

This is the intended use of configurable attributes (select()) in BUILD files. (bazel.build)

Citations:


🌐 Web query:

BCR presubmit.yml conditional build_flags per platform matrix

💡 Result:

In BCR presubmit.yml, build_flags (and test_flags) are per task, not per matrix entry—so you can’t directly say “only add this flag when platform == windows” inside a single task. The common pattern is to split into multiple tasks with different platform: selectors (optionally using YAML anchors to avoid duplication). (android.googlesource.com)

Example (platform-conditional flags via separate tasks):

matrix: &matrix
  non_macos_platform:
    - debian11
    - ubuntu2404
    - windows
  bazel: [7.x]

tasks:
  verify_targets:
    name: Verify build targets
    platform: ${{ non_macos_platform }}
    bazel: ${{ bazel }}
    build_targets: &targets
      - '@mymodule//:all'

  verify_targets_on_macos:
    name: Verify build targets on macOS
    platform: macos
    bazel: ${{ bazel }}
    build_flags: &macos_flags
      - '--cxxopt=-std=c++14'
    build_targets: *targets

This is exactly how existing BCR-related presubmits handle “flags only on macOS (or only on X)”: duplicate the task with a narrower platform and attach the platform-specific build_flags. (boringssl.googlesource.com)

Citations:


Split verify_targets task to use platform-specific C++ flags.

The build_flags apply --cxxopt=-std=c++17 universally, but Windows MSVC requires /std:c++17 (forward slash). The matrix includes a Windows platform, so this will fail on Windows CI.

Create separate tasks: one for Unix-like platforms (debian10, macos, ubuntu2004) with --cxxopt=-std=c++17, and one for Windows with --cxxopt=/std:c++17. This follows the standard BCR pattern for platform-conditional flags.

🤖 Prompt for AI Agents
In `@deps/opentelemetry-cpp/.bcr/presubmit.yml` around lines 10 - 14, The CI
presubmit uses a single verify_targets task that sets
build_flags['--cxxopt=-std=c++17'] for all platforms which breaks Windows MSVC;
split into two platform-specific verify tasks (e.g., verify_targets_unix and
verify_targets_windows) so the Unix-like matrix entries (debian10, macos,
ubuntu2004) keep build_flags with --cxxopt=-std=c++17 while the Windows entry
uses --cxxopt=/std:c++17; ensure each task still includes the same build_targets
(e.g., '@opentelemetry-cpp//api') and the matrix/when conditions select the
correct platforms.

5 changes: 5 additions & 0 deletions deps/opentelemetry-cpp/.bcr/source.template.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"integrity": "",
"strip_prefix": "opentelemetry-cpp-{VERSION}",
"url": "https://github.com/{OWNER}/{REPO}/archive/refs/tags/{TAG}.tar.gz"
}
3 changes: 1 addition & 2 deletions deps/opentelemetry-cpp/.clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@ Checks: >
-cppcoreguidelines-avoid-do-while,
-cppcoreguidelines-avoid-c-arrays,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-init-variables,
-cppcoreguidelines-macro-usage,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-avoid-non-const-global-variables,
-cppcoreguidelines-pro-*
-cppcoreguidelines-pro-*
6 changes: 6 additions & 0 deletions deps/opentelemetry-cpp/.clomonitor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Copyright The OpenTelemetry Authors
# SPDX-License-Identifier: Apache-2.0
# see https://github.com/cncf/clomonitor/blob/main/docs/checks.md#exemptions
exemptions:
- check: artifacthub_badge
reason: "Artifact Hub doesn't support c++ packages"
11 changes: 8 additions & 3 deletions deps/opentelemetry-cpp/.devcontainer/Dockerfile.dev
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,18 @@ COPY ci /opt/ci

RUN apt update && apt install -y wget \
ninja-build \
llvm-dev \
libclang-dev \
clang-tidy \
llvm-20-dev \
libclang-20-dev \
clang-tidy-20 \
shellcheck \
sudo \
cmake

RUN update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-20 200 && \
update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-20 200 && \
update-alternatives --config clang-tidy && \
update-alternatives --config llvm-config
Comment on lines +25 to +28
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, let's confirm the file exists and examine the context around lines 25-28
find . -name "Dockerfile.dev" -type f | head -20

Repository: nodesource/nsolid

Length of output: 114


🌐 Web query:

update-alternatives --config vs --set interactive non-interactive Docker

💡 Result:

  • update-alternatives --config <name> is interactive: it prints the available choices for the link group and then prompts you to pick one (may switch the group to manual mode depending on your selection). This is meant for humans at a terminal. [1]

  • update-alternatives --set <name> <path> is non-interactive: it directly sets <path> as the selected alternative for <name> and is scriptable (CI/Docker)—the man page explicitly says it’s the non-interactive equivalent of --config. [1]

Docker/CI guidance: prefer --set (or --auto if you want the highest-priority option) because Docker builds typically have no TTY for --config prompts. [1]


🏁 Script executed:

# Read the Dockerfile to verify the current code and exact context
cat -n ./deps/opentelemetry-cpp/.devcontainer/Dockerfile.dev | sed -n '20,35p'

Repository: nodesource/nsolid

Length of output: 763


Replace interactive update-alternatives --config with --set for non-interactive Docker builds.

The --config option requires user input and will fail or hang in Docker builds which lack a TTY. Use --set instead to directly select the desired alternative.

Suggested fix
 RUN update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-20 200 && \
     update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-20 200 && \
-    update-alternatives --config clang-tidy && \
-    update-alternatives --config llvm-config
+    update-alternatives --set clang-tidy /usr/bin/clang-tidy-20 && \
+    update-alternatives --set llvm-config /usr/bin/llvm-config-20
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
RUN update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-20 200 && \
update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-20 200 && \
update-alternatives --config clang-tidy && \
update-alternatives --config llvm-config
RUN update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-20 200 && \
update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-20 200 && \
update-alternatives --set clang-tidy /usr/bin/clang-tidy-20 && \
update-alternatives --set llvm-config /usr/bin/llvm-config-20
🤖 Prompt for AI Agents
In `@deps/opentelemetry-cpp/.devcontainer/Dockerfile.dev` around lines 25 - 28,
Replace the interactive update-alternatives calls with non-interactive --set
invocations: instead of running "update-alternatives --config clang-tidy" and
"update-alternatives --config llvm-config", use "update-alternatives --set
clang-tidy /usr/bin/clang-tidy-20" and "update-alternatives --set llvm-config
/usr/bin/llvm-config-20" so the Docker build does not require a TTY; update the
RUN line that currently calls update-alternatives for clang-tidy and llvm-config
accordingly.


RUN cd /opt/ci && bash setup_ci_environment.sh
RUN cd /opt/ci && bash install_iwyu.sh

Expand Down
4 changes: 4 additions & 0 deletions deps/opentelemetry-cpp/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,7 @@ functional/cert/server_cert_b.csr
functional/cert/server_cert_b.pem
functional/cert/server_cert_b-key.pem
functional/cert/unreadable.pem

# CodeQL build artifacts
_codeql_build_dir/
_codeql_detected_source_root
12 changes: 12 additions & 0 deletions deps/opentelemetry-cpp/.iwyu.imp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,18 @@
{ "include": ["<bits/types/struct_tm.h>", "private", "<time.h>", "public"] },
{ "include": ["<bits/types/struct_FILE.h>", "private", "<stdio.h>", "public"] },

# Work around for ryml
{ "include": ["<c4/std/string.hpp>", "private", "<ryml_std.hpp>", "public"] },

{ "include": ["<c4/yml/common.hpp>", "private", "<ryml.hpp>", "public"] },
{ "include": ["<c4/yml/node.hpp>", "private", "<ryml.hpp>", "public"] },
{ "include": ["<c4/yml/parse.hpp>", "private", "<ryml.hpp>", "public"] },
{ "include": ["<c4/yml/parse_engine.hpp>", "private", "<ryml.hpp>", "public"] },
{ "include": ["<c4/yml/tree.hpp>", "private", "<ryml.hpp>", "public"] },
{ "include": ["<c4/yml/event_handler_tree.hpp>", "private", "<ryml.hpp>", "public"] },
{ "include": ["<c4/substr.hpp>", "private", "<ryml.hpp>", "public"] },
{ "include": ["<c4/substr_fwd.hpp>", "private", "<ryml.hpp>", "public"] },

# Local opentelemetry-cpp style

# We prefer to include <gtest/gtest.h> for simplicity
Expand Down
4 changes: 4 additions & 0 deletions deps/opentelemetry-cpp/.markdownlint.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,9 @@
{
"code_blocks": false,
"tables": false
},
"MD059":
{
"prohibited_texts": []
}
}
7 changes: 5 additions & 2 deletions deps/opentelemetry-cpp/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

module(
name = "opentelemetry-cpp",
version = "1.23.0",
version = "1.25.0",
compatibility_level = 0,
repo_name = "io_opentelemetry_cpp",
)
Expand All @@ -13,11 +13,14 @@ bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "curl", version = "8.8.0")
bazel_dep(name = "grpc", version = "1.66.0.bcr.2", repo_name = "com_github_grpc_grpc")
bazel_dep(name = "nlohmann_json", version = "3.12.0", repo_name = "github_nlohmann_json")
bazel_dep(name = "opentelemetry-proto", version = "1.7.0", repo_name = "com_github_opentelemetry_proto")
bazel_dep(name = "opentelemetry-proto", version = "1.8.0", repo_name = "com_github_opentelemetry_proto")
bazel_dep(name = "opentracing-cpp", version = "1.6.0", repo_name = "com_github_opentracing")
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_cc", version = "0.2.9")
bazel_dep(name = "rules_foreign_cc", version = "0.15.1")
bazel_dep(name = "rules_proto", version = "7.0.2")
bazel_dep(name = "zlib", version = "1.3.1.bcr.5")

Expand Down
1 change: 1 addition & 0 deletions deps/opentelemetry-cpp/api/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# SPDX-License-Identifier: Apache-2.0

load("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "int_flag", "string_flag")
load("@rules_cc//cc:cc_library.bzl", "cc_library")

package(default_visibility = ["//visibility:public"])

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,13 @@ class OPENTELEMETRY_EXPORT Baggage
{
ret.push_back(' ');
}
else if (std::isalnum(str[i]) || str[i] == '-' || str[i] == '_' || str[i] == '.' ||
str[i] == '~')
// See https://www.w3.org/TR/baggage/#definition
else if ((str[i] >= '!') /* 21 */
&& (str[i] <= '~') /* 7E */
&& (str[i] != '"') /* 22 */
&& (str[i] != ',') /* 2C */
&& (str[i] != ';') /* 3B */
&& (str[i] != '\\')) /* 5C */
{
ret.push_back(str[i]);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ class Token
public:
bool operator==(const Context &other) const noexcept { return context_ == other; }

~Token() noexcept;
virtual ~Token() noexcept;

private:
friend class RuntimeContextStorage;

protected:
// A constructor that sets the token's Context object to the
// one that was passed in.
Token(const Context &context) : context_(context) {}
Expand Down Expand Up @@ -241,6 +241,26 @@ class ThreadLocalContextStorage : public RuntimeContextStorage
{
friend class ThreadLocalContextStorage;

/**
* Limit the max stack depth.
* The stack will still work beyond this limit,
* counting push() and pop() properly,
* but will not record contexts.
*
* In practice, this should not affect instrumented applications,
* the limit is set to 1 million nested scopes.
*
* The whole reason for this limit to exist is to prevent
* compiler warnings like:
* error: argument 1 value ‘18446744073709551615’
* exceeds maximum object size 9223372036854775807
* [-Werror=alloc-size-larger-than=]
* on this line of code:
* Context *temp = new Context[new_capacity];
* when compiling with gcc and optimizations (-flto).
*/
static constexpr size_t max_capacity_ = 1000000;

Stack() noexcept : size_(0), capacity_(0), base_(nullptr) {}

// Pops the top Context off the stack.
Expand All @@ -250,6 +270,11 @@ class ThreadLocalContextStorage : public RuntimeContextStorage
{
return;
}
if (size_ > max_capacity_)
{
size_ -= 1;
return;
}
// Store empty Context before decrementing `size`, to ensure
// the shared_ptr object (if stored in prev context object ) are released.
// The stack is not resized, and the unused memory would be reutilised
Expand Down Expand Up @@ -278,6 +303,10 @@ class ThreadLocalContextStorage : public RuntimeContextStorage
{
return Context();
}
if (size_ > max_capacity_)
{
return Context();
}
return base_[size_ - 1];
}

Expand All @@ -286,6 +315,10 @@ class ThreadLocalContextStorage : public RuntimeContextStorage
void Push(const Context &context) noexcept
{
size_++;
if (size_ > max_capacity_)
{
return;
}
if (size_ > capacity_)
{
Resize(size_ * 2);
Expand All @@ -299,8 +332,14 @@ class ThreadLocalContextStorage : public RuntimeContextStorage
size_t old_size = size_ - 1;
if (new_capacity == 0)
{
// First increase
new_capacity = 2;
}
if (new_capacity > max_capacity_)
{
// Last increase
new_capacity = max_capacity_;
}
Context *temp = new Context[new_capacity];
if (base_ != nullptr)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,17 @@ OPENTELEMETRY_BEGIN_NAMESPACE
namespace logs
{
#if OPENTELEMETRY_ABI_VERSION_NO < 2
# if defined(_MSC_VER)
# pragma warning(push)
# pragma warning(disable : 4996)
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
# elif defined(__clang__) || defined(__apple_build_version__)
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
# endif

/**
* Handles event log record creation.
**/
Expand Down Expand Up @@ -77,6 +88,14 @@ class OPENTELEMETRY_DEPRECATED EventLogger
void IgnoreTraitResult(ValueType &&...)
{}
};

# if defined(_MSC_VER)
# pragma warning(pop)
# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__)
# pragma GCC diagnostic pop
# elif defined(__clang__) || defined(__apple_build_version__)
# pragma clang diagnostic pop
# endif
#endif
} // namespace logs
OPENTELEMETRY_END_NAMESPACE
Loading
Loading