Skip to main content

Metrics API

Send and query time-series metrics data.

Send Metric

name
string
required
Metric name (lowercase, dot-separated)
value
number
required
Metric value
timestamp
string
ISO 8601 timestamp. Defaults to current time.
tags
object
Key-value pairs for filtering and grouping
curl -X POST https://api.itsfriday.in/v1/metrics/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "api.request.duration.ms",
    "value": 42.5,
    "timestamp": "2024-01-15T10:30:00Z",
    "tags": {
      "endpoint": "/users",
      "method": "GET",
      "status": "200"
    }
  }'

Response

{
  "data": {
    "accepted": true
  },
  "meta": {
    "request_id": "req_abc123"
  }
}

Send Batch Metrics

Send multiple metrics in a single request.
curl -X POST https://api.itsfriday.in/v1/metrics/batch/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "metrics": [
      {
        "name": "api.request.count",
        "value": 1,
        "tags": {"endpoint": "/users"}
      },
      {
        "name": "api.request.duration.ms",
        "value": 45.2,
        "tags": {"endpoint": "/users"}
      }
    ]
  }'

Response

{
  "data": {
    "accepted": 2,
    "failed": 0
  }
}

Query Metrics

Query aggregated metrics data.
name
string
required
Metric name to query
from
string
required
Start time (ISO 8601)
to
string
required
End time (ISO 8601)
aggregation
string
default:"avg"
Aggregation function: sum, avg, min, max, count, p50, p95, p99
interval
string
default:"1h"
Time bucket size: 1m, 5m, 15m, 1h, 1d
group_by
string
Comma-separated tag names to group by
curl -G "https://api.itsfriday.in/v1/metrics/query/" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "name=api.request.duration.ms" \
  --data-urlencode "from=2024-01-15T00:00:00Z" \
  --data-urlencode "to=2024-01-16T00:00:00Z" \
  --data-urlencode "aggregation=avg" \
  --data-urlencode "interval=1h" \
  --data-urlencode "group_by=endpoint"

Response

{
  "data": {
    "series": [
      {
        "tags": {"endpoint": "/users"},
        "datapoints": [
          {"timestamp": "2024-01-15T00:00:00Z", "value": 42.5},
          {"timestamp": "2024-01-15T01:00:00Z", "value": 38.2},
          {"timestamp": "2024-01-15T02:00:00Z", "value": 45.8}
        ]
      },
      {
        "tags": {"endpoint": "/orders"},
        "datapoints": [
          {"timestamp": "2024-01-15T00:00:00Z", "value": 125.3},
          {"timestamp": "2024-01-15T01:00:00Z", "value": 118.7}
        ]
      }
    ]
  }
}

List Available Metrics

Get a list of all metric names.
curl -G "https://api.itsfriday.in/v1/metrics/names/" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "data": {
    "names": [
      "api.request.count",
      "api.request.duration.ms",
      "api.error.count"
    ]
  }
}

Get Tag Values

Get possible values for a metric tag.
curl -G "https://api.itsfriday.in/v1/metrics/tags/" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "name=api.request.count" \
  --data-urlencode "tag=endpoint"

Response

{
  "data": {
    "values": ["/users", "/orders", "/products"]
  }
}