Pool baseline state across streams sharing an entity concept
Completes the last deferred item from ROADMAP §0: entities recognized as the same real-world concept across enabled streams (e.g. srcip in both a firewall and an IIS stream) now share baseline knowledge of entity presence/age and known relationship-target values, instead of each stream learning it cold. Implemented additively (synthetic shared_entity:<group> namespace in the existing baseline.py tables, no schema migration), scoped to entity presence + relationship known-values only — per-stream distribution baselines stay untouched. Also fixes a latent alias-map collision bug found while building this (ALIAS_CANONICAL_BY_FIELD let "context" silently steal "hostname"/"dns_query" from their own canonical groups). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
17
README.md
17
README.md
@@ -289,6 +289,23 @@ If the Ollama advisor returns no usable profile for a stream, the row stays on
|
||||
the deterministic profile and is labeled as a heuristic fallback instead of
|
||||
pretending the whole recommendation failed.
|
||||
|
||||
When two or more enabled streams recognize the same real-world entity
|
||||
concept through this alias grouping (for example `srcip` used as the entity
|
||||
field in both a firewall stream and an IIS stream), SignalScope
|
||||
automatically pools part of their baseline state instead of learning it
|
||||
independently per stream: an entity's presence/age history and its known
|
||||
relationship-target values are shared across the pool, so a value already
|
||||
established as normal in one contributing stream does not get reported as
|
||||
"new" the first time a different, related stream happens to observe it.
|
||||
This is automatic — there is nothing to configure — and it only ever
|
||||
*reduces* false "already new" flags for values genuinely seen elsewhere in
|
||||
the pool; a value that is actually new everywhere is still reported exactly
|
||||
as before. Per-stream statistical baselines (event-rate bursts, detector
|
||||
bursts, numeric-field distributions) are not pooled and stay independent per
|
||||
stream, since those distributions legitimately differ by log source.
|
||||
Active pools are listed under `Diagnostics -> Shared Entity Baselines`,
|
||||
showing which entity concept is shared and which streams contribute to it.
|
||||
|
||||
Recommended profiles can be re-applied to existing profiles. Enable `show
|
||||
existing profiles` and click `Update profile` to append newly discovered entity,
|
||||
categorical, numeric, and detector fields. Existing profile names, field weights,
|
||||
|
||||
Reference in New Issue
Block a user