Skip to content

docs: verify current self-hosted observability backends - #67

Merged
donbeave merged 18 commits into
mainfrom
docs/current-competitor-verification
Sep 12, 2026
Merged

docs: verify current self-hosted observability backends#67
donbeave merged 18 commits into
mainfrom
docs/current-competitor-verification

Conversation

@donbeave

@donbeave donbeave commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

Record the 2026-09-04 live, no-bias comparison of Parallax main against the mandatory self-hosted observability set, with exact current stable references and reproducible evidence.

What ships

The PR adds the canonical feature-oriented report and machine-readable manifest, refreshes the OTLP fan-out lab to current supported backend versions, adds the supported Foundry SigNoz deployment path, captures browser evidence, and records the root causes and fixes for the fresh-stack and comparator integration failures. HyperDX's unbound AIO OTLP listener and Rustrak's red healthcheck are explicitly retained as blockers.

Verify locally

From the repository root, run cargo xtask ci --fast; it should finish successfully with the Rust policy/docs gates and complete UI gate passing. Run cargo xtask docs links; it should report all tracked Markdown links valid. Run git diff --check; it should produce no output and exit successfully.

donbeave and others added 5 commits August 29, 2026 16:56
The Velnor ci-code.yml build gate moves from 'mise run ci' to the
canonical 'mise run build'. Expose a real compile leaf (cargo build
with the same --workspace/--all-targets/--locked dimensions as the
former cargo check leaf, so the gate strengthens rather than weakens)
and turn 'ci' into a depends-only aggregate over the four canonical
gate leaves so it is never co-scheduled with its children.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
The seven repo-local cargo-target cache declarations embedded
${{ github.sha }} in the exact key, so every run missed, restored via
the hash-prefixed restore-key, and saved a brand-new immutable entry -
one cache entry per commit, storage bloat, and no stable hits. Keep the
compatible dimensions (lane, os, arch, job, toolchain + Cargo.lock +
manifest digest) in the exact key and leave the existing
'<prefix>-<digest>-' restore-keys untouched: they prefix-match the
historical sha-suffixed entries, so per-commit revalidation stays
available as restore history while same-digest runs now hit exactly.

Workflows changed: footprint.yml, mcp-evals.yml, preview.yml,
scheduled-measurement.yml (fuzz target + bench target),
storage-integration.yml (anchor also covers the second job),
upgrade-harness.yml.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Record live feature-oriented evidence for Parallax main and refresh the fan-out lab to current supported backend deployments.

Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Record immutable Parallax and playground SHAs after the live-run fixes.

Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Pin the rebuilt committed Parallax executable hashes in the canonical evidence manifest.

Co-authored-by: Codex <codex@openai.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 3, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-03T22:38:29.092223Z 92c78b0 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 92c78b0387

ℹ️ 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".

ROOT="$(cd .. && pwd)"

SENTRY_REF="${SENTRY_REF:-26.7.2}" # pin a release ≥25.8.0 (native OTLP). Re-pinned 2026-08-14; first verified 26.6.0
SENTRY_REF="${SENTRY_REF:-26.8.0}" # pin a release ≥25.8.0 (native OTLP). Re-pinned 2026-09-04; first verified 26.6.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Refresh the vendored Sentry checkout on ref bumps

When this lab has already been run, vendor/sentry still contains the previous default (26.7.2); changing SENTRY_REF to 26.8.0 does not update it because the existing-directory path skips cloning or checkout entirely. Rerunning setup.sh therefore silently installs/tests the old stack while the report records 26.8.0, and explicit SENTRY_REF overrides have the same problem. Refresh or replace the checkout and verify that HEAD matches the requested ref.

AGENTS.md reference: AGENTS.md:L3-L3

Useful? React with 👍 / 👎.

Comment thread ratchet.toml
[[product.anyhow_edges]]
path = "crates/parallax-server/src/alerting/evaluator.rs"
ceiling = 7
ceiling = 9

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Fix the added anyhow edges instead of raising the ratchet

Raising this exact ceiling from 7 to 9 without changing evaluator.rs converts the two additional anyhow edges into an accepted baseline rather than correcting the source regression; the repository's structural checker explicitly describes these ratchets as shrink-only. Remove or type the new edges and retain the lower ceiling, or explicitly identify why the root fix must be deferred.

AGENTS.md reference: AGENTS.md:L8-L9

Useful? React with 👍 / 👎.


```bash
# Parallax
PARALLAX_VERSION_OVERRIDE=0.1.0-research.3c4b68d cargo build --release -p parallax-cli -p parallax-mcp

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Check out the recorded source before labeling the binary

For anyone running this reproduction from a different HEAD, PARALLAX_VERSION_OVERRIDE only changes the embedded version string; it does not select commit 3c4b68d. Because the instructions never check out the manifest SHA, they can build arbitrary current sources while labeling the result 0.1.0-research.3c4b68d, making the reported binary identity and SHA irreproducible. Check out the recorded Parallax SHA before building.

Useful? React with 👍 / 👎.

```bash
# Parallax
PARALLAX_VERSION_OVERRIDE=0.1.0-research.3c4b68d cargo build --release -p parallax-cli -p parallax-mcp
./target/release/parallax serve --config artifacts/research/2026-09-04-main/parallax/config.toml

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Generate the Parallax config used by the reproduction

