Create a metric

Returns a newly created metric.

POST https://telemetry.betterstack.com/api/v2/sources/{source_id}/metrics

URL parameters

source_id
required integer

Headers

Authorization
required string

Body parameters

team_name
string
name
required string
sql_expression
required string
aggregations
array
type
required string
201

Response body

{
  "data": {
    "id": "g-123",
    "type": "metric",
    "attributes": {
      "name": "level",
      "sql_expression": "JSONExtract(json, 'level', 'Nullable(String)')",
      "aggregations": [

      ],
      "type": "string_low_cardinality"
    }
  }
}

Example cURL

Non-agreggated metric Agreggated metric
curl --request POST \
  --url https://telemetry.betterstack.com/api/v2/sources/123/metrics \
  --header "Authorization: Bearer $TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "log_type",
    "sql_expression": "getJSON(raw, '\''message_json.log_type'\'')",
    "type": "string_low_cardinality"
  }'
curl --request POST \
  --url https://telemetry.betterstack.com/api/v2/sources/123/metrics \
  --header "Authorization: Bearer $TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "duration_ms",
    "sql_expression": "getJSON(raw, '\''message_json.duration_ms'\'')",
    "aggregations": ["avg", "p95", "min", "max"],
    "type": "float64_delta"
  }'