VividCortex can now detect deadlocks in MySQL, and generate events that you can use for alerting and notification. It's normal for an ACID transactional database to encounter deadlocks occasionally, but too many deadlocks could signal a variety of problems from SQL, to application behavior, to indexing and more. To learn more about deadlocks, lock waits, and the difference between them, read this article.
The first step towards solving any locking or deadlock problem is to detect it, and VividCortex detects MySQL deadlocks out-of-the-box. When a deadlock happens, VividCortex generates an event to record it. The event includes several useful pieces of information:
- The timestamp
- The query that was terminated to resolve the deadlock
- The query that was allowed to proceed
These events are a first-class datatype in VividCortex, so they come with lots of added functionality. You can simply click to navigate to the queries involved in the deadlocks, where you can inspect their behavior, sample statements, and EXPLAIN plans among other things; you can overlay the events as vertical lines on any chart in the VividCortex user interface to add visual context to performance variations; and you can configure the events to generate alerts and notifications, including sending notifications through incident management systems such as OpsGenie or others. To view and analyze all of the events in your VividCortex instance, browse to the Health navigation item on the lefthand nav bar.
VividCortex's deadlock-detection functionality is automatically built-in and enabled, so there's nothing further you need to do to activate this feature! Feel free to use the in-app chat to get help with deadlocks, as with anything else you encounter.