curl --request GET \
--url https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"replicaId": "<string>",
"hostname": "<string>",
"timeRange": {
"start": "<string>",
"end": "<string>"
},
"gpuUtilizationPercent": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuMemoryUtilizationPercent": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuTemperatureCelsius": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuPowerWatt": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuPowerLimitWatt": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuClockSmMhz": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuClockMemMhz": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuPcieThroughputRxBytesPerSec": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuPcieThroughputTxBytesPerSec": [
{
"timestamp": "<string>",
"value": 123
}
],
"systemRamTotalBytes": [
{
"timestamp": "<string>",
"value": 123
}
],
"systemRamUsedBytes": [
{
"timestamp": "<string>",
"value": 123
}
],
"systemCpuUsagePercent": [
{
"timestamp": "<string>",
"value": 123
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Get replica machine metrics
Get GPU and system metrics from Prometheus for a specific inference replica.
Mirrors GET /execution//metrics but keyed on an inference
deployment’s replica. Uses replica.node_id as the Prometheus instance label.
curl --request GET \
--url https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lyceum.technology/api/v2/external/inference/replica/{replica_id}/machine-metrics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"replicaId": "<string>",
"hostname": "<string>",
"timeRange": {
"start": "<string>",
"end": "<string>"
},
"gpuUtilizationPercent": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuMemoryUtilizationPercent": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuTemperatureCelsius": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuPowerWatt": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuPowerLimitWatt": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuClockSmMhz": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuClockMemMhz": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuPcieThroughputRxBytesPerSec": [
{
"timestamp": "<string>",
"value": 123
}
],
"gpuPcieThroughputTxBytesPerSec": [
{
"timestamp": "<string>",
"value": 123
}
],
"systemRamTotalBytes": [
{
"timestamp": "<string>",
"value": 123
}
],
"systemRamUsedBytes": [
{
"timestamp": "<string>",
"value": 123
}
],
"systemCpuUsagePercent": [
{
"timestamp": "<string>",
"value": 123
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Pass an API key (prefixed lk_) or a JWT access token as a bearer token. Generate API keys in the dashboard at https://dashboard.lyceum.technology/api-keys.
Path Parameters
Query Parameters
ISO 8601 start timestamp (defaults to replica.created_at)
ISO 8601 end timestamp (defaults to replica.last_health_check if terminated, otherwise now)
Query resolution (e.g., '5s', '15s', '1m')
Response
Successful Response
Resource-agnostic machine-level GPU+system metrics response.
Time range for the metrics query.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes

