You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AIOps incident-intelligence reference architecture — estate conformance + build program
Audit of the estate against an IBM Watson-AIOps-style incident-intelligence reference architecture, grouped into its 3 pipelines, plus a build program for the sovereign delta. Consume-not-fork: we build our own equivalents (MIT/Apache, stdlib) — no IBM/Watson proprietary code is vendored. SHA-256 references are the FIPS-180-4 algorithm, not a FIPS-140 module claim.
Grounded in ~/dev files + prior live-cluster facts (telemetry #1161, self-heal #518, wordops #1171). Paths cited are canonical prophet-platform unless noted; many capabilities appear duplicated across *.wt worktrees.
Tally
HAVE (14): Kafka bus, MinIO object store, Postgres/persistence, Loki/Prometheus/promtail/OTel + observability ns, telemetry-capture-liveness, log-stream input, PagerDuty/Alertmanager alert ingestion, Localization Service (GBRG blast-radius), receipt/provenance spine, The Assay (ok/sad/bad), self-heal control loop, resilience runner, administrator actor (WordOps A0–A4 lease governance).
Reuse: Kafka telemetry.logs (HAVE), Loki as store (HAVE), EvidenceReceipt, the Assay verdict.
Acceptance: template contract + deterministic miner + fixtures + validator; emits anomalies as event-envelope insight messages with explainability; teeth.
Blocker: choose stream substrate — no Flink (Kappa Kafka-consumer pattern is the estate norm); do NOT introduce Flink (bloat) unless justified.
Step 3 — supporting primitives.
near-duplicate/dedup (MinHash or SimHash) — absent estate-wide; needed by both grouping (alert dedup) and similarity. Deterministic, stdlib, fixture-tested.
Topology/ASM ingestion layer over hellgraph (live service-dependency graph) so the topology signal in Steps 0–1 is fed by real topology, not a supplied field.
Step 4 — wiring / actors.
Wire matrix-qes-operator to a live homeserver so the chat-user actor is real (ChatOps PARTIAL→HAVE).
Deploy OpenSearch server OR formally retire the client refs (Elastic PARTIAL→decision).
Deploy Tempo or remove its liveness alert (Tempo PARTIAL→decision).
Consume-not-fork constraint (applies to every step): build sovereign equivalents; MIT/Apache only; no IBM/Watson proprietary. Every new gate ships a negative fixture proving it can fail (never-fired = suspect).
AIOps incident-intelligence reference architecture — estate conformance + build program
Audit of the estate against an IBM Watson-AIOps-style incident-intelligence reference architecture, grouped into its 3 pipelines, plus a build program for the sovereign delta. Consume-not-fork: we build our own equivalents (MIT/Apache, stdlib) — no IBM/Watson proprietary code is vendored. SHA-256 references are the FIPS-180-4 algorithm, not a FIPS-140 module claim.
Grounded in
~/devfiles + prior live-cluster facts (telemetry #1161, self-heal #518, wordops #1171). Paths cited are canonicalprophet-platformunless noted; many capabilities appear duplicated across*.wtworktrees.Tally
Pipeline verdicts
Pipeline 1 — Log Anomaly (ingest logs → detect anomalies per log)
infra/k8s/observability/base/promtail.yaml→ Loki;services/telemetry-producer/app.py(OTLP→EventEnvelope→Kafka);services/mlog-projection-loki/infra/fabric/helm/helmfile.yaml(bitnami/kafka KRaft); topicsinfra/k8s/eventbus/base/topic-bootstrap.yaml(telemetry.logs/metrics/traces)minio;infra/k8s/workspace-minio/base/cnpg/postgres;infra/datastores/postgres/*.sqlinfra/k8s/sherlock-search/base/deployment.yamlOPENSEARCH_URL); no server chart anywhereopen-ai4it-spec/docs/glossary/TERMS.md(LAD),docs/devops/metering-anomaly-feedback-pipeline.md; no drain3/LogBERT/DeepLog implinfra/k8s/observability/base/telemetry-liveness.yaml+telemetry-canary.yamlTempoNotReceivingSpans) but not deployedPipeline 2 — Event Grouping (events/alerts + anomalies → incident "stories")
infra/k8s/alert-delivery/base/sink.py(each alert → EvidenceReceipt);observability/base/telemetry-alert-routing.yaml(pagerdutyConfigs)story_idopen-ai4it-spec/contracts/schemas/event-envelope.schema.json(story_id/features/explainability/feedback); topicsderived-alert-groups/derived-storiesdeclaredhg_analyticsconnected-components (+planned Louvain),link-prediction.tsJaccard,personalizedPageRank— unassembledPipeline 3 — Incident Similarity (match incidents to SRE search terms)
apps/sherlock-engine/src/main.rs(Tantivy BM25 ⊕ dense/Qdrant via RRF);hellgraph/ts/src/{bm25,ann,retrieval,hybrid,link-prediction}.tsapps/memoryd/.../qdrant_index.py,apps/embeddings/app.pyopen-ai4it-spec/modules/story_services/incident_similarity/)hellgraphcrates); live ASM/service-discovery GAP. (Note:hg_analytics/src/topology.rsis deployment-placement, NOT service ASM)sociosphere/gbrg/crates/gbrg-core/src/scoring.rs(BlastRadiusProofArtifact, deterministic[0,1])contracts/EvidenceReceipt.v0.1.json;apps/receipt-gateway/tools/*receipt*.py;hellgraph/crates/hg_proofCross-cutting components & actors
apps/matrix-qes-operator/(thin, no live homeserver); WordOps lease fabric #1171sp-orchestrator/crates/*,apps/deepdive-orchestrator); gatewaysapps/wordops-mcp-gateway,apps/arcticdb-gateway,apps/search-gateway; no component literally "Connection Controller"deploy/training/ray-lora/ray_lora_train.py(real LoRA on verified traces);apps/lattice-studio/.../annotation_training.py; no console UIapps/reasoning-failure-runner/src/reasoning_failure_runner/domain.py(Verdictok/sad/bad); sourceos-spec ReasoningAssaysociosphere/automation/{executors,responder,scheduler}.py(loop closed, honest liveness — #518)apps/reasoning-failure-runner/;docs/CHAOS_RESILIENCE_FABRIC_V0.mddocs/WORDOPS_APPROVAL_TO_LEASE_GOVERNANCE.md)Build program (sovereign delta) — acceptance criteria & sequencing
Step 0 (DONE) — Pipeline 3 seed. PR #33. Deterministic incident-similarity contract + scorer + teeth. Reuses receipt spine, the Assay, HellGraph topology field. Acceptance:
make validate/make testgreen; teeth fire on perturbed golden. ✅Step 1 — Pipeline 2: Event Grouping Service (highest gap value).
story_id-keyed incident stories by (time-window ∩ shared entity/service key ∩ topology proximity). Sovereign equivalent of the Event Grouping Service.event-envelope(story_id), hellgraph connected-components/Louvain + Jaccard edges, EvidenceReceipt spine, the Assay for grouping-confidence.story.schema.json) + deterministic grouper + valid/invalid fixtures + validator wired intomake validate; grouping is reproducible + receipt-sealed; teeth both ways. Emitsderived-alert-groups/derived-storiestopics already declared intopics.yaml.Step 2 — Pipeline 1: Log Anomaly Detector (sovereign LAD).
derived-log-ad-grouping.telemetry.logs(HAVE), Loki as store (HAVE), EvidenceReceipt, the Assay verdict.insightmessages with explainability; teeth.Step 3 — supporting primitives.
Step 4 — wiring / actors.
Consume-not-fork constraint (applies to every step): build sovereign equivalents; MIT/Apache only; no IBM/Watson proprietary. Every new gate ships a negative fixture proving it can fail (never-fired = suspect).
/cc @mdheller