List metric metadata

Serves the OLDER /metric/metric_metadata route.

GET /v1/o11y/metric/metric_metadata

Addresshttps://api.hanzo.ai/v1/o11y/metric/metric_metadata
MethodGET
Operationget_o11y_metric_metric_metadata
AuthAuthorization: Bearer $HANZO_API_KEY

Serves the OLDER /metric/metric_metadata route. It is NOT the same op as metrics.go's metricMetadata (/metrics/metadata): different path, different input (this one also scopes by service). Two slices named one Go function for two routes; the route is the identity, so the name follows it. Renamed rather than merged — collapsing them would silently drop the service scope this one accepts. It returns one metric's metadata — its type, unit, description, temporality, monotonicity and histogram buckets — optionally scoped to the metric as one service reports it.

Callers need the viewer role; the runtime's own gate enforces it.

Request

2 fields.

FieldInTypeRequiredDescription
metricNamequerystring—MetricName is the metric to read.
serviceNamequerystring—ServiceName scopes the metadata to the metric as one service reports it.

Response

StatusBodyMeaning
200o11y.O11yMetricMetadataOutok
202Approvalheld for approval
defaultproblem-detailsrefused

200 body — 7 fields.

FieldInTypeAlwaysDescription
databodyo11y.O11yMetricMetadata—
data.descriptionbodystring—Description describes the metric.
data.isMonotonicbodyboolean—IsMonotonic marks a sum that only ever increases.
data.temporalitybodystring—Temporality is delta or cumulative.
data.typebodystring—Type is the metric type, e.g. gauge, sum, histogram.
data.unitbodystring—Unit is the metric's unit.
statusbodystring—Status is "success".

Failure carries the platform error shape — see Errors.

Examples

hanzo o11y metric metric_metadata
import { Configuration, O11yApi } from 'hanzoai';

const api = new O11yApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getO11yMetricMetricMetadata();
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).get_o11y_metric_metric_metadata()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.O11yAPI.GetO11yMetricMetricMetadata(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::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::get_o11y_metric_metric_metadata(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.O11yApi;

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

var result = new O11yApi(client).getO11yMetricMetricMetadata();
curl https://api.hanzo.ai/v1/o11y/metric/metric_metadata \
  -H "Authorization: Bearer $HANZO_API_KEY"

Tool o11y, op get_o11y_metric_metric_metadata — POST the JSON-RPC envelope to https://api.hanzo.ai/v1/mcp.

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

O11y API · All Hanzo APIs · Interactive reference

Was this page useful?