Executes a composite query over a time range: builder queries over traces, logs…
Executes a composite query over a time range: builder queries over traces, logs and metrics, formulas, trace operators, PromQL and Datastore SQL,…
POST /v1/o11y/query_range
| Address | https://api.hanzo.ai/v1/o11y/query_range |
| Method | POST |
| Operation | post_o11y_query_range |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Executes a composite query over a time range: builder queries over traces, logs and metrics, formulas, trace operators, PromQL and Datastore SQL, answering time series, scalars or raw records as the request type asks.
Callers need the viewer role; the runtime's own gate enforces it.
Request
16 fields, body application/json (required).
| Field | In | Type | Required | Description |
|---|---|---|---|---|
compositeQuery | body | o11y.querybuildertypesv5.CompositeQuery | — | |
compositeQuery.queries | body | o11y.QueryEnvelope[] | — | Queries is the queries to use for the request. |
compositeQuery.queries[].spec | body | object | — | Spec is the deferred decoding of the query if any. |
compositeQuery.queries[].type | body | any | — | Type is the type of the query. |
end | body | integer | — | End is the end time of the query in epoch milliseconds. |
formatOptions | body | o11y.FormatOptions | — | |
formatOptions.fillGaps | body | boolean | — | |
formatOptions.formatTableResultForUI | body | boolean | — | |
noCache | body | boolean | — | NoCache is a flag to disable caching for the request. |
requestType | body | any | — | RequestType is the type of the request. |
schemaVersion | body | string | — | SchemaVersion is the version of the schema to use for the request payload. |
start | body | integer | — | Start is the start time of the query in epoch milliseconds. |
variables | body | object | — | Variables is the variables to use for the request. |
variables.* | body | o11y.VariableItem | — | |
variables.*.type | body | any | — | |
variables.*.value | body | object | — |
Response
| Status | Body | Meaning |
|---|---|---|
200 | o11y.O11yQueryRangeOut | ok |
200 body — 2 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
data | body | any | — | Data is the query result — the result type, the result set, execution stats and any warning — as the engine rendered it. |
status | body | string | — | Status is "success". |
Failure carries the platform error shape — see Errors.
Examples
hanzo o11y query_range createimport { Configuration, O11yApi } from 'hanzoai';
const api = new O11yApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postO11yQueryRange({ compositeQuery: {"queries":[{"spec":{},"type":"<type>"}]}, end: 0 });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_query_range(composite_query={"queries":[{"spec":{},"type":"<type>"}]}, end=0)cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.O11yAPI.PostO11yQueryRange(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_query_range(&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).postO11yQueryRange();curl -X POST https://api.hanzo.ai/v1/o11y/query_range \
-H "Authorization: Bearer $HANZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"compositeQuery": {
"queries": [
{
"spec": {},
"type": "<type>"
}
]
},
"end": 0
}'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?