Port is an internal developer portal platform that centralizes service catalogs, scorecards, self-service actions, and software templates into a single developer-facing hub. When Port is unavailable or degraded, engineers lose access to the service catalog, can't trigger self-service workflows, and onboarding grinds to a halt.
This tutorial shows you how to monitor Port's API, webhooks, and your own Port instance with Vigilmon — free tier, no credit card required.
Why monitoring your developer portal matters
Developer portals sit in the critical path of engineering productivity. A silent outage has compounding effects:
- Service catalog inaccessible — engineers can't look up ownership, dependencies, or runbooks during an incident
- Self-service actions blocked — scaffolding new services, provisioning environments, or rotating secrets all fail silently
- Webhook delivery failures — Port ingests data from CI/CD, GitHub, and cloud providers via webhooks; if your endpoint is down, your catalog goes stale
- Scorecard data gaps — reliability and security scorecards stop updating, creating false "green" readings in your engineering metrics
Port does publish a status page, but you need your own monitoring to catch issues in your custom integrations, webhook receivers, and Port-to-internal-tool pipelines.
What you'll need
- A Port account and your organization's Port instance URL
- Your Port API credentials (Client ID and Client Secret from the Port Builder settings)
- A free Vigilmon account
Step 1: Identify what to monitor
Port exposes several components worth watching independently:
| Component | What to check |
|-----------|---------------|
| Port API (api.getport.io) | Availability of catalog queries and actions |
| Your webhook receiver | Endpoint Port POSTs blueprint and entity events to |
| Port portal URL | The web UI your engineers use daily |
| Self-service action backend | Internal endpoints triggered by Port actions |
Step 2: Monitor the Port API endpoint
Port's API is the backbone of every catalog query and action trigger. Add an HTTP monitor to detect outages before your engineers notice:
- Log in to vigilmon.online and go to Monitors → New Monitor
- Choose HTTP / HTTPS
- Set the URL to
https://api.getport.io/v1/blueprints - Add an
Authorizationheader with a valid Port API token:
Authorization: Bearer <your_port_access_token>
To obtain a token programmatically (useful for a keep-alive heartbeat):
curl -s -X POST https://api.getport.io/v1/auth/access_token \
-H "Content-Type: application/json" \
-d '{"clientId":"<CLIENT_ID>","clientSecret":"<CLIENT_SECRET>"}' \
| jq -r '.accessToken'
- Set the expected status code to
200 - Set the check interval to 1 minute
- Save the monitor
This monitor fires whenever the Port API is unreachable or returning errors — catching both Port-side incidents and networking issues between your VPC and Port's endpoints.
Step 3: Monitor your webhook receiver
Port sends entity and blueprint change events to your registered webhook endpoints. If your receiver is down, your catalog data falls behind without any alert. Set up a TCP or HTTP monitor for your receiver:
- Go to Monitors → New Monitor
- Choose HTTP / HTTPS
- Set the URL to your webhook receiver endpoint, e.g.
https://your-internal-tool.example.com/port-webhook - Use a
HEADorGETrequest (configure a lightweight health path if your receiver supports it) - Expected status code:
200or405(Method Not Allowed is fine — it means the server is up and listening) - Save the monitor
If your webhook receiver is an internal service, expose a /health endpoint alongside the webhook path:
// Express.js example
app.get('/health', (req, res) => res.json({ status: 'ok' }));
app.post('/port-webhook', verifyPortSignature, handlePortEvent);
Step 4: Monitor self-service action backends
Port self-service actions invoke backends — Lambda functions, internal APIs, GitHub Actions, or custom runners. These backends deserve their own monitors:
- For each action backend, add an HTTP monitor pointing to its health endpoint
- For Lambda-backed actions, monitor the API Gateway URL:
https://<api-id>.execute-api.<region>.amazonaws.com/prod/health - Set alert thresholds to 1 consecutive failure for action backends — users expect self-service actions to work immediately
Step 5: Set up a heartbeat monitor for Port sync jobs
If you run a scheduled job that syncs data into Port (e.g., syncing GitHub repos, AWS resources, or JIRA issues), set up a heartbeat monitor so you know when it stops running:
- Go to Monitors → New Monitor → Heartbeat
- Name it something like "Port GitHub sync job"
- Set the expected interval (e.g., every 60 minutes)
- Copy the heartbeat ping URL
Add the ping to the end of your sync script:
#!/bin/bash
# sync_to_port.sh
# ... your sync logic ...
# Ping Vigilmon when done
curl -fsS "$VIGILMON_HEARTBEAT_URL" > /dev/null
If the cron job fails or the sync script crashes before reaching the ping, Vigilmon alerts you within one missed interval.
Step 6: Configure alerts
For a developer portal, alert fatigue is real — but missed alerts on the catalog API or action backends directly impact engineering productivity.
Recommended alert channels:
- Slack — post to
#platform-alertsfor the API monitor and#engineeringfor the portal UI - PagerDuty or on-call — only for the Port API if your catalog is business-critical
- Email — appropriate for webhook receiver and heartbeat monitors
Recommended thresholds:
| Monitor | Alert after | |---------|-------------| | Port API | 1 failure (immediate) | | Webhook receiver | 2 consecutive failures | | Self-service backend | 1 failure | | Heartbeat / sync job | 1 missed interval | | Portal UI | 2 consecutive failures |
To add a Slack alert in Vigilmon:
- Go to Alert Channels → Add Channel → Slack
- Paste your Slack webhook URL
- Assign the channel to your Port monitors
Step 7: Create a status page for platform teams
If your developer portal team supports internal customers (other engineering teams), a status page gives them visibility without flooding your Slack channel:
- Go to Status Pages → New Status Page in Vigilmon
- Add your Port API monitor, webhook receiver monitor, and action backend monitors
- Name it "Developer Portal Status" and publish it
- Share the URL in your internal engineering wiki or platform team docs
Key metrics to watch
Beyond uptime, watch these Port-specific signals:
- Webhook delivery lag — Port's webhook history shows delivery times; spikes indicate your receiver is slow under load
- Action execution latency — how long self-service actions take end-to-end
- Entity sync freshness — if synced entities (GitHub repos, cloud resources) show a stale
updatedAt, your sync job may be silently failing - Blueprint schema drift — unexpected 4xx errors from the API often indicate a blueprint schema mismatch after a Port update
What's next
- SSL certificate monitoring — Vigilmon checks TLS certificates and alerts before expiry, important for your webhook receiver and action backends
- Multi-region checks — verify your webhook receiver is reachable from multiple geographic regions, not just your primary cloud region
- Incident history — Vigilmon's incident log gives you MTTD/MTTR data to include in your platform team's reliability reports
Get started free at vigilmon.online — monitors go live in under a minute, no credit card required.