Service Monitor Guide
Watch the real-time status, health, and execution history of the services and cron scripts running across the GIIP ecosystem from a single admin screen. Skim the overall picture with the summary dashboard, then drill into individual services with the List, Flow, and Trigger views.
📋 Overview
The Service Monitor page is the admin console for observing the real-time state of the cron scripts, agent workers, and Azure Functions running across the GIIP ecosystem. It lists each service's last reported status (running / idle / error / no report), execution time, and telemetry (success, fail, skipped, etc.) in a table, and the summary cards at the top give a one-glance view of overall health. The data comes from status reports that agents push into the time-series store (tKVS); this screen is where an operator decides "what is running and what has stopped."
⚠️ This screen is admin-only. Access requires admin level
uLevel >= 70. Users below that level are redirected to home.
🔍 Screen Layout
1. Top Header
- Page title/description: "Service Monitor" (localized) plus a summary line.
- View toggle: switches among the List / Flow / Trigger views.
- Refresh button: immediately reloads service status (icon spins while loading). The List view auto-refreshes every 30 seconds; the Flow and Trigger views every 60 seconds.
2. Summary Dashboard
Four cards at the top show aggregate counts for all services.
| Card | Meaning |
|---|---|
| Total | Total number of monitored services/scripts |
| Running | Count of services currently in RUNNING state |
| Healthy | Count of services reporting IDLE (normal standby) |
| Error | Count of services reporting ERROR (failed/unhealthy) |
3. List View (Service Table)
Each row is one service/script; click a row to expand it and see details (sub-tasks and metrics).
| Column | Description |
|---|---|
| Script Name | Script/service name |
| Migration | Azure Function migration status (completed / pending / none) |
| Hostname | Host that reported the status |
| Status | Status badge (RUNNING / IDLE / ERROR / UNKNOWN) |
| Last Execution | Last run time |
| Telemetry | Run metrics such as success, fail, skipped, killed |
| Details | Expand to view sub-tasks and the raw report |
4. Flow View
Visualizes the dependencies and data flow between services (ServiceMonitorFlow) — see which service feeds into which as a flow diagram.
5. Trigger View
Shows recent execution status per registered trigger (schedule) and whether each is overdue. Use it to isolate triggers that have no report past their expected interval.
🛠️ How to Check Service Health
- On entry, check the Error count in the summary cards first.
- In the List view, find rows whose status badge is
ERRORorUNKNOWN(no report). - Click the row to expand and review Last Execution / Telemetry / sub-tasks — a stale last-run time or high failure metrics flags a stopped-service candidate.
- Use Refresh to reload the latest report and confirm whether it was just a transient delay.
- Switch to the Trigger view to cross-check any triggers that are past their expected interval (overdue).
💡 Notes
- Status values:
RUNNING= executing,IDLE= normal standby (counted under "Healthy"),ERROR= failed,UNKNOWN= no recent report (the agent has not pushed status to tKVS). - Many UNKNOWNs usually means the agent/script is not reporting telemetry rather than that the service is dead — check whether the agent itself is running first.
- Auto refresh: the List view refreshes every 30s and Flow/Trigger every 60s, so values may change periodically.
- Access is prop mode with
minLevel={70}hardcoded on the page, souLevel >= 70is always required (independent of menu config).
API Reference
This page talks to the backend through three dispatch commands (via fetchAzureCommand). Since there is no separate API guide, the essentials are documented here.
| Command | Purpose | Backend SP |
|---|---|---|
ApiServiceMonitorGetStatus | Fetch service/script status list (summary & list views) | pApiApiServiceMonitorGetStatusbyAK |
ApiServiceMonitorGetFlow | Fetch nodes/edges for the Flow view | (flow SP) |
ApiServiceMonitorGetTriggerStatus | Fetch per-trigger execution status for the Trigger view | pApiApiServiceMonitorGetTriggerStatusbyAK |
- The response is an array of result sets (e.g.
[data, status]); the client reads the first (data) array. - A status field
RstVal = 200means success;RstVal = 401means the session expired or is unauthenticated (re-login required).
Troubleshooting
| Symptom | Cause | Resolution |
|---|---|---|
| Bounced to home on load | uLevel below 70 | Log in with an admin account (level 70+). |
| "Session expired" / 401 error | Auth token expired or missing | Log in again, then press Refresh. |
Most rows show UNKNOWN | Agents/scripts are not reporting status to tKVS | Verify the agent is running and check the telemetry report path. |
| Trigger view all "overdue" (red) | A trigger with an empty kfactor can never join tKVS reports — a possible structural false positive | Check each trigger's recent report presence and act only on truly stalled triggers. |
| Values keep changing | 30s/60s auto-refresh is running | This is expected. Capture the values if you need a fixed snapshot. |
| Top guide button (📖) not visible | Guide mapping not deployed (older build) | It appears once this guide is deployed and indexed. |
Version: 1.0
Last Updated: 2026-08-04
Source File: giipv3/public/help/service-monitor.en.md