Repository navigation
test(e2e): run the Rust golden crate end to end, and assert http.route (#118) - #175
Merged
Merged
Conversation
#118) tests/e2e/run.sh gains a Rust leg: the golden crate (Cargo.lock included) is built with cargo run --locked on rust:1.88, exports OTLP/HTTP to the golden agent Collector config, and products-api is asserted in Jaeger with its service.* resource attributes. assert-traces.sh gains --expect-span k=v. The Rust leg uses it for http.route=/products/{id}, because the tower crate's axum feature is off by default and without it the server span still exports with correct resource attributes but carries no route. Resource-level assertions cannot see that. assert-traces.test.sh covers the new flag, including the route-less case. The e2e job timeout goes 25 -> 35 minutes for the cold cargo build. README, ROADMAP and the e2e README are updated. No plugin version bump: no command, agent, skill or hook changed. Verified locally without Docker (not available in this environment): the seeded directory builds with --locked on 1.88, and run against a local Collector 0.161.0 it exports the expected resource and GET /products/{id} with http.route=/products/{id}. The compose leg itself has not been run; its first run is in CI.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds Rust to the end-to-end job. Follow-up to #162 and #163 (part of #118).
What changed
tests/e2e/run.shanddocker-compose.yml: arust-appleg builds the golden crate withcargo run --lockedonrust:1.88, exports OTLP/HTTP to the golden agent Collector config, andproducts-apiis asserted in Jaeger with itsservice.*attributesassert-traces.sh: new optional--expect-span k=v. The Rust leg uses it forhttp.route=/products/{id}, because the tower crate'saxumfeature is off by default and without it the server span exports with correct resource attributes but no routeassert-traces.test.shcovers the flag, including the route-less caseTest plan
All hook, snapshot, drift and e2e unit tests pass locally
Docker is not available where this was written, so the compose leg has not run; its first run is this PR's CI. Do not merge until the e2e job is green
Without Docker: a freshly seeded copy of the golden crate builds with
--lockedon 1.88, and against a local Collector 0.161.0 it exportsservice.name=products-api, version 0.4.0, namespace storefront,deployment.environment.name=e2e, and aGET /products/{id}span withhttp.route=/products/{id}Vendor, SDK and semantic-convention facts were verified against the source, not recalled — linked where it isn't obvious.
Nothing hardcoded that has a single source of truth (
SEMCONV_VERSION,backends.txt,hooks/otel-paths.sh).