apache / apache/cloudstack

False positive in UsageSanityChecker

Offen
#13,446 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
component:usage-server
Vorherrschende Sprache
Java
Sterne
3.1k
Forks
1.4k
Ø Merge
6 T. 19 Std.
Gemergte PRs (30 T.)
32

Beschreibung

The bug we're hitting is in a different subsystem: the Usage Sanity Check (UsageSanityChecker.java). Specifically the "snapshot after removed" check, whose query is roughly:


SELECT count(*)

FROM cloud_usage.cloud_usage cu
JOIN cloud.snapshots s ON cu.usage_id = s.id
WHERE cu.usage_type = 9
AND cu.start_date > s.removed;

i.e. usage records in cloud_usage.cloud_usage with a start_date AFTER the snapshot was already soft-deleted in cloud.snapshots. This drives the Usage Sanity Check failed mailer and feeds our Prometheus exporter.


On the running 4.22.1.0 (which includes 83ce006) we still see:

check | count
-- | --
snapshot_after_removed | 160
volume_after_removed | 36
template_after_removed | 0
vm_after_destroyed | 0

_Originally posted by @PPisz in https://github.com/apache/cloudstack/discussions/13398#discussioncomment-17321658_

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie in UsageSanityChecker.java, indem Sie die Prüfung „snapshot after removed“ und ihre SQL-Abfrage für cloud_usage.cloud_usage und cloud.snapshots nachverfolgen. Untersuchen Sie, warum die laufende Instanz 4.22.1.0 160 Datensätze meldet, und überprüfen Sie anschließend, dass das Problem mit der Anzahl der False Positives behoben ist, ohne den Usage Sanity Check-Mailer oder die Ausgabe des Prometheus-Exporters zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, sql
Bereich
backend, cloud, databases, observability
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.