OpenapiO11y
Lists the instrumented services seen in the window, each with the request…
Lists the instrumented services seen in the window, each with the request profile of its entry-point spans: p99 and average latency, call and error rates,…
POST /v1/o11y/services
| Address | https://api.hanzo.ai/v1/o11y/services |
| Method | POST |
| Operation | post_o11y_services |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Lists the instrumented services seen in the window, each with the request profile of its entry-point spans: p99 and average latency, call and error rates, and the entry-point operations the numbers were computed over.
Request
9 fields, body application/json (required).
| Field | In | Type | Required | Description |
|---|---|---|---|---|
end | body | string | — | End is the window's end, epoch nanoseconds as a string. |
start | body | string | — | Start is the window's start, epoch nanoseconds as a string. |
tags | body | o11y.O11yServiceTag[] | — | Tags narrow the spans counted, each a span-attribute predicate. |
tags[].BoolValues | body | boolean[] | — | BoolValues are the boolean operands, when the attribute is a bool. |
tags[].Key | body | string | — | Key is the span attribute to test. |
tags[].NumberValues | body | number[] | — | NumberValues are the numeric operands, when the attribute is a number. |
tags[].Operator | body | string | — | Operator is how to test it, e.g. |
tags[].StringValues | body | string[] | — | StringValues are the string operands, when the attribute is a string. |
tags[].TagType | body | string | — | TagType says which plane the attribute lives on, e.g. |
Response
| Status | Body | Meaning |
|---|---|---|
200 | o11y.O11yServicesOut | ok |
200 body — 13 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
data | body | o11y.O11yService[] | — | Data holds one entry per service. |
data[].avgDuration | body | number | — | AvgDuration is their average latency, nanoseconds. |
data[].callRate | body | number | — | CallRate is calls per second over the window. |
data[].dataWarning | body | o11y.O11yServiceWarning | — | |
data[].dataWarning.topLevelOps | body | string[] | — | TopLevelOps are the entry-point operations the profile was computed over. |
data[].errorRate | body | number | — | ErrorRate is the percentage of calls that errored. |
data[].fourXXRate | body | number | — | FourXXRate is the percentage of calls that answered 4xx. |
data[].num4XX | body | integer | — | Num4XX is how many of the calls answered 4xx. |
data[].numCalls | body | integer | — | NumCalls is how many entry-point spans landed in the window. |
data[].numErrors | body | integer | — | NumErrors is how many of the calls errored. |
data[].p99 | body | number | — | Percentile99 is the p99 latency of its entry-point spans, nanoseconds. |
data[].serviceName | body | string | — | ServiceName is the service. |
status | body | string | — | Status is "success". |
Failure carries the platform error shape — see Errors.
Examples
hanzo o11y services createimport { Configuration, O11yApi } from 'hanzoai';
const api = new O11yApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postO11yServices({ end: "<end>", start: "<start>" });from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import O11yApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = O11yApi(client).post_o11y_services(end="<end>", start="<start>")cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.O11yAPI.PostO11yServices(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, o11y_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = o11y_api::post_o11y_services(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.O11yApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new O11yApi(client).postO11yServices();curl -X POST https://api.hanzo.ai/v1/o11y/services \
-H "Authorization: Bearer $HANZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"end": "<end>",
"start": "<start>"
}'The door reaches o11y through the o11y tool, which names its 340 operations with its own verbs — this one among them, under a name only the door 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": "get_o11y_alert_last"
}
}
}'How is this guide?