Skip to content

Conversation

@santigimeno
Copy link
Member

@santigimeno santigimeno commented Jun 4, 2025

Summary by CodeRabbit

  • New Features

    • Added support for Base2ExponentialHistogram metrics in exporters, including display and OTLP export.
    • Introduced new semantic attribute constants and metrics for various domains (e.g., GenAI, CPython, feature flags, CI/CD, Kubernetes, GCP, VCS, application and process attributes).
    • Added new metric definitions and creation functions for logs, metrics, and spans, including log exporter and metric data point metrics.
    • Exposed new methods for checking tracer enabled state and retrieving gRPC targets.
    • Added new debug and test configurations.
  • Enhancements

    • Updated OpenTelemetry C++ API version to 1.21.0 and schema URL to 1.34.0.
    • Improved and expanded documentation, comments, and deprecation annotations for semantic conventions.
    • Modularized and streamlined build and installation logic for exporters and components.
    • Improved configuration options for development containers, including CMake version and Conan-based setup.
    • Expanded support for semantic conventions and attributes, including new enumerations and value namespaces.
  • Bug Fixes

    • Improved endpoint validation and normalization for OTLP gRPC exporters.
  • Tests

    • Added new and updated test cases for exponential histogram metrics and gRPC target parsing.
    • Enhanced test coverage for tracer enabled state and resource span export validation.
  • Documentation

    • Updated and clarified documentation for attributes, metrics, and configuration options.
    • Improved formatting and consistency across all semantic convention headers.
  • Style

    • Reformatted and standardized comment blocks and documentation throughout the codebase for readability and consistency.
  • Chores

    • Updated dependencies and version references in build files.
    • Refactored build scripts and configuration for maintainability.

PR-URL: #180
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
@santigimeno santigimeno self-assigned this Jun 4, 2025
@windsurf-bot
Copy link

windsurf-bot bot commented Jun 4, 2025

I ran into an unexpected issue while reviewing this PR. Please try again later.

@coderabbitai
Copy link

coderabbitai bot commented Jun 4, 2025

Walkthrough

This update introduces new features, bug fixes, and extensive documentation and build system improvements to the OpenTelemetry C++ SDK and exporters. Major highlights include support for Base2ExponentialHistogram metrics in the OTLP and ostream exporters, new semantic attribute and metric definitions, enhanced tracer enablement APIs, and significant reformatting and extension of semantic convention headers. Multiple CMake and Bazel build scripts were refactored for modularity and maintainability.

Changes

Files/Groups Change Summary
agents/otlp/src/otlp_common.cc Switched to opentelemetry::nostd::get<std::string> for attribute extraction.
deps/opentelemetry-cpp/.devcontainer/Dockerfile.conan Added new Dockerfile for Conan-based development container.
deps/opentelemetry-cpp/.devcontainer/Dockerfile.dev, .devcontainer/README.md, .devcontainer/devcontainer.json Added/configured CMAKE_VERSION build arg/env var; updated markdownlint install; documented customization.
deps/opentelemetry-cpp/.vscode/launch.json Added new VSCode debug config for ctest.
deps/opentelemetry-cpp/MODULE.bazel Updated module and dependency versions.
deps/opentelemetry-cpp/api/BUILD Removed unconditional "HAVE_ABSEIL" define from build config.
deps/opentelemetry-cpp/api/CMakeLists.txt, exporters/elasticsearch/CMakeLists.txt, exporters/etw/CMakeLists.txt, exporters/memory/CMakeLists.txt, exporters/ostream/CMakeLists.txt, exporters/otlp/CMakeLists.txt Refactored installation logic to use otel_add_component macro for componentized installs.
deps/opentelemetry-cpp/api/include/opentelemetry/common/macros.h Fixed typo in comment.
deps/opentelemetry-cpp/api/include/opentelemetry/config.h Marked header as deprecated for ABI v2+, added deprecation error/warning logic.
deps/opentelemetry-cpp/api/include/opentelemetry/logs/logger.h Fixed Doxygen tags in comments.
deps/opentelemetry-cpp/api/include/opentelemetry/nostd/internal/absl/base/options.h Improved conditional header inclusion and warning suppression.
deps/opentelemetry-cpp/api/include/opentelemetry/nostd/type_traits.h Reorganized includes; added version check macro for triviality traits.
deps/opentelemetry-cpp/api/include/opentelemetry/nostd/variant.h Removed conditional use of external Abseil, always use internal snapshot.
deps/opentelemetry-cpp/api/include/opentelemetry/plugin/tracer.h Tracer constructor now enables tracer for ABI v2+.
deps/opentelemetry-cpp/api/include/opentelemetry/semconv/… (dozens of files) Extensive comment reformatting, deprecation annotation updates, and documentation improvements; added or updated many semantic attribute and metric constants.
deps/opentelemetry-cpp/api/include/opentelemetry/semconv/code_attributes.h, db_attributes.h, incubating/app_attributes.h, incubating/cicd_attributes.h, incubating/cpython_attributes.h, incubating/cpython_metrics.h, incubating/gen_ai_attributes.h, incubating/k8s_attributes.h, incubating/otel_attributes.h, incubating/otel_metrics.h, incubating/vcs_attributes.h Added new or updated semantic attribute/metric constants and enums for code, DB, app, CICD, CPython, GenAI, Kubernetes, OpenTelemetry, and VCS.
deps/opentelemetry-cpp/api/include/opentelemetry/semconv/schema_url.h Updated schema URL to version 1.34.0.
deps/opentelemetry-cpp/api/include/opentelemetry/trace/noop.h Added default constructor to NoopTracer that sets enabled state to false for ABI v2+.
deps/opentelemetry-cpp/api/include/opentelemetry/trace/tracer.h Added Enabled() and UpdateEnabled() methods and enabled_ member for ABI v2+.
deps/opentelemetry-cpp/api/include/opentelemetry/version.h Bumped version macros to 1.21.0.
deps/opentelemetry-cpp/api/test/singleton/singleton_test.cc Added default constructor to test tracer that sets enabled state for ABI v2+.
deps/opentelemetry-cpp/api/test/trace/noop_test.cc Added test assertion for NoopTracer::Enabled().
deps/opentelemetry-cpp/exporters/etw/include/opentelemetry/exporters/etw/etw_tracer.h Added Enabled() method to ETW tracer for ABI v2+.
deps/opentelemetry-cpp/exporters/ostream/src/metric_exporter.cc Added support for printing Base2ExponentialHistogramPointData.
deps/opentelemetry-cpp/exporters/ostream/test/ostream_metric_test.cc Added test for exporting Base2ExponentialHistogramPointData.
deps/opentelemetry-cpp/exporters/otlp/BUILD Added new test target for gRPC target parsing; updated test dependencies.
deps/opentelemetry-cpp/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client.h Added static GetGrpcTarget() method.
deps/opentelemetry-cpp/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_metric_utils.h Added static ConvertExponentialHistogramMetric() method.
deps/opentelemetry-cpp/exporters/otlp/src/otlp_grpc_client.cc Refactored gRPC target parsing and validation into new method.
deps/opentelemetry-cpp/exporters/otlp/src/otlp_metric_utils.cc Added support for exporting Base2ExponentialHistogram metrics to OTLP.
deps/opentelemetry-cpp/exporters/otlp/test/otlp_file_exporter_test.cc Refined tracer creation and output parsing for ABI v2+.
deps/opentelemetry-cpp/exporters/otlp/test/otlp_grpc_target_test.cc Added tests for gRPC target string parsing.

Sequence Diagram(s)

sequenceDiagram
    participant Instrumentation
    participant Tracer
    participant Exporter
    participant OTLP Client

    Note over Tracer: (ABI v2+) Tracer has Enabled() state
    Instrumentation->>Tracer: if (Tracer.Enabled())<br/>  StartSpan(...)
    Tracer-->>Instrumentation: Span
    Instrumentation->>Exporter: Export metrics (including Base2ExponentialHistogram)
    Exporter->>OTLP Client: ConvertExponentialHistogramMetric()
    OTLP Client->>Exporter: OTLP-formatted data
    Exporter-->>Instrumentation: ExportResult
Loading
sequenceDiagram
    participant User
    participant OtlpGrpcClient

    User->>OtlpGrpcClient: GetGrpcTarget(endpoint)
    OtlpGrpcClient->>OtlpGrpcClient: Parse endpoint URL
    alt unix scheme
        OtlpGrpcClient-->>User: "unix:/path"
    else valid host:port
        OtlpGrpcClient-->>User: "host:port"
    else invalid
        OtlpGrpcClient-->>User: ""
    end
Loading

Poem

🐇
Hop, hop, the code has grown,
With histograms and docs well-known.
Tracers now can say "I'm on!"
And metrics print what they have drawn.
Semantic fields for every case,
From clouds to VCS, all in place.
This bunny cheers each tidy trace!

✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🔭 Outside diff range comments (1)
deps/opentelemetry-cpp/exporters/otlp/CMakeLists.txt (1)

120-129: 🛠️ Refactor suggestion

nlohmann_json not exported – installed consumers will fail

opentelemetry_exporter_otlp_http_client now keeps nlohmann_json::nlohmann_json only on the BUILD_INTERFACE.
When the library is installed the dependency is no longer propagated, yet the public headers still use the json types. Any external project that picks up the exported config will hit missing include / link errors.

Consider keeping the library in the PUBLIC interface or adding an INTERFACE_LINK_LIBRARIES entry in the install export.

🧹 Nitpick comments (10)
deps/opentelemetry-cpp/.vscode/launch.json (1)

4-12: Validate ${cmake.testArgs} expansion
With "args": [ "${cmake.testArgs}" ], VS Code may pass the entire string as one argument. If you need to split multiple arguments, consider removing the brackets so VS Code injects the list directly:

- "args": [ "${cmake.testArgs}" ],
+ "args": ${cmake.testArgs},
🧰 Tools
🪛 Biome (1.9.4)

[error] 12-12: Expected a property but instead found '}'.

Expected a property here.

(parse)

deps/opentelemetry-cpp/.devcontainer/README.md (1)

22-22: Use consistent branding
Consider updating “opentelemetry-cpp” to “OpenTelemetry C++” to match the project’s official naming elsewhere.

deps/opentelemetry-cpp/.devcontainer/Dockerfile.dev (1)

50-50: Pin markdownlint-cli and optimize layers
Good practice to pin to 0.44.0. For a slimmer image, merge this into the earlier apt install step and clean up apt cache:

