Conversation
- passing all css tests !
|
|
|
@codex review |
There was a problem hiding this comment.
Pull request overview
This PR introduces the initial Rust weblog implementation using the Axum web framework. The weblog is designed to provide OpenTelemetry tracing and metrics support for system tests, addressing the gap where no Rust implementation existed to show in the feature parity dashboard.
Changes:
- Implements a new Rust weblog application with Axum framework supporting tracing, metrics, and multiple test endpoints (
/,/healthcheck,/stats-unique,/rasp/sqli,/make_distant_call) - Creates Docker build infrastructure with multi-stage Dockerfile and build scripts
- Adds "rust" to the supported languages in the library configuration schema
- Updates Rust manifest to mark specific tests as irrelevant for the weblog variant
Reviewed changes
Copilot reviewed 7 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| utils/build/docker/rust/axum/src/main.rs | Main Rust weblog application with OpenTelemetry integration and various test endpoints |
| utils/build/docker/rust/axum/Cargo.toml | Rust project manifest with dependencies for Axum, tracing, and OpenTelemetry |
| utils/build/docker/rust/axum/Cargo.lock | Dependency lock file with all transitive dependencies resolved |
| utils/build/docker/rust/axum.Dockerfile | Multi-stage Docker build configuration for building and running the weblog |
| utils/build/docker/rust/axum/app.sh | Entry point script for the container |
| utils/build/docker/rust/axum/system_tests_library_version.sh | Script to extract library version from Cargo.lock |
| tests/schemas/utils/library/v0.7/config-request.json | Schema update adding "rust" to supported languages list |
| manifests/rust.yml | Test manifest update with specific test expectations |
| .gitignore | Addition of Rust build artifacts to ignore list |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| opentelemetry = "0.31.0" | ||
| serde = { version = "1.0.228", features = ["derive"] } | ||
| serde_json = { version = "1.0" } | ||
| reqwest = { version = "0.12", default-features = false } |
There was a problem hiding this comment.
The reqwest dependency is configured with default-features = false, which disables essential features like TLS support. This will cause the make_distant_call endpoint (which attempts to make HTTP requests) to fail at runtime. Either enable default features or explicitly enable required features like rustls-tls or native-tls.
| reqwest = { version = "0.12", default-features = false } | |
| reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] } |
| @@ -0,0 +1,2 @@ | |||
| #!/bin/bash | |||
| grep 'name = "datadog-opentelemetry"' ./Cargo.lock -A 1 | grep -Po 'version = "\K.*?(?=")' | |||
There was a problem hiding this comment.
The system_tests_library_version.sh script uses grep -P (Perl-compatible regular expressions), which may not be available in the minimal Debian-based image. The -P flag requires grep to be compiled with PCRE support, which is not guaranteed in slim images. Consider using a more portable approach with standard grep flags or sed.
| grep 'name = "datadog-opentelemetry"' ./Cargo.lock -A 1 | grep -Po 'version = "\K.*?(?=")' | |
| grep 'name = "datadog-opentelemetry"' ./Cargo.lock -A 1 | grep 'version = "' | head -n1 | sed -E 's/.*version = "([^"]+)".*/\1/' |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 744e9c9dfa
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| libdd-trace-utils = { path = "/binaries/libdatadog/libdd-trace-utils" } | ||
| libdd-common = { path = "/binaries/libdatadog/libdd-common" } | ||
| libdd-tinybytes = { path = "/binaries/libdatadog/libdd-tinybytes" } | ||
| libdd-telemetry = { path = "/binaries/libdatadog/libdd-telemetry" } |
There was a problem hiding this comment.
Guard libdatadog patch paths before cargo build
Do not unconditionally patch crates.io to /binaries/libdatadog/* here, because those directories are not present in the normal system-tests build flow (the repo’s binaries/ is typically empty aside from helper files, and Rust dev setup uses rust-load-from-git/dd-trace-rs instead). With these lines present, cargo fails dependency resolution immediately with “failed to read .../Cargo.toml”, so the new rust/axum weblog image cannot build in default CI/local runs.
Useful? React with 👍 / 👎.
|
✨ Fix all issues with BitsAI or with Cursor
|
Motivation
There is no rust weblog yet so it doesn't show in the feature parity dashboard.
At this point, all tests from the
TRACE_STATS_COMPUTATIONscenario passes. TODO: mark all other endtoend tests as XFAIL in manifestChanges
Workflow
🚀 Once your PR is reviewed and the CI green, you can merge it!
🛟 #apm-shared-testing 🛟
Reviewer checklist
tests/ormanifests/is modified ? I have the approval from R&P teambuild-XXX-imagelabel is present