Monitoring

Dashboard

Ogmios offers a simple dashboard through HTTP with a real-time visualization of some of the server runtime metrics. If you’ve Ogmios up-and-running on the default port, visit http://localhost:1337 to view Ogmios' dashboard.

Dashboard Preview

Health / Metrics

Behind the scene, the dashboard is powered by metrics served over HTTP as JSON by the server. Reach /health (e.g. http://localhost:1337/health to get real-time information about your running server, including runtime metrics.

$ curl -H 'Accept: application/json' http://localhost:1337/health
{
    "metrics": {
        "totalUnrouted": 1,
        "totalMessages": 30029,
        "runtimeStats": {
            "gcCpuTime": 1233009354,
            "cpuTime": 81064672549,
            "maxHeapSize": 41630,
            "currentHeapSize": 1014
        },
        "totalConnections": 10,
        "sessionDurations": {
            "max": 57385,
            "mean": 7057,
            "min": 0
        },
        "activeConnections": 0
    },
    "startTime": "2021-03-15T16:16:41.470782977Z",
    "lastTipUpdate": "2021-03-15T16:28:36.853115034Z",
    "lastKnownTip": {
        "hash": "c29428f386c701c1d1ba1fd259d4be78921ee9ee6c174eac898245ceb55e8061",
        "blockNo": 5034297,
        "slot": 15520688
    },
    "networkSynchronization": 0.99,
    "currentEra": "Mary"
}

All information are computed at runtime and not preserved between restarts (at least not yet). The health response includes:

fielddescription
startTimeUTC timestamp at which the server was started.
lastTipUpdateUTC timestamp when lastKnownTip was last updated (can be null)
lastKnownTipLast known chain tip received from the node (can be null)
networkSynchronizationA percentage indicator of how far the server/node is from the network tip. 1 means it is synchronized.
currentEraThe current Cardano era of the underlying node. Useful for state-queries and debugging.
metrics.activeConnectionsNumber of WebSocket connections currently established with the server.
metrics.totalConnectionsTotal number of WebSocket connections established with the server since it’s started.
metrics.sessionDurationsSome time measures (min, max, mean) of the duration of each sessions, in milliseconds.
metrics.totalMessagesTotal number of messages received from all / any WebSocket connections.
metrics.totalUnroutedTotal number of invalid messages not routed to one of the mini-protocols, received from all / any WebSocket connections.
metrics.runtimeStats.gcCpuTimeTime spent by the garbage collector cleaning up previously allocated data objects, in nano-seconds.
metrics.runtimeStats.cpuTimeTime spent by the CPU doing work (at the last GC), in nano-seconds.
metrics.runtimeStats.maxHeapSizeMaximum live data allocated in the heap, in kilo-bytes.
metrics.runtimeStats.currentHeapSizeCurrent live data allocated in the heap, in kilo-bytes.

All dates / timestamps are given as ISO-8601 date-time strings.

Runtime metrics (i.e. runtimeStats) are only available when the server is started with the +T runtime flag. This is the case by default, but can be manually turned on and off using the +RTS / -RTS options. For example ogmios --node-socket /path/to/socket +RTS -T -RTS will run Ogmios with runtime stats activated.