tutorial

Monitoring Elementary with Vigilmon: dbt-Native Data Observability Platform Health, Report Availability & Webhook Delivery

How to monitor Elementary open-source dbt-native data observability infrastructure with Vigilmon — API availability, report server uptime, webhook delivery health, and SSL certificate validity.

Elementary is the open-source dbt-native data observability and reliability platform that adds automated data quality tests, anomaly detection, and lineage tracking directly to your dbt project, generating rich HTML reports and delivering alerts when freshness, volume, or schema expectations are violated. When Elementary's report server goes down, data teams lose access to the observability dashboard they rely on to triage test failures and track data health trends. When the alert delivery pipeline fails, Slack and PagerDuty integrations stop receiving dbt test failure notifications, leaving data quality regressions invisible to on-call engineers. For teams using Elementary Cloud, API availability is critical to syncing test results and surfacing anomalies across projects. Vigilmon gives you external visibility into Elementary's infrastructure: the report server, cloud API, and webhook endpoints, so you know the moment the observability platform itself needs attention.

What You'll Build

  • An HTTP monitor on the Elementary report server or cloud dashboard to detect availability failures
  • A health-check monitor on the Elementary Cloud API to catch backend degradation
  • A monitor on your webhook receiver to verify Elementary alert delivery is flowing
  • A monitor on the Elementary Cloud sync endpoint to catch test result upload failures
  • An SSL certificate monitor for your Elementary domain
  • Alerting that distinguishes report server outages from webhook delivery failures

Prerequisites

  • An Elementary deployment (open-source self-hosted report server, or Elementary Cloud)
  • The Elementary report server or cloud dashboard exposed via HTTPS
  • A webhook receiver endpoint configured to accept Elementary dbt test failure alerts
  • A free account at vigilmon.online

Step 1: Understand Elementary's Service Architecture

Elementary can be deployed in two modes, each with a different monitoring surface:

| Component | Default port | Role | |---|---|---| | Elementary report server (self-hosted) | 8850 or 443 (HTTPS) | Serves the HTML observability report and test result history | | Elementary Cloud dashboard | 443 (HTTPS) | Hosted multi-project observability UI and alert management | | Elementary Cloud API | 443 (HTTPS) | Receives test result uploads from the edr CLI; surfaces lineage and anomalies | | Alert dispatcher | Outbound | Delivers dbt test failure alerts to Slack, PagerDuty, and custom webhooks |

External monitoring focuses on the report server (or cloud dashboard) and the cloud API endpoints — these are the interfaces your data team interacts with when investigating dbt test failures and data quality regressions.


Step 2: Monitor the Elementary Report Server or Cloud Dashboard

The Elementary report server (or Elementary Cloud dashboard) is the primary interface for reviewing dbt test results, anomaly trends, and data lineage. When it is unavailable, data engineers cannot investigate open test failures or track data quality health over time:

# Self-hosted report server
curl -I https://elementary.your-domain.com

# Elementary Cloud
curl -I https://app.elementary-data.com
# Returns HTTP 200 with HTML when the frontend is healthy
  1. Log in to VigilmonAdd Monitor → HTTP.
  2. URL: https://elementary.your-domain.com (self-hosted) or https://app.elementary-data.com (cloud).
  3. Check interval: 60 seconds.
  4. Response timeout: 15 seconds.
  5. Expected status: 200.
  6. Keyword: Elementary (appears in the page title and HTML content).
  7. Click Save.

This monitor catches:

  • Elementary report server process crashes or failed edr CLI report generation
  • Reverse proxy or Nginx misconfigurations blocking report server access
  • Failed Elementary upgrades that leave the report server in a broken state
  • DNS resolution failures for the Elementary domain

Alert sensitivity: Set to trigger after 1 consecutive failure. When the Elementary report server is unavailable, data engineers are blind to which dbt tests are currently failing and cannot triage a data quality incident without direct access to warehouse logs.


Step 3: Monitor the Elementary Cloud API

For teams using Elementary Cloud, the cloud API receives test result uploads from the edr CLI after each dbt run and powers the multi-project observability dashboard. When the API is degraded, edr send-report commands fail silently, and the cloud dashboard shows stale test results:

curl https://api.elementary-data.com/health
# Returns: {"status": "ok"} when the API is healthy
  1. Add Monitor → HTTP.
  2. URL: https://api.elementary-data.com/health.
  3. Check interval: 60 seconds.
  4. Response timeout: 10 seconds.
  5. Expected status: 200.
  6. Keyword: ok (present in healthy API responses).
  7. Label: Elementary Cloud API health.
  8. Click Save.

Why monitor the cloud API separately from the dashboard? The cloud dashboard may serve cached data from the last successful sync even when the API is down. A failing API means edr CLI invocations at the end of your dbt runs cannot upload test results to Elementary Cloud, and anomaly detection over multi-run trends loses freshness.


Step 4: Monitor Your Webhook Receiver

Elementary delivers dbt test failure alerts to your on-call tools (Slack, PagerDuty, custom webhooks) via outbound HTTP calls from the edr CLI or Elementary Cloud. If your webhook receiver becomes unavailable or returns errors, alert delivery fails silently — your on-call team stops receiving notifications about failing dbt tests even though Elementary continues detecting failures internally:

curl https://your-webhook-receiver.example.com/health
# Returns: {"status": "ok"} when the receiver is up
  1. Add Monitor → HTTP.
  2. URL: https://your-webhook-receiver.example.com/health.
  3. Check interval: 2 minutes.
  4. Response timeout: 10 seconds.
  5. Expected status: 200.
  6. Keyword: ok.
  7. Label: Elementary webhook receiver.
  8. Click Save.

