Description
The "Open site" action in the monitor actions menu opens the monitor's url directly in the browser. This works for HTTP monitors targeting public URLs, but is broken for monitors that target internal/private endpoints — specifically hardware and port type monitors, and any http monitor pointed at an internal health endpoint.
Steps to reproduce
- Create a hardware monitor pointing to a Capture agent (e.g.
http://capture:59232/api/v1/metrics)
- Or create an HTTP monitor pointing to an internal health endpoint (e.g.
http://traefik:8080/ping)
- Click the gear/actions icon on the monitor row
- Click "Open site"
Expected behavior
Either:
- The "Open site" action is hidden for monitors where the URL is not externally accessible (e.g.
hardware, port types, or URLs using internal hostnames)
- Or monitors support a separate optional
externalUrl / siteUrl field that "Open site" uses when present, falling back to url when not set
Actual behavior
The browser attempts to navigate to the internal URL (e.g. http://capture:59232/api/v1/metrics), which is unresolvable from the user's machine. This results in a browser error page.
Affected monitor types
| Type |
Why it's broken |
hardware |
Always targets an internal Capture agent |
port |
URL is just a hostname (e.g. postgres), no protocol |
http (internal) |
When pointed at internal health endpoints like http://traefik:8080/ping instead of a public URL |
Suggested fix
Add an optional siteUrl field to the monitor schema. When populated, "Open site" navigates to siteUrl instead of url. When empty, either fall back to url (current behavior) or hide the action.
This cleanly separates the monitoring target from the user-facing link, which is a common need when monitoring infrastructure behind a reverse proxy or on a private network.
Environment
- Checkmate version: v3.5.1 (commit
9628aa02)
- Deployment: Docker (backend-mono image)
Description
The "Open site" action in the monitor actions menu opens the monitor's
urldirectly in the browser. This works for HTTP monitors targeting public URLs, but is broken for monitors that target internal/private endpoints — specificallyhardwareandporttype monitors, and anyhttpmonitor pointed at an internal health endpoint.Steps to reproduce
http://capture:59232/api/v1/metrics)http://traefik:8080/ping)Expected behavior
Either:
hardware,porttypes, or URLs using internal hostnames)externalUrl/siteUrlfield that "Open site" uses when present, falling back tourlwhen not setActual behavior
The browser attempts to navigate to the internal URL (e.g.
http://capture:59232/api/v1/metrics), which is unresolvable from the user's machine. This results in a browser error page.Affected monitor types
hardwareportpostgres), no protocolhttp(internal)http://traefik:8080/pinginstead of a public URLSuggested fix
Add an optional
siteUrlfield to the monitor schema. When populated, "Open site" navigates tositeUrlinstead ofurl. When empty, either fall back tourl(current behavior) or hide the action.This cleanly separates the monitoring target from the user-facing link, which is a common need when monitoring infrastructure behind a reverse proxy or on a private network.
Environment
9628aa02)