Release ledger

Release

v2.11.0

many eyes, one pane

Argus now exports OpenTelemetry metrics, logs and traces for every run — opt-in through environment variables, mirroring k6 — and ships a versioned Grafana dashboard suite with org → subgroup → project drill-down. Fleet health, remediation outcomes and exact failures, all without downloading job artifacts.

Highlights

  • 01

    OpenTelemetry export, k6-style

    ARGUS_OTEL=on turns on OTLP metrics, logs, and traces to your own collector. ARGUS-prefixed variables win over standard OTEL_* SDK variables; endpoint and headers stay standard (masked CI/CD variables). Export failures never fail or stall a run beyond a bounded 5s flush budget.

    Read the guide →
  • 02

    Grafana dashboard suite with drill-down

    Four versioned dashboards ship with the release — Fleet Overview, Run Performance, Security Outcomes, and Investigation — sharing chained org → subgroup → project variables, semantic colours, fleet version-adoption panels, per-panel tooltips, and a MONITORING.md runbook: the 5-minute daily glance, four paste-ready alerts, and the triage flows.

  • 03

    Exact failures in Grafana

    Structured failure events carry the last ~100 lines of the actual mvn/npm verify output and the precise GitLab API error, so 'why did this team's run fail' is answered from the Investigation dashboard — job artifacts stay for deep dives.

  • 04

    One trace per run

    argus.run → a span per pipeline phase → per-artifact qualification and per-MR publication spans, with grand-slam outcomes and qualification modes as metrics — the 'why was this run slow' toolkit.

Full notes

Added

  • OTLP export of 18 low-cardinality metrics (runs, phases, vulnerabilities found/remediated/residual, strategy mix, qualification verdicts by mode, grand-slam outcomes, MRs, upstream latency), run traces, and mirrored logs with structured failure events — opt-in via ARGUS_OTEL=on, configured entirely by environment variables (ADR-042).
  • Identity on every signal: org (only from ARGUS_OTEL_ORG, never derived), project from CI_PROJECT_NAME (the display name), subgroup from CI_PROJECT_PATH, service.version, and custom ARGUS_OTEL_ATTRIBUTES — with no per-run identifiers on metrics, keeping Prometheus series bounded at one set per project.
  • argus-grafana-dashboards-<version>.zip release asset: Fleet Overview, Run Performance, Security Outcomes, and Investigation dashboards with chained org → subgroup → project variables and per-panel tooltips, plus the required collector configuration (deltatocumulative + resource_to_telemetry_conversion).
  • CI component inputs otel, otel_exporter, otel_attributes, otel_service_name, and otel_org; REG-064 exercises the full export path against an OTLP sink and proves console output stays byte-compatible.

Changed

  • Job logs are Spring-Boot-style: 2026-07-06T21:38:21.123Z INFO --- [argus] [cli] : message. Message content is unchanged — timer/… and CVE: id=… remain the stable greppable forms.
  • The Simulation page is rebuilt as the Watchroom — a one-screen, keyboard-driven reconstruction of a run that shows Argus's reasoning phase by phase, including the telemetry flush to your OpenTelemetry collector.
  • The diagnostic skill ships as argus-diagnostic-skill.zip (previously argus-diagnostic.skill) — a plain zip opens everywhere without explanation. Earlier releases keep their original asset name.

Fixed

  • Release asset permalinks (/downloads/argus-diagnostic.skill, dashboards zip) no longer 404: the CI release step doubled the /downloads/ prefix in direct_asset_path; existing releases back to 2.9.0 were repaired in place.