Skip to content

Commit 267129b

Browse files
authored
Merge branch 'main' into validate_utf8_string_in_setters
2 parents c9323e9 + 930b694 commit 267129b

File tree

62 files changed

+5400
-638
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+5400
-638
lines changed

.bazelversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7.1.1
1+
7.2.1

.github/workflows/benchmark.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
egress-policy: audit
6161

6262
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
63-
- uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # main March 2025
63+
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # main March 2025
6464
with:
6565
name: benchmark_results
6666
path: benchmarks

.github/workflows/codeql-analysis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ jobs:
3737
run: |
3838
sudo -E ./ci/setup_ci_environment.sh
3939
- name: Initialize CodeQL
40-
uses: github/codeql-action/init@16140ae1a102900babc80a33c44059580f687047 # v4.30.9
40+
uses: github/codeql-action/init@0499de31b99561a6d14a36a5f662c2a54f91beee # v4.31.2
4141
with:
4242
languages: cpp
4343
- name: Autobuild
44-
uses: github/codeql-action/autobuild@16140ae1a102900babc80a33c44059580f687047 # v4.30.9
44+
uses: github/codeql-action/autobuild@0499de31b99561a6d14a36a5f662c2a54f91beee # v4.31.2
4545
- name: Perform CodeQL Analysis
46-
uses: github/codeql-action/analyze@16140ae1a102900babc80a33c44059580f687047 # v4.30.9
46+
uses: github/codeql-action/analyze@0499de31b99561a6d14a36a5f662c2a54f91beee # v4.31.2

.github/workflows/ossf-scorecard.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,6 @@ jobs:
4747
# Upload the results to GitHub's code scanning dashboard (optional).
4848
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
4949
- name: "Upload to code-scanning"
50-
uses: github/codeql-action/upload-sarif@16140ae1a102900babc80a33c44059580f687047 # v4.30.9
50+
uses: github/codeql-action/upload-sarif@0499de31b99561a6d14a36a5f662c2a54f91beee # v4.31.2
5151
with:
5252
sarif_file: results.sarif

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,21 @@ Increment the:
2929
* [CI] Upgrade tools/vcpkg to 2025.09.17
3030
[#3701](https://github.com/open-telemetry/opentelemetry-cpp/pull/3701)
3131

32+
* [CONFIGURATION] File configuration - prometheus translation
33+
[#3715](https://github.com/open-telemetry/opentelemetry-cpp/pull/3715)
34+
35+
* [BUILD] Upgrade to opentelemetry-proto 1.8.0
36+
[#3730](https://github.com/open-telemetry/opentelemetry-cpp/pull/3730)
37+
38+
New Features:
39+
40+
* [CONFIGURATION] Implement declarative configuration (config.yaml)
41+
[#2518](https://github.com/open-telemetry/opentelemetry-cpp/pull/2518)
42+
43+
* Configuration for opentelemetry-cpp can now be done using a config.yaml
44+
file, instead of using environment variables.
45+
* See [opentelemetry-configuration](https://github.com/open-telemetry/opentelemetry-configuration)
46+
3247
## [1.23 2025-09-25]
3348

3449
* [CodeHealth] Fix clang-tidy warnings part 6

MODULE.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ bazel_dep(name = "bazel_skylib", version = "1.7.1")
1313
bazel_dep(name = "curl", version = "8.8.0")
1414
bazel_dep(name = "grpc", version = "1.66.0.bcr.2", repo_name = "com_github_grpc_grpc")
1515
bazel_dep(name = "nlohmann_json", version = "3.12.0", repo_name = "github_nlohmann_json")
16-
bazel_dep(name = "opentelemetry-proto", version = "1.7.0", repo_name = "com_github_opentelemetry_proto")
16+
bazel_dep(name = "opentelemetry-proto", version = "1.8.0", repo_name = "com_github_opentelemetry_proto")
1717
bazel_dep(name = "opentracing-cpp", version = "1.6.0", repo_name = "com_github_opentracing")
1818
bazel_dep(name = "platforms", version = "0.0.11")
1919
bazel_dep(name = "prometheus-cpp", version = "1.3.0", repo_name = "com_github_jupp0r_prometheus_cpp")

api/include/opentelemetry/semconv/http_attributes.h

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,23 @@ static constexpr const char *kHttpRequestHeader = "http.request.header";
4343
<p>
4444
HTTP request method value SHOULD be "known" to the instrumentation.
4545
By default, this convention defines "known" methods as the ones listed in <a
46-
href="https://www.rfc-editor.org/rfc/rfc9110.html#name-methods">RFC9110</a> and the PATCH method
47-
defined in <a href="https://www.rfc-editor.org/rfc/rfc5789.html">RFC5789</a>. <p> If the HTTP
48-
request method is not known to instrumentation, it MUST set the @code http.request.method @endcode
49-
attribute to @code _OTHER @endcode. <p> If the HTTP instrumentation could end up converting valid
50-
HTTP request methods to @code _OTHER @endcode, then it MUST provide a way to override the list of
51-
known HTTP methods. If this override is done via environment variable, then the environment
52-
variable MUST be named OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list
53-
of case-sensitive known HTTP methods (this list MUST be a full override of the default known
54-
method, it is not a list of known methods in addition to the defaults). <p> HTTP method names are
55-
case-sensitive and @code http.request.method @endcode attribute value MUST match a known HTTP
56-
method name exactly. Instrumentations for specific web frameworks that consider HTTP methods to be
57-
case insensitive, SHOULD populate a canonical equivalent. Tracing instrumentations that do so,
58-
MUST also set @code http.request.method_original @endcode to the original value.
46+
href="https://www.rfc-editor.org/rfc/rfc9110.html#name-methods">RFC9110</a>, the PATCH method
47+
defined in <a href="https://www.rfc-editor.org/rfc/rfc5789.html">RFC5789</a> and the QUERY method
48+
defined in <a
49+
href="https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1">httpbis-safe-method-w-body</a>.
50+
<p>
51+
If the HTTP request method is not known to instrumentation, it MUST set the @code
52+
http.request.method @endcode attribute to @code _OTHER @endcode. <p> If the HTTP instrumentation
53+
could end up converting valid HTTP request methods to @code _OTHER @endcode, then it MUST provide
54+
a way to override the list of known HTTP methods. If this override is done via environment
55+
variable, then the environment variable MUST be named OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and
56+
support a comma-separated list of case-sensitive known HTTP methods (this list MUST be a full
57+
override of the default known method, it is not a list of known methods in addition to the
58+
defaults). <p> HTTP method names are case-sensitive and @code http.request.method @endcode
59+
attribute value MUST match a known HTTP method name exactly. Instrumentations for specific web
60+
frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical
61+
equivalent. Tracing instrumentations that do so, MUST also set @code http.request.method_original
62+
@endcode to the original value.
5963
*/
6064
static constexpr const char *kHttpRequestMethod = "http.request.method";
6165

@@ -97,11 +101,19 @@ static constexpr const char *kHttpResponseHeader = "http.response.header";
97101
static constexpr const char *kHttpResponseStatusCode = "http.response.status_code";
98102

99103
/**
100-
The matched route, that is, the path template in the format used by the respective server
101-
framework. <p> MUST NOT be populated when this is not supported by the HTTP server framework as
102-
the route attribute should have low-cardinality and the URI path can NOT substitute it. SHOULD
103-
include the <a href="/docs/http/http-spans.md#http-server-definitions">application root</a> if
104-
there is one.
104+
The matched route template for the request. This MUST be low-cardinality and include all static
105+
path segments, with dynamic path segments represented with placeholders. <p> MUST NOT be populated
106+
when this is not supported by the HTTP server framework as the route attribute should have
107+
low-cardinality and the URI path can NOT substitute it. SHOULD include the <a
108+
href="/docs/http/http-spans.md#http-server-definitions">application root</a> if there is one. <p>
109+
A static path segment is a part of the route template with a fixed, low-cardinality value. This
110+
includes literal strings like @code /users/ @endcode and placeholders that are constrained to a
111+
finite, predefined set of values, e.g. @code {controller} @endcode or @code {action} @endcode. <p>
112+
A dynamic path segment is a placeholder for a value that can have high cardinality and is not
113+
constrained to a predefined list like static path segments. <p> Instrumentations SHOULD use
114+
routing information provided by the corresponding web framework. They SHOULD pick the most precise
115+
source of routing information and MAY support custom route formatting. Instrumentations SHOULD
116+
document the format and the API used to obtain the route string.
105117
*/
106118
static constexpr const char *kHttpRoute = "http.route";
107119

api/include/opentelemetry/semconv/incubating/app_attributes.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,24 @@ static constexpr const char *kAppScreenCoordinateX = "app.screen.coordinate.x";
8080
*/
8181
static constexpr const char *kAppScreenCoordinateY = "app.screen.coordinate.y";
8282

83+
/**
84+
An identifier that uniquely differentiates this screen from other screens in the same application.
85+
<p>
86+
A screen represents only the part of the device display drawn by the app. It typically contains
87+
multiple widgets or UI components and is larger in scope than individual widgets. Multiple screens
88+
can coexist on the same display simultaneously (e.g., split view on tablets).
89+
*/
90+
static constexpr const char *kAppScreenId = "app.screen.id";
91+
92+
/**
93+
The name of an application screen.
94+
<p>
95+
A screen represents only the part of the device display drawn by the app. It typically contains
96+
multiple widgets or UI components and is larger in scope than individual widgets. Multiple screens
97+
can coexist on the same display simultaneously (e.g., split view on tablets).
98+
*/
99+
static constexpr const char *kAppScreenName = "app.screen.name";
100+
83101
/**
84102
An identifier that uniquely differentiates this widget from other widgets in the same application.
85103
<p>

api/include/opentelemetry/semconv/incubating/azure_attributes.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ static constexpr const char *kAzureCosmosdbConsistencyLevel = "azure.cosmosdb.co
3939
List of regions contacted during operation in the order that they were contacted. If there is more
4040
than one region listed, it indicates that the operation was performed on multiple regions i.e.
4141
cross-regional call. <p> Region name matches the format of @code displayName @endcode in <a
42-
href="https://learn.microsoft.com/rest/api/subscription/subscriptions/list-locations?view=rest-subscription-2021-10-01&tabs=HTTP#location">Azure
43-
Location API</a>
42+
href="https://learn.microsoft.com/rest/api/resources/subscriptions/list-locations">Azure Location
43+
API</a>
4444
*/
4545
static constexpr const char *kAzureCosmosdbOperationContactedRegions =
4646
"azure.cosmosdb.operation.contacted_regions";

api/include/opentelemetry/semconv/incubating/container_attributes.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ static constexpr const char *kContainerId = "container.id";
7373
<p>
7474
Docker defines a sha256 of the image id; @code container.image.id @endcode corresponds to the
7575
@code Image @endcode field from the Docker container inspect <a
76-
href="https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerInspect">API</a>
76+
href="https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Container/operation/ContainerInspect">API</a>
7777
endpoint. K8s defines a link to the container registry repository with digest @code "imageID":
7878
"registry.azurecr.io
7979
/namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"
@@ -91,7 +91,8 @@ static constexpr const char *kContainerImageName = "container.image.name";
9191
/**
9292
Repo digests of the container image as provided by the container runtime.
9393
<p>
94-
<a href="https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect">Docker</a>
94+
<a
95+
href="https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Image/operation/ImageInspect">Docker</a>
9596
and <a
9697
href="https://github.com/kubernetes/cri-api/blob/c75ef5b473bbe2d0a4fc92f82235efd665ea8e9f/pkg/apis/runtime/v1/api.proto#L1237-L1238">CRI</a>
9798
report those under the @code RepoDigests @endcode field.
@@ -100,9 +101,9 @@ static constexpr const char *kContainerImageRepoDigests = "container.image.repo_
100101

101102
/**
102103
Container image tags. An example can be found in <a
103-
href="https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect">Docker Image
104-
Inspect</a>. Should be only the @code <tag> @endcode section of the full name for example from
105-
@code registry.example.com/my-org/my-image:<tag> @endcode.
104+
href="https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Image/operation/ImageInspect">Docker
105+
Image Inspect</a>. Should be only the @code <tag> @endcode section of the full name for example
106+
from @code registry.example.com/my-org/my-image:<tag> @endcode.
106107
*/
107108
static constexpr const char *kContainerImageTags = "container.image.tags";
108109

0 commit comments

Comments
 (0)