Domů / Docs

Dokumentace

Jak DiffMon funguje v oblasti monitoringu, alertů, bezpečnosti a API integrace.

Policy Rules

Použijte post-diff pravidla pro potlačení šumu, routování důležitých změn a eskalaci severity notifikací.

Policy Rules

Policy Rules jsou deterministická post-diff pravidla, která běží až po tom, co DiffMon spočítá diff.

Dostupnost plánu: Pro a vyšší.

Co Policy Rules umí

  • Potlačit notifikace pro odpovídající změny s nízkou hodnotou.
  • Přidat destination routes pro odpovídající změny s vysokým dopadem.
  • Eskalovat severity labels notifikací.
  • Přidat labels pro downstream routing a triáž.

Co Policy Rules nemění

  • Výpočet diffu.
  • Grouping incidentů.
  • Logiku baseline.
  • Persistenci snapshotů a diffů.

Suppression zastaví pouze vytvoření notification eventu a delivery. Evidence a incidenty zůstávají zachované.

Matching vstupy

Pravidla mohou matchovat podle:

  • classification_in: schema_change | value_change | mixed | content_change
  • min_severity: critical | high | medium | info
  • path_prefix_any: jeden nebo více prefixů JSON path

path_prefix_any se normalizuje na kanonickou slash-prefix formu a deduplikuje.

Schema pravidel (v1)

JSON
{
  "schemaVersion": "v1",
  "rules": [
    {
      "id": "breaking-payments",
      "enabled": true,
      "when": {
        "classification_in": ["schema_change", "mixed"],
        "min_severity": "high",
        "path_prefix_any": ["/v1/payments"]
      },
      "then": {
        "suppress_notifications": false,
        "route_destination_ids_add": ["dest_pagerduty"],
        "escalate_to": "critical",
        "labels_add": ["payments", "breaking"]
      }
    }
  ]
}

Chování vyhodnocení

  • Pravidla se vyhodnocují v uloženém pořadí seznamu.
  • Disabled pravidla se přeskočí.
  • Pravidlo matchne jen tehdy, když odpovídají všechny zadané predikáty.
  • suppress_notifications se akumuluje pomocí logického OR.
  • Routes a labels se unionují, deduplikují a řadí.
  • Eskalace používá nejvyšší odpovídající severity a je monotónní vůči původní severity.

Konfigurace přes API (v1)

Policy Rules se ukládají do nastavení monitoru.

  • GET /api/monitors/:id/settings vrací policyRulesJson, pokud máte entitlement.
  • PATCH /api/monitors/:id/settings přijímá policyRules se strict schema validací.
  • Platí replace-all semantika:
    • pošlete rules: [] pro vymazání
    • vynechte policyRules, pokud nechcete nic měnit

Příklad update:

JSON
{
  "policyRules": {
    "schemaVersion": "v1",
    "rules": [
      {
        "id": "ignore-timestamps",
        "enabled": true,
        "when": {
          "classification_in": ["value_change"],
          "path_prefix_any": ["/timestamp", "/generated_at"]
        },
        "then": {
          "suppress_notifications": true
        }
      }
    ]
  }
}

Chování validace a entitlementů

  • Neznámé klíče jsou odmítnuté s 400 VALIDATION.
  • Neplatné enumy nebo rozsahy jsou odmítnuté s 400 VALIDATION.
  • Příliš mnoho pravidel je odmítnuto s 400 VALIDATION.
  • Pokud nemáte entitlement, update se odmítne s 403 FORBIDDEN.

Best practices

  1. Začněte jedním suppression pravidlem pro známé hlučné paths.
  2. Přidejte jedno escalation pravidlo pro breaking schema paths.
  3. IDs pravidel udržujte stabilní a popisná.
  4. Preferujte úzké scope v path_prefix_any před širokou globální suppression.

Související dokumentace