Skip to content

Commit

Permalink
Document how to monitor deadlocks in DBM (#26262)
Browse files Browse the repository at this point in the history
* Document how to monitor deadlocks in DBM

* Reword a few things and remove the Notes section

* Fix broken link on deadlock XE buffer

* Add more information on what to expect from the deadlock tab

* Fix tense in guide title

* Fix grammar and punctuation on exploring deadlock events section
  • Loading branch information
na-ji authored and theraffoul committed Nov 25, 2024
1 parent 846f53f commit e6dcc73
Show file tree
Hide file tree
Showing 6 changed files with 83 additions and 6 deletions.
1 change: 1 addition & 0 deletions content/en/database_monitoring/guide/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ cascade:

{{< whatsnext desc="SQL Server guides:" >}}
{{< nextlink href="database_monitoring/guide/sql_alwayson" >}}Exploring SQL Server AlwaysOn Availability Groups{{< /nextlink >}}
{{< nextlink href="database_monitoring/guide/sql_deadlock" >}}Configuring Deadlock Monitoring on SQL Server{{< /nextlink >}}
{{< /whatsnext >}}

{{< whatsnext desc="PostgreSQL guides:" >}}
Expand Down
70 changes: 70 additions & 0 deletions content/en/database_monitoring/guide/sql_deadlock.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: Configuring Deadlock Monitoring on SQL Server
further_reading:
- link: "/database_monitoring/"
tag: "Documentation"
text: "Database Monitoring"
- link: "/database_monitoring/setup_sql_server/"
tag: "Documentation"
text: "Setting Up SQL Server"
- link: "/database_monitoring/troubleshooting/"
tag: "Documentation"
text: "Troubleshooting Database Monitoring"
---

The Deadlock view enables you to explore deadlock events in your SQL Server database.
A deadlock occurs when two or more processes are unable to proceed because each is waiting for the other to release resources.
This guide assumes that Database Monitoring has been configured for your [SQL Server][1].

## Before you begin

Supported databases
: SQL Server

Supported deployments
: All deployment types except Azure DB (Azure Managed Instance is supported)

Supported Agent versions
: 7.59.0+

## Setup
1. In the SQL Server database instance, create a Datadog Extended Events (XE) session. You can run the session on any database in the instance.

**Note**: If the Datadog XE session isn't created in the database, the Agent still attempts to collect deadlock events from a default SQL Server XE view. This view writes to the buffer pool, but there's a higher chance of missing events because of a size limitation on the XML queried from it. For more information, see [You may not see the data you expect in Extended Event Ring Buffer Targets][2] on the SQL Server Support Blog.

```sql
CREATE EVENT SESSION datadog
ON SERVER
ADD EVENT sqlserver.xml_deadlock_report
ADD TARGET package0.ring_buffer
WITH (
MAX_MEMORY = 1024 KB,
EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY = 30 SECONDS,
STARTUP_STATE = ON
);
GO

ALTER EVENT SESSION datadog ON SERVER STATE = START;
GO
```

2. In the Datadog Agent, enable deadlocks in `sqlserver.d/conf.yaml`.
```yaml
deadlocks_collection:
enabled: true
```
## Exploring deadlock events
To access the deadlock view, navigate to the **APM** > **Database Monitoring** > **Databases** tab, select a SQL Server host, and then click the **Deadlocks** tab.
The deadlock tab displays details about the victim and survivor processes, and includes a link to the deadlock diagram.
**Note**: Because deadlocks occur infrequently, it's unlikely that any deadlock information will be visible right away.
## Further reading
{{< partial name="whats-next/whats-next.html" >}}
[1]: /database_monitoring/setup_sql_server/
[2]: https://techcommunity.microsoft.com/blog/sqlserversupport/you-may-not-see-the-data-you-expect-in-extended-event-ring-buffer-targets8230-/315838
5 changes: 3 additions & 2 deletions content/en/database_monitoring/setup_sql_server/azure.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ further_reading:
- link: "/database_monitoring/troubleshooting/?tab=sqlserver"
tag: "Documentation"
text: "Troubleshoot Common Issues"


- link: "/database_monitoring/guide/sql_deadlock/"
tag: "Documentation"
text: "Configure Deadlock Monitoring"
---

Database Monitoring provides deep visibility into your Microsoft SQL Server databases by exposing query metrics, query samples, explain plans, database states, failovers, and events.
Expand Down
5 changes: 3 additions & 2 deletions content/en/database_monitoring/setup_sql_server/gcsql.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ further_reading:
- link: "/integrations/sqlserver/"
tag: "Documentation"
text: "SQL Server Integration"


- link: "/database_monitoring/guide/sql_deadlock/"
tag: "Documentation"
text: "Configure Deadlock Monitoring"
---

Database Monitoring provides deep visibility into your Microsoft SQL Server databases by exposing query metrics, query samples, explain plans, database states, failovers, and events.
Expand Down
5 changes: 3 additions & 2 deletions content/en/database_monitoring/setup_sql_server/rds.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ further_reading:
- link: "/database_monitoring/troubleshooting/?tab=sqlserver"
tag: "Documentation"
text: "Troubleshoot Common Issues"


- link: "/database_monitoring/guide/sql_deadlock/"
tag: "Documentation"
text: "Configure Deadlock Monitoring"
---

Database Monitoring provides deep visibility into your Microsoft SQL Server databases by exposing query metrics, query samples, explain plans, database states, failovers, and events.
Expand Down
3 changes: 3 additions & 0 deletions content/en/database_monitoring/setup_sql_server/selfhosted.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ further_reading:
- link: "/database_monitoring/troubleshooting/?tab=sqlserver"
tag: "Documentation"
text: "Troubleshoot Common Issues"
- link: "/database_monitoring/guide/sql_deadlock/"
tag: "Documentation"
text: "Configure Deadlock Monitoring"
- link: "https://www.datadoghq.com/blog/migrate-sql-workloads-to-azure-with-datadog/"
tag: "Blog"
text: "Strategize your Azure migration for SQL workloads with Datadog"
Expand Down

0 comments on commit e6dcc73

Please sign in to comment.