tutorial

Monitoring Dolt with Vigilmon

Dolt is a version-controlled SQL database — Git for data — with branching, merging, and a MySQL-compatible interface. Here's how to monitor Dolt's SQL server, TCP port, status endpoint, and scheduled commit/push jobs with Vigilmon.

Dolt is a version-controlled SQL database that brings Git semantics — branching, merging, diffing, and commit history — to relational data. It's MySQL-compatible, so any MySQL client or ORM works with it out of the box. Teams use Dolt for auditable data pipelines, reproducible ML datasets, and collaborative data management. When the Dolt SQL server goes down or a scheduled commit/push job silently fails, your data integrity guarantees evaporate. Vigilmon gives you SQL server availability monitoring, TCP port checks, status endpoint verification, and heartbeat alerts for your Dolt pipelines.

What You'll Set Up

  • HTTP status endpoint monitor for Dolt SQL server availability
  • TCP port check for the MySQL-compatible SQL port (default 3306)
  • Cron heartbeat for scheduled Dolt commit and push jobs
  • SSL certificate expiry alerts for production Dolt deployments

Prerequisites

  • Dolt SQL server running via dolt sql-server (v1.0+)
  • Dolt server accessible on port 3306 (MySQL-compatible)
  • A free Vigilmon account

Step 1: Monitor Dolt SQL Server HTTP Availability

The Dolt SQL server can be configured to expose an HTTP metrics or status port alongside the MySQL port. When using the default dolt sql-server configuration, the server also exposes metrics via an HTTP port (default 7070 in some configurations). If you've enabled the metrics endpoint, monitor it:

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter the Dolt metrics URL: http://dolt-host:7070/health (adjust port to match your config.yaml).
  4. Set Check interval to 1 minute.
  5. Set Expected HTTP status to 200.
  6. Click Save.

If you're running Dolt behind a management proxy (e.g. a web interface or Dolt Workbench), add an HTTP monitor for that interface instead:

http://dolt-host:3000/api/status

For a minimal availability check with no HTTP interface, fall back to a TCP monitor (Step 2).


Step 2: TCP Port Check for the SQL Port

The primary interface to Dolt is its MySQL-compatible SQL port (default 3306). A TCP check on this port verifies that the server is running and accepting connections without requiring MySQL client credentials:

  1. Click Add MonitorTCP Port.
  2. Enter Host: dolt-host and Port: 3306.
  3. Set Check interval to 1 minute.
  4. Click Save.

This is the most reliable uptime signal for Dolt — if port 3306 is closed, no client can connect regardless of what the HTTP layer reports.

If you've configured Dolt to run on a non-standard port, update the port number accordingly. The Dolt SQL server port is set in config.yaml:

log:
  level: info
listener:
  host: "0.0.0.0"
  port: 3306
  max_connections: 100

Step 3: Add a /status Endpoint to Your Dolt Management Layer

Dolt itself doesn't ship a built-in HTTP /status endpoint by default, but if you're managing Dolt via a wrapper script, a REST API layer, or a tool like Dolt Workbench, you can expose one. For a lightweight Node.js wrapper:

const { exec } = require('child_process');
const http = require('http');

http.createServer((req, res) => {
  if (req.url === '/status') {
    exec('dolt version', (err, stdout) => {
      if (err) {
        res.writeHead(503);
        res.end(JSON.stringify({ status: 'error', message: err.message }));
      } else {
        res.writeHead(200);
        res.end(JSON.stringify({ status: 'ok', version: stdout.trim() }));
      }
    });
  } else {
    res.writeHead(404);
    res.end();
  }
}).listen(8080);

Then add an HTTP monitor for http://dolt-host:8080/status in Vigilmon. This pattern is useful when you want Vigilmon to verify Dolt binary availability and version, not just TCP connectivity.


Step 4: Heartbeat Monitoring for Scheduled Commit and Push Jobs

Dolt's versioning model means that data pipelines typically end with a dolt commit and dolt push to preserve history and sync remotes. These jobs run on cron schedules or in CI/CD pipelines. Use Vigilmon's cron heartbeat to confirm they complete on schedule:

  1. In Vigilmon, click Add MonitorCron Heartbeat.
  2. Set the Expected ping interval to match your pipeline schedule (e.g. 60 minutes for hourly commits, 1440 minutes for nightly data pushes).
  3. Copy the heartbeat URL (e.g. https://vigilmon.online/heartbeat/abc123).
  4. Add the ping at the end of your Dolt pipeline script:
#!/bin/bash
set -e

# Navigate to your Dolt database directory
cd /data/my-dolt-db

# Pull latest from remote
dolt pull origin main

# Run data update scripts
python3 ./scripts/update_dataset.py

# Commit changes
dolt add -A
dolt commit -m "Automated update: $(date -u +%Y-%m-%dT%H:%M:%SZ)"

# Push to remote
dolt push origin main

# Signal successful completion to Vigilmon
curl -s https://vigilmon.online/heartbeat/abc123

For jobs running via cron:

0 * * * * /opt/scripts/dolt_pipeline.sh >> /var/log/dolt_pipeline.log 2>&1

If the script fails at any step — data update error, commit conflict, push failure, or network outage — it exits before reaching the curl command, and Vigilmon alerts after the expected interval passes.


Step 5: SSL Certificate Alerts

For Dolt deployments accessed over HTTPS (e.g., Dolt Workbench or a management UI behind a reverse proxy), add SSL certificate expiry monitoring:

  1. Open the HTTP monitor you created for your Dolt endpoint.
  2. Enable Monitor SSL certificate under the SSL section.
  3. Set Alert when certificate expires in less than 21 days.
  4. Click Save.

A typical Caddy configuration that auto-provisions TLS for a Dolt management interface:

dolt.yourdomain.com {
    reverse_proxy localhost:3000
}

Even with Caddy's automatic HTTPS, Vigilmon's SSL check catches renewal failures — Caddy can fail silently if port 80 is firewalled or if DNS propagation delays affect the ACME challenge.


Step 6: Configure Alert Channels

  1. Go to Alert Channels in Vigilmon and add Slack, email, or a webhook.
  2. Set Consecutive failures before alert to 2 for HTTP monitors to avoid noise from transient network blips.
  3. Set TCP port monitors to alert on the first failure — a closed MySQL port is always a meaningful event.
  4. For heartbeat monitors, alert on the first missed ping — a missed Dolt commit means your data audit trail has a gap.

Summary

| Monitor | Target | What It Catches | |---|---|---| | HTTP status | http://dolt-host:8080/status | Management layer crash | | SQL port TCP | dolt-host:3306 | SQL server crash, port blocked | | Cron heartbeat | Heartbeat URL | Failed or missed commit/push jobs | | SSL certificate | Production HTTPS endpoint | Certificate renewal failure |

Dolt's value proposition is an auditable, versioned data history — but only if commits and pushes actually run on schedule. Vigilmon's TCP port check ensures the SQL server is always accepting connections, while the heartbeat monitor confirms your data pipelines are writing that history. Together, they protect both availability and data integrity in your Dolt deployment.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →