Which component(s) does this affect?
Problem Statement
Downstream automation (Logic Apps → Azure DevOps tickets, SIEMs) needs to tell distinct incidents apart and collapse recurrences of the same one. Today the webhook/alert payload exposes server + metric + summarized facts, but no stable per‑incident key - so consumers must reconstruct one from truncated query text / volatile wait‑resource IDs, which is fragile (and Logic Apps can't even hash).
Proposed Solution
Please emit a precomputed fingerprint.
-
A dedupKey/fingerprint field: a stable hash the app computes server‑side, where it has the full data:
- Deadlocks / Blocking: hash of the sorted set of fully‑qualified objects involved (database.schema.object), across all participating sessions/databases. (Don't use raw query text — it varies by literals; don't use bare hobt/page IDs — they change on index rebuild.)
- Long‑Running Query: the query_hash.
- Long‑Running Job: the job name (+ instance).
- Volume Free Space: the drive/volume.
-
A human‑readable involvedObjects list (e.g. SalesDB.dbo.Orders, SalesDB.dbo.LineItems) — for the ticket body. For multi‑database deadlocks, list all databases/objects (one incident, not split).
Use Case
I have build a Logic app in order to create tickets in Azure DevOps Board. If a deadlock in database X and specific objects occurs, I want to create a ticket. If the deadlock occurs again, I want to increase a custom field counter, not to create separate ticket. If a developer opens the Board, it will be easier to focus on issues with high occurrences.
Alternatives Considered
No response
Additional Context
Why a precomputed hash and not just names: consumers can dedup on one stable field without parsing/normalizing/sorting; names alone are ambiguous and order‑sensitive, and several automation platforms have no hashing primitive.
Scope: deadlocks + blocking are the priority; query/job/disk keys are a nice follow‑on. Keep the existing LowDiskAlertGate/rolling‑count gating - this is about identifying which incident, not whether to fire.
Which component(s) does this affect?
Problem Statement
Downstream automation (Logic Apps → Azure DevOps tickets, SIEMs) needs to tell distinct incidents apart and collapse recurrences of the same one. Today the webhook/alert payload exposes server + metric + summarized facts, but no stable per‑incident key - so consumers must reconstruct one from truncated query text / volatile wait‑resource IDs, which is fragile (and Logic Apps can't even hash).
Proposed Solution
Please emit a precomputed fingerprint.
A dedupKey/fingerprint field: a stable hash the app computes server‑side, where it has the full data:
A human‑readable involvedObjects list (e.g. SalesDB.dbo.Orders, SalesDB.dbo.LineItems) — for the ticket body. For multi‑database deadlocks, list all databases/objects (one incident, not split).
Use Case
I have build a Logic app in order to create tickets in Azure DevOps Board. If a deadlock in database X and specific objects occurs, I want to create a ticket. If the deadlock occurs again, I want to increase a custom field counter, not to create separate ticket. If a developer opens the Board, it will be easier to focus on issues with high occurrences.
Alternatives Considered
No response
Additional Context
Why a precomputed hash and not just names: consumers can dedup on one stable field without parsing/normalizing/sorting; names alone are ambiguous and order‑sensitive, and several automation platforms have no hashing primitive.
Scope: deadlocks + blocking are the priority; query/job/disk keys are a nice follow‑on. Keep the existing LowDiskAlertGate/rolling‑count gating - this is about identifying which incident, not whether to fire.