![]() |
VOOZH | about |
We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.
Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.
Follow TNS on your favorite social media networks.
Become a TNS follower on LinkedIn.
Check out the latest featured and trending stories while you wait for your first TNS newsletter.
In the world of monitoring and observability, silence often speaks louder than noise. When your Internet of Things (IoT) sensors stop reporting, your application metrics go dark or your system logs cease flowing, these gaps in data can signal critical failures that demand immediate attention. Missing data isn’t just an inconvenience; it’s often the first indicator of network outages, device failures, security breaches or stalled processes that could cascade into major operational disruptions.
This is where deadman alerts become invaluable. Unlike traditional threshold-based alerts that trigger when values exceed expected ranges, deadman alerts fire when expected data simply doesn’t arrive. They’re an early warning system for the silent failures that might otherwise go unnoticed until it’s too late.
This tutorial explores implementing deadman checks using the InfluxDB 3 time series database and its Python Processing Engine with schedule triggers — specifically, deadman triggers. These specialized triggers provide immediate notification when anticipated data streams fall silent, offering a crucial layer of operational visibility that can mean the difference between catching issues early and discovering them after significant damage has occurred.
Time series databases are uniquely positioned to handle deadman alert scenarios, particularly in DevOps environments where monitoring infrastructure health is paramount. Here’s why this combination is so powerful:
Temporal precision and context: Time series databases inherently understand time as a first-class citizen. They can efficiently query for data gaps, calculate time-based aggregations and maintain historical context about when data was last received. This temporal awareness is crucial for deadman alerts, which fundamentally depend on time-based thresholds.
High-performance gap detection: Traditional relational databases struggle with time-based queries across large datasets. Time series databases are optimized for these operations, making it efficient to scan millions of data points to determine if recent writes have occurred within specified time windows.
DevOps-centric benefits: In DevOps workflows, deadman alerts serve multiple critical functions:
Scalability for modern operations: DevOps teams often manage hundreds or thousands of monitored endpoints. Time series databases can handle the scale and cardinality required to track individual deadman states across massive infrastructures while maintaining query performance.
Integration with existing toolchains: Time series databases naturally integrate with popular DevOps tools like Grafana, Prometheus and various alerting platforms, making deadman alerts part of a comprehensive monitoring strategy.
The InfluxDB deadman check plugin monitors target tables for recent writes and sends Slack alerts when no new data arrives within configurable time thresholds. This approach transforms silence into actionable intelligence.
This guide will walk you through:
Begin by downloading InfluxDB 3 Core or Enterprise, following the appropriate installation guide. While you can run this locally, we recommend Docker for simplified setup, better isolation and easier cleanup. This tutorial assumes a Docker containerized environment.
Ensure Docker is installed on your system and pull the latest InfluxDB 3 image for your chosen edition. I’ll use InfluxDB 3 Core as the open source option. If you need long-term storage and advanced features after setup, you can easily upgrade to 3 Enterprise.
After cloning the plugin repository, save the deadman alert file as deadman_alert.py in your configured plugin directory (e.g., /path/to/plugins/). Then execute:
docker run -it --rm --name test_influx -v \ ~/influxdb3/data:/var/lib/influxdb3 \ -v /path/to/plugins/:/plugins \ -p 8181:8181 \ quay.io/influxdb/influxdb3-core:latest serve \ --node-id my_host \ --object-store file \ --data-dir /var/lib/influxdb3 \ --plugin-dir /plugin
This command creates a temporary InfluxDB 3 Core container named test_influx using the latest image. It mounts your local data directory for persistence and the plugin directory containing the deadman check plugin. Port 8181 is exposed for local database access, and the server starts with file-based object storage (AWS S3 buckets are also supported), a custom node ID and the mounted plugin directory.
For Slack integration, follow the official documentation to create a webhook URL. You’ll need this webhook as an argument during trigger creation. Alternatively, use our public webhook for testing InfluxDB-related notifications, available in the #notifications-testing channel of the InfluxDB Slack.
Start by creating a database to monitor for heartbeat signals:
influxdb3 create database my_database
Write initial data to establish a baseline:
influxdb3 write --database my_database "sensor_data temp=20"
Create and enable the deadman trigger:
influxdb3 create trigger \ --trigger-spec "every:10s" \ --plugin-filename "deadman_alert.py" \ --trigger-arguments table=sensor_data,threshold_minutes=1,slack_webhook=https://hooks.slack.com/services/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 \ --database my_database \ sensor_deadman
The deadman check plugin executes every 10 seconds, monitoring the sensor_data table in my_database for data written within the last minute. When data exists, you’ll see this log output:
INFO influxdb3_py_api::system_py: processing engine: Data exists in 'sensor_data' in the last 1 minutes.
If no data has been written within the threshold period, you’ll receive a Slack notification alerting you to the silence.
The trigger continues monitoring until disabled:
influxdb3 disable trigger --database my_database sensor_deadman
Trigger sensor_deadman disabled successfully
The new InfluxDB MCP server enables you to manage deadman alerts and time series infrastructure through natural language interactions. This open source service connects InfluxDB 3 to AI tools like Claude Desktop, eliminating the need for manual command-line operations.
Instead of manually creating databases and configuring triggers, you can use natural language prompts:
The MCP server transforms complex time series operations into conversational workflows:
Schema exploration: Ask “What tables exist in my monitoring database?” or “Show me the structure of the sensor_data table” to understand your data landscape without writing queries.
Token management: Manage authentication through prompts like “Create a read-only token for the monitoring team” or “List all active admin tokens.”
Health monitoring: Get real-time status updates with requests like “Check the connection status of my InfluxDB instance” or “Show me recent write activity across all databases.”
The MCP server can analyze your schema and generate appropriate deadman alert queries:
Deadman alerts represent a critical component of comprehensive monitoring strategies, particularly in DevOps environments where silence often indicates serious issues.
This deadman check plugin provides real-time monitoring of data pipeline durability, helping you maintain operational visibility across your infrastructure. We encourage you to explore the InfluxData/influxdb3_plugins repository for additional examples and contribute your own plugins to the community.
The future of monitoring lies in intelligent, proactive systems that can detect problems before they escalate. Deadman alerts are a crucial piece of that puzzle, and InfluxDB 3’s processing engine can be a good option to build robust, scalable monitoring solutions that keep your systems running smoothly.