For Slack incoming webhooks, you can verify the Slack API is reachable at https://slack.com/api/api.test. For PagerDuty integrations, monitor your own relay service that routes Elementary alerts to PagerDuty events.


Step 5: Monitor the Elementary Cloud Sync Endpoint

For teams using Elementary Cloud, the sync endpoint receives test result payloads uploaded by the edr CLI after each dbt run. A degraded sync endpoint means test result uploads fail, and the multi-project observability dashboard stops refreshing with current data quality state:

curl https://api.elementary-data.com/v1/sync/status
# Returns sync pipeline status and last successful upload timestamp
  1. Add Monitor → HTTP.
  2. URL: https://api.elementary-data.com/v1/sync/status.
  3. Check interval: 5 minutes.
  4. Response timeout: 15 seconds.
  5. Expected status: 200.
  6. Keyword: status (present in the response JSON).
  7. Label: Elementary Cloud sync.
  8. Click Save.

Sync endpoint failures mean dbt run results from your data warehouse stop reaching Elementary Cloud, causing the dashboard to report stale test health and breaking anomaly detection that depends on comparing multiple consecutive run results.


Step 6: Monitor SSL Certificates

Elementary's report server and cloud API are accessed over HTTPS by both data engineers and the edr CLI process that runs at the end of every dbt invocation. An expired certificate breaks both browser access to the report and automated CLI uploads from CI/CD pipelines:

# Self-hosted report server
openssl s_client -connect elementary.your-domain.com:443 2>/dev/null | openssl x509 -noout -dates

# Elementary Cloud API
openssl s_client -connect api.elementary-data.com:443 2>/dev/null | openssl x509 -noout -dates
  1. Add Monitor → SSL Certificate.
  2. Domain: elementary.your-domain.com or api.elementary-data.com.
  3. Alert when expiry is within: 30 days.
  4. Alert again: 14 days, 7 days, 3 days, 1 day.
  5. Click Save.

dbt pipeline impact: The edr CLI runs as a post-dbt hook or CI step and calls the Elementary Cloud API to upload results. When the certificate expires, these CLI calls fail with TLS errors. Because edr failures are often non-fatal in CI configurations, the pipeline may continue and merge without the test result upload completing, leaving Elementary Cloud with a permanently stale view of data quality.


Step 7: Configure Alerting

In Vigilmon under Settings → Notifications, configure your alert channels:

| Monitor | Trigger | Action | |---|---|---| | Report server / Cloud dashboard | Non-200 or Elementary missing | Check report server process or Elementary Cloud status | | Cloud API health | Non-200 or ok missing | API down; edr uploads failing; check Elementary Cloud status page | | Webhook receiver | Non-200 or ok missing | On-call alerts not delivering; verify receiver deployment | | Cloud sync | Non-200 or status missing | Test result uploads stalling; check edr CLI logs and network connectivity | | SSL certificate | < 30 days to expiry | Renew certificate; verify edr CLI reconnects after renewal |

Alert after: 1 consecutive failure for the report server and API health monitors. 2 consecutive failures for cloud sync and webhook receiver monitors to reduce noise from transient network issues during dbt run uploads.


Common Elementary Failure Modes and What Vigilmon Catches

| Scenario | Vigilmon monitor | |---|---| | Report server process crash | Report server monitor fires; data team blind to current test failures | | Elementary Cloud API degradation | Cloud API monitor fires; edr uploads fail; dashboard shows stale data | | Webhook receiver crash | Webhook receiver monitor fires; Slack/PagerDuty alerts stop for dbt failures | | Cloud sync endpoint failure | Sync monitor fires; multi-run anomaly detection loses freshness | | TLS certificate expired | SSL monitor alerts at 30-day threshold; edr CLI and browsers fail | | DNS misconfiguration | All monitors fire simultaneously | | Elementary upgrade breaks report generation | Report server monitor fires; engineers cannot access test history | | edr credentials rotated without updating Cloud | Cloud API monitor may fire; uploads fail with auth errors |


Monitoring dbt Test Results Themselves (Beyond Infrastructure)

Vigilmon monitors Elementary's infrastructure endpoints — the report server, cloud API, cloud sync, and webhook receiver. The health of individual dbt test results and data quality expectations is a separate concern that requires configuration within Elementary and dbt itself:

  • Elementary's built-in alerting: Configure alert channels within Elementary (Slack, PagerDuty, email) to route dbt test failures to on-call teams — this is distinct from monitoring Elementary's own availability.
  • dbt test coverage: Audit which dbt models have Elementary monitors and tests configured to ensure new models are covered automatically.
  • Anomaly detection sensitivity: Elementary's anomaly detection uses historical baselines. A gap in test result uploads (caused by a sync failure) can reset baselines and cause false positives when uploads resume.

Vigilmon catches infrastructure-level failures — when Elementary itself is down. dbt test failures and data quality regressions within a healthy Elementary deployment require Elementary's own alerting rules and dbt test suite configuration.


Elementary is the layer that makes your dbt project self-aware — when it goes down, failing dbt tests go unreported to on-call teams, anomaly baselines grow stale, and data engineers lose the observability dashboard they rely on to triage data quality incidents quickly. Vigilmon gives you external visibility into Elementary's availability that doesn't depend on Elementary self-reporting: report server uptime, cloud API health, sync pipeline status, and SSL certificate validity, so you know the moment the dbt observability platform itself needs attention and can restore data quality visibility before the next test failure goes silent.

Start monitoring Elementary in under 5 minutes — register free at vigilmon.online.

Monitor your app with Vigilmon

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

Start free →