tutorial

Monitoring Nomnoml with Vigilmon

Nomnoml is a self-hosted UML diagram renderer — but when the server goes down, your diagrams stop rendering and documentation pipelines break silently. Here's how to monitor your self-hosted Nomnoml instance with Vigilmon.

Nomnoml is a lightweight, open-source UML diagram tool that renders structured text into clean diagrams. Teams self-host it as a rendering service embedded in wikis, documentation platforms, and internal developer portals. When the Nomnoml server goes down, diagram embeds fail to render and the documentation experience breaks — often without a visible error to the user. Vigilmon keeps watch on your Nomnoml instance so you catch failures before your documentation consumers do.

What You'll Set Up

  • HTTP uptime monitor for the Nomnoml web application
  • Keyword check to confirm the diagram renderer is loading correctly
  • TCP port monitor for low-level connectivity checks
  • SSL certificate expiry alerts for your Nomnoml domain

Prerequisites

  • Self-hosted Nomnoml instance running (Node.js server or Docker)
  • Nomnoml accessible over HTTP or HTTPS on a domain or IP
  • A free Vigilmon account

Step 1: Monitor the Nomnoml Web Application

The Nomnoml web interface is the entry point for interactive diagram editing and the host for the rendering API used by embedded integrations.

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter your Nomnoml URL: https://nomnoml.yourdomain.com.
  4. Set Check interval to 1 minute.
  5. Set Expected HTTP status to 200.
  6. Click Save.

If Nomnoml is running behind a reverse proxy (nginx, Caddy, Traefik), the HTTP check confirms both the proxy and the Node.js process are healthy. A 502 Bad Gateway response means Nomnoml itself has crashed even though the proxy is still listening.


Step 2: Verify the Diagram Renderer Is Loading

An HTTP 200 only confirms the server is answering — it doesn't confirm the Nomnoml JavaScript renderer loaded or that the canvas is functional. Add a keyword check to catch partially broken deployments:

  1. Open your Nomnoml HTTP / HTTPS monitor.
  2. Under Advanced, set Expected body contains to nomnoml — this string appears in every Nomnoml HTML page.
  3. Click Save.

If a misconfigured deployment serves a blank page or an error page with a 200 status code, the keyword check catches it. This is particularly useful if your Nomnoml instance uses a CDN or caching layer that might serve a stale error page.


Step 3: Monitor the Nomnoml Rendering Endpoint

If your Nomnoml deployment exposes an HTTP rendering API (some self-hosted setups add a /render or /svg endpoint for server-side diagram generation), monitor it directly:

  1. Add MonitorHTTP / HTTPS.
  2. URL: https://nomnoml.yourdomain.com/render (adjust to match your deployment's API path).
  3. Set Expected HTTP status to 200.
  4. Under Advanced, set Expected body contains to <svg to confirm a valid SVG response.
  5. Set Check interval to 2 minutes.
  6. Click Save.

If your Nomnoml deployment is purely a static client-side app without a server-side rendering endpoint, skip this step and rely on the web application monitor and keyword check instead.


Step 4: Add a TCP Port Check

A TCP port monitor provides a low-level connectivity check independent of the HTTP and application layers:

  1. Add MonitorTCP Port.
  2. Host: nomnoml.yourdomain.com, Port: 443 (or 3000 if your Node.js Nomnoml server is exposed directly without a reverse proxy).
  3. Set Check interval to 2 minutes.
  4. Click Save.

This catches network-level failures — firewall rule changes, Node.js process crashes that free the port, or container networking issues — that would block access before the HTTP layer responds.


Step 5: Add SSL Certificate Monitoring

If Nomnoml is embedded in documentation pages via <iframe> or script tags, a lapsed certificate causes mixed-content errors that silently break diagram rendering across all pages that embed it.

  1. Open your Nomnoml HTTP / HTTPS monitor.
  2. Enable Monitor SSL certificate under the SSL section.
  3. Set Alert when certificate expires in less than 21 days.
  4. Click Save.

With a 21-day lead time, you have three weeks to renew or investigate Let's Encrypt auto-renewal failures before your embedded diagrams stop loading.


Step 6: Configure Alert Channels

  1. Go to Alert Channels in Vigilmon and add Slack, email, or a webhook endpoint.
  2. Set Consecutive failures before alert to 2 on the main Nomnoml monitor — Node.js process restarts and container recycling can cause a single probe miss.
  3. Use Maintenance windows in Vigilmon to suppress alerts when deploying a new Nomnoml version:
# Suppress alerts during deployment
curl -X POST https://vigilmon.online/api/maintenance \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"monitor_id": "abc123", "duration_minutes": 10}'

# Deploy updated Nomnoml instance
git pull && npm install && pm2 restart nomnoml

For Docker-based deployments:

docker pull nomnoml/nomnoml && docker compose up -d

Summary

| Monitor | Target | What It Catches | |---|---|---| | Web application | https://nomnoml.yourdomain.com | Frontend down, proxy failure | | Keyword check | Page body contains nomnoml | Blank page, misconfigured deployment | | Rendering API | /render or /svg | Server-side rendering failure | | TCP port | :443 or :3000 | Network-level connectivity failure | | SSL certificate | Nomnoml domain | Certificate renewal failure |

Nomnoml powers your UML diagrams across wikis and developer portals — but self-hosted means you own the reliability. With Vigilmon watching the web application, page content, TCP port, and SSL certificate, you'll know about failures in real time instead of discovering them when engineers start reporting broken diagram embeds.

Monitor your app with Vigilmon

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

Start free →