RUN apt update && apt install -y --no-install-recommends npm \
 && npm install -g markdownlint-cli@0.44.0 \
 && rm -rf /var/lib/apt/lists/*
deps/opentelemetry-cpp/.devcontainer/Dockerfile.conan (1)

5-20: Consolidate and optimize apt installs
Combine apt update and apt install, use --no-install-recommends, and clean the cache to reduce image size:

RUN apt update && apt install -y --no-install-recommends \
    build-essential ca-certificates wget cmake git sudo nano \
    pkg-config ninja-build clang-format clang-tidy autoconf automake libtool python3-pip \
 && rm -rf /var/lib/apt/lists/*
deps/opentelemetry-cpp/exporters/otlp/test/otlp_grpc_target_test.cc (2)

15-15: Consider a more descriptive test name.

The test name GrpcClientTest is generic. Consider renaming to better describe what's being tested, such as GetGrpcTargetParsesEndpointsCorrectly.

-TEST(OtlpGrpcClientEndpointTest, GrpcClientTest)
+TEST(OtlpGrpcClientEndpointTest, GetGrpcTargetParsesEndpointsCorrectly)

17-33: Test logic is correct but could benefit from additional edge cases.

The test correctly validates the three main scenarios for gRPC target parsing. Consider adding tests for edge cases like empty strings, null pointers, or malformed endpoints to improve coverage.

Consider adding these additional test cases:

+  OtlpGrpcClientOptions opts4;
+  opts4.endpoint = "";
+
+  OtlpGrpcClientOptions opts5;
+  opts5.endpoint = "invalid-format";
+
+  auto target4 = OtlpGrpcClient::GetGrpcTarget(opts4.endpoint);
+  auto target5 = OtlpGrpcClient::GetGrpcTarget(opts5.endpoint);
+
+  EXPECT_EQ(target4, "");
+  EXPECT_EQ(target5, "invalid-format");  // or "" depending on implementation
deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/aws_attributes.h (1)

380-383: Fix typo in Secrets Manager documentation.

There's a typo in the comment: "Secrets Mangger" should be "Secrets Manager".

-  The ARN of the Secret stored in the Secrets Mangger
+  The ARN of the Secret stored in the Secrets Manager
deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/gcp_attributes.h (1)

123-146: Doc-string copy/paste artefacts reduce clarity

The same short description (“Mission critical service.”, “High impact.” …) is reused for both service and workload criticality enums.
While harmless for compilation, it is slightly misleading for users reading the generated docs – the workload enum should talk about workloads, not services.

No code change required but please consider tweaking the comment text in the template to avoid confusion.

deps/opentelemetry-cpp/exporters/otlp/src/otlp_metric_utils.cc (1)

192-254: Minor: early-continue silently drops data

When both bucket pointers are null you continue;, which skips attribute population.
That causes points with zero buckets but non-empty attributes to vanish from the export stream.
Consider still emitting an empty data point so attribute series remain intact, or document this behaviour explicitly.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/feature_flag_attributes.h (1)

156-205: Consider the maintenance implications of duplicating namespace constants.

The new FeatureFlagResultReasonValues namespace exactly duplicates all constants from FeatureFlagEvaluationReasonValues. While this supports the semantic convention evolution, it creates maintenance overhead and potential inconsistencies.

Consider whether the auto-generation template could reference the existing constants or if this duplication is intentional for backward compatibility during the transition period.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d4cd851 and 06835be.

⛔ Files ignored due to path filters (7)
  • deps/opentelemetry-cpp/third_party/opentelemetry-proto/gen/cpp/opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h is excluded by !**/gen/**
  • deps/opentelemetry-cpp/third_party/opentelemetry-proto/gen/cpp/opentelemetry/proto/collector/metrics/v1/metrics_service.grpc.pb.h is excluded by !**/gen/**
  • deps/opentelemetry-cpp/third_party/opentelemetry-proto/gen/cpp/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h is excluded by !**/gen/**
  • deps/opentelemetry-cpp/third_party/opentelemetry-proto/gen/cpp/opentelemetry/proto/common/v1/common.pb.cc is excluded by !**/gen/**
  • deps/opentelemetry-cpp/third_party/opentelemetry-proto/gen/cpp/opentelemetry/proto/common/v1/common.pb.h is excluded by !**/gen/**
  • deps/opentelemetry-cpp/third_party/opentelemetry-proto/gen/cpp/opentelemetry/proto/resource/v1/resource.pb.cc is excluded by !**/gen/**
  • deps/opentelemetry-cpp/third_party/opentelemetry-proto/gen/cpp/opentelemetry/proto/resource/v1/resource.pb.h is excluded by !**/gen/**
📒 Files selected for processing (140)
  • agents/otlp/src/otlp_common.cc (2 hunks)
  • deps/opentelemetry-cpp/.devcontainer/Dockerfile.conan (1 hunks)
  • deps/opentelemetry-cpp/.devcontainer/Dockerfile.dev (2 hunks)
  • deps/opentelemetry-cpp/.devcontainer/README.md (2 hunks)
  • deps/opentelemetry-cpp/.devcontainer/devcontainer.json (1 hunks)
  • deps/opentelemetry-cpp/.vscode/launch.json (1 hunks)
  • deps/opentelemetry-cpp/MODULE.bazel (2 hunks)
  • deps/opentelemetry-cpp/api/BUILD (1 hunks)
  • deps/opentelemetry-cpp/api/CMakeLists.txt (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/common/macros.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/config.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/logs/logger.h (8 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/nostd/internal/absl/base/options.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/nostd/type_traits.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/nostd/variant.h (4 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/plugin/tracer.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/client_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/code_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/db_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/db_metrics.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/error_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/exception_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/http_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/http_metrics.h (2 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/app_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/artifact_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/aws_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/az_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/azure_attributes.h (2 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/azure_metrics.h (2 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/browser_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cassandra_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cicd_attributes.h (3 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cicd_metrics.h (5 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/client_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cloud_attributes.h (2 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cloudevents_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cloudfoundry_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/code_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/container_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/container_metrics.h (6 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cpu_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cpu_metrics.h (3 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cpython_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cpython_metrics.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/db_attributes.h (8 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/db_metrics.h (22 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/deployment_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/destination_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/device_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/disk_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/dns_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/dns_metrics.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/elasticsearch_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/enduser_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/error_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/event_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/exception_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/faas_attributes.h (3 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/faas_metrics.h (9 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/feature_flag_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/file_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/gcp_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/gen_ai_attributes.h (6 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/gen_ai_metrics.h (5 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/geo_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/graphql_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/heroku_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/host_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/http_attributes.h (3 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/http_metrics.h (10 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/hw_attributes.h (2 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/hw_metrics.h (8 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/k8s_attributes.h (2 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/k8s_metrics.h (39 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/linux_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/log_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/message_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/messaging_attributes.h (5 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/messaging_metrics.h (10 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/net_attributes.h (2 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/network_attributes.h (6 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/oci_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/opentracing_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/os_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/otel_attributes.h (2 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/otel_metrics.h (5 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/other_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/peer_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/pool_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/process_attributes.h (3 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/process_metrics.h (11 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/profile_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/rpc_attributes.h (4 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/rpc_metrics.h (10 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/security_rule_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/server_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/service_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/session_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/source_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/system_attributes.h (10 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/system_metrics.h (32 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/telemetry_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/test_attributes.h (2 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/thread_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/tls_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/url_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/user_agent_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/user_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/vcs_attributes.h (6 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/vcs_metrics.h (10 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/webengine_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/network_attributes.h (2 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/otel_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/schema_url.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/server_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/service_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/telemetry_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/url_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/semconv/user_agent_attributes.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/trace/noop.h (1 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/trace/tracer.h (2 hunks)
  • deps/opentelemetry-cpp/api/include/opentelemetry/version.h (1 hunks)
  • deps/opentelemetry-cpp/api/test/singleton/singleton_test.cc (1 hunks)
  • deps/opentelemetry-cpp/api/test/trace/noop_test.cc (1 hunks)
  • deps/opentelemetry-cpp/exporters/elasticsearch/CMakeLists.txt (1 hunks)
  • deps/opentelemetry-cpp/exporters/etw/CMakeLists.txt (1 hunks)
  • deps/opentelemetry-cpp/exporters/etw/include/opentelemetry/exporters/etw/etw_tracer.h (1 hunks)
  • deps/opentelemetry-cpp/exporters/memory/CMakeLists.txt (1 hunks)
  • deps/opentelemetry-cpp/exporters/ostream/CMakeLists.txt (3 hunks)
  • deps/opentelemetry-cpp/exporters/ostream/src/metric_exporter.cc (3 hunks)
  • deps/opentelemetry-cpp/exporters/ostream/test/ostream_metric_test.cc (2 hunks)
  • deps/opentelemetry-cpp/exporters/otlp/BUILD (17 hunks)
  • deps/opentelemetry-cpp/exporters/otlp/CMakeLists.txt (16 hunks)
  • deps/opentelemetry-cpp/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client.h (1 hunks)
  • deps/opentelemetry-cpp/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_metric_utils.h (1 hunks)
  • deps/opentelemetry-cpp/exporters/otlp/src/otlp_grpc_client.cc (2 hunks)
  • deps/opentelemetry-cpp/exporters/otlp/src/otlp_metric_utils.cc (5 hunks)
  • deps/opentelemetry-cpp/exporters/otlp/test/otlp_file_exporter_test.cc (2 hunks)
  • deps/opentelemetry-cpp/exporters/otlp/test/otlp_grpc_target_test.cc (1 hunks)
🧰 Additional context used
🪛 Biome (1.9.4)
deps/opentelemetry-cpp/.vscode/launch.json

[error] 12-12: Expected a property but instead found '}'.

Expected a property here.

(parse)

⏰ Context from checks skipped due to timeout of 90000ms (8)
  • GitHub Check: test-tarball-linux
  • GitHub Check: coverage-windows
  • GitHub Check: lint-js-and-md
  • GitHub Check: test-linux (ubuntu-24.04)
  • GitHub Check: test-linux (ubuntu-24.04-arm)
  • GitHub Check: coverage-linux
  • GitHub Check: coverage-linux-without-intl
  • GitHub Check: test-macOS
🔇 Additional comments (319)
deps/opentelemetry-cpp/api/include/opentelemetry/semconv/user_agent_attributes.h (1)

22-25: Stylistic consistency: reformatted doc comment

The removal of leading asterisks and the adjusted indentation align this comment block with the updated style applied across other semantic-convention headers. No functional changes introduced.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/exception_attributes.h (1)

23-28: Deprecation metadata updated and comment reformatted
The deprecation annotation for kExceptionEscaped has been streamlined—block‐style asterisks removed, the reason changed to "obsoleted", and a newline appended in the JSON note. This matches the uniform style applied across other semantic‐convention headers.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/log_attributes.h (1)

22-24: Documentation formatting consistency
The comment blocks have been reformatted for improved readability and now match the style applied across other semantic convention headers. There are no semantic or API changes to the constant declarations.

Also applies to: 27-29, 32-34, 37-39, 42-44, 47-53, 56-63, 68-70, 73-75

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/dns_attributes.h (1)

23-28: Consistent comment formatting applied

The re-indented block removes leading asterisks and aligns with the standardized style update across semantic convention headers, without impacting any API behavior or documentation content.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/event_attributes.h (1)

22-27: Comment style refactor only
This change solely updates the formatting of the deprecation comment block—no API, logic, or constant values were altered. It’s consistent with the broader doc cleanup across semantic-convention headers.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/dns_metrics.h (1)

23-27: Comment block formatting is consistent and clear.

The refactored Doxygen comment removes redundant leading asterisks and follows the minimal style adopted across semantic convention headers. No functional or API changes have been introduced.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/peer_attributes.h (1)

23-25: Approve comment reformatting.

The revised indentation and removal of leading asterisks here are purely cosmetic and align with the standardized style applied across semantic convention headers. No behavioral impact.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/graphql_attributes.h (6)

22-26: Consistent comment formatting for kGraphqlDocument
Reformatted lines to remove leading asterisks and standardize indentation with other semantic‐convention headers. No changes to constant values or behavior.


29-31: Consistent comment formatting for kGraphqlOperationName
Adjusted comment style by dropping the leading asterisk and aligning indentation. Purely cosmetic.


34-36: Consistent comment formatting for kGraphqlOperationType
Standardized the block comment indentation and removed extra asterisks, matching the project’s style.


41-43: Consistent comment formatting for kQuery value
Updated comment block to the space‐indented style without leading asterisks, consistent with other incubating headers.


46-48: Consistent comment formatting for kMutation value
Removed the leading asterisks and normalized indentation. No semantic changes.


51-53: Consistent comment formatting for kSubscription value
Indentation-only adjustment; aligns with the rest of the semantic convention comment style.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cpu_attributes.h (2)

22-31: Approve: Cosmetic Comment Reformatting

The doc comments for kCpuLogicalNumber and kCpuMode have been realigned and reformatted purely for readability. No changes to identifiers, values, or API behavior.


32-73: Approve: CpuModeValues Comment Formatting

All docblocks under CpuModeValues were adjusted for consistent indentation and alignment. The semantic content remains unchanged and there are no functional impacts.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/enduser_attributes.h (4)

22-27: Consistent comment formatting for kEnduserId
Docblock reformatted to remove leading asterisks and normalize indentation without altering content or semantics.


30-36: Consistent comment formatting for kEnduserPseudoId
Docblock reformatted similarly for readability, preserving the warning about sensitive information.


40-44: Structured deprecation metadata for kEnduserRole
The deprecation note now uses JSON metadata with a clear replacement suggestion.


48-51: Clarified deprecation reason for kEnduserScope
Updated JSON metadata marks this attribute as “obsoleted” with no replacement defined.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/url_attributes.h (5)

22-24: Documentation formatting refined for kUrlFragment.
Comment indentation and line breaks now align with the updated style guide; no semantic changes introduced.


27-38: Consistent reflow of kUrlFull description.
Multi-line descriptions are reformatted for clarity and uniformity with other semantic headers; content and examples remain unaltered.


40-58: Expanded redaction guidance reflowed.
Long lists and paragraphs are neatly indented and broken across lines, improving readability without altering meaning.


61-66: kUrlPath comment streamlined.
Whitespace and wrapping adjustments match the new documentation style; functionality unaffected.


69-91: kUrlQuery block re-indented for consistency.
The detailed query component guidelines are rewrapped and indented for uniformity; no content was removed.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/heroku_attributes.h (3)

22-24: Approve updated comment formatting for kHerokuAppId.
Stylistic change only—aligned Javadoc block with project conventions; no impact on code functionality.


27-29: Approve updated comment formatting for kHerokuReleaseCommit.
Purely cosmetic adjustment for consistency; semantics unchanged.


32-34: Approve updated comment formatting for kHerokuReleaseCreationTimestamp.
Documentation style aligned with other semantic-convention headers; no logic change.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/oci_attributes.h (1)

23-30: Docs block reformatted, no behavioral change
This is a formatting-only update to remove leading asterisks and standardize the comment style in the auto-generated semantic convention headers. No functional or API behavior is affected. Please ensure this new style aligns with the project’s Doxygen/documentation guidelines.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/linux_attributes.h (3)

22-24: Approve comment style standardization for Linux memory slab state
Updating the comment block to the new standardized style improves consistency and readability without affecting functionality.


29-31: Approve updated comment styling for reclaimable state
The revised comment formatting aligns with other semantic-convention headers and is purely cosmetic.


34-36: Approve updated comment styling for unreclaimable state
Consistent comment style applied; no change to behavior or semantics.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/error_attributes.h (2)

23-43: Approve comment block reformatting

The Javadoc-style block has been converted into a cleaner, uniform comment format that aligns with other semconv headers. No functional or semantic changes were introduced.


48-50: Approve fallback error comment formatting

The fallback error description now follows the updated comment style, ensuring consistency across semantic convention files.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/destination_attributes.h (2)

23-26: Approve formatting-only updates to the address comment block.

Indentation and removal of leading asterisks have been applied consistently without changing any semantics, improving readability.


31-31: Approve formatting-only update to the port comment.

The single-line comment has been reformatted to match surrounding style, with no effect on functionality.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/disk_attributes.h (3)

22-25: LGTM: Comment formatting improved for consistency.

The comment formatting change removes leading asterisks and standardizes the documentation style, which aligns with the broader OpenTelemetry C++ semantic convention formatting improvements in this dependency update.


29-32: LGTM: Consistent comment formatting applied.

The formatting change maintains consistency with the updated documentation style across the file.


34-37: LGTM: Documentation formatting standardized.

The comment formatting change completes the consistent documentation style across all constants in this file. The functional definitions remain unchanged, and this formatting improvement enhances readability and consistency with other OpenTelemetry semantic convention headers.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cpu_metrics.h (1)

23-27: Formatting-only comment adjustments
The PR standardizes the comment blocks by removing leading asterisks and re-indenting the metric descriptions without altering any constant names, descriptions, or signatures. These are purely cosmetic changes.

Please verify that your Doxygen/semantic-convention documentation generator still correctly parses these blocks after the formatting change.

Also applies to: 64-68, 98-101

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/os_attributes.h (5)

23-23: Approve formatting-only change for OS build ID comment.
The updated indentation enhances readability without affecting the constant definition.


28-29: Approve formatting-only change for OS description comment.
Adjusted indent and removed leading asterisks for clarity; semantics remain unchanged.


34-34: Approve formatting-only change for OS name comment.
Consistent two-space indentation applied; no impact on functionality.


39-39: Approve formatting-only change for OS type comment.
Comment block reformatted for uniformity without altering content.


44-45: Approve formatting-only change for OS version hyperlink comment.
Indentation and comment style updated for consistency; link remains intact.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/host_attributes.h (1)

23-151: LGTM! Formatting changes align with dependency update.

These changes are purely cosmetic reformatting of documentation comments in an auto-generated file, changing from Javadoc-style to a simpler comment format. No functional code, constant values, or logic has been modified. This is consistent with the OpenTelemetry C++ library update to version 1.21.0 and represents upstream formatting standardization.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/test_attributes.h (12)

23-24: Cosmetic: Reformat Doxygen comment for kTestCaseName.

The updated comment style aligns with the project’s compact Doxygen formatting and introduces no semantic changes.


29-30: Cosmetic: Reformat Doxygen comment for kTestCaseResultStatus.

Comment reflow enhances readability and remains functionally identical.


34-35: Cosmetic: Reformat Doxygen comment for kTestSuiteName.

Style-only adjustment; no impact on code behavior.


39-40: Cosmetic: Reformat Doxygen comment for kTestSuiteRunStatus.

Consistent comment styling applied without altering semantics.


46-47: Cosmetic: Reformat Doxygen comment for kPass.

Stylistic update to align with compact comment guidelines; functionality unchanged.


51-52: Cosmetic: Reformat Doxygen comment for kFail.

Purely cosmetic change for consistency; no code logic affected.


60-61: Cosmetic: Reformat Doxygen comment for kSuccess.

Improves comment uniformity; no functional modifications.


65-66: Cosmetic: Reformat Doxygen comment for kFailure.

Comment style updated only; retains original meaning.


70-71: Cosmetic: Reformat Doxygen comment for kSkipped.

Formatting-only change to maintain consistency.


75-76: Cosmetic: Reformat Doxygen comment for kAborted.

Stylistic adjustment; functionality unaffected.


80-81: Cosmetic: Reformat Doxygen comment for kTimedOut.

Aligns comment style with project conventions; no semantic change.


85-86: Cosmetic: Reformat Doxygen comment for kInProgress.

Consistent Doxygen formatting applied; code behavior remains the same.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cloudevents_attributes.h (5)

23-24: LGTM! Comment formatting standardization improves consistency.

The comment content and CloudEvents specification link are preserved while improving readability through consistent formatting.


29-31: LGTM! Consistent comment formatting maintained.

The comment content and specification reference are properly preserved with improved formatting consistency.


36-38: LGTM! Comment formatting aligns with codebase standards.

The CloudEvents specification link and attribute description are correctly preserved with standardized formatting.


43-45: LGTM! Documentation formatting is consistent and content preserved.

The attribute description and CloudEvents specification reference remain intact with improved formatting.


50-52: LGTM! Final comment block maintains consistency.

The event_type attribute documentation and CloudEvents specification link are properly preserved with standardized formatting.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cassandra_attributes.h (17)

23-24: Consistent comment formatting
Updated the doc block to use space-indented lines instead of leading asterisks, matching the new project-wide style.


29-30: Consistent comment formatting
Applied space-indented comment style here as well for uniformity across semantic-convention headers.


34-35: Consistent comment formatting
Reformatted this doc block to remove leading asterisks and adopt space indentation.


39-40: Consistent comment formatting
Space-indented comment lines replace the previous asterisk-led style for clarity and consistency.


44-45: Consistent comment formatting
Switched to space-indented doc lines here to align with the formatting in other semantic headers.


49-50: Consistent comment formatting
Doc block reformatted to space-indented style, removing leading asterisks for consistency.


58-59: Consistent comment formatting
Standardized this enum value’s comment to the new space-indented format.


63-64: Consistent comment formatting
Updated the leading-asterisk comment to space-indented style for uniform documentation.


68-69: Consistent comment formatting
Reformatted this enum comment block to match the space-indented convention.


73-74: Consistent comment formatting
Switched to space-indented lines, removing the preceding asterisk.


78-79: Consistent comment formatting
Adopted space indentation here to unify the documentation style.


83-84: Consistent comment formatting
Applied the new doc formatting convention to this comment block.


88-89: Consistent comment formatting
Reformatted to space-indented comment lines, removing leading asterisks.


93-94: Consistent comment formatting
Updated comment to the space-indented style for coherence across headers.


98-99: Consistent comment formatting
Transitioned this enum value comment to the standardized space-indented format.


103-104: Consistent comment formatting
Replaced leading asterisks with space indentation in this doc block.


108-109: Consistent comment formatting
Aligned this final enum comment with the new project-wide formatting convention.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/faas_attributes.h (1)

1-232: Approve: Purely comment formatting improvements

The diffs only adjust indentation and style of existing comment blocks for consistency and readability. No code logic, constant definitions, or namespaces have been altered.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/hw_attributes.h (1)

22-24: Consistent comment formatting across attribute descriptions
The Javadoc-style blocks have been reformatted to a cleaner, space-indented style without leading asterisks, improving readability and aligning with the broader semantic conventions update. No functional or API changes were made.

Also applies to: 27-29, 32-35, 38-40, 43-50, 55-57, 60-62, 65-67, 75-77, 79-81, 84-86, 89-91, 94-96, 99-101, 104-106, 109-111, 114-116, 119-121, 124-126, 129-131, 134-136, 139-141

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/hw_metrics.h (8)

23-27: Approve comment reformatting
The Doxygen block for hw.energy was reformatted for consistency and readability without altering content.


58-62: Approve comment reformatting
The Doxygen block for hw.errors was reformatted for consistency and readability without altering content.


93-97: Approve comment reformatting
The Doxygen block for hw.host.ambient_temperature was reformatted for consistency and readability without altering content.


138-144: Approve comment reformatting
The Doxygen block for hw.host.energy was reformatted for consistency and readability without altering content.


179-182: Approve comment reformatting
The Doxygen block for hw.host.heating_margin was reformatted for consistency and readability without altering content.


221-226: Approve comment reformatting
The Doxygen block for hw.host.power was reformatted for consistency and readability without altering content.


263-268: Approve comment reformatting
The Doxygen block for hw.power was reformatted for consistency and readability without altering content.


301-311: Approve comment reformatting
The Doxygen block for hw.status was reformatted for consistency and readability without altering content.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cloudfoundry_attributes.h (11)

23-27: Doc comment style standardized for kCloudfoundryAppId.
Reformatted to use inline <p> tags and match project conventions. No semantic changes.


32-38: Doc comment style standardized for kCloudfoundryAppInstanceId.
Reformatted to use inline <p> tags and match project conventions. No semantic changes.


43-47: Doc comment style standardized for kCloudfoundryAppName.
Reformatted to use inline <p> tags and match project conventions. No semantic changes.


52-56: Doc comment style standardized for kCloudfoundryOrgId.
Reformatted to use inline <p> tags and match project conventions. No semantic changes.


61-66: Doc comment style standardized for kCloudfoundryOrgName.
Reformatted to use inline <p> tags and match project conventions. No semantic changes.


70-75: Doc comment style standardized for kCloudfoundryProcessId.
Reformatted to use inline <p> tags and match project conventions. No semantic changes.


80-84: Doc comment style standardized for kCloudfoundryProcessType.
Reformatted to use inline <p> tags and match project conventions. No semantic changes.


89-93: Doc comment style standardized for kCloudfoundrySpaceId.
Reformatted to use inline <p> tags and match project conventions. No semantic changes.


98-102: Doc comment style standardized for kCloudfoundrySpaceName.
Reformatted to use inline <p> tags and match project conventions. No semantic changes.


107-114: Doc comment style standardized for kCloudfoundrySystemId.
Reformatted to use inline <p> tags and match project conventions. No semantic changes.


120-127: Doc comment style standardized for kCloudfoundrySystemInstanceId.
Reformatted to use inline <p> tags and match project conventions. No semantic changes.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/opentracing_attributes.h (3)

22-26: Comments formatting change is clean and consistent.

The simplified block comment preserves the original description of kOpentracingRefType and improves readability without affecting functionality.


31-34: Comment style updated correctly for kChildOf.

The descriptive text remains intact and aligns with the formatting used across other semantic convention headers.


36-39: Comment style updated correctly for kFollowsFrom.

No modifications to the constant’s value or API surface; formatting is consistent with the rest of the incubating attributes.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/faas_metrics.h (9)

23-27: Documentation formatting improvement for kMetricFaasColdstarts
Reformatted the doc comment block for clarity and consistency with project-wide style. No changes to metric identifiers or semantics.


60-64: Documentation formatting improvement for kMetricFaasCpuUsage
Updated the histogram doc comment to the new concise style. No functional impact on metric definition.


83-87: Documentation formatting improvement for kMetricFaasErrors
Revised the counter doc comment to match standardized formatting. Metric name and behavior remain unchanged.


118-122: Documentation formatting improvement for kMetricFaasInitDuration
Cleaned up the histogram doc comment formatting. No semantic changes to the metric.


142-146: Documentation formatting improvement for kMetricFaasInvocations
Standardized the counter doc comment style. Metric constant and description are intact.


179-183: Documentation formatting improvement for kMetricFaasInvokeDuration
Applied consistent formatting to the histogram doc comment. Functionality is unaffected.


203-207: Documentation formatting improvement for kMetricFaasMemUsage
Refactored the histogram doc comment for readability. No changes to metric semantics.


228-232: Documentation formatting improvement for kMetricFaasNetIo
Updated the histogram doc comment to align with the new documentation style. Metric definitions remain the same.


249-253: Documentation formatting improvement for kMetricFaasTimeouts
Cleaned up the counter doc comment block for consistency. No alterations to the metric’s behavior or identifiers.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/artifact_attributes.h (7)

22-27: Consistent comment reformatting applied
The Javadoc-style block has been reformatted to a space-prefixed style, aligning with the updated convention across semantic headers. No content or API behavior has changed.


30-35: Space-prefixed comment style
The comment block has been reformatted consistently without altering its meaning. This matches the standardized layout used project-wide.


38-40: Single-line comment updated
Replaced the leading asterisk with a space prefix for uniformity. No semantic change.


43-50: Block comment alignment updated
Formatted the multi-line description to the new space-prefixed style, improving consistency with other semconv headers.


53-62: Extended comment block reformatted
Updated the long-form comment to the standard space-prefixed layout. All links and text remain intact.


65-70: Package URL comment styling
Applied the same space-prefixed format to this block. No changes to attribute name or value.


73-76: Version attribute comment reformatted
Converted the single-line Javadoc block into the unified space-prefixed format. Functionality unchanged.

deps/opentelemetry-cpp/.devcontainer/devcontainer.json (1)

13-15: Add CMake version build arg
Introducing CMAKE_VERSION with a default of 3.31.6 aligns the devcontainer with the new CMake flexibility. Please verify that this default works correctly in both Dockerfiles (Dockerfile.dev and Dockerfile.conan) and matches the minimum supported CMake version.

deps/opentelemetry-cpp/.devcontainer/README.md (1)

6-12: Document CMAKE_VERSION
The new CMake version section clearly explains how to customize the installed CMake. Good consistency with other build arguments.

deps/opentelemetry-cpp/.devcontainer/Dockerfile.dev (2)

11-11: Introduce CMAKE_VERSION build arg
Adding ARG CMAKE_VERSION=3.31.6 ensures the container can install the specified CMake version.


17-17: Expose CMAKE_VERSION in environment
Setting ENV CMAKE_VERSION=${CMAKE_VERSION} makes the version available to setup scripts.

deps/opentelemetry-cpp/.devcontainer/Dockerfile.conan (9)

1-4: Pin base image for reproducibility
Using ubuntu:24.04@sha256:… ensures consistent builds.


22-22: Lock Conan version
Pinning to conan==2.15.1 is excellent for build stability.


24-31: Verify user setup args/envs
ARGs and ENVs for USER_NAME, USER_UID, USER_GID, and INSTALL_PACKAGES mirror the other Dockerfile. Ensure customize_container.sh uses these to create the devuser correctly.


33-35: Execute container customization script
Running the custom script early is appropriate for user and environment setup.


37-37: Bootstrap Conan profile
Using conan profile detect --force is correct to initialize the default profile.


39-44: Validate conanfile path
Confirm that COPY ./install/conan/ . matches your build context and directory structure so Conan installation can locate conanfile_stable.txt.


45-45: Install dependencies via Conan
conan install ./${CONAN_FILE} --build=missing correctly fetches and builds required packages.


46-50: Set Conan and CMake env vars
Exporting CMAKE_TOOLCHAIN_FILE, CXX_STANDARD, BUILD_TYPE, and CONAN_FILE ensures downstream builds use the correct toolchain and settings.


51-56: Finalize working directory and entrypoint
Switching to /workspaces/opentelemetry-cpp and defaulting to Bash aligns with devcontainer best practices.

deps/opentelemetry-cpp/api/include/opentelemetry/common/macros.h (1)

344-346: Fixed typo in intrinsic comment
The correction from “instrinsic” to “intrinsic” improves documentation clarity.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/client_attributes.h (2)

23-26: Approve reformatting of kClientAddress comment
The updated block-style comment without leading asterisks is more consistent with the project’s documentation style.


31-35: Approve reformatting of kClientPort comment
Comment formatting has been standardized and readability improved.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/client_attributes.h (2)

23-26: Approve reformatting of incubating kClientAddress comment
Formatting-only change; aligns with other semantic convention headers.


31-35: Approve reformatting of incubating kClientPort comment
Consistency in comment style maintained across incubating headers.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/az_attributes.h (2)

23-25: Approve reformatting of kAzNamespace comment
Cosmetic update only; improves readability of documentation.


30-31: Approve reformatting of kAzServiceRequestId comment
Comment style standardized without altering semantics.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/http_metrics.h (2)

24-26: Approve reformatting of HTTP client duration metric comment
Removal of leading asterisks and consistent indentation enhances clarity.


50-52: Approve reformatting of HTTP server duration metric comment
Comment style cleanup is purely cosmetic and consistent with the overall PR.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/browser_attributes.h (1)

23-59: LGTM! Comment formatting improvements enhance readability.

The formatting changes from Javadoc-style comments to space-indented comments improve consistency and readability. Since this is an auto-generated file, these changes reflect template improvements in the OpenTelemetry C++ 1.21.0 update.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/azure_attributes.h (1)

23-104: LGTM! Consistent comment formatting improvements.

The comment formatting changes throughout the file improve consistency with other semantic convention headers. All constant definitions and values remain unchanged - only documentation formatting has been improved.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/azure_metrics.h (1)

24-26: LGTM! Documentation formatting improvements.

The comment formatting changes for the metric descriptions improve readability while maintaining all functional code unchanged. The metric declarations and factory functions remain intact.

Also applies to: 69-70

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/network_attributes.h (1)

23-374: LGTM! Comprehensive comment formatting improvements.

The extensive comment formatting changes throughout this file significantly improve readability and consistency. All network attribute constants, value definitions, and namespace structures remain functionally unchanged - only documentation formatting has been improved.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/rpc_metrics.h (1)

24-31: LGTM: Comment formatting improvements enhance readability.

The standardization of comment blocks from asterisk-prefixed style to consistent space indentation improves documentation readability across all RPC metrics. These auto-generated formatting improvements are beneficial and maintain consistency.

Also applies to: 53-57, 79-85, 109-113, 137-143, 167-174, 195-199, 221-227, 251-255, 279-285

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cloud_attributes.h (1)

23-23: LGTM: Consistent comment formatting improvements.

The comment formatting standardization across cloud attributes and their value enumerations improves documentation consistency and readability. These auto-generated changes align with the broader formatting improvements in the semantic convention headers.

Also applies to: 28-31, 35-38, 42-42, 47-56, 60-84, 90-90, 95-95, 100-100, 105-105, 110-110, 115-115, 120-120, 125-125, 130-130, 135-135, 140-140, 145-145, 150-150, 155-155, 160-160, 165-165, 170-170, 175-175, 180-180, 185-185, 190-190, 195-195, 200-200, 205-205, 210-210, 215-215, 220-220, 225-225, 230-230, 235-235, 244-244, 249-249, 254-254, 259-259, 264-264, 269-269, 274-274, 279-279

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cicd_metrics.h (1)

24-26: LGTM: Comment formatting standardization.

The formatting improvements for CI/CD metrics documentation follow the same beneficial pattern as other semantic convention headers, enhancing readability and maintaining consistency across the auto-generated files.

Also applies to: 66-68, 92-97, 135-138, 174-176

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/messaging_metrics.h (1)

24-30: LGTM: Comment formatting and enhanced deprecation metadata.

The formatting improvements follow the consistent pattern across semantic convention headers. Additionally, the enhanced deprecation annotations with structured JSON metadata ("reason": "renamed" and "renamed_to" fields) provide much clearer migration guidance for users transitioning from deprecated messaging metrics to their replacements.

Also applies to: 71-74, 99-103, 145-149, 189-192, 216-220, 262-266, 291-295, 300-300, 337-341, 366-370

deps/opentelemetry-cpp/exporters/ostream/CMakeLists.txt (2)

18-18: Variable declared implicitly – verify wider-scope expectations

list(APPEND OPENTELEMETRY_OSTREAM_TARGETS …) works even when the variable has not been pre-declared, but it is created only in the current directory scope.
If any parent/peer CMakeLists.txt later expects OPENTELEMETRY_OSTREAM_TARGETS to be populated (e.g., for cumulative packaging of all ostream targets), you’ll need to promote it with set(OPENTELEMETRY_OSTREAM_TARGETS "${OPENTELEMETRY_OSTREAM_TARGETS}" PARENT_SCOPE) or declare it in a common file before these list(APPEND) calls.

Please double-check the intended visibility; otherwise everything is fine here.


69-80:

Details

❓ Verification inconclusive

otel_add_component call isn’t guarded by OPENTELEMETRY_INSTALL

Previously the install steps were wrapped with
if(OPENTELEMETRY_INSTALL)…endif().
The new consolidated call is unconditional; if a consumer configures the
project with -DOPENTELEMETRY_INSTALL=OFF, the macro might still
generate install rules (depends on its internal logic).

Action:

-if(OPENTELEMETRY_INSTALL)
   otel_add_component(
     COMPONENT exporters_ostream
     TARGETS ${OPENTELEMETRY_OSTREAM_TARGETS}
     FILES_DIRECTORY "include/opentelemetry/exporters/ostream"
     FILES_DESTINATION "include/opentelemetry/exporters"
     FILES_MATCHING PATTERN "*.h")
-endif()

or ensure otel_add_component already checks the variable internally.

Confirm the behaviour to avoid surprise install artefacts.


Let’s verify whether otel_add_component internally honors OPENTELEMETRY_INSTALL. Running a search to pull in its full definition:


🏁 Script executed:

#!/bin/bash
set -e

echo "Locating and dumping the otel_add_component macro:"
rg -l "macro.*otel_add_component" | while read file; do
  echo
  echo "===== Definition in: $file ====="
  awk 'BEGIN{IGNORECASE=1} /macro\(\s*otel_add_component/{flag=1} } flag{print} /endmacro/{ if(flag){exit} }' "$file"
done

Length of output: 167


To confirm whether otel_add_component already respects OPENTELEMETRY_INSTALL, let’s search for its definition (as both a macro or function) and any usage of OPENTELEMETRY_INSTALL in the CMake files:


🏁 Script executed:

#!/bin/bash
set -e

echo ">> Looking for otel_add_component definition (macro or function)"
rg -nE "macro\\s*\\(\\s*otel_add_component|function\\s*\\(\\s*otel_add_component" -g "*.cmake"

echo
echo ">> Checking for OPENTELEMETRY_INSTALL references"
rg -n "OPENTELEMETRY_INSTALL" -g "*.cmake"

Length of output: 635


Let’s locate every occurrence of otel_add_component to find its definition and usages:


🏁 Script executed:

#!/bin/bash
set -e

echo "Searching for otel_add_component across the repo:"
rg -n "otel_add_component"

Length of output: 1365


Let’s locate the macro definition in the OpenTelemetry C++ cmake modules and inspect whether it checks OPENTELEMETRY_INSTALL:


🏁 Script executed:

#!/bin/bash
set -e

echo "Step 1: List all CMake module files in deps/opentelemetry-cpp:"
find deps/opentelemetry-cpp -type f -name "*.cmake"

echo
echo "Step 2: Search for the otel_add_component definition (macro or function):"
grep -R -E "macro *\\( *otel_add_component|function *\\( *otel_add_component" -n deps/opentelemetry-cpp

Length of output: 466


Let’s inspect the top of the vendored OpenTelemetry C++ CMakeLists to see where otel_add_component is defined and if it’s gated by OPENTELEMETRY_INSTALL:


🏁 Script executed:

#!/bin/bash
set -e

echo "=== Head of deps/opentelemetry-cpp/CMakeLists.txt ==="
sed -n '1,200p' deps/opentelemetry-cpp/CMakeLists.txt

echo
echo "=== Include directives in that file ==="
grep -n include deps/opentelemetry-cpp/CMakeLists.txt

Length of output: 260


Let’s search all CMakeLists.txt under deps/opentelemetry-cpp for the otel_add_component definition:


🏁 Script executed:

#!/bin/bash
set -e

echo "=== Listing CMakeLists.txt under deps/opentelemetry-cpp ==="
find deps/opentelemetry-cpp -type f -name "CMakeLists.txt"

echo
echo "=== Grepping for macro or function definition of otel_add_component ==="
grep -R -nE "macro *\\( *otel_add_component|function *\\( *otel_add_component" deps/opentelemetry-cpp

Length of output: 3100


Further inspection is needed to locate the otel_add_component definition outside the vendored folder. Let’s search the entire repo for its macro or function declaration:


🏁 Script executed:

#!/bin/bash
set -e

echo "Searching entire repo for otel_add_component macro:"
grep -R -nE 'macro *\(\s*otel_add_component' .

echo
echo "Searching entire repo for otel_add_component function:"
grep -R -nE 'function *\(\s*otel_add_component' .

Length of output: 170


Let’s search the entire repo (excluding the vendored deps folder) for any CMake modules defining otel_add_component:


🏁 Script executed:

#!/bin/bash
set -e

echo "=== All .cmake files outside deps directory ==="
find . -type f -name "*.cmake" -not -path "./deps/*"

echo
echo "=== Searching those modules for otel_add_component definition ==="
grep -R -nE "macro *\\( *otel_add_component|function *\\( *otel_add_component" -not -path "./deps/*" .

Length of output: 531


Confirm otel_add_component honors OPENTELEMETRY_INSTALL
I wasn’t able to locate the definition of otel_add_component in the vendored CMake modules, so it’s unclear whether it internally checks OPENTELEMETRY_INSTALL. Please manually verify that this macro skips all install steps when -DOPENTELEMETRY_INSTALL=OFF. If not, wrap the call in:

-if(OPENTELEMETRY_INSTALL)
   otel_add_component(
     COMPONENT exporters_ostream
     TARGETS ${OPENTELEMETRY_OSTREAM_TARGETS}
     FILES_DIRECTORY "include/opentelemetry/exporters/ostream"
     FILES_DESTINATION "include/opentelemetry/exporters"
     FILES_MATCHING PATTERN "*.h")
-endif()

or add an equivalent guard inside the macro to prevent unintentional install rules.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/db_metrics.h (1)

24-28: Docs only – looks good

Comment formatting only; no API surface changed.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/elasticsearch_attributes.h (1)

23-24: Minor comment re-flow – no issues

Purely stylistic; implementation untouched.

deps/opentelemetry-cpp/api/test/trace/noop_test.cc (1)

74-74: LGTM! Test correctly validates NoopTracer disabled state.

The assertion properly tests that NoopTracer::Enabled() returns false, which is the expected behavior for a no-op tracer implementation in ABI version 2+.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/source_attributes.h (2)

23-26: Approve comment formatting standardization.

The reformatting improves readability by removing redundant leading asterisks while preserving all semantic content.


31-31: Approve comment formatting standardization.

Consistent with the broader formatting improvements across semantic convention headers.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/service_attributes.h (4)

23-49: Approve extensive comment formatting improvement.

The reformatting significantly improves readability of the detailed service instance ID documentation while preserving all semantic content and guidelines.


54-60: Approve comment formatting standardization.

Clean formatting improvement for service name documentation that maintains all important details about fallback behavior.


65-72: Approve comment formatting standardization.

Improved readability for service namespace documentation while preserving the important uniqueness requirements.


77-78: Approve comment formatting standardization.

Simple but consistent formatting improvement for service version documentation.

deps/opentelemetry-cpp/api/include/opentelemetry/trace/noop.h (1)

99-104: LGTM! Proper implementation of tracer enablement for NoopTracer.

The default constructor correctly initializes the NoopTracer as disabled for ABI version 2+, which is the expected behavior for a no-op implementation. The conditional compilation ensures backward compatibility.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/url_attributes.h (1)

23-78: LGTM: Comment formatting standardization.

The comment formatting has been standardized from asterisk-led to space-aligned style, improving readability and consistency across semantic convention headers. Since this is an auto-generated file, the changes appropriately reflect template updates.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/user_attributes.h (1)

23-52: LGTM: Consistent comment formatting improvements.

The comment formatting has been updated to match the standardized style across semantic convention headers. No functional changes to the user attribute constants.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/geo_attributes.h (1)

23-96: LGTM: Comprehensive comment formatting standardization.

The comment formatting has been consistently updated across both attribute constants and enum values, maintaining the same clean style applied throughout the semantic convention headers.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/service_attributes.h (1)

23-36: LGTM: Service attributes comment formatting aligned.

The comment formatting for service attributes has been updated to match the standardized style, maintaining consistency across all semantic convention headers.

deps/opentelemetry-cpp/api/test/singleton/singleton_test.cc (1)

172-177: LGTM: Proper ABI-versioned tracer enabled state initialization.

The default constructor correctly implements the new tracer enabled state management for ABI version 2+. The conditional compilation ensures backward compatibility, and setting the tracer to enabled (true) is appropriate for a test tracer implementation.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/server_attributes.h (2)

23-26: Consistent comment formatting applied
Reformatted the kServerAddress documentation block to remove leading asterisks and align with project-wide style. No API or semantic changes.


31-35: Consistent comment formatting applied
Reformatted the kServerPort documentation block to match the updated comment style. No API or semantic changes.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/webengine_attributes.h (1)

23-24: Unified comment style for webengine attributes
Removed leading asterisks and adjusted indentation across all documentation blocks (kWebengineDescription, kWebengineName, kWebengineVersion). No changes to identifiers or values.

Also applies to: 28-29, 33-34

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/server_attributes.h (2)

23-26: Consistent comment reformatting for incubating server attributes
Updated the kServerAddress doc block to the standard two-space indent style without leading asterisks. No functional changes.


31-35: Consistent comment reformatting for incubating server attributes
Updated the kServerPort doc block to the standard two-space indent style without leading asterisks. No functional changes.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/security_rule_attributes.h (1)

23-24: Standardized comment formatting for all security_rule attributes
Adjusted indentation and removed leading asterisks across every documentation block (kSecurityRuleCategory, kSecurityRuleDescription, kSecurityRuleLicense, kSecurityRuleName, kSecurityRuleReference, kSecurityRuleRulesetName, kSecurityRuleUuid, kSecurityRuleVersion). No semantic or identifier changes.

Also applies to: 28-29, 33-34, 38-39, 43-47, 51-53, 57-59, 63-64

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/schema_url.h (1)

22-22: Updated schema URL to latest version
Bumped kSchemaUrl from schema version 1.31.0 to 1.34.0 to align with the new semantic conventions.

deps/opentelemetry-cpp/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_client.h (1)

65-65: LGTM! Good architectural improvement.

The addition of the static GetGrpcTarget method centralizes endpoint parsing and normalization logic, which improves code reusability and maintainability. The method signature is appropriate for a utility function that handles URL parsing for different formats.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/session_attributes.h (1)

23-23: LGTM! Comment formatting improvement.

The updated comment formatting removes asterisk prefixes and provides cleaner, more consistent documentation style. Since this is an auto-generated file, the improvement likely comes from updated generation templates.

Also applies to: 28-28

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/message_attributes.h (2)

23-27: LGTM! Enhanced deprecation metadata.

The structured JSON deprecation metadata is a significant improvement that provides:

  • Clear machine-readable reasons for deprecation ("renamed")
  • Explicit replacement attribute names in "renamed_to" fields
  • Better tooling support for migration assistance

The comment formatting updates also improve consistency and readability.

Also applies to: 33-37, 42-46, 51-55


63-63: LGTM! Consistent comment formatting.

The comment formatting updates provide better consistency across the codebase and improved readability.

Also applies to: 68-68

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/telemetry_attributes.h (1)

23-23: LGTM! Consistent documentation formatting.

The comment formatting standardization improves readability and maintains consistency across all telemetry attribute documentation. These auto-generated improvements enhance the overall documentation quality.

Also applies to: 28-36, 41-41, 48-48, 53-53, 58-58, 63-63, 68-68, 73-73, 78-78, 83-83, 88-88, 93-93, 98-98, 103-103

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/http_metrics.h (10)

24-26: Consistent doc comment formatting for HTTP client active requests
Standardized the comment block without altering the metric name or description.


66-68: Consistent doc comment formatting for HTTP client connection duration
Standardized the comment block without altering the metric name or description.


93-95: Consistent doc comment formatting for HTTP client open connections
Standardized the comment block without altering the metric name or description.


135-139: Consistent doc comment formatting for HTTP client request body size
Standardized the comment block without altering the metric name or description.


164-166: Consistent doc comment formatting for HTTP client request duration
Standardized the comment block without altering the metric name or description.


190-195: Consistent doc comment formatting for HTTP client response body size
Standardized the comment block without altering the metric name or description.


220-222: Consistent doc comment formatting for HTTP server active requests
Standardized the comment block without altering the metric name or description.


261-266: Consistent doc comment formatting for HTTP server request body size
Standardized the comment block without altering the metric name or description.


291-292: Consistent doc comment formatting for HTTP server request duration
Standardized the comment block without altering the metric name or description.


317-322: Consistent doc comment formatting for HTTP server response body size
Standardized the comment block without altering the metric name or description.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/other_attributes.h (1)

23-28: Deprecation metadata refined for kState attribute
Updated the JSON metadata to specify "reason": "renamed" and "renamed_to": "db.client.connection.state" without changing the constant’s value.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/user_agent_attributes.h (8)

23-28: Consistent doc comment formatting for kUserAgentName
Standardized the comment block without altering the attribute name or description.


33-34: Consistent doc comment formatting for kUserAgentOriginal
Standardized the comment block without altering the attribute name or description.


39-42: Consistent doc comment formatting for kUserAgentOsName
Standardized the comment block without altering the attribute name or description.


47-50: Consistent doc comment formatting for kUserAgentOsVersion
Standardized the comment block without altering the attribute name or description.


55-62: Consistent doc comment formatting for kUserAgentSyntheticType
Standardized the comment block without altering the attribute name or description.


67-72: Consistent doc comment formatting for kUserAgentVersion
Standardized the comment block without altering the attribute name or description.


81-81: Consistent doc comment formatting for synthetic type value kBot
Standardized the comment block without altering the constant or its meaning.


84-84: Consistent doc comment formatting for synthetic type value kTest
Standardized the comment block without altering the constant or its meaning.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/container_metrics.h (6)

24-28: Consistent doc comment formatting for kMetricContainerCpuTime
Standardized the comment block without altering the metric name or description.


63-67: Consistent doc comment formatting for kMetricContainerCpuUsage
Standardized the comment block without altering the metric name or description.


106-110: Consistent doc comment formatting for kMetricContainerDiskIo
Standardized the comment block without altering the metric name or description.


145-149: Consistent doc comment formatting for kMetricContainerMemoryUsage
Standardized the comment block without altering the metric name or description.


183-187: Consistent doc comment formatting for kMetricContainerNetworkIo
Standardized the comment block without altering the metric name or description.


222-226: Consistent doc comment formatting for kMetricContainerUptime
Standardized the comment block without altering the metric name or description.

deps/opentelemetry-cpp/api/include/opentelemetry/version.h (2)

13-13: Bump OPENTELEMETRY_VERSION to 1.21.0
Updated the version string to match the new release.


15-15: Bump OPENTELEMETRY_VERSION_MINOR to 21
Updated the minor version macro to align with the new release.

agents/otlp/src/otlp_common.cc (2)

28-28: LGTM: Adding consistent type alias.

The new using declaration for OwnedAttributeType aligns with the existing pattern of type aliases in this file and supports the OpenTelemetry library update.


177-177: LGTM: Updated variant accessor for OpenTelemetry compatibility.

The change from std::get<std::string> to opentelemetry::nostd::get<std::string> is correct and aligns with the OpenTelemetry C++ 1.21.0 update that standardizes on nostd variant utilities throughout the library.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/network_attributes.h (1)

23-23: LGTM: Improved comment formatting for consistency.

The standardized comment formatting enhances readability and maintains consistency across OpenTelemetry semantic convention headers. These cosmetic improvements align with the broader documentation style updates in the library.

Also applies to: 28-28, 33-33, 38-38, 43-45, 49-54, 57-63, 67-70, 77-77, 82-82, 87-87, 92-92, 97-97, 106-106, 111-111

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/thread_attributes.h (1)

23-23: LGTM: Consistent comment formatting improvement.

The updated comment style enhances readability and maintains consistency with the standardized formatting applied across OpenTelemetry semantic convention headers.

Also applies to: 28-28

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/telemetry_attributes.h (1)

23-27: LGTM: Comprehensive comment formatting standardization.

The updated comment formatting throughout this file improves readability and maintains consistency with the standardized documentation style being applied across all OpenTelemetry semantic convention headers. These cosmetic improvements enhance the overall documentation quality.

Also applies to: 32-32, 37-37, 42-50, 55-55, 62-62, 67-67, 72-72, 77-77, 82-82, 87-87, 92-92, 97-97, 102-102, 107-107, 112-112, 117-117

deps/opentelemetry-cpp/api/BUILD (1)

26-41: LGTM! Consistent configuration change for Abseil handling.

The removal of the unconditional HAVE_ABSEIL define aligns with the deprecation warning for the with_abseil flag and the overall move away from external Abseil linkage while maintaining internal Abseil usage.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/otel_attributes.h (1)

23-53: LGTM! Comment formatting improvements in auto-generated file.

The comment style changes improve readability while maintaining all semantic content. Since this is an auto-generated file, the formatting updates likely come from template improvements.

deps/opentelemetry-cpp/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_metric_utils.h (1)

58-60: LGTM! Well-designed addition for exponential histogram support.

The new method follows the established pattern of other metric conversion methods in the class, with consistent signature style and proper noexcept specification. This addition enhances OTLP export capabilities for Base2ExponentialHistogram metrics.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/vcs_metrics.h (1)

24-25: LGTM! Consistent comment formatting improvements.

The comment style updates improve readability and consistency across the semantic conventions headers. All metric definitions and functional code remain unchanged.

Also applies to: 62-64, 103-104, 147-148, 188-190, 229-231, 267-272, 312-317, 357-358, 396-398

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/exception_attributes.h (2)

23-27: LGTM: Improved deprecation metadata specificity.

The deprecation reason change from "uncategorized" to "obsoleted" provides clearer guidance to developers about why this attribute should no longer be used.


32-32: LGTM: Consistent comment formatting.

The simplified comment style improves readability and maintains consistency across the semantic convention headers.

Also applies to: 37-38, 43-44

deps/opentelemetry-cpp/exporters/etw/CMakeLists.txt (1)

22-33: LGTM: Consolidated installation logic improves maintainability.

The refactoring to use otel_add_component macro centralizes and simplifies the installation process while maintaining the same functionality. The parameters correctly specify the component name, target, header directory, destination, and file pattern.

deps/opentelemetry-cpp/exporters/otlp/test/otlp_file_exporter_test.cc (2)

111-113: LGTM: Proper ABI version 2 compatibility implementation.

The explicit creation of scope_attributes as an std::unordered_map aligns with the ABI version 2 API changes for tracer scope attributes. This ensures compatibility with the updated GetTracer method signature.


142-147: LGTM: Enhanced output parsing robustness.

The addition of newline truncation logic properly handles cases where the exporter output might be split across multiple resource spans, ensuring only the first resource span JSON is parsed for validation. This makes the test more reliable when dealing with multiple output chunks.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/pool_attributes.h (1)

23-27: LGTM: Enhanced deprecation metadata with clear migration path.

The structured deprecation metadata provides clear guidance with the "renamed" reason and explicit "renamed_to" field specifying db.client.connection.pool.name as the replacement. This helps developers understand exactly how to migrate from the deprecated attribute.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/process_metrics.h (1)

24-26: LGTM! Comment formatting improvements enhance readability.

The formatting changes standardize the documentation comment style across all metric definitions, improving consistency and readability. Since this is an auto-generated file, these changes reflect template improvements upstream.

Also applies to: 66-68, 104-105, 147-149, 184-186, 222-224, 260-262, 297-299, 340-342, 378-380, 415-419

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/tls_attributes.h (2)

23-28: LGTM! Comment formatting improvements enhance readability.

The standardized comment formatting improves consistency across all TLS attribute definitions.

Also applies to: 33-34, 39-41, 46-48, 53-55, 60-62, 67-69, 74-74, 79-79, 84-84, 99-99, 104-104, 109-109, 114-115, 120-122, 127-129, 134-136, 141-141, 146-147, 152-154, 159-161, 166-168, 173-175, 180-182, 187-187, 192-192, 197-197, 202-202, 209-209, 214-214


89-93: Excellent improvement to deprecation metadata.

The enhanced deprecation annotation with structured JSON metadata clearly specifies the reason for deprecation ("renamed") and the replacement attribute ("server.address"), making it easier for developers to understand migration paths.

deps/opentelemetry-cpp/api/include/opentelemetry/nostd/internal/absl/base/options.h (1)

72-97: Excellent modernization of header inclusion strategy.

This change improves compatibility across different C++ standards and compilers:

  • Uses C++20 <version> header when available for better feature detection
  • Properly suppresses deprecation warnings for <ciso646> in C++17 mode
  • Handles compiler-specific detection for GCC, Clang, and MSVC
  • Maintains backward compatibility while reducing compiler noise

The implementation correctly uses feature detection and compiler-specific pragmas.

deps/opentelemetry-cpp/api/include/opentelemetry/plugin/tracer.h (1)

90-94: LGTM! Proper implementation of tracer enablement for ABI v2+.

The conditional initialization of the enabled state maintains backward compatibility while enabling the new tracer enablement feature in ABI version 2+. Setting the default state to enabled is appropriate for a functional tracer instance.

deps/opentelemetry-cpp/exporters/etw/include/opentelemetry/exporters/etw/etw_tracer.h (1)

593-605: LGTM: Well-implemented tracer enablement API for ABI version 2.

The addition of the Enabled() method aligns with the broader OpenTelemetry C++ ABI version 2 enhancements. The implementation is correct:

  • Properly guarded by ABI version check
  • Returns true for ETW tracer (always enabled)
  • Includes comprehensive documentation for instrumentation authors
  • Follows the virtual method pattern from the base Tracer class
deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/profile_attributes.h (3)

23-83: LGTM: Improved documentation formatting.

The comment formatting changes improve readability and consistency across the file by removing leading asterisks and using space alignment.


84-92: LGTM: Valuable addition of Go and Rust frame type constants.

The addition of kGo and kRust constants provides more granular profiling frame types, complementing the existing kNative constant. The documentation properly links to Wikipedia pages for reference.


45-50: LGTM: Enhanced documentation for native frame types.

The expanded documentation for kNative appropriately clarifies that it can represent multiple native languages and recommends using more precise values when possible, which aligns well with the newly added kGo and kRust constants.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/system_metrics.h (3)

24-29: LGTM: Enhanced deprecation metadata.

The improved deprecation annotations with explicit "reason": "renamed" and "renamed_to" fields provide clearer guidance to developers about metric lifecycle management.


68-71: LGTM: Improved documentation formatting.

The comment formatting standardization across all metrics improves readability and consistency. The multi-line descriptions are now cleaner and more professional.


155-161: LGTM: Consistent deprecation metadata improvements.

The pattern of enhancing deprecation annotations is consistently applied across all deprecated metrics, providing developers with clear migration paths.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/file_attributes.h (1)

23-138: LGTM: Consistent documentation formatting improvements.

The comment formatting standardization across all file attribute constants improves readability and maintains consistency with other semantic convention headers in the OpenTelemetry C++ API. No functional changes were made to any constants or their semantic meanings.

deps/opentelemetry-cpp/MODULE.bazel (1)

6-6:

Details

❓ Verification inconclusive

Verify compatibility and security of dependency version updates.

The dependency updates include significant version bumps that should be verified for compatibility and security:

  • opentelemetry-cpp: 1.17.0 → 1.21.0 (major feature release)
  • nlohmann_json: 3.11.3 → 3.12.0
  • opentelemetry-proto: 1.5.0 → 1.6.0

Please verify that these dependency versions are compatible and secure:

Also applies to: 15-16


🏁 Script executed:

#!/bin/bash
# Check for security advisories and compatibility issues

echo "Checking OpenTelemetry C++ releases..."
gh api repos/open-telemetry/opentelemetry-cpp/releases --jq '.[] | select(.tag_name | test("v1\\.(17|18|19|20|21)\\.")) | {tag_name, published_at, body}' | head -20

echo "Checking nlohmann/json releases..."
gh api repos/nlohmann/json/releases --jq '.[] | select(.tag_name | test("v3\\.(11|12)\\.")) | {tag_name, published_at, body}' | head -10

echo "Checking OpenTelemetry Proto releases..."
gh api repos/open-telemetry/opentelemetry-proto/releases --jq '.[] | select(.tag_name | test("v1\\.[56]\\.")) | {tag_name, published_at, body}' | head -10

Length of output: 69552


Validate compatibility and security of updated dependencies

Based on the available release notes:

  • opentelemetry-cpp: 1.17.0 → 1.21.0

    • v1.21.0 removes the WITH_ABSEIL CMake option (uses internal Abseil only)—no impact on Bazel MODULE usage.
    • API changes affect only the SDK’s log-record classes (ReadableLogRecord, ReadWriteLogRecord) and their GetBody()/GetAttributes() methods. Applications not implementing custom log exporters remain unaffected.
    • No security advisories called out in the v1.21.0 changelog.
  • nlohmann_json: 3.11.3 → 3.12.0

    • Minor release; explicitly backward-compatible.
    • Adds new macros, optional()/filesystem/path enhancements—no breaking changes or known vulnerabilities.
  • opentelemetry-proto: 1.5.0 → 1.6.0

    • Release notes were not retrieved automatically.

Action items:

  • Manually verify that opentelemetry-proto v1.6.0 introduces no security advisories or breaking changes in your Bazel build.
deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/gen_ai_metrics.h (1)

23-27: LGTM! Comment formatting improvements enhance readability.

The changes consistently improve documentation formatting by replacing asterisk-prefixed comments with cleaner space-indented format. All metric names, descriptions, units, and function signatures remain unchanged.

Also applies to: 49-53, 75-79, 101-105, 128-132

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/db_metrics.h (1)

24-26: LGTM! Consistent comment formatting improvements.

The changes apply the same clean formatting style seen in other semantic convention headers, replacing asterisk-prefixed comments with space-indented format. All metric definitions, deprecation markers, and function signatures remain unchanged.

Also applies to: 64-68, 91-95, 133-137, 175-179, 217-221, 260-264, 303-307, 329-333, 355-362, 387-393, 433-439, 479-485, 525-531, 572-578, 618-624, 664-671, 695-702, 726-732, 773-779, 804-810, 832-836

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/deployment_attributes.h (2)

23-27: Excellent enhancement to deprecation metadata.

The structured JSON deprecation annotation with explicit reason and renamed_to fields significantly improves tooling support and provides clearer migration guidance for developers.


33-42: Well-documented uniqueness constraints.

The detailed explanation of how deployment.environment.name interacts with service identification attributes provides valuable context for proper usage and prevents common misunderstandings.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/code_attributes.h (3)

32-35: Important constraint to prevent data redundancy.

The explicit prohibition of using this attribute on Profile signals with reference to 'message Line' helps maintain data integrity and prevents duplication.


66-84: Comprehensive documentation with excellent examples.

The extensive list of language-specific examples for function names across Java, PHP, Go, Elixir, Erlang, Rust, and C provides valuable guidance for consistent implementation across different runtime environments.


25-27: Enhanced deprecation metadata structure.

The JSON format with explicit reason: "renamed" and renamed_to fields provides better tooling support for automated migration assistance.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/container_attributes.h (2)

110-113: Helpful clarification for label recording format.

The explicit example showing how to record a Docker container label app with value nginx as container.label.app attribute provides clear implementation guidance.


42-44: Consistent deprecation metadata enhancement.

The structured JSON format aligns with the deprecation metadata improvements seen across other semantic convention files, improving tooling consistency.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/messaging_attributes.h (3)

25-28: Clear guidance for batch operation instrumentation.

The explicit instruction to use messaging.batch.message_count only for batching APIs and not for single-message APIs helps prevent misuse and ensures consistent metrics across different messaging patterns.


174-178: Excellent explanation of Kafka message key semantics.

The detailed clarification of how Kafka message keys differ from messaging.message.id and the guidance for handling non-string keys provides valuable implementation guidance for complex scenarios.


115-117: Comprehensive deprecation metadata across messaging attributes.

The consistent application of structured JSON deprecation metadata with explicit reasons and replacement attributes throughout the messaging namespace enhances migration tooling support.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/rpc_attributes.h (1)

23-24: Documentation formatting cleanup.
Comment blocks were reformatted for consistency and clarity without altering any semantic values or declarations.

Also applies to: 29-35, 40-46, 51-59, 63-69, 74-75, 80-81, 85-85, 90-93, 98-99

deps/opentelemetry-cpp/exporters/memory/CMakeLists.txt (1)

35-47: Consolidate component installation via otel_add_component.
The manual install() commands were replaced by the otel_add_component macro to standardize and simplify component installation across exporters. This aligns with other exporter CMakeLists refactorings.

deps/opentelemetry-cpp/api/include/opentelemetry/logs/logger.h (1)

45-46: Doxygen tag corrections.
All @tparam tags in the variadic logging method and severity-level overloads were correctly replaced with @param to match the function parameters, enhancing documentation accuracy.

Also applies to: 53-54, 99-100, 123-124, 147-148, 171-172, 195-196, 219-220, 243-244

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/k8s_metrics.h (1)

23-1724: Documentation-only: comment style normalization & deprecation metadata enhancement.
These changes uniformly update formatting of semantic metric comments and enrich deprecation annotations (adding reason and renamed_to), with no API or implementation modifications.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/process_attributes.h (2)

82-83: New semantic attribute: process.environment_variable.
Introduces kProcessEnvironmentVariable for capturing environment variables under process.environment_variable.<KEY>. Documentation examples and naming follow established conventions.


22-64: Documentation formatting & deprecation metadata updates.
Existing process attribute comments were reformatted for consistency, and deprecated attributes now include precise metadata (reason, renamed_to) per updated semantic-conventions schema.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/http_attributes.h (3)

23-37: LGTM! Excellent documentation improvements.

The addition of HTML formatting (<p>, <ul>, <li>) and concrete examples significantly improves the clarity and readability of the HTTP request header documentation. The examples clearly demonstrate how headers should be recorded as attributes with proper array formatting.


42-58: Well-structured documentation with comprehensive guidance.

The enhanced documentation for http.request.method provides clear guidance on:

  • Known vs unknown HTTP methods
  • Environment variable configuration (OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS)
  • Case sensitivity requirements
  • Framework-specific handling

77-90: Clear and consistent documentation pattern.

The HTTP response header documentation follows the same improved formatting pattern as the request headers, providing consistent examples and guidance for instrumentations.

deps/opentelemetry-cpp/exporters/otlp/BUILD (3)

6-7: Good build configuration organization.

Moving the package visibility declaration to the top improves BUILD file organization and readability.


477-489: Well-structured new test target.

The new otlp_grpc_target_test follows the established pattern for test targets with appropriate tags and dependencies. This aligns with the AI summary mentioning new gRPC target functionality.


420-421: Consistent metrics dependency addition across tests.

The systematic addition of //sdk/src/metrics dependency to multiple test targets ensures comprehensive metric support testing. This change is consistent and necessary for the Base2ExponentialHistogram and other metric features mentioned in the AI summary.

Also applies to: 437-438, 456-457, 472-475, 502-503, 518-519, 535-536, 552-553, 568-569, 584-585, 601-602, 618-619, 634-635, 652-653, 669-670, 779-780

deps/opentelemetry-cpp/api/CMakeLists.txt (2)

12-23: Excellent build system modernization.

The refactoring to use the otel_add_component macro consolidates installation logic and improves maintainability. This standardized approach reduces duplication and potential configuration errors.


25-27: Clean conditional block simplification.

The simplified conditional handling maintains the necessary TARGET_DEPS management while removing complexity from the removed Abseil dependency code.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cpython_attributes.h (1)

1-49: Well-structured CPython semantic conventions.

The new CPython garbage collector attributes follow OpenTelemetry semantic convention patterns correctly:

  • Proper namespace organization (semconv::cpython)
  • Clear constant definitions for GC generation attribute
  • Standard integer values for the three Python GC generations
  • Appropriate documentation comments
  • Consistent auto-generated file structure

This aligns well with the CPython metrics mentioned in the AI summary and provides necessary attribute support for Python instrumentation.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/net_attributes.h (2)

23-27: Excellent structured deprecation metadata improvements.

The addition of structured JSON metadata to deprecation annotations significantly improves clarity and tooling support. The consistent format with note, reason, and renamed_to fields makes it easier for developers and automated tools to understand deprecation status and migration paths.

Also applies to: 32-36, 41-45, 50-54, 59-64, 69-74, 79-83, 88-92, 97-101, 106-110, 115-119, 124-128, 133-136, 141-145, 150-154


161-173: Improved comment formatting for better readability.

The reformatting of comments from multi-line asterisk-prefixed style to single-line style improves readability while maintaining the same semantic content.

Also applies to: 180-202

deps/opentelemetry-cpp/api/include/opentelemetry/nostd/type_traits.h (2)

13-13: Good simplification of include directives.

Moving <type_traits> to an unconditional include simplifies the inclusion logic and ensures it's always available.


22-25:

Details

✅ Verification successful

Verify the libstdc++ version detection logic.

The macro definition appears correct for detecting libstdc++ version 5 or later, but please verify that the version checks accurately identify the intended standard library versions.


🏁 Script executed:

#!/bin/bash
# Description: Verify the libstdc++ version detection logic and macro usage
# Expected: Find usage of the new macro and confirm version detection patterns

# Search for usage of the new macro
echo "=== Usage of OPENTELEMETRY_TRIVIALITY_TYPE_TRAITS ==="
rg -A 3 -B 3 "OPENTELEMETRY_TRIVIALITY_TYPE_TRAITS"

# Search for similar version detection patterns in the codebase
echo "=== Similar version detection patterns ==="
rg -A 2 -B 2 "_GLIBCXX_RELEASE|__GLIBCXX__"

Length of output: 34172


Detection logic correctly identifies libstdc++ ≥5

The combination of

  • !GLIBCXX (non-libstdc++),
  • _GLIBCXX_RELEASE ≥ 7 (GCC 7+), and
  • GLIBCXX ≥ 20150422 (libstdc++-5)

matches the patterns used in Abseil, Googletest and other third-party code to guard on libstdc++ versions. No changes are needed here.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/system_attributes.h (2)

23-23: Consistent deprecation annotation improvements.

The structured deprecation metadata additions align with the same improvements made across other semantic convention headers, providing better clarity and tooling support for deprecated attributes.

Also applies to: 28-31, 66-70, 97-101


36-36: Improved comment formatting consistency.

The reformatting of descriptive comments to a cleaner, indented style without asterisks improves readability and maintains consistency with the broader documentation style improvements in this update.

Also applies to: 41-41, 46-46, 51-51, 56-56, 61-61, 75-75, 80-80, 85-85, 90-92

deps/opentelemetry-cpp/exporters/elasticsearch/CMakeLists.txt (1)

21-35:

Details

❓ Verification inconclusive

Good build system standardization using otel_add_component macro.

The replacement of manual installation logic with the otel_add_component macro improves consistency and maintainability across the build system. The macro call properly specifies all necessary parameters including component name, targets, directories, and file patterns.


🏁 Script executed:

#!/bin/bash
# Description: Verify that otel_add_component macro is properly defined and used consistently
# Expected: Find macro definition and similar usage patterns

# Search for the macro definition
echo "=== otel_add_component macro definition ==="
rg -A 10 -B 2 "macro\s*\(\s*otel_add_component|function\s*\(\s*otel_add_component"

# Search for other uses of this macro in exporter CMakeLists files
echo "=== Other uses of otel_add_component in exporters ==="
fd CMakeLists.txt deps/opentelemetry-cpp/exporters --exec rg -l "otel_add_component" {}

# Show similar usage patterns
echo "=== Similar otel_add_component usage patterns ==="
rg -A 15 "otel_add_component" --type cmake

Length of output: 16226


Ensure otel_add_component macro is defined and included

I reviewed the standardized use of otel_add_component across all exporters, but I didn’t locate its definition in the local CMake files. Please verify that:

  • The CMake file (or imported package) defining otel_add_component is included by the top-level CMakeLists.txt (e.g., via include() or find_package(OpenTelemetryCMake)).
  • The macro implementation fully supports the parameters you’re using here: COMPONENT, TARGETS, FILES_DIRECTORY, FILES_DESTINATION, FILES_MATCHING, PATTERN, and EXCLUDE.
deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/error_attributes.h (2)

22-32: LGTM! Comprehensive documentation for the new error.message attribute.

The addition of kErrorMessage is well-documented with clear guidance on:

  • When to use it (additional context about errors)
  • When NOT to use it (avoid duplication with error.type/exception.message)
  • Cardinality considerations for metrics/spans

The documentation aligns with OpenTelemetry semantic convention standards.


34-55: Documentation formatting improved for consistency.

The kErrorType documentation has been reformatted for better readability and consistency with the new kErrorMessage attribute documentation style.

deps/opentelemetry-cpp/api/include/opentelemetry/nostd/variant.h (2)

21-42: Simplified exception handling logic looks correct.

The change removes the HAVE_ABSEIL conditional compilation and simplifies the THROW_BAD_VARIANT_ACCESS macro to depend only on exception support. The logic correctly handles both exception-enabled and exception-disabled scenarios.


52-52: Standardized on internal Abseil variant implementation.

The includes now consistently use the internal Abseil headers (opentelemetry/nostd/internal/absl/...) instead of conditional external/internal selection. This aligns with the broader build system simplification mentioned in the AI summary.

Also applies to: 65-65

deps/opentelemetry-cpp/exporters/ostream/src/metric_exporter.cc (2)

11-11: Necessary includes added for Base2ExponentialHistogram support.

The memory and circular_buffer.h includes are required for the new Base2ExponentialHistogramPointData handling functionality.

Also applies to: 28-28


252-288: Comprehensive Base2ExponentialHistogram printing implementation.

The implementation correctly handles:

  • Early return for empty buckets (both positive and negative)
  • All required fields: count, sum, zero_count, min/max (when enabled), scale
  • Proper iteration through bucket indices using StartIndex()/EndIndex()
  • Consistent formatting with existing point data types

The logic follows the established pattern and provides complete debugging information for exponential histograms.

deps/opentelemetry-cpp/exporters/ostream/test/ostream_metric_test.cc (2)

16-16: Required include added for test dependencies.

The circular_buffer.h include is necessary for the AdaptingCircularBufferCounter used in the Base2ExponentialHistogram test.


183-290: Comprehensive test coverage for Base2ExponentialHistogram export.

The test thoroughly validates:

  • Two different histogram configurations (with/without min/max recording)
  • Proper bucket counter initialization and increment operations
  • Complete output formatting verification including all fields
  • Resource attributes and SDK version information
  • Edge cases like zero buckets in ranges

The test follows the established pattern and provides excellent coverage for the new functionality. The expected output string correctly matches the implementation in the exporter.

deps/opentelemetry-cpp/api/include/opentelemetry/config.h (2)

6-6: LGTM: Proper IWYU pragma usage

The inclusion of <type_traits> with the IWYU pragma is appropriate and follows best practices for header dependencies.


8-19: Excellent deprecation strategy with version-based enforcement

The implementation provides a clean migration path:

  • Hard error for ABI version 2+ forces users to migrate
  • Compiler-specific deprecation warnings for older versions guide users toward the new header
  • Clear error message directing users to opentelemetry/version.h

This follows best practices for API deprecation and ensures a smooth transition.

deps/opentelemetry-cpp/exporters/otlp/src/otlp_grpc_client.cc (2)

312-336: Well-designed URL parsing extraction with proper error handling

The GetGrpcTarget method effectively centralizes endpoint URL parsing logic with good separation of concerns:

  • Proper error handling for invalid URLs with descriptive logging
  • Support for both Unix socket (unix:) and host:port schemes
  • Clean return of empty string on error for consistent error signaling

The implementation correctly handles the gRPC channel creation requirements by stripping schemes that would cause issues.


348-355: Good refactoring improves code reusability

The refactoring of MakeChannel to use GetGrpcTarget eliminates code duplication and improves maintainability. The error handling flow is preserved with appropriate logging.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/device_attributes.h (2)

23-41: Excellent addition of privacy and compliance documentation

The comprehensive documentation update for device.id addresses critical privacy and compliance concerns:

  • Clear warnings about PII and GDPR implications
  • Specific guidance on app store policies and enterprise vs. consumer use cases
  • Mandatory opt-in requirement for instrumentation
  • Reference to privacy-preserving alternative (app.installation.id)

This level of detail is essential for developers to make informed decisions about using this sensitive attribute.


46-67: Improved documentation formatting and clarity

The documentation updates for manufacturer, model identifier, and model name attributes improve readability and provide better guidance on expected values and usage patterns.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/code_attributes.h (1)

1-82: Well-structured semantic conventions with comprehensive documentation

This new header follows OpenTelemetry patterns excellently:

Strengths:

  • Clear namespace organization (opentelemetry::semconv::code)
  • Comprehensive documentation with specific constraints for Profile signals
  • Multi-language examples for code.function.name covering various runtime representations
  • Consistent use of static constexpr const char* for attribute definitions
  • Proper auto-generation markers and copyright headers

Important constraints noted:

  • Profile signal restrictions prevent data redundancy across multiple attributes
  • Clear guidance on when NOT to use these attributes maintains data integrity

The semantic conventions will be valuable for instrumentation libraries capturing code execution context.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/app_attributes.h (1)

1-77: Auto-generated semantic attributes look well-structured.

This new header introduces comprehensive application-specific semantic attribute constants with detailed documentation. The constants cover essential app telemetry needs like installation tracking, UI interaction coordinates, and widget identification. The platform-specific guidance for iOS and Android in the installation ID documentation is particularly valuable for implementers.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/http_attributes.h (3)

23-27: Enhanced deprecation metadata improves clarity.

The structured JSON format with explicit "reason": "renamed" and "renamed_to" fields provides clearer deprecation information compared to generic reasons. This helps developers understand exactly what to use as replacements.


73-88: Improved header documentation with practical examples.

The expanded documentation for HTTP request headers now includes clear examples showing how to record headers as attributes, including handling of multiple header values. This practical guidance will help developers implement header capturing correctly.


162-176: Comprehensive response header documentation.

Similar to request headers, the response header documentation now provides clear examples and guidance on proper attribute recording. The security considerations about explicit configuration are appropriately highlighted.

deps/opentelemetry-cpp/api/include/opentelemetry/trace/tracer.h (3)

166-176: Well-designed tracer enablement API for ABI v2.

The Enabled() method provides a clean way for instrumentation authors to check tracer state before expensive operations. The documentation clearly explains the performance optimization benefits and includes appropriate @SInCE tags.


236-241: Atomic member variable with proper justification.

The mutable enabled_ member is well-justified in the comments. Using mutable allows atomic operations from const methods, and the comment explains why std::atomic isn't used for ABI compatibility reasons.


228-232:

Details

✅ Verification successful

Verify atomic operation implementation.

The UpdateEnabled() method uses OPENTELEMETRY_ATOMIC_WRITE_8 for thread-safe state updates. Please ensure this macro is properly defined and provides the necessary memory ordering guarantees for multi-threaded scenarios.


🏁 Script executed:

#!/bin/bash
# Description: Verify atomic operation macros are properly defined.
# Expected: Find definitions of OPENTELEMETRY_ATOMIC_READ_8 and OPENTELEMETRY_ATOMIC_WRITE_8 macros.

# Search for atomic macro definitions
rg -A 5 "define.*OPENTELEMETRY_ATOMIC_(READ|WRITE)_8" --type h

Length of output: 1613


Atomic operations use sequentially consistent memory ordering
The OPENTELEMETRY_ATOMIC_READ_8 and OPENTELEMETRY_ATOMIC_WRITE_8 macros are defined as follows and both use the strongest (__ATOMIC_SEQ_CST) ordering on GCC/Clang and matching intrinsics on MSVC, ensuring proper thread safety:

• On GCC/Clang (in deps/opentelemetry-cpp/api/include/opentelemetry/common/macros.h):

#define OPENTELEMETRY_ATOMIC_READ_8(ptr)  __atomic_load_n(ptr, __ATOMIC_SEQ_CST)
#define OPENTELEMETRY_ATOMIC_WRITE_8(ptr, value)  __atomic_store_n(ptr, value, __ATOMIC_SEQ_CST)

• On MSVC:

#define OPENTELEMETRY_ATOMIC_READ_8(ptr)  static_cast<uint8_t>(_InterlockedCompareExchange8(reinterpret_cast<char*>(ptr), 0, 0))
#define OPENTELEMETRY_ATOMIC_WRITE_8(ptr, value)  _InterlockedExchange8(reinterpret_cast<char*>(ptr), static_cast<char>(value))

No changes are needed.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/aws_attributes.h (4)

23-35: Comprehensive new AWS Bedrock semantic attributes.

The addition of Bedrock guardrail and knowledge base ID attributes expands coverage for AWS AI/ML services. The documentation provides clear explanations with links to AWS documentation for context.


209-215: Kinesis stream name attribute fills semantic gap.

Adding the Kinesis stream name attribute provides important telemetry coverage for AWS streaming services. The documentation correctly references the AWS CLI parameter correspondence.


226-234: Lambda resource mapping ID enhances event source tracking.

This attribute enables better tracking of Lambda event source mappings, which is valuable for understanding Lambda function triggers and their lifecycle operations.


385-407: Complete AWS service coverage with SNS, SQS, and Step Functions.

The addition of SNS topic ARN, SQS queue URL, and Step Functions activity/state machine ARNs provides comprehensive coverage for key AWS messaging and workflow services. The documentation clearly explains the purpose and uniqueness of each identifier.

deps/opentelemetry-cpp/exporters/otlp/CMakeLists.txt (1)

380-387: New test target lacks direct gRPC linkage

otlp_grpc_target_test links only opentelemetry_exporter_otlp_grpc, which in turn depends on opentelemetry_exporter_otlp_grpc_client.
Given the PRIVATE change above, the test target will not receive gRPC::grpc++ and will fail to link. Once the PUBLIC linkage issue is fixed this goes away; otherwise explicitly add the link library here.

-target_link_libraries(
-  otlp_grpc_target_test ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}
-  ${GMOCK_LIB} opentelemetry_exporter_otlp_grpc)
+target_link_libraries(
+  otlp_grpc_target_test ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}
+  ${GMOCK_LIB} opentelemetry_exporter_otlp_grpc gRPC::grpc++)
deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cicd_attributes.h (2)

23-25: LGTM: New CI/CD attributes are well-defined.

The new pipeline action name, task run result, and worker identification attributes follow consistent naming conventions and provide good coverage for CI/CD pipeline observability.

Also applies to: 67-68, 87-89, 92-95, 101-106


107-124: LGTM: Enum value namespaces are properly structured.

The CicdPipelineActionNameValues and CicdPipelineTaskRunResultValues namespaces provide comprehensive coverage of common CI/CD pipeline states and outcomes with clear documentation.

Also applies to: 182-215

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/otel_attributes.h (2)

107-112: LGTM: New OpenTelemetry component types enhance observability coverage.

The addition of log processor types (batching/simple), log exporters (OTLP over gRPC/HTTP), metric readers, and metric exporters provides comprehensive coverage of OpenTelemetry SDK components.

Also applies to: 132-162


50-64: LGTM: Deprecation metadata is properly structured.

The deprecation annotations for otel.library.name and otel.library.version include proper JSON metadata specifying the replacement attributes and the reason for renaming.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/vcs_attributes.h (2)

45-52: LGTM: New VCS attributes improve repository identification.

The vcs.owner.name and vcs.provider.name attributes provide better context for version control system identification and organization structure.


243-270: LGTM: VCS provider values cover major platforms.

The VcsProviderNameValues namespace provides comprehensive coverage of popular VCS providers. The deprecated kGittea constant correctly addresses a typo, with kGitea as the proper replacement.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/cpython_metrics.h (2)

23-33: LGTM: CPython metrics are well-documented and properly defined.

The three garbage collection metrics (collected_objects, collections, uncollectable_objects) are properly documented with references to Python's gc.stats() and use appropriate units.

Also applies to: 74-77, 113-118


35-65: LGTM: Factory functions follow consistent patterns.

The factory functions for each metric type provide comprehensive coverage with both synchronous/asynchronous and int64/double variants. The function signatures correctly match the OpenTelemetry Meter interface.

Also applies to: 79-105, 120-150

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/feature_flag_attributes.h (1)

28-97: Excellent structured deprecation metadata implementation.

The structured JSON deprecation annotations with reason and renamed_to fields provide clear migration guidance and are consistently applied across all deprecated attributes.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/gen_ai_attributes.h (2)

45-62: Well-designed conversation and data source attributes.

The new kGenAiConversationId and kGenAiDataSourceId attributes address important GenAI telemetry needs with clear documentation explaining their purpose and usage patterns.


392-404: Comprehensive Google Cloud service coverage.

The addition of Google Cloud generative AI system identifiers (gcp.gen_ai, gcp.vertex_ai, gcp.gemini) provides comprehensive coverage for Google's AI services ecosystem.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/k8s_attributes.h (2)

74-93: Excellent documentation pattern for annotation and label attributes.

The detailed examples showing how to record annotation and label key-value pairs (e.g., retries annotation with value 4 recorded as k8s.cronjob.annotation.retries with value "4") provide clear implementation guidance for developers.

This pattern is consistently applied across all Kubernetes resource types.


283-287: Improved deprecation metadata specificity.

The enhanced deprecation annotation for kK8sPodLabels now includes specific replacement guidance with the renamed_to field, making migration clearer for developers.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/db_attributes.h (3)

482-490: Valuable addition of stored procedure semantic attribute.

The new kDbStoredProcedureName attribute fills an important gap in database telemetry, with clear documentation about normalization and batch operation handling that aligns with existing attribute patterns.


386-405: Comprehensive query parameter documentation.

The enhanced documentation for kDbQueryParameter with detailed examples (parameterized placeholders, index-based and named parameters) provides excellent implementation guidance and clarifies the relationship with db.query.text.


23-27: Consistent structured deprecation metadata.

The systematic application of structured JSON deprecation metadata across all deprecated attributes (with reason and renamed_to fields) provides clear migration paths and maintains consistency with other semantic convention headers in this PR.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/db_attributes.h (1)

1-350: Excellent comprehensive database semantic attributes implementation.

This auto-generated header provides a complete set of database semantic attributes following OpenTelemetry conventions. The implementation includes:

  • Well-documented attribute constants with clear usage guidelines
  • Comprehensive database system enumeration covering major technologies
  • Proper namespacing and OpenTelemetry macro usage
  • Consistent naming conventions throughout

The auto-generation ensures consistency with the semantic conventions specification.

deps/opentelemetry-cpp/api/include/opentelemetry/semconv/incubating/otel_metrics.h (7)

24-67: Well-structured log exporter metrics implementation.

The new log exporter metrics (exported and inflight) follow OpenTelemetry best practices:

  • Comprehensive documentation explaining success/failure semantics
  • Proper handling of partial success scenarios (e.g., OTLP rejected records)
  • Consistent creation functions for all data types (uint64, double, sync/async)
  • Appropriate unit specification ({log_record})

113-206: Robust metric data point exporter metrics.

The metric data point exporter metrics maintain consistency with the log exporter pattern:

  • Clear documentation of export completion semantics
  • Proper error handling guidance with error.type attribute
  • Complete set of creation functions for different instrument types
  • Appropriate units ({data_point}) for metric data points

208-239: Valuable operation duration histogram addition.

The exporter operation duration histogram provides important observability:

  • Histogram instrument type appropriate for duration measurements
  • Clear definition of success/failure criteria referencing OTLP specifications
  • Standard time unit (s) for duration measurements
  • Support for both uint64 and double data types

250-285: Excellent deprecation strategy for span exporter metrics.

The span metric renaming demonstrates good API evolution practices:

  • New metrics remove the "Count" suffix for better naming consistency
  • Original metrics properly marked with OPENTELEMETRY_DEPRECATED
  • Deprecation metadata includes clear reasoning and replacement guidance
  • Backward compatibility maintained for existing users

Also applies to: 294-331


428-459: Comprehensive SDK logging metrics.

The new SDK log creation metrics provide valuable instrumentation:

  • Clear metric definition for logs submitted to enabled SDK loggers
  • Consistent creation function patterns
  • Appropriate counter instrument type for cumulative measurements
  • Standard log record unit specification

461-489: Important metric reader collection duration tracking.

The metric reader collection duration histogram adds crucial observability:

  • Histogram instrument appropriate for operation timing
  • Clear documentation of success/failure semantics
  • Acknowledgment of partial failure scenarios in collections
  • Standard time unit for duration measurements

491-623: Complete log processor metrics suite.

The log processor metrics provide comprehensive queue and processing observability:

  • Processed, queue capacity, and queue size metrics cover key operational aspects
  • Clear documentation distinguishing processing completion from export completion
  • Appropriate instrument types (counter for processed, updowncounter for queue metrics)
  • Consistent creation functions across all metrics

Comment on lines 40 to 45
opentelemetry_exporter_otlp_grpc_client
PUBLIC opentelemetry_sdk opentelemetry_common opentelemetry_ext
PUBLIC opentelemetry_sdk opentelemetry_common
# gRPC::grpc++ must be linked before opentelemetry_proto_grpc.
opentelemetry_proto_grpc
PRIVATE gRPC::grpc++)
PRIVATE gRPC::grpc++ opentelemetry_ext)

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

gRPC link library must remain PUBLIC to avoid missing symbols

opentelemetry_exporter_otlp_grpc_client now links gRPC::grpc++ as PRIVATE instead of PUBLIC.
If this target is built as a static library (the default), every consumer that links opentelemetry_exporter_otlp_grpc_client – e.g. the newly added otlp_grpc_target_test or any downstream project that only links the exporter – still needs gRPC::grpc++ on its link line. With the current setting those symbols are not propagated and link-time failures are very likely.

-target_link_libraries(
-  opentelemetry_exporter_otlp_grpc_client
-  PUBLIC opentelemetry_sdk opentelemetry_common
-         opentelemetry_proto_grpc
-  PRIVATE gRPC::grpc++ opentelemetry_ext)
+target_link_libraries(
+  opentelemetry_exporter_otlp_grpc_client
+  PUBLIC opentelemetry_sdk opentelemetry_common
+         opentelemetry_proto_grpc gRPC::grpc++
+  PRIVATE opentelemetry_ext)
📝 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
opentelemetry_exporter_otlp_grpc_client
PUBLIC opentelemetry_sdk opentelemetry_common opentelemetry_ext
PUBLIC opentelemetry_sdk opentelemetry_common
# gRPC::grpc++ must be linked before opentelemetry_proto_grpc.
opentelemetry_proto_grpc
PRIVATE gRPC::grpc++)
PRIVATE gRPC::grpc++ opentelemetry_ext)
target_link_libraries(
opentelemetry_exporter_otlp_grpc_client
PUBLIC opentelemetry_sdk opentelemetry_common
# gRPC::grpc++ must be linked before opentelemetry_proto_grpc.
opentelemetry_proto_grpc gRPC::grpc++
PRIVATE opentelemetry_ext)
🤖 Prompt for AI Agents
In deps/opentelemetry-cpp/exporters/otlp/CMakeLists.txt around lines 40 to 45,
the gRPC::grpc++ library is linked as PRIVATE to the
opentelemetry_exporter_otlp_grpc_client target, which prevents its symbols from
being propagated to consumers. Change the linkage of gRPC::grpc++ from PRIVATE
to PUBLIC to ensure that any target linking
opentelemetry_exporter_otlp_grpc_client also links gRPC::grpc++, avoiding
link-time errors due to missing symbols.

Comment on lines +68 to 74
else if (nostd::holds_alternative<sdk::metrics::Base2ExponentialHistogramPointData>(
point_data_with_attributes.point_data))
{
return metric_sdk::AggregationType::kBase2ExponentialHistogram;
}
else if (nostd::holds_alternative<sdk::metrics::LastValuePointData>(
point_data_with_attributes.point_data))
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Null-pointer dereference risk when only one bucket set is present

ConvertExponentialHistogramMetric later unconditionally dereferences
histogram_data.positive_buckets_ and histogram_data.negative_buckets_ inside Empty() calls.
If exactly one of the pointers is nullptr (legal according to the spec – e.g. only positive buckets), the function will seg-fault.

-// negative buckets
-if (!histogram_data.negative_buckets_->Empty())
+if (histogram_data.negative_buckets_ &&
+    !histogram_data.negative_buckets_->Empty())
@@
-// positive buckets
-if (!histogram_data.positive_buckets_->Empty())
+if (histogram_data.positive_buckets_ &&
+    !histogram_data.positive_buckets_->Empty())

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In deps/opentelemetry-cpp/exporters/otlp/src/otlp_metric_utils.cc around lines
68 to 74, the function ConvertExponentialHistogramMetric unconditionally
dereferences histogram_data.positive_buckets_ and
histogram_data.negative_buckets_ without checking for nullptr, which can cause a
segfault if only one bucket set is present. To fix this, add null-pointer checks
before calling Empty() on these bucket pointers to ensure they are not nullptr
before dereferencing.

santigimeno added a commit that referenced this pull request Jun 5, 2025
PR-URL: #322
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
santigimeno added a commit that referenced this pull request Jun 5, 2025
PR-URL: #180
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
PR-URL: #322
@santigimeno
Copy link
Member Author

Landed in a0a2c70...bbf0d54

@santigimeno santigimeno closed this Jun 5, 2025
@santigimeno santigimeno deleted the santi/upgrade_opentelemetry-cpp branch June 5, 2025 13:56
santigimeno added a commit that referenced this pull request Aug 25, 2025
PR-URL: #322
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
santigimeno added a commit that referenced this pull request Aug 25, 2025
PR-URL: #180
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
PR-URL: #322
santigimeno added a commit that referenced this pull request Aug 26, 2025
PR-URL: #322
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
PR-URL: #359
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
santigimeno added a commit that referenced this pull request Aug 26, 2025
PR-URL: #180
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
PR-URL: #322
PR-URL: #359
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants