fix(otlp): allow json payloads#1069
Conversation
a784e61 to
0bb7235
Compare
There was a problem hiding this comment.
Pull request overview
Updates the OTLP HTTP collector path to accept either protobuf or JSON payloads (SVLS-8626), and adjusts integration tests to validate ingestion of both encodings via a dedicated “response validation” Lambda.
Changes:
- Add OTLP request decoding based on
Content-Type(protobuf vs JSON) and return responses in the negotiated encoding. - Update integration test stack + Lambda to emit both JSON-encoded and protobuf-encoded OTLP traces.
- Replace direct “collector response protobuf decoding” test with Datadog-ingestion assertions for both encodings.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
bottlecap/src/otlp/processor.rs |
Introduces OtlpEncoding and decodes OTLP requests as JSON or protobuf. |
bottlecap/src/otlp/agent.rs |
Detects encoding via Content-Type, uses it for request processing and response Content-Type/body. |
integration-tests/lib/stacks/otlp.ts |
Adjusts env for the response-validation Lambda to allow both encodings. |
integration-tests/lambda/otlp-node/response-validation.js |
Emits one JSON and one protobuf trace to validate ingestion behavior. |
integration-tests/lambda/otlp-node/package.json |
Adds the OTLP HTTP exporter dependency for the JSON-path test. |
integration-tests/tests/otlp.test.ts |
Invokes the new response-validation Lambda and asserts both “json” and “protobuf” spans appear in Datadog. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
| let body = match encoding { | ||
| OtlpEncoding::Json => { | ||
| let json_error = serde_json::json!({ | ||
| "code": status_code.as_u16(), | ||
| "message": message | ||
| }); | ||
| match serde_json::to_vec(&json_error) { | ||
| Ok(buf) => buf, | ||
| Err(e) => { | ||
| error!("OTLP | Failed to encode error response as JSON: {e}"); | ||
| return (status_code, [(header::CONTENT_TYPE, "text/plain")], message) | ||
| .into_response(); | ||
| } | ||
| } | ||
| } | ||
| OtlpEncoding::Protobuf => { | ||
| let status = Status { | ||
| code: i32::from(status_code.as_u16()), | ||
| message: message.clone(), | ||
| details: vec![], | ||
| }; |
There was a problem hiding this comment.
tonic_types::Status is a google.rpc.Status, where code is a gRPC status code (e.g., INVALID_ARGUMENT=3, INTERNAL=13), not an HTTP status. Setting code to status_code.as_u16() (e.g., 400/500) produces invalid OTLP error bodies for protobuf responses and also propagates the same semantics to the JSON error branch. Map HTTP status to the appropriate gRPC code (and consider reusing the same Status structure for both JSON/protobuf so clients can decode consistently).
There was a problem hiding this comment.
We are sending a Protobuf via http not gRPC so I think this is fine.
| fn otlp_success_response(encoding: OtlpEncoding) -> Response { | ||
| let response = ExportTraceServiceResponse { | ||
| partial_success: None, | ||
| }; | ||
|
|
||
| let mut buf = Vec::new(); | ||
| if let Err(e) = response.encode(&mut buf) { | ||
| error!("OTLP | Failed to encode success response: {e}"); | ||
| return ( | ||
| StatusCode::INTERNAL_SERVER_ERROR, | ||
| "Failed to encode response".to_string(), | ||
| ) | ||
| .into_response(); | ||
| } | ||
| let body = match encoding { | ||
| OtlpEncoding::Json => match serde_json::to_vec(&response) { | ||
| Ok(buf) => buf, | ||
| Err(e) => { | ||
| error!("OTLP | Failed to encode success response as JSON: {e}"); | ||
| return ( | ||
| StatusCode::INTERNAL_SERVER_ERROR, | ||
| "Failed to encode response".to_string(), | ||
| ) | ||
| .into_response(); | ||
| } | ||
| }, | ||
| OtlpEncoding::Protobuf => { | ||
| let mut buf = Vec::new(); | ||
| if let Err(e) = response.encode(&mut buf) { | ||
| error!("OTLP | Failed to encode success response: {e}"); | ||
| return ( | ||
| StatusCode::INTERNAL_SERVER_ERROR, | ||
| "Failed to encode response".to_string(), | ||
| ) | ||
| .into_response(); | ||
| } | ||
| buf | ||
| } | ||
| }; | ||
|
|
||
| ( | ||
| StatusCode::OK, | ||
| [(header::CONTENT_TYPE, "application/x-protobuf")], | ||
| buf, | ||
| [(header::CONTENT_TYPE, encoding.content_type())], | ||
| body, | ||
| ) | ||
| .into_response() | ||
| } |
There was a problem hiding this comment.
The new JSON/protobuf response negotiation in otlp_success_response/otlp_error_response is not covered by any unit/integration assertion that the collector response Content-Type and body are actually decodable as the negotiated encoding. Add tests that hit /v1/traces with both application/json and application/x-protobuf requests and verify the response headers and payload can be decoded as ExportTraceServiceResponse (and error bodies for invalid payloads).
There was a problem hiding this comment.
We have an integration test for the success, the test verifies that we have a span in Datadog telemetry for both json and protobuf. Don't think an integration test adds much for the error case since the span doesn't end up in Datadog. Customers should be using otlp libraries so it should send a correctly formatted request so I think it is fine to ignore the error case for now.
| headers: { 'Content-Type': 'application/json' }, | ||
| }); | ||
| jsonProvider.addSpanProcessor(new SimpleSpanProcessor(jsonExporter)); | ||
| jsonProvider.register(); |
There was a problem hiding this comment.
jsonProvider.register() sets the global tracer provider for the process; after shutdown() the global provider will still point at a shut-down instance. Since this function uses jsonProvider.getTracer(...) directly, registration isn’t needed and can introduce side effects—consider removing the register() call (or registering once and reusing a single provider).
| jsonProvider.register(); |
There was a problem hiding this comment.
Not needed, this is just for a test setup.
| let body = match encoding { | ||
| OtlpEncoding::Json => { | ||
| let json_error = serde_json::json!({ | ||
| "code": status_code.as_u16(), | ||
| "message": message | ||
| }); | ||
| match serde_json::to_vec(&json_error) { | ||
| Ok(buf) => buf, | ||
| Err(e) => { | ||
| error!("OTLP | Failed to encode error response as JSON: {e}"); | ||
| return (status_code, [(header::CONTENT_TYPE, "text/plain")], message) | ||
| .into_response(); | ||
| } | ||
| } | ||
| } | ||
| OtlpEncoding::Protobuf => { | ||
| let status = Status { | ||
| code: i32::from(status_code.as_u16()), | ||
| message: message.clone(), | ||
| details: vec![], | ||
| }; | ||
| let mut buf = Vec::new(); | ||
| if let Err(e) = status.encode(&mut buf) { | ||
| error!("OTLP | Failed to encode error response: {e}"); | ||
| return (status_code, [(header::CONTENT_TYPE, "text/plain")], message) | ||
| .into_response(); | ||
| } |
There was a problem hiding this comment.
Feels like this specific type of error should be abstracted from this method
There was a problem hiding this comment.
What do you mean by that?
| #[derive(Debug, Clone, Copy, PartialEq)] | ||
| pub enum OtlpEncoding { | ||
| Protobuf, | ||
| Json, | ||
| } | ||
|
|
||
| impl OtlpEncoding { | ||
| #[must_use] | ||
| pub fn from_content_type(content_type: Option<&str>) -> Self { | ||
| match content_type { | ||
| Some(ct) if ct.starts_with("application/json") => OtlpEncoding::Json, | ||
| _ => OtlpEncoding::Protobuf, | ||
| } | ||
| } | ||
|
|
||
| #[must_use] | ||
| pub fn content_type(&self) -> &'static str { | ||
| match self { | ||
| OtlpEncoding::Json => "application/json", | ||
| OtlpEncoding::Protobuf => "application/x-protobuf", | ||
| } | ||
| } | ||
| } | ||
|
|
There was a problem hiding this comment.
Doesn't this exist in the tonic implementations? Seems like something that should exist
There was a problem hiding this comment.
I don't see anything for it.
- Add OtlpEncoding enum with Protobuf and Json variants - Update Processor::process() to decode based on encoding - Update v1_traces handler to detect Content-Type header - Return matching Content-Type in responses per OTLP spec - Add unit tests for encoding detection and processing - Add integration tests for end-to-end encoding verification - Update package-lock.json with OTLP HTTP exporter dependency 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
1bb5d05 to
79b3bc8
Compare
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
|
Are the copilot messages addressed? If so, LMK |
@duncanista |
Add encoding parameter to otlp_error_response call that was missing after the merge conflict resolution. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
* perf(logger): replace serde_json::json! with zero-allocation write! in logger (#1042) ## Summary Root cause: commit 3b533a0 introduced `serde_json::json!()` for JSON formatting, adding per-call heap pressure and a new crate dependency that contributes to Lambda init duration regression JIRA: https://datadoghq.atlassian.net/browse/SVLS-8619 - Replaces `serde_json::json!()` in `logger.rs` with direct `write!`/`writeln!` calls to the tracing `Writer`, eliminating two heap allocations (a `Map` + `Value`) per log call - Adds a `write_json_escaped` helper that handles all 6 mandatory JSON escape sequences inline (`"`, `\`, `\n`, `\r`, `\t`, U+0000–U+001F) - Removes the `"json"` feature from `tracing-subscriber`, dropping `tracing-serde` as a transitive dependency and reducing binary size - The JSON output format is **identical** — no observable behavior change ## Test plan - unit tests - self-monitoring tests * perf(deps): bump opentelemetry-proto to 0.30.0 and tonic-types to 0.13 (#1043) https://datadoghq.atlassian.net/browse/SVLS-8619 ## Summary - Bumps `opentelemetry-proto` from `0.29` to `0.30.0` - Bumps `tonic-types` from `0.12` to `0.13` - Removes stale `LICENSE-3rdparty.csv` entries for `glob`, `indexmap` (bluss repo), and the now-absent duplicate `indexmap` entry ## Why `opentelemetry-proto 0.29` required `tonic ^0.12`, which forced a second copy of the full tonic gRPC stack into the Lambda binary alongside the `tonic 0.13` already pulled in by `dogstatsd`/`datadog-protos` (saluki, introduced in `674cd358`). This duplicate adds binary size and contributes to Lambda init duration regression (SVLS-8619). `opentelemetry-proto 0.30.0` requires `tonic ^0.13` and `prost ^0.13`, aligning with what saluki already brings in. No external dependency changes (saluki, libdatadog) are required for this fix. ## Result - `tonic 0.12` removed from binary — single `tonic 0.13` copy remaining - `Cargo.lock` shrinks by ~58 lines (removed crates: `glob`, one `indexmap` duplicate, `tonic 0.12` stack) - No API breakage — `opentelemetry 0.29 → 0.30` is a single minor bump with no changes to the APIs used in `bottlecap/src/otlp/` ## Test plan - unit tests passed - Self-monitoring tests * fix: pin rustls-native-certs to `<0.8.3` (#1047) ## Overview Regression on performance because `[email protected]` checks for multiple folders as opposed to only one ## Testing Manual testing in AWS Lambda and Self Monitoring Data * fix(lifecycle): raise axum body limit to 6 MB for large Lambda payloads (#1044) https://datadoghq.atlassian.net/browse/SVLS-8609 Issue reported: https://github.com/DataDog/datadog-lambda-extension/issues/1041 ## Summary - axum 0.7+ applies a 2 MB default body limit globally; the `/lambda/start-invocation` endpoint was rejecting payloads larger than 2 MB with `length limit exceeded` - Raises the limit to 6 MB (`DefaultBodyLimit::max(6 * 1024 * 1024)`) to match [Lambda's maximum synchronous invocation payload size](https://docs.aws.amazon.com/lambda/latest/api/API_Invoke.html) - Adds three unit tests covering: accept above the old 2 MB default, accept at boundary (6 MB − 1 byte), reject above 6 MB (413) ## Test plan - Unit tests - Run `bash local_tests/repro-large-payload.sh` which sets up the local test env and sends a 3 MB payload to `/lambda/start-invocation` and verifies HTTP 200 with no `length limit exceeded` error | Scenario|Log| |--------|--------| | Without the fix|```{"level":"ERROR","message":"DD_EXTENSION \| ERROR \| Failed to extract request body: Failed to buffer the request body: length limit exceeded"}``` | | With the fix| ```{"level":"DEBUG","message":"DD_EXTENSION \| DEBUG \| Received start invocation request from headers:{\"datadog-meta-lang\": \"java\", \"user-agent\": \"curl/8.3.0\", \"host\": \"localhost:8124\", \"lambda-runtime-aws-request-id\": \"test-large-payload-request\", \"expect\": \"100-continue\", \"accept\": \"*/*\", \"content-length\": \"3200074\", \"content-type\": \"application/json\"}"}``` | * fix(traces): downgrade handle_proxy body-read failure from ERROR to WARN (#1046) JIRA: https://datadoghq.atlassian.net/browse/SLES-2729 Issue: https://github.com/DataDog/datadog-lambda-extension/issues/1000 **Overview** When AWS Lambda freezes or terminates a function instance, the OS immediately closes all TCP sockets. The extension's proxy HTTP handler (handle_proxy) was mid-read on the request body — this read fails with error reading a body from connection and was logged at ERROR level, generating noise with no actionable signal. This is expected Lambda lifecycle behaviour: the Lambda function completed successfully and nothing in the extension is broken. The ERROR level implies an extension fault, which misleads operators. **Change** Introduce a warn_response helper (mirroring the existing error_response / success_response trio) and use it for body-read failures in handle_proxy. The log message content is unchanged — only the severity is downgraded from ERROR to WARN. Testing - unit tests * [SVLS-8581] feat: Add durable_function:true tag to enhanced metrics (#1048) ## Overview When the Lambda function's runtime version contains "RuntimeVersion", add the tag `durable_function:true` to enhanced metrics generated by the extension, so the facet `durable_function` appears on Serverless View. Sample value of runtime version: - Python: `python:3.14.DurableFunction.v9` - Node.js: `nodejs:24.DurableFunction.v10` ## Testing ### Steps 1. Build a layer and install it on a durable function 2. Invoke it 3. Check Serverless view ### Result 1. When I search by `durable_function:true`, the function appears in the result. <img width="446" height="210" alt="image" src="https://github.com/user-attachments/assets/2fa14641-fd37-4b27-90bb-85cfce2570e3" /> 2. A facet `durable_function` appears on the sidebar. <img width="437" height="151" alt="image" src="https://github.com/user-attachments/assets/2dcc4113-5caa-4376-a92e-ed54b29dd453" /> 3. When I search by `-durable_function:true`, other functions appear in the result. <img width="500" height="240" alt="image" src="https://github.com/user-attachments/assets/5b1308ff-5a7d-4c9f-9593-93dfb26d625d" /> --------- Co-authored-by: Claude Sonnet 4.6 <[email protected]> * fix(logs): update `level` to `status` on datadog owned logs (#1055) ## Overview Fixes an issue where AWS filters out by logs with "level" in a structured JSON. So any DD_LOG_LEVEL logs won't show up in CWL, but they will be sent to Datadog correctly. This changes it to "status" so they can be displayed in CWL and they can also arrive to Datadog. ## Testing Tested manually in AWS Lambda. * build(deps): bump actions-rust-lang/setup-rust-toolchain from 1.15.2 to 1.15.3 (#1051) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.15.2 to 1.15.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions-rust-lang/setup-rust-toolchain/releases">actions-rust-lang/setup-rust-toolchain's releases</a>.</em></p> <blockquote> <h2>v1.15.3</h2> <h2>What's Changed</h2> <ul> <li>Bump Swatinem/rust-cache from 2.8.1 to 2.8.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/83">actions-rust-lang/setup-rust-toolchain#83</a></li> <li>Add .gitignore to exclude <code>test-workspace/target/</code> by <a href="https://github.com/xtqqczze"><code>@xtqqczze</code></a> in <a href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/85">actions-rust-lang/setup-rust-toolchain#85</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/xtqqczze"><code>@xtqqczze</code></a> made their first contribution in <a href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/85">actions-rust-lang/setup-rust-toolchain#85</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.15.2...v1.15.3">https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.15.2...v1.15.3</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md">actions-rust-lang/setup-rust-toolchain's changelog</a>.</em></p> <blockquote> <h2>[1.15.3] - 2026-03-01</h2> <ul> <li>Bump Swatinem/rust-cache from 2.8.1 to 2.8.2</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/a0b538fa0b742a6aa35d6e2c169b4bd06d225a98"><code>a0b538f</code></a> Update changelog</li> <li><a href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/e0e53f12ac5bec14f26e3523eaccc43995e0dd49"><code>e0e53f1</code></a> Merge pull request <a href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/85">#85</a> from xtqqczze/gitignore</li> <li><a href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/a0004163461e62eec251aed6b418efc614375db3"><code>a000416</code></a> Add .gitignore to exclude <code>test-workspace/target/</code></li> <li><a href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/806aa7ddf5d59f36fb30048411f6bde29364a53f"><code>806aa7d</code></a> Add dependabot cooldown</li> <li><a href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/b598bed351cb8d159adfaa2ea4989c797082620f"><code>b598bed</code></a> Merge pull request <a href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/83">#83</a> from actions-rust-lang/dependabot/github_actions/Swati...</li> <li><a href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/e541adf9901fbab8b9379aee33a999f5cd02a33d"><code>e541adf</code></a> Bump Swatinem/rust-cache from 2.8.1 to 2.8.2</li> <li><a href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/ca4a6432af353637602348dec3df861ef02ed8a6"><code>ca4a643</code></a> Merge pull request <a href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/82">#82</a> from actions-rust-lang/dependabot/github_actions/actio...</li> <li><a href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/c103666ab0e01f766d777b5464cd974d8ca1f711"><code>c103666</code></a> Bump actions/checkout from 5 to 6</li> <li>See full diff in <a href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.15.2...v1.15.3">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: jordan gonzález <[email protected]> * build(deps): bump aquasecurity/trivy-action from 0.34.1 to 0.34.2 (#1054) Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.34.1 to 0.34.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/aquasecurity/trivy-action/releases">aquasecurity/trivy-action's releases</a>.</em></p> <blockquote> <h2>v0.34.2</h2> <h2>What's Changed</h2> <ul> <li>feat: add YAML support for trivyignores by <a href="https://github.com/nikpivkin"><code>@nikpivkin</code></a> in <a href="https://redirect.github.com/aquasecurity/trivy-action/pull/508">aquasecurity/trivy-action#508</a></li> <li>chore: bump default Trivy version to v0.69.2 by <a href="https://github.com/nick-the-nuke"><code>@nick-the-nuke</code></a> in <a href="https://redirect.github.com/aquasecurity/trivy-action/pull/513">aquasecurity/trivy-action#513</a></li> <li>chore: bump Trivy version to v0.69.2 in test workflow and README by <a href="https://github.com/DmitriyLewen"><code>@DmitriyLewen</code></a> in <a href="https://redirect.github.com/aquasecurity/trivy-action/pull/515">aquasecurity/trivy-action#515</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/nick-the-nuke"><code>@nick-the-nuke</code></a> made their first contribution in <a href="https://redirect.github.com/aquasecurity/trivy-action/pull/513">aquasecurity/trivy-action#513</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/aquasecurity/trivy-action/compare/0.34.1...0.34.2">https://github.com/aquasecurity/trivy-action/compare/0.34.1...0.34.2</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aquasecurity/trivy-action/commit/97e0b3872f55f89b95b2f65b3dbab56962816478"><code>97e0b38</code></a> chore: bump Trivy version to v0.69.2 in test workflow and README (<a href="https://redirect.github.com/aquasecurity/trivy-action/issues/515">#515</a>)</li> <li><a href="https://github.com/aquasecurity/trivy-action/commit/4c61e6329bab9be735ca35291551614bc663dff3"><code>4c61e63</code></a> chore: bump default Trivy version to v0.69.2 (<a href="https://redirect.github.com/aquasecurity/trivy-action/issues/513">#513</a>)</li> <li><a href="https://github.com/aquasecurity/trivy-action/commit/1bd062560b422f5944df1de50abd05162bea079e"><code>1bd0625</code></a> Merge pull request <a href="https://redirect.github.com/aquasecurity/trivy-action/issues/508">#508</a> from nikpivkin/feat/pass-yaml-ignore-file</li> <li><a href="https://github.com/aquasecurity/trivy-action/commit/bce3086c4aa186dadd6671d45ad6dd5d1b8440ac"><code>bce3086</code></a> remove unused init-cache target</li> <li><a href="https://github.com/aquasecurity/trivy-action/commit/5a9fbb1236dc1b5ee9e73b5a515009a1dc684548"><code>5a9fbb1</code></a> supress progress bar when download db</li> <li><a href="https://github.com/aquasecurity/trivy-action/commit/16154502cae788884830e8df2671639b8cbaa03f"><code>1615450</code></a> update trivyignores input description</li> <li><a href="https://github.com/aquasecurity/trivy-action/commit/df85774a457f1f0a32a8e5744c2bced057257d65"><code>df85774</code></a> add comment about fd3</li> <li><a href="https://github.com/aquasecurity/trivy-action/commit/56c8daebb96c35cabeeda8187a6dd3ec711d0a72"><code>56c8dae</code></a> remove unused variable</li> <li><a href="https://github.com/aquasecurity/trivy-action/commit/6476b939eabc74a8cbd2f6dceb44968c3187134c"><code>6476b93</code></a> feat: support for YAML ignore file</li> <li>See full diff in <a href="https://github.com/aquasecurity/trivy-action/compare/e368e328979b113139d6f9068e03accaed98a518...97e0b3872f55f89b95b2f65b3dbab56962816478">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: jordan gonzález <[email protected]> * chore: sweep across qemu versions to see which ones do and dont work (#1056) * build(deps): bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (#1059) Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.7.0 to 4.0.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/setup-qemu-action/releases">docker/setup-qemu-action's releases</a>.</em></p> <blockquote> <h2>v4.0.0</h2> <ul> <li>Node 24 as default runtime (requires <a href="https://github.com/actions/runner/releases/tag/v2.327.1">Actions Runner v2.327.1</a> or later) by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/245">docker/setup-qemu-action#245</a></li> <li>Switch to ESM and update config/test wiring by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/241">docker/setup-qemu-action#241</a></li> <li>Bump <code>@actions/core</code> from 1.11.1 to 3.0.0 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/244">docker/setup-qemu-action#244</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.67.0 to 0.77.0 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/243">docker/setup-qemu-action#243</a></li> <li>Bump <code>@isaacs/brace-expansion</code> from 5.0.0 to 5.0.1 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/240">docker/setup-qemu-action#240</a></li> <li>Bump js-yaml from 3.14.1 to 3.14.2 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/231">docker/setup-qemu-action#231</a></li> <li>Bump lodash from 4.17.21 to 4.17.23 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/238">docker/setup-qemu-action#238</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/setup-qemu-action/compare/v3.7.0...v4.0.0">https://github.com/docker/setup-qemu-action/compare/v3.7.0...v4.0.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/docker/setup-qemu-action/commit/ce360397dd3f832beb865e1373c09c0e9f86d70a"><code>ce36039</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-qemu-action/issues/245">#245</a> from crazy-max/node24</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/63863443c130689b5b352363f362c820cf73b26d"><code>6386344</code></a> node 24 as default runtime</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/1ea3db7bfb6d247e5e3511955d6e476a8d400ef3"><code>1ea3db7</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-qemu-action/issues/243">#243</a> from docker/dependabot/npm_and_yarn/docker/actions-to...</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/b56a0022b9d517f4d4f8f8357e107e587548db78"><code>b56a002</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/c43f02d0c908d30161ad4230a59285d9e442956d"><code>c43f02d</code></a> build(deps): bump <code>@docker/actions-toolkit</code> from 0.67.0 to 0.77.0</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/ce10c58dd1801e20f2e65c72aff588c6fc5f6609"><code>ce10c58</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-qemu-action/issues/244">#244</a> from docker/dependabot/npm_and_yarn/actions/core-3.0.0</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/429fc9dbdab394ec482946ef7f7b60be3a169336"><code>429fc9d</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/060e5f8b59ae7d2a0e4dcf681f8625f0e54e2024"><code>060e5f8</code></a> build(deps): bump <code>@actions/core</code> from 1.11.1 to 3.0.0</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/44be13e7d9ba38145b648950e52ac18e2a4efd3a"><code>44be13e</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-qemu-action/issues/231">#231</a> from docker/dependabot/npm_and_yarn/js-yaml-3.14.2</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/1897438ed3baad455b19c89cda913ca4f31dd079"><code>1897438</code></a> chore: update generated content</li> <li>Additional commits viewable in <a href="https://github.com/docker/setup-qemu-action/compare/c7c53464625b32c7a7e944ae62b3e17d2b600130...ce360397dd3f832beb865e1373c09c0e9f86d70a">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump docker/login-action from 3 to 4 (#1058) Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/login-action/releases">docker/login-action's releases</a>.</em></p> <blockquote> <h2>v4.0.0</h2> <ul> <li>Node 24 as default runtime (requires <a href="https://github.com/actions/runner/releases/tag/v2.327.1">Actions Runner v2.327.1</a> or later) by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/929">docker/login-action#929</a></li> <li>Switch to ESM and update config/test wiring by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/927">docker/login-action#927</a></li> <li>Bump <code>@actions/core</code> from 1.11.1 to 3.0.0 in <a href="https://redirect.github.com/docker/login-action/pull/919">docker/login-action#919</a></li> <li>Bump <code>@aws-sdk/client-ecr</code> from 3.890.0 to 3.1000.0 in <a href="https://redirect.github.com/docker/login-action/pull/909">docker/login-action#909</a> <a href="https://redirect.github.com/docker/login-action/pull/920">docker/login-action#920</a></li> <li>Bump <code>@aws-sdk/client-ecr-public</code> from 3.890.0 to 3.1000.0 in <a href="https://redirect.github.com/docker/login-action/pull/909">docker/login-action#909</a> <a href="https://redirect.github.com/docker/login-action/pull/920">docker/login-action#920</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.63.0 to 0.77.0 in <a href="https://redirect.github.com/docker/login-action/pull/910">docker/login-action#910</a> <a href="https://redirect.github.com/docker/login-action/pull/928">docker/login-action#928</a></li> <li>Bump <code>@isaacs/brace-expansion</code> from 5.0.0 to 5.0.1 in <a href="https://redirect.github.com/docker/login-action/pull/921">docker/login-action#921</a></li> <li>Bump js-yaml from 4.1.0 to 4.1.1 in <a href="https://redirect.github.com/docker/login-action/pull/901">docker/login-action#901</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v3.7.0...v4.0.0">https://github.com/docker/login-action/compare/v3.7.0...v4.0.0</a></p> <h2>v3.7.0</h2> <ul> <li>Add <code>scope</code> input to set scopes for the authentication token by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/912">docker/login-action#912</a></li> <li>Add support for AWS European Sovereign Cloud ECR by <a href="https://github.com/dphi"><code>@dphi</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/914">docker/login-action#914</a></li> <li>Ensure passwords are redacted with <code>registry-auth</code> input by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/911">docker/login-action#911</a></li> <li>build(deps): bump lodash from 4.17.21 to 4.17.23 in <a href="https://redirect.github.com/docker/login-action/pull/915">docker/login-action#915</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v3.6.0...v3.7.0">https://github.com/docker/login-action/compare/v3.6.0...v3.7.0</a></p> <h2>v3.6.0</h2> <ul> <li>Add <code>registry-auth</code> input for raw authentication to registries by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/887">docker/login-action#887</a></li> <li>Bump <code>@aws-sdk/client-ecr</code> to 3.890.0 in <a href="https://redirect.github.com/docker/login-action/pull/882">docker/login-action#882</a> <a href="https://redirect.github.com/docker/login-action/pull/890">docker/login-action#890</a></li> <li>Bump <code>@aws-sdk/client-ecr-public</code> to 3.890.0 in <a href="https://redirect.github.com/docker/login-action/pull/882">docker/login-action#882</a> <a href="https://redirect.github.com/docker/login-action/pull/890">docker/login-action#890</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.62.1 to 0.63.0 in <a href="https://redirect.github.com/docker/login-action/pull/883">docker/login-action#883</a></li> <li>Bump brace-expansion from 1.1.11 to 1.1.12 in <a href="https://redirect.github.com/docker/login-action/pull/880">docker/login-action#880</a></li> <li>Bump undici from 5.28.4 to 5.29.0 in <a href="https://redirect.github.com/docker/login-action/pull/879">docker/login-action#879</a></li> <li>Bump tmp from 0.2.3 to 0.2.4 in <a href="https://redirect.github.com/docker/login-action/pull/881">docker/login-action#881</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v3.5.0...v3.6.0">https://github.com/docker/login-action/compare/v3.5.0...v3.6.0</a></p> <h2>v3.5.0</h2> <ul> <li>Support dual-stack endpoints for AWS ECR by <a href="https://github.com/Spacefish"><code>@Spacefish</code></a> <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/874">docker/login-action#874</a> <a href="https://redirect.github.com/docker/login-action/pull/876">docker/login-action#876</a></li> <li>Bump <code>@aws-sdk/client-ecr</code> to 3.859.0 in <a href="https://redirect.github.com/docker/login-action/pull/860">docker/login-action#860</a> <a href="https://redirect.github.com/docker/login-action/pull/878">docker/login-action#878</a></li> <li>Bump <code>@aws-sdk/client-ecr-public</code> to 3.859.0 in <a href="https://redirect.github.com/docker/login-action/pull/860">docker/login-action#860</a> <a href="https://redirect.github.com/docker/login-action/pull/878">docker/login-action#878</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.57.0 to 0.62.1 in <a href="https://redirect.github.com/docker/login-action/pull/870">docker/login-action#870</a></li> <li>Bump form-data from 2.5.1 to 2.5.5 in <a href="https://redirect.github.com/docker/login-action/pull/875">docker/login-action#875</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v3.4.0...v3.5.0">https://github.com/docker/login-action/compare/v3.4.0...v3.5.0</a></p> <h2>v3.4.0</h2> <ul> <li>Bump <code>@actions/core</code> from 1.10.1 to 1.11.1 in <a href="https://redirect.github.com/docker/login-action/pull/791">docker/login-action#791</a></li> <li>Bump <code>@aws-sdk/client-ecr</code> to 3.766.0 in <a href="https://redirect.github.com/docker/login-action/pull/789">docker/login-action#789</a> <a href="https://redirect.github.com/docker/login-action/pull/856">docker/login-action#856</a></li> <li>Bump <code>@aws-sdk/client-ecr-public</code> to 3.758.0 in <a href="https://redirect.github.com/docker/login-action/pull/789">docker/login-action#789</a> <a href="https://redirect.github.com/docker/login-action/pull/856">docker/login-action#856</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.35.0 to 0.57.0 in <a href="https://redirect.github.com/docker/login-action/pull/801">docker/login-action#801</a> <a href="https://redirect.github.com/docker/login-action/pull/806">docker/login-action#806</a> <a href="https://redirect.github.com/docker/login-action/pull/858">docker/login-action#858</a></li> <li>Bump cross-spawn from 7.0.3 to 7.0.6 in <a href="https://redirect.github.com/docker/login-action/pull/814">docker/login-action#814</a></li> <li>Bump https-proxy-agent from 7.0.5 to 7.0.6 in <a href="https://redirect.github.com/docker/login-action/pull/823">docker/login-action#823</a></li> <li>Bump path-to-regexp from 6.2.2 to 6.3.0 in <a href="https://redirect.github.com/docker/login-action/pull/777">docker/login-action#777</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v3.3.0...v3.4.0">https://github.com/docker/login-action/compare/v3.3.0...v3.4.0</a></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/docker/login-action/commit/b45d80f862d83dbcd57f89517bcf500b2ab88fb2"><code>b45d80f</code></a> Merge pull request <a href="https://redirect.github.com/docker/login-action/issues/929">#929</a> from crazy-max/node24</li> <li><a href="https://github.com/docker/login-action/commit/176cb9c12abea98dfe844071c0999ff6ee9688a7"><code>176cb9c</code></a> node 24 as default runtime</li> <li><a href="https://github.com/docker/login-action/commit/cad89843109a11cb6f69f52fe695c42cf69d57d3"><code>cad8984</code></a> Merge pull request <a href="https://redirect.github.com/docker/login-action/issues/920">#920</a> from docker/dependabot/npm_and_yarn/aws-sdk-dependenc...</li> <li><a href="https://github.com/docker/login-action/commit/92cbcb231ed341e7dc71693351b21f5ba65f8349"><code>92cbcb2</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/login-action/commit/5a2d6a71bd3e0cb4abb6faae33f3dde61ece8e5b"><code>5a2d6a7</code></a> build(deps): bump the aws-sdk-dependencies group with 2 updates</li> <li><a href="https://github.com/docker/login-action/commit/44512b6b2e08b878e82b107b394fcd1af5748e63"><code>44512b6</code></a> Merge pull request <a href="https://redirect.github.com/docker/login-action/issues/928">#928</a> from docker/dependabot/npm_and_yarn/docker/actions-to...</li> <li><a href="https://github.com/docker/login-action/commit/28737a5e46bc0c62910ef429b2e55f9cabbbd5df"><code>28737a5</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/login-action/commit/dac079354afbd8db4c3b58b8cc6946573479b2a6"><code>dac0793</code></a> build(deps): bump <code>@docker/actions-toolkit</code> from 0.76.0 to 0.77.0</li> <li><a href="https://github.com/docker/login-action/commit/62029f315d6d05c8646343320e4a1552e5f1c77a"><code>62029f3</code></a> Merge pull request <a href="https://redirect.github.com/docker/login-action/issues/919">#919</a> from docker/dependabot/npm_and_yarn/actions/core-3.0.0</li> <li><a href="https://github.com/docker/login-action/commit/08c8f064bf22a1c55918ee608a81d87b13cc4461"><code>08c8f06</code></a> chore: update generated content</li> <li>Additional commits viewable in <a href="https://github.com/docker/login-action/compare/v3...v4">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(ci): remove Go agent build artifacts and variables (#1052) ## Summary - Delete `compile_go_agent.sh` and Go agent Dockerfiles (`Dockerfile.go_agent.compile`, `Dockerfile.go_agent.alpine.compile`) which are no longer needed since the extension was rewritten in Rust (bottlecap) - Remove the now-orphaned `AGENT_BRANCH` and `AGENT_VERSION` pipeline input variables from `.gitlab-ci.yml` ## Jira [SVLS-8636](https://datadoghq.atlassian.net/browse/SVLS-8636) [SVLS-8636]: https://datadoghq.atlassian.net/browse/SVLS-8636?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ * chore(dogstatsd): use pre built client (#1061) ## Overview Upgrades dogstatsd which allows us to use our own reqwest client instead of expecting the server to create one This gives us control over how we are building a specialized client which might need a proxy, certificates, and more. ## Testing Unit tests, integration tests, and self monitoring * chore: more fixes for serverless-init builds (#1057) fixing qemu flakiness. * fix(http): consolidate clients (#1062) ## Overview The extension was constructing up to 6 separate HTTP clients across different subsystems (metrics, logs, trace proxy, trace flusher, stats flusher, and Lambda API). Three of the reqwest::Client instances (metrics, logs, trace proxy) were identically configured via get_client(config), and two HttpClient (hyper) instances (trace flusher, stats flusher) were identically configured via http_client::create_client(). Each independent client maintains its own connection pool and TLS sessions, which means: - Duplicate TLS handshakes to the same Datadog intake hosts - No connection reuse across subsystems hitting the same endpoints - Unnecessary memory overhead from redundant connection pools This change consolidates to 3 clients total: 1. reqwest::Client (no-proxy) — Lambda Extensions API (intentionally isolated, localhost only) 2. reqwest::Client (shared) — Metrics, Logs, Trace proxy 3. HttpClient (shared) — Trace flusher, Stats flusher Both reqwest::Client and HttpClient are Arc-based internally, so cloning is a refcount increment that shares the underlying connection pool. This also removes the lazy OnceCell initialization from TraceFlusher and StatsFlusher in favor of eager construction at startup. The lazy init was retrying on failure, but the only failure modes (bad proxy URL, unreadable cert file) are configuration errors that won't self-resolve between retries, so failing fast is preferable. ## Testing Unit tests, integration tests, and self monitoring * feat(http): allow skip ssl validation (#1064) ## Overview Add DD_SKIP_SSL_VALIDATION support, parsed from both env and YAML, matching the datadog-agent's behavior — applied to all outgoing HTTP clients (reqwest via danger_accept_invalid_certs, hyper via custom ServerCertVerifier). ## Motivation Customers in environments with corporate proxies or custom CA setups need the ability to disable TLS certificate validation, matching the existing datadog-agent config option. The Go agent applies tls.Config{InsecureSkipVerify: true} to all HTTP transports via a central CreateHTTPTransport() — we mirror this by wiring the config through to both client builders. And [SLES-2710](https://datadoghq.atlassian.net/browse/SLES-2710) ## Changes Config (config/mod.rs, config/env.rs, config/yaml.rs): - Add skip_ssl_validation: bool to Config, EnvConfig, and YamlConfig with default false reqwest client (http.rs): - .danger_accept_invalid_certs(config.skip_ssl_validation) on the shared client builder hyper client (traces/http_client.rs): - Custom NoVerifier implementing rustls::client::danger::ServerCertVerifier that accepts all certificates - Uses CryptoProvider::get_default() (not hardcoded aws_lc_rs) for FIPS-safe signature scheme reporting - New skip_ssl_validation parameter on create_client() ## Testing Unit tests and self monitoring [SLES-2710]: https://datadoghq.atlassian.net/browse/SLES-2710?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ * fix: handle_end_invocation race condition when extracting payload (#1024) ## Overview 1. The first thing [handle_end_invocation](https://github.com/DataDog/datadog-lambda-extension/blob/2c61aca453a3ab41df58d407e1659705cdcee273/bottlecap/src/lifecycle/listener.rs#L163) does is spawn a task, let's call it `anonymousTask` 2. `handle_end_invocation` then [immediately returns 200](https://github.com/DataDog/datadog-lambda-extension/blob/2c61aca453a3ab41df58d407e1659705cdcee273/bottlecap/src/lifecycle/listener.rs#L181) so the tracer can continue 3. `anonymousTask` is busy with a complex body in `extract_request_body` for the time being 4. Because the tracer has continued, eventually `PlatformRuntimeDone` [is processed](https://github.com/DataDog/datadog-lambda-extension/blob/2c61aca453a3ab41df58d407e1659705cdcee273/bottlecap/src/lifecycle/invocation/processor_service.rs#L481) 5. Given our customer is not managed (`initialization_type: SnapStart`) then `PlatformRuntimeDone` [tries to pair_platform_runtime_done_event](https://github.com/DataDog/datadog-lambda-extension/blob/2c61aca453a3ab41df58d407e1659705cdcee273/bottlecap/src/lifecycle/invocation/processor.rs#L496) which is `None` because `anonymousTask` is still busy with the body 6. We then [jump to process_on_platform_runtime_done](https://github.com/DataDog/datadog-lambda-extension/blob/2c61aca453a3ab41df58d407e1659705cdcee273/bottlecap/src/lifecycle/invocation/processor.rs#L506) 7. Span and trace ids [are not there yet](https://github.com/DataDog/datadog-lambda-extension/blob/2c61aca453a3ab41df58d407e1659705cdcee273/bottlecap/src/lifecycle/invocation/processor.rs#L517), and they are never checked again after this 8. `anonymousTask` finally completes, but that's irrelevant because `send_ctx_spans` is only run on `PlatformRuntimeDone` which assumes [universal_instrumentation_end has already been sent](https://github.com/DataDog/datadog-lambda-extension/blob/2c61aca453a3ab41df58d407e1659705cdcee273/bottlecap/src/lifecycle/listener.rs#L177) ## Why this looks likely In the customer's logs we can see * `05:11:48.463` `datadog.trace.agent.core.DDSpan - Finished span (WRITTEN): DDSpan [ t_id=2742542901019652192` * `05:11:48.489` PlatformRuntimeDone received * `05:11:48.630` REPORT RequestId `1db22159-7200-43c8-bec1-11b89df4f099` (last log emitted in an execution) * `05:11:53.784` START RequestId: `8c801767-e21b-43f7-bd11-078bb64bc430` (new request id, 5s later) * `05:11:53.789` [Received end invocation request from headers:{""x-datadog-trace-id"": ""2742542901019652192"...](https://github.com/DataDog/datadog-lambda-extension/blob/2c61aca453a3ab41df58d407e1659705cdcee273/bottlecap/src/lifecycle/listener.rs#L258) -> we are now trying to finish the span after the request is long gone 🙃 In this specific run, the lambda even had time to stop before continuin with the anonymous task from `handle_end_invocation`. ## Motivation [SLES-2666](https://datadoghq.atlassian.net/browse/SLES-2666) ## Performance This PR makes the reading of the body synchronous with the response. This will delay handing over execution to outside the extension until the body is read. But that is irrelevant because it is a requirement to read the body and send `universal_instrumentation_end` before relinquishing control. ## Testing Suggestions very welcome [SLES-2666]: https://datadoghq.atlassian.net/browse/SLES-2666?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: Jordan Gonzalez <[email protected]> * chore(ci): sign container images with ddsign (#1065) ## Summary - Sign the image for ci image jobs per [instruction](https://datadoghq.atlassian.net/wiki/spaces/SECENG/pages/2744681107/Image+Integrity+User+Guide) Fixes: https://datadoghq.atlassian.net/browse/SVLS-8644 Co-authored-by: tianning.li <[email protected]> * fix(lifecycle): release invocation context after platform report to prevent memory leak (#1050) JIRA: https://datadoghq.atlassian.net/browse/SVLS-8625 Git issue reported: https://github.com/DataDog/datadog-lambda-extension/issues/1049 ## What does this PR do? Fixes a memory leak in the extension where `ContextBuffer` accumulated `Context` objects indefinitely across warm Lambda invocations. **Root cause:** `on_platform_report()` reads the `Context` for runtime duration and CPU/network enhanced metrics, but never called `context_buffer.remove()` afterwards. Each warm invocation appended a new `Context` to the buffer; none were ever freed. **Fix:** Call `self.context_buffer.remove(request_id)` at the end of `on_platform_report()`, after all processing for the invocation is complete. **Impact:** Most visible when `DD_CAPTURE_LAMBDA_PAYLOAD=true` — each retained `Context` holds the full captured request/response payload as span metadata (~500 KB per invocation). Without the fix, a Lambda function invoked thousands of times would accumulate hundreds of MB of leaked memory in the extension process. ## Testing - Unit tests - A test with 50+ invocations shows | without the fix | with the fix | |--------|--------| | `buffer size after remove: 52`|`buffer size after remove: 1`| Co-authored-by: Claude Sonnet 4.6 <[email protected]> * build(deps): bump docker/setup-buildx-action from 3 to 4 (#1063) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3 to 4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/setup-buildx-action/releases">docker/setup-buildx-action's releases</a>.</em></p> <blockquote> <h2>v4.0.0</h2> <ul> <li>Node 24 as default runtime (requires <a href="https://github.com/actions/runner/releases/tag/v2.327.1">Actions Runner v2.327.1</a> or later) by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/483">docker/setup-buildx-action#483</a></li> <li>Remove deprecated inputs/outputs by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/464">docker/setup-buildx-action#464</a></li> <li>Switch to ESM and update config/test wiring by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/481">docker/setup-buildx-action#481</a></li> <li>Bump <code>@actions/core</code> from 1.11.1 to 3.0.0 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/475">docker/setup-buildx-action#475</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.63.0 to 0.79.0 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/482">docker/setup-buildx-action#482</a> <a href="https://redirect.github.com/docker/setup-buildx-action/pull/485">docker/setup-buildx-action#485</a></li> <li>Bump js-yaml from 4.1.0 to 4.1.1 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/452">docker/setup-buildx-action#452</a></li> <li>Bump lodash from 4.17.21 to 4.17.23 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/472">docker/setup-buildx-action#472</a></li> <li>Bump minimatch from 3.1.2 to 3.1.5 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/480">docker/setup-buildx-action#480</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/setup-buildx-action/compare/v3.12.0...v4.0.0">https://github.com/docker/setup-buildx-action/compare/v3.12.0...v4.0.0</a></p> <h2>v3.12.0</h2> <ul> <li>Deprecate <code>install</code> input by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/455">docker/setup-buildx-action#455</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.62.1 to 0.63.0 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/434">docker/setup-buildx-action#434</a></li> <li>Bump brace-expansion from 1.1.11 to 1.1.12 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/436">docker/setup-buildx-action#436</a></li> <li>Bump form-data from 2.5.1 to 2.5.5 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/432">docker/setup-buildx-action#432</a></li> <li>Bump undici from 5.28.4 to 5.29.0 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/435">docker/setup-buildx-action#435</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/setup-buildx-action/compare/v3.11.1...v3.12.0">https://github.com/docker/setup-buildx-action/compare/v3.11.1...v3.12.0</a></p> <h2>v3.11.1</h2> <ul> <li>Fix <code>keep-state</code> not being respected by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/429">docker/setup-buildx-action#429</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/setup-buildx-action/compare/v3.11.0...v3.11.1">https://github.com/docker/setup-buildx-action/compare/v3.11.0...v3.11.1</a></p> <h2>v3.11.0</h2> <ul> <li>Keep BuildKit state support by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/427">docker/setup-buildx-action#427</a></li> <li>Remove aliases created when installing by default by <a href="https://github.com/hashhar"><code>@hashhar</code></a> in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/139">docker/setup-buildx-action#139</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.56.0 to 0.62.1 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/422">docker/setup-buildx-action#422</a> <a href="https://redirect.github.com/docker/setup-buildx-action/pull/425">docker/setup-buildx-action#425</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/setup-buildx-action/compare/v3.10.0...v3.11.0">https://github.com/docker/setup-buildx-action/compare/v3.10.0...v3.11.0</a></p> <h2>v3.10.0</h2> <ul> <li>Bump <code>@docker/actions-toolkit</code> from 0.54.0 to 0.56.0 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/408">docker/setup-buildx-action#408</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/setup-buildx-action/compare/v3.9.0...v3.10.0">https://github.com/docker/setup-buildx-action/compare/v3.9.0...v3.10.0</a></p> <h2>v3.9.0</h2> <ul> <li>Bump <code>@docker/actions-toolkit</code> from 0.48.0 to 0.54.0 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/402">docker/setup-buildx-action#402</a> <a href="https://redirect.github.com/docker/setup-buildx-action/pull/404">docker/setup-buildx-action#404</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/setup-buildx-action/compare/v3.8.0...v3.9.0">https://github.com/docker/setup-buildx-action/compare/v3.8.0...v3.9.0</a></p> <h2>v3.8.0</h2> <ul> <li>Make cloud prefix optional to download buildx if driver is cloud by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/390">docker/setup-buildx-action#390</a></li> <li>Bump <code>@actions/core</code> from 1.10.1 to 1.11.1 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/370">docker/setup-buildx-action#370</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.39.0 to 0.48.0 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/389">docker/setup-buildx-action#389</a></li> <li>Bump cross-spawn from 7.0.3 to 7.0.6 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/382">docker/setup-buildx-action#382</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/setup-buildx-action/compare/v3.7.1...v3.8.0">https://github.com/docker/setup-buildx-action/compare/v3.7.1...v3.8.0</a></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/docker/setup-buildx-action/commit/4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd"><code>4d04d5d</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-buildx-action/issues/485">#485</a> from docker/dependabot/npm_and_yarn/docker/actions-to...</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/cd74e05d9bae4eeec789f90ba15dc6fb4b60ae5d"><code>cd74e05</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/eee38ec7b3ed034ee896d3e212e5d11c04562b84"><code>eee38ec</code></a> build(deps): bump <code>@docker/actions-toolkit</code> from 0.77.0 to 0.79.0</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/7a83f65b5a215b3c81b210dafdc20362bd2b4e24"><code>7a83f65</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-buildx-action/issues/484">#484</a> from docker/dependabot/github_actions/docker/setup-qe...</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/a5aa96747d67f62520b42af91aeb306e7374b327"><code>a5aa967</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-buildx-action/issues/464">#464</a> from crazy-max/rm-deprecated</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/e73d53fa4ed86ff46faaf2b13a228d6e93c51af3"><code>e73d53f</code></a> build(deps): bump docker/setup-qemu-action from 3 to 4</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/28a438e9ed9ef7ae2ebd0bf839039005c9501312"><code>28a438e</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-buildx-action/issues/483">#483</a> from crazy-max/node24</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/034e9d37dd436b56b0167bea5a11ab731413e8cf"><code>034e9d3</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/b4664d8fd0ba15ff14560ab001737c666076d5be"><code>b4664d8</code></a> remove deprecated inputs/outputs</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/a8257dec35f244ad06b4ff6c90fdd2ba97f262ba"><code>a8257de</code></a> node 24 as default runtime</li> <li>Additional commits viewable in <a href="https://github.com/docker/setup-buildx-action/compare/v3...v4">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump aquasecurity/trivy-action from 0.34.2 to 0.35.0 (#1090) Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.34.2 to 0.35.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/aquasecurity/trivy-action/releases">aquasecurity/trivy-action's releases</a>.</em></p> <blockquote> <h2>v0.35.0</h2> <h2>What's Changed</h2> <ul> <li>chore(deps): Update trivy to v0.69.3 by <a href="https://github.com/aqua-bot"><code>@aqua-bot</code></a> in <a href="https://redirect.github.com/aquasecurity/trivy-action/pull/519">aquasecurity/trivy-action#519</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/aquasecurity/trivy-action/compare/0.34.2...0.35.0">https://github.com/aquasecurity/trivy-action/compare/0.34.2...0.35.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aquasecurity/trivy-action/commit/57a97c7e7821a5776cebc9bb87c984fa69cba8f1"><code>57a97c7</code></a> chore(deps): Update trivy to v0.69.3 (<a href="https://redirect.github.com/aquasecurity/trivy-action/issues/519">#519</a>)</li> <li>See full diff in <a href="https://github.com/aquasecurity/trivy-action/compare/97e0b3872f55f89b95b2f65b3dbab56962816478...57a97c7e7821a5776cebc9bb87c984fa69cba8f1">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: [SVLS-8390] drop sampled-out traces from backend when compute_trace_stats_on_extension is enabled (#1060) ## Summary - When `compute_trace_stats_on_extension` is `true`, traces with sampling priority `<= 0` (`AUTO_DROP` / `USER_DROP`) are now dropped and **not** flushed to the Datadog backend. - When `compute_trace_stats_on_extension` is `false` (the current default), traces are not dropped because all traces need to be sent to Datadog so trace stats can be computed. - Trace stats computation is unaffected: dropped traces are still processed through `process_traces` and their stats are forwarded to the stats concentrator. ## Test plan - Passed the added unit test ### Manual test #### Steps - Add logging for trace payload flushed, and for traces being dropped - Build a layer and install it on a Lambda function - Invoke the function 6 times #### Result Logs show that - some traces were dropped. - the `aws.lambda` span for some of the 6 invocations were not flushed to Datadog. 🤖 Partially generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Sonnet 4.6 <[email protected]> * fix: oversize payload causing universal instrumentation failures (#1067) Instead of passing the whole Request into the spawned task and calling extract_request_body (which consumes the request and early-returns on failure), the fix: 1. Splits the request upfront with request.into_parts() — headers are preserved regardless of body extraction outcome 2. Attempts body buffering via Bytes::from_request 3. Falls back to Bytes::new() on failure (e.g. oversized payload) with a warn! log 4. Always calls universal_instrumentation_end — trace context, span finalization, and status code extraction proceed with degraded (empty) payload rather than being silently dropped The FromRequest import was added to the module-level axum imports to support calling Bytes::from_request directly. --------- Co-authored-by: Claude Opus 4.6 <[email protected]> * fix(otlp): allow json payloads (#1069) https://datadoghq.atlassian.net/browse/SVLS-8626 ## Overview OTLP currently expects protobuf payload. Update to allow for protobuf and json. ## Testing Add integration tests which sends json payload. --------- Co-authored-by: Claude Opus 4.5 <[email protected]> * build(deps): bump docker/build-push-action from 6 to 7 (#1068) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6 to 7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/build-push-action/releases">docker/build-push-action's releases</a>.</em></p> <blockquote> <h2>v7.0.0</h2> <ul> <li>Node 24 as default runtime (requires <a href="https://github.com/actions/runner/releases/tag/v2.327.1">Actions Runner v2.327.1</a> or later) by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/build-push-action/pull/1470">docker/build-push-action#1470</a></li> <li>Remove deprecated <code>DOCKER_BUILD_NO_SUMMARY</code> and <code>DOCKER_BUILD_EXPORT_RETENTION_DAYS</code> envs by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/build-push-action/pull/1473">docker/build-push-action#1473</a></li> <li>Remove legacy export-build tool support for build summary by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/build-push-action/pull/1474">docker/build-push-action#1474</a></li> <li>Switch to ESM and update config/test wiring by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/build-push-action/pull/1466">docker/build-push-action#1466</a></li> <li>Bump <code>@actions/core</code> from 1.11.1 to 3.0.0 in <a href="https://redirect.github.com/docker/build-push-action/pull/1454">docker/build-push-action#1454</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.62.1 to 0.79.0 in <a href="https://redirect.github.com/docker/build-push-action/pull/1453">docker/build-push-action#1453</a> <a href="https://redirect.github.com/docker/build-push-action/pull/1472">docker/build-push-action#1472</a> <a href="https://redirect.github.com/docker/build-push-action/pull/1479">docker/build-push-action#1479</a></li> <li>Bump minimatch from 3.1.2 to 3.1.5 in <a href="https://redirect.github.com/docker/build-push-action/pull/1463">docker/build-push-action#1463</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/build-push-action/compare/v6.19.2...v7.0.0">https://github.com/docker/build-push-action/compare/v6.19.2...v7.0.0</a></p> <h2>v6.19.2</h2> <ul> <li>Preserve port in <code>GIT_AUTH_TOKEN</code> host by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/build-push-action/pull/1458">docker/build-push-action#1458</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/build-push-action/compare/v6.19.1...v6.19.2">https://github.com/docker/build-push-action/compare/v6.19.1...v6.19.2</a></p> <h2>v6.19.1</h2> <ul> <li>Derive <code>GIT_AUTH_TOKEN</code> host from GitHub server URL by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/build-push-action/pull/1456">docker/build-push-action#1456</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/build-push-action/compare/v6.19.0...v6.19.1">https://github.com/docker/build-push-action/compare/v6.19.0...v6.19.1</a></p> <h2>v6.19.0</h2> <ul> <li>Scope def…
https://datadoghq.atlassian.net/browse/SVLS-8626
Overview
OTLP currently expects protobuf payload. Update to allow for protobuf and json.
Testing
Add integration tests which sends json payload.