On a clean checkout, artifacts/research/2026-09-04-main/parallax/config.toml does not exist—the committed directory contains only screenshots—and the reproduction never creates it. The serve command therefore fails before any scenario can run; add the exact config artifact or commands that generate it with the recorded ports and data directory.

Useful? React with 👍 / 👎.

Comment on lines +179 to +180
SIGNOZ_POURS_DIR=../../artifacts/research/2026-09-04-main/signoz-pours \
docker compose -f compose.yml -f compose.signoz.yml config --quiet

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Point the SigNoz check at the generated pours directory

The preceding ./setup-vendor.sh writes to vendor/signoz-pours by default, but this command overrides SIGNOZ_POURS_DIR to ../../artifacts/research/2026-09-04-main/signoz-pours, which is neither committed nor generated by these steps. A clean reproduction consequently fails while loading the included Compose file; pass the same override to setup-vendor.sh or remove it from this command.

Useful? React with 👍 / 👎.

The Rust scenario runner on the playground working branch introduced
canonical scenario keys (product:*, sentry:*, security:*). Update every
validation and reference document still citing the old ad-hoc c-series
labels so evidence links resolve against the current runner output.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
… run

#1 config: deny_unknown_fields on every config struct so misnested or
   typo'd keys fail startup instead of silently defaulting (the run's
   operator believed 0.0.0.0:14317 was bound while defaults applied).
   Tests: unknown_top_level_key_is_rejected_not_silently_ignored,
   unknown_section_key_is_rejected.
#2 mcp: parallax-mcp now presents the API bearer token (--token flag /
   PARALLAX_API_TOKEN env) on every GraphQL request; empty token
   normalizes to the server's open mode. Test: loopback HTTP stub asserts
   the Authorization header is attached exactly when configured.
#3 config: new public_url setting with resolved_public_url() so bundle
   and incident links stop assuming the bind address; the wildcard bind
   never emits 0.0.0.0 URLs. Test: preference and derivation cases.
#4 ui+server: the embedded UI could not authenticate at all on a
   token-protected server - every route 401'd. New platform/auth module
   (localStorage token, bearer headers, percent-encoded access_token for
   EventSource), bearer on all fetch call sites, and a server-side
   authorize() middleware variant that accepts the query token on the
   SSE stream routes only; 401s route to a dedicated token-entry panel.
   Tests: api-token.test.ts (5), percent_decode unit cases, and
   m109_sse_query_token.rs integration coverage (401 without credential,
   200 via access_token, wrong-token 401, percent-decoding, GraphQL
   scoping, bearer still accepted).

Verified live: 401 -> token entry -> live UI -> SSE tail without reload;
cargo test --workspace 748 passed; UI vitest 581 passed.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
SigNoz: replace the deprecated v0.129.0 vendor-clone overlay (upstream
compose deprecated since v0.130.0) with a checked-in Foundry-generated
deployment pinned to signoz v0.141.1 / otel-collector v0.144.9 on host
ports 14327/14328/3301; setup-vendor.sh removed. OpenObserve v1.0.0 GA,
Grafana otel-lgtm 0.33.0, HyperDX hyperdx-all-in-one 2.38.0 (with
FRONTEND_URL so login redirects stop colliding with the playground
catalog port), Maple v0.0.22, rustrak 0.14.12. rotel.env.example
documents the HyperDX ingest-key header and the maple host-binary
endpoint.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Canonical report docs/research/validation/2026-09-12-parallax-main-
competitor-verification.md: environment manifest at re-derived upstream
versions, Layer A ingest parity, feature-by-feature matrix against the
strongest implementation of each shipped capability, the four defects
with root causes and regression evidence, reproduction steps, and the
final verdict. Competitor deep-dives, comparison set, progress log, and
the feature inventory gain the dated live-verification sections; the
fan-out lab README reflects the Foundry migration and current pins.

Verdict in brief: ingest parity exact across all sinks; Parallax leads
on attribute compare, agent-ready bundles/MCP, and the SQL console;
trails on service-map polish, Sentry-grade triage depth, SigNoz-grade
alert breadth, and deliberately does not rival Grafana dashboards/
PromQL. The initially-reported missing service map was corrected by
re-verification: /ecosystem ships it.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Conflict resolution: lab pins, comparison set, and feature inventory take
the live-verified 2026-09-12 content; scenario references re-applied to
the canonical runner keys on the merged inventory text.

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
@donbeave
donbeave enabled auto-merge (squash) September 12, 2026 15:29
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
Match the repo's integration-test lint convention (clippy::expect_used is
workspace-warned and each integration fixture opts out at crate level).

Signed-off-by: Alexey Zhokhov <alexey@zhokhov.com>
@donbeave
donbeave merged commit 5fc6b15 into main Sep 12, 2026
20 checks passed
@donbeave
donbeave deleted the docs/current-competitor-verification branch September 12, 2026 17:10
@donbeave
donbeave restored the docs/current-competitor-verification branch September 12, 2026 17:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant