Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
3714e34
refactor(bottlecap): extract trace-agent startup into the library crate
lucaspimentel Aug 26, 2026
3968c3f
feat(bottlecap): add bottlecap-test-mode binary
lucaspimentel Apr 29, 2026
a0966e2
fix(test-mode): bound and isolate the POST /flush handler
lucaspimentel Aug 26, 2026
a6b6a3b
ci: lint the test-mode feature
lucaspimentel Sep 2, 2026
2355edf
fix(test-mode): drain queued payloads before flushing
lucaspimentel Sep 10, 2026
3b5b717
fix(test-mode): send stats to the overridden trace intake
lucaspimentel Sep 10, 2026
1d9de67
fix(test-mode): fail POST /flush when delivery fails
lucaspimentel Sep 10, 2026
9a0d99f
fix(test-mode): await the listener before the final drain
lucaspimentel Sep 10, 2026
d069f38
fix(test-mode): exit when the listener fails to start
lucaspimentel Sep 10, 2026
bb6e920
fix(test-mode): serialize overlapping flushes
lucaspimentel Sep 10, 2026
19cde53
fix(test-mode): report a failed ingest barrier
lucaspimentel Sep 10, 2026
ab0075c
docs(test-mode): note the inherited proxy routes
lucaspimentel Sep 10, 2026
3d56a18
test(test-mode): cover the POST /flush status contract
lucaspimentel Sep 10, 2026
2e135e4
fix(test-mode): stop reporting lost payloads on clean shutdown
lucaspimentel Sep 10, 2026
dfd0709
fix(test-mode): flush pending payloads when stopped with SIGTERM
lucaspimentel Sep 10, 2026
92618ef
refactor(traces): share the trace intake route constant
lucaspimentel Sep 10, 2026
c8cdbfe
Report lost metrics instead of aborting when aggregator handle fails
lucaspimentel Sep 16, 2026
1ecc697
Stop trace forwarder when aggregator is gone so flush reports loss
lucaspimentel Sep 16, 2026
447fcaa
Abort trace agent listener when shutdown wait times out
lucaspimentel Sep 16, 2026
42edd75
Cancel test-mode flushes on shutdown timeout
lucaspimentel Sep 18, 2026
e2e8731
Delay the first test-mode periodic flush
lucaspimentel Sep 18, 2026
80f1649
Run test-mode endpoint tests in CI
lucaspimentel Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/rs_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,7 @@ jobs:
run: cargo clippy --workspace --all-targets --features default
- working-directory: bottlecap
run: cargo clippy --workspace --all-targets --no-default-features --features fips
# No other job compiles the test-mode feature: it gates test-only
# constructors that are absent from default and fips builds.
# Also lint the feature-gated test-mode binary.
- working-directory: bottlecap
run: cargo clippy --workspace --all-targets --features default,test-mode
Comment thread
lucaspimentel marked this conversation as resolved.

Expand Down Expand Up @@ -145,6 +144,9 @@ jobs:
- uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
- working-directory: bottlecap
run: cargo nextest run --workspace
- name: Test the test-mode binary
working-directory: bottlecap
run: cargo nextest run --features test-mode --bin bottlecap-test-mode

format:
name: Format
Expand Down
4 changes: 2 additions & 2 deletions .gitlab/templates/pipeline.yaml.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ cargo clippy:
# We need to do these separately because the fips feature is incompatible with the default feature.
- cargo clippy --workspace --features default
- cargo clippy --workspace --no-default-features --features fips
# No other job compiles the test-mode feature: it gates test-only
# constructors that are absent from default and fips builds.
# The test-mode feature gates the bottlecap-test-mode binary via
# required-features, so no other job compiles it.
- cargo clippy --workspace --features default,test-mode

{{ range $flavor := (ds "flavors").flavors }}
Expand Down
10 changes: 8 additions & 2 deletions bottlecap/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,10 @@ flate2 = { version = "1.1", default-features = false, features = ["rust_backend"
[[bin]]
name = "bottlecap"

[[bin]]
name = "bottlecap-test-mode"
required-features = ["test-mode"]

[profile.dev]
debug = true # same as debuginfo=2 and no stripping
strip = false
Expand Down Expand Up @@ -178,8 +182,10 @@ fips = [
# `InvocationProcessorHandle::noop()`) to callers that need to drive the
# trace-processing surface without Lambda lifecycle state.
# Not enabled in `default` or `fips`, so the items it gates do not appear
# in production builds.
test-mode = []
# in production builds. `tokio/signal` is pulled in here rather than in the
# base dependency so the shipped extension does not carry the signal driver
# for a binary only the test-mode build produces.
test-mode = ["tokio/signal"]

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(coverage,coverage_nightly)'] }
Loading
Loading