List metrics

The org's serverless dashboard over a window: a per-function invocation costLine and how those invocations ended.

GET /v1/function/metrics

Addresshttps://api.hanzo.ai/v1/function/metrics
MethodGET
Operationget_function_metrics
AuthAuthorization: Bearer $HANZO_API_KEY

The org's serverless dashboard over a window: a per-function invocation costLine and how those invocations ended.

Every point is a REAL count of rows that fell in that bucket — nothing is interpolated or invented, so an empty window draws a flat line rather than a fabricated one.

costCents is null and stays null: there is no per-invocation cost source to read, and reporting a number computed some other way would be a guess presented as a measurement. Requires a validated principal; the read is scoped to its org.

Request

1 field.

FieldInTypeRequiredDescription
rangequerystring—Range is 1H, 6H, 24H (the default), 7D or 30D.

Response

StatusBodyMeaning
200function.usageok
defaultproblem-detailsrefused

200 body — 10 fields.

FieldInTypeAlwaysDescription
costCentsbodyinteger (int64)—null — no per-invocation cost source
seriesbodyfunction.costLine[]—one line per function that ran in the window
series[].keybodystring—the function the line is about
series[].pointsbodyfunction.pointView[]—one point per bucket, oldest first
series[].points[].tbodystring—the bucket's start, RFC3339 (UTC)
series[].points[].vbodyinteger (int64)—how many invocations fell in it — a real count, never interpolated
statusbodyfunction.statusBreakdown—
status.errorbodyinteger (int64)—invocations that ran and failed
status.successbodyinteger (int64)—invocations whose code ran and wrote nothing to stderr
status.timeoutbodyinteger (int64)—invocations that hit their configured deadline

Failure carries the platform error shape — see Errors.

Examples

hanzo function metrics
import { Configuration, FunctionApi } from 'hanzoai';

const api = new FunctionApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getFunctionMetrics();
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import FunctionApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = FunctionApi(client).get_function_metrics()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.FunctionAPI.GetFunctionMetrics(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, function_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = function_api::get_function_metrics(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.FunctionApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new FunctionApi(client).getFunctionMetrics();
curl https://api.hanzo.ai/v1/function/metrics \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches function through the function tool, which names its 10 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_functions"
         }
       }
     }'

Function API · All Hanzo APIs · Interactive reference

Was this page useful?