Create metric reduction rules

Creates a volume-control rule for a metric and returns it with its id; a metric that already has a rule is refused.

POST /v1/o11y/metric_reduction_rules

Addresshttps://api.hanzo.ai/v1/o11y/metric_reduction_rules
MethodPOST
OperationCreateMetricReductionRule
AuthAuthorization: Bearer $HANZO_API_KEY

Creates a volume-control rule for a metric and returns it with its id; a metric that already has a rule is refused.

Request

3 fields, body application/json (required).

FieldInTypeRequiredDescription
labelsbodystring[]yesLabels are the label names the rule matches.
matchTypebodystringyesMatchType is drop or keep: drop the named labels, or keep only them.
metricNamebodystringyesMetricName is the metric the rule governs; one rule per metric.

Response

StatusBodyMeaning
201o11y.O11yReductionRuleOutcreated
202Approvalheld for approval
defaultproblem-detailsrefused

201 body — 16 fields.

FieldInTypeAlwaysDescription
databodyo11y.O11yReductionRule—
data.activebodyboolean—Active says whether the rule is in force.
data.createdAtbodystring (date-time)—CreatedAt is when the rule was created.
data.createdBybodystring—CreatedBy is who created it.
data.effectiveFrombodystring (date-time)—EffectiveFrom is when the rule took effect.
data.idbodystring—ID is the rule's id.
data.ingestedSamplesbodyinteger (uint64)—IngestedSamples is how many samples arrived while the rule was active.
data.ingestedSeriesbodyinteger (uint64)—IngestedSeries is how many series arrived while the rule was active.
data.labelsbodystring[]—Labels are the label names the rule matches.
data.matchTypebodystring—MatchType is drop or keep.
data.metricNamebodystring—MetricName is the metric the rule governs.
data.retainedSamplesbodyinteger (uint64)—RetainedSamples is how many of them were kept.
data.retainedSeriesbodyinteger (uint64)—RetainedSeries is how many of them were kept.
data.updatedAtbodystring (date-time)—UpdatedAt is when the rule last changed.
data.updatedBybodystring—UpdatedBy is who last changed it.
statusbodystring—Status is "success".

Failure carries the platform error shape — see Errors.

Examples

hanzo o11y metric_reduction_rules create \
  --labels '["<labels>"]' \
  --match-type <matchType> \
  --metric-name <metricName>
import { Configuration, O11yApi } from 'hanzoai';

const api = new O11yApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.createMetricReductionRule({ metricName: "<metricName>", matchType: "<matchType>", labels: ["<labels>"] });
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).create_metric_reduction_rule(metric_name="<metricName>", match_type="<matchType>", labels=["<labels>"])
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.O11yAPI.CreateMetricReductionRule(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::create_metric_reduction_rule(&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).createMetricReductionRule();
curl -X POST https://api.hanzo.ai/v1/o11y/metric_reduction_rules \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "metricName": "<metricName>",
       "matchType": "<matchType>",
       "labels": [
         "<labels>"
       ]
     }'

Tool o11y, op CreateMetricReductionRule — 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": "CreateMetricReductionRule",
           "input": {
             "metricName": "<metricName>",
             "matchType": "<matchType>",
             "labels": [
               "<labels>"
             ]
           }
         }
       }
     }'

O11y API · All Hanzo APIs · Interactive reference

Was this page useful?