Skip to content

Create a metric type

POST
/metric-types
curl --request POST \
--url https://example.com/api/v1/metric-types \
--header 'Content-Type: application/json' \
--data '{ "data_type": "int", "description": "example", "label": "example", "name": "example", "precision": 1, "unit": "example" }'

Registers a custom metric type (official=false). The name must be a valid metric key. Gated by metric_type:create.

Media type application/json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
data_type
required

The value type; a metric is always a number

string
Allowed values: int float
description

What the series measures

string
label

A human label

string
name
required

The metric type name (lowercase kebab)

string
>= 1 characters
precision

Decimal places a rendered value keeps

integer format: int64
unit

The display unit of the series (ms, dB, percent)

string

Created

Media type application/json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
data_type
required
string
description
string
id
required

The metric type’s uuid, the stable form the contract and telemetry keys store

string
label
string
name
required
string
official
required
boolean
precision

Decimal places a rendered value keeps

integer format: int64
unit

The display unit of the series (ms, dB, percent)

string
writer_class
required

Who may write this key (ADR-0161): node-probe (a node’s own probe or session machine, under the endpoint it probed), platform (the Omniglass process itself: the health rollup), calc (the calc rule that outputs it), or collected (a driver’s emits or a push, and a command’s or an operator’s value). The Storage Gateway refuses any write whose writer the class does not admit

string
Allowed values: node-probe platform calc collected
written_by

The calc rule that writes this metric, absent when none does (one enabled rule writes a key; a disabled writer is named when no rule is enabled)

object
rule
required

The calc rule’s name now

string
rule_id
required

The calc rule’s uuid

string
Example
{
"$schema": "/api/v1/schemas/MetricTypeBody.json",
"writer_class": "node-probe"
}

Error

Media type application/problem+json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
detail

A human-readable explanation specific to this occurrence of the problem.

string
errors

Optional list of individual error details

Array<object> | null
object
location

Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’

string
message

Error message text

string
value

The value at the given location

instance

A URI reference that identifies the specific occurrence of the problem.

string format: uri
status

HTTP status code

integer format: int64
title

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

string
type

A URI reference to human-readable documentation for the error.

string format: uri
default: about:blank
Example
{
"$schema": "/api/v1/schemas/ErrorModel.json",
"detail": "Property foo is required but is missing.",
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "about:blank"
}