Skip to content

Releases: beacon-observability/fastrace

Release list

v0.1.0

Choose a tag to compare

@lrwh lrwh released this 23 Oct 09:32
d864dcb

First Beacon-maintained Fastrace source SDK release, based on fast/fastrace. The SDK and reporter implementation are unchanged from the adopted baseline; Beacon adds English guides, baseline synchronization instructions, source-release documentation, and a reproducible local DataKit acceptance harness.

Source and versions

  • Beacon release: v0.1.0; source commit: d864dcb70a9caeb3a5173667e1e11b7e8b8eb288.
  • Upstream baseline: 45e58b94264dd2134b4b08be36f8378a4539bb50; independent source snapshot with no GitHub fork relationship.
  • Retained crates: fastrace, fastrace-macro, and fastrace-futures 0.7.19; fastrace-opentelemetry 0.19.0. These versions differ from the Beacon distribution version.
  • Original copyright notices and Apache-2.0 are retained.

Install and verify

Follow the version-pinned installation and local DataKit guide. Pin all Fastrace Git dependencies to v0.1.0 and commit your application's lockfile. Alternatively download these assets into one directory:

  • fastrace-0.1.0-source.tar.gz: complete tracked source, documentation, license, and committed workspace and acceptance lockfiles.
  • release-manifest.json: source and upstream commits, crate versions, lockfile hashes, packaging tools, and evidence references.
  • SHA256SUMS: verify with sha256sum --check SHA256SUMS before extracting.

Source archive SHA-256: bc7c2ffd8253ed93159deaccdfe8b435a01efec15d957e50e15629336318c9f0.

Validation

  • CI on the exact release commit: all 10 jobs passed, including formatting/lint checks and the Linux/macOS/Windows matrix with Rust 1.91.0, stable, and nightly.
  • Candidate archive: all 157 tracked files matched the source commit; license and committed lockfile hashes matched. Extracted-source workspace build with --locked --all-features passed on Linux with Rust/Cargo 1.95.0.
  • Independent consumer: all four Fastrace crates resolved to the release commit from Git; compilation and procedural-macro expansion passed.
  • Archive DataKit acceptance: two independent Rust processes exported five spans over OTLP/gRPC (Protobuf) to local DataKit 1.94.2, commit 2ddc51d543, at http://127.0.0.1:4317. Backend verification confirmed service names, the 128-bit trace ID, exact 64-bit span IDs, parent relationships, client/server kinds, recorded W3C traceparent, and final pre-exit delivery after explicit flush.
  • Candidate trace: cc2af9a3028f1bb6ab86280d7539792a; activity 2026-10-23T09:26:36.463Z through 2026-10-23T09:26:36.514Z. Successful complete, unsampled backend query window: 2026-10-23T08:26:31.463Z through 2026-10-23T10:27:21.914Z, tracing namespace T, using owl.data.check_dql and owl.data.query. The narrower initial query returned no rows; the wider window returned all five spans with timestamps inside the process activity window. Exporter exit alone was not used as ingestion evidence.

The acceptance guide and executable harness describe reproduction and propagation boundaries.

Public-channel verification

After publication, all three assets were downloaded without authentication and matched the tested files byte for byte. SHA256SUMS passed, the extracted public source rebuilt with committed lockfiles, and its two-process harness passed backend verification. A separate application rebuilt with its own lockfile using the published v0.1.0 Git tag; Cargo metadata confirmed all four Fastrace crates came from d864dcb70a9caeb3a5173667e1e11b7e8b8eb288, with no registry Fastrace duplicate, and its two-process trace also passed backend verification.

All rows below used local DataKit 1.94.2 OTLP/gRPC, Rust/Cargo 1.95.0 on Linux, tracing namespace T, validated DQL through owl.data.check_dql, and successful, complete, unsampled owl.data.query responses. Each check compared exact service, trace, span, parent, kind, and wire-context fields, including the final pre-exit span.

Source Trace ID Process activity (UTC) Successful backend query window (UTC) Result
Candidate archive cc2af9a3028f1bb6ab86280d7539792a 2026-10-23T09:26:36.463Z to 2026-10-23T09:26:36.514Z 2026-10-23T08:26:31.463Z to 2026-10-23T10:27:21.914Z 5/5 verified
Public source archive 92e9b8b5ab4a220c5a9d7744be5d1598 2026-10-23T09:33:33.505Z to 2026-10-23T09:33:33.569Z 2026-10-23T03:33:33.505Z to 2026-10-23T09:36:18.731Z 5/5 verified
Published Git tag consumer b1a27b36084fec2b8c035544a070eccf 2026-10-23T09:33:13.615Z to 2026-10-23T09:33:13.673Z 2026-10-23T08:33:13.615Z to 2026-10-23T10:33:13.673Z 5/5 verified

Some narrower queries returned no rows while wider absolute windows returned the expected spans with timestamps inside the process activity windows. The cause of that backend query behavior remains undiagnosed; the recorded wider windows provide the acceptance evidence.

Scope, limitations, and rollback

This is a source SDK release with explicit application instrumentation. It publishes no crates.io package or prebuilt agent executable. Registry package and API-documentation metadata remain upstream-owned. Git and registry crate identities must not be mixed. Third-party dependencies are not vendored; the consumer must retain its own lockfile. Checksums and the maintainer-created manifest are not a signature or build attestation.

Ingestion acceptance covers traces through local DataKit OTLP/gRPC on Linux. Metrics, logs, other receiver/protocol combinations, and automatic instrumentation are outside this acceptance. tracestate is explicitly handled at the example HTTP boundary; internal spans do not automatically retain arbitrary tracestate. CI on other operating systems is not equivalent to DataKit ingestion acceptance there.

See upgrade and rollback. This is the first Beacon source release; undo initial adoption by restoring the application's previous dependency files and rebuilding. Published source tags and assets are not replaced; fixes receive a new version. A possible future beacon-rust based on OpenTelemetry Rust remains separate.