Skip to content

Realm runtime and JVM metrics

GET
/api/v1/admin/realms/observability/metrics
curl --request GET \
--url http://localhost:11044/api/v1/admin/realms/observability/metrics \
--header 'X-Embabel-Api-Key: <X-Embabel-Api-Key>'

A point-in-time read of the meters this process keeps for realm dispatch, realm builds, and the JVM. Values are cumulative since start.

The current snapshot

Media typeapplication/json

Point-in-time read of the realm runtime and JVM meters, answered by GET /admin/realms/observability/metrics. Counts and totals are cumulative since the process started.

object
build
required

Realm wasm build meters

object
byOutcome
required

One entry per build outcome, sorted by outcome; every outcome is registered at zero, so entries with count 0 are normal

Array<object>

One outcome of a timed meter, combined across every realm, function and host series that carries it

object
count
required

Number of recordings with this outcome since the process started

integer format: int64
maxMillis
required

Longest single duration in milliseconds, as Micrometer’s decaying max: recent recordings only, not since start, and 0 after a quiet spell

number format: double
outcome
required

Value of the meter’s outcome tag, e.g. ok, guest_error or timeout for a dispatch; built, cache_hit or failed for a build

string
totalMillis
required

Sum of their durations since the process started, in milliseconds

number format: double
recorded
required

False when the build meters exist but no build attempt has been recorded yet, which tells nothing-happened-yet apart from nothing-records-this

boolean
wasmBytes

Size of the published handlers.wasm per build attempt that ended with a bundle on disk, in bytes; null only when the meter is not registered

object
baseUnit

Unit of total and max, e.g. bytes; null when the meter declares none

string
count
required

Number of amounts recorded since the process started

integer format: int64
max
required

Largest single amount, in baseUnit, as Micrometer’s decaying max: recent recordings only, not since start

number format: double
total
required

Sum of every amount recorded since the process started, in baseUnit

number format: double
dispatch
required

Realm function dispatch meters

object
byOutcome
required

One entry per dispatch outcome that has been recorded, sorted by outcome; empty until the first dispatch

Array<object>

One outcome of a timed meter, combined across every realm, function and host series that carries it

object
count
required

Number of recordings with this outcome since the process started

integer format: int64
maxMillis
required

Longest single duration in milliseconds, as Micrometer’s decaying max: recent recordings only, not since start, and 0 after a quiet spell

number format: double
outcome
required

Value of the meter’s outcome tag, e.g. ok, guest_error or timeout for a dispatch; built, cache_hit or failed for a build

string
totalMillis
required

Sum of their durations since the process started, in milliseconds

number format: double
hostCalls
required

Number of host calls guests have made back into the platform since the process started

number format: double
memoryBytes

Peak guest memory per dispatch, in bytes; null until a dispatch has reported one

object
baseUnit

Unit of total and max, e.g. bytes; null when the meter declares none

string
count
required

Number of amounts recorded since the process started

integer format: int64
max
required

Largest single amount, in baseUnit, as Micrometer’s decaying max: recent recordings only, not since start

number format: double
total
required

Sum of every amount recorded since the process started, in baseUnit

number format: double
jvm
required

JVM memory, thread, garbage-collection and CPU readings

object
cpuUsage

Recent CPU usage of this process as a fraction from 0 to 1 of all available processors; null when the meter is absent

number format: double
gcPauseCount
required

Number of garbage-collection pauses since the process started

integer format: int64
gcPauseTotalMillis
required

Total time spent in garbage-collection pauses since the process started, in milliseconds

number format: double
memoryUsedBytes

Memory in use across every heap and non-heap area, in bytes; null when the JVM meters are absent

number format: double
threadsLive

Live thread count, daemon and non-daemon; null when the meter is absent

number format: double

Example generated

{
"build": {
"byOutcome": [
{
"count": 1,
"maxMillis": 1,
"outcome": "example",
"totalMillis": 1
}
],
"recorded": true,
"wasmBytes": {
"baseUnit": "example",
"count": 1,
"max": 1,
"total": 1
}
},
"dispatch": {
"byOutcome": [
{
"count": 1,
"maxMillis": 1,
"outcome": "example",
"totalMillis": 1
}
],
"hostCalls": 1,
"memoryBytes": {
"baseUnit": "example",
"count": 1,
"max": 1,
"total": 1
}
},
"jvm": {
"cpuUsage": 1,
"gcPauseCount": 1,
"gcPauseTotalMillis": 1,
"memoryUsedBytes": 1,
"threadsLive": 1
}
}