Repository navigation
feat(automation): create aggregate graphs from data source name rules - #8352
Open
somethingwithproof wants to merge 3 commits into
Open
somethingwithproof wants to merge 3 commits into
somethingwithproof wants to merge 3 commits into
Conversation
somethingwithproof
requested review from
TheWitness,
bmfmancini and
cigamit
and removed request for
a team and
cigamit
October 13, 2026 06:03
github-actions
Bot
force-pushed
the
feat/aggregate-automation-rules
branch
from
October 13, 2026 20:48
3b937e9 to
bb18abf
Compare
somethingwithproof
added a commit
to somethingwithproof/cacti
that referenced
this pull request
Oct 14, 2026
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
somethingwithproof
force-pushed
the
feat/aggregate-automation-rules
branch
3 times, most recently
from
October 17, 2026 20:50
9ab2cd3 to
1447c3a
Compare
github-actions
Bot
force-pushed
the
feat/aggregate-automation-rules
branch
3 times, most recently
from
October 20, 2026 08:52
255b90b to
228f0f4
Compare
github-actions
Bot
force-pushed
the
feat/aggregate-automation-rules
branch
5 times, most recently
from
October 26, 2026 20:51
9962ee4 to
22472f0
Compare
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
github-actions
Bot
force-pushed
the
feat/aggregate-automation-rules
branch
from
October 28, 2026 20:47
22472f0 to
0bf0d01
Compare
|
| return false; | ||
| } | ||
|
|
||
| return @preg_match($pattern, $subject); |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




This change lets administrators opt in to automatic aggregate graphs for each device. Rules on an aggregate template match data-source names, apply optional device-template filters, and reconcile members on later automation passes using a stored ownership mapping. This replaces repeated manual member selection while keeping existing templates disabled until configured.
Implementation details
Aggregate graphs currently require manual member selection, which makes per-device QoS aggregates impractical across large installations. This adds opt-in automation settings to aggregate templates: a data-source name PCRE pattern, an optional device-template filter, a title format and a member limit. Device automation creates one aggregate per template/device after ordinary graph rules run, then reconciles its members on later passes without creating duplicates.
Rule metadata is cached once per process and candidates are read in batches of 200 graph IDs. Updates use a per-template/device database lock and commit graph changes with their ownership mapping. Existing templates remain disabled; empty matches and disabled rules retain existing graphs. The fresh-install schema and develop upgrade include the new settings and ownership table. The template editor also uses the existing
toggleFieldshelper, and CLI-created aggregates record the template owner without requiring a browser session.Validation:
docs/performance/aggregate-automation-2026-10-12.json.Usage and repeatable checks:
docs/development/aggregate-automation.md.Targets
develop; no 1.2.x backport is included.Closes #71.
Regex execution limits
At
3689eecd2fdceaf5556218a45f9fc6576c36564e, validation and matching use bounded PCRE backtracking and recursion limits and restore the caller's settings on every outcome. Limit exhaustion aborts reconciliation before writes. PHP 8.5.11: 23 focused tests (47 assertions), full PHPStan, formatting and security inventories pass. SonarCloud and hosted taint checks pass on this commit. The locked integration job fails before checkout because ECR rejects the MariaDB pull; #8429 supplies the tested cache/GHCR fix.Revision and checks
Description scope: target
develop, 18 changed files, head0aef77e03. Checked 2026-10-23 03:06:04 UTC.GitHub check snapshot: 2 passed. Local test figures and earlier CI runs above are recorded evidence for their stated revisions and environments; they do not assert that every check passes at this head.