# Get storage at current moment for a stream.
curl \
  --request GET \
  --url "https://aws.s2.dev/v1/metrics/${BASIN}/${STREAM}?set=storage&start=$(date +%s)&end=$(date +%s)" \
  --header "Authorization: Bearer ${S2_ACCESS_TOKEN}" \
| jq
{
  "values": [
    {
      "gauge": {
        "name": "metered_size",
        "unit": "bytes",
        "values": [
          [
            1748473860,
            589.0
          ]
        ]
      }
    }
  ]
}

Metric sets

Metric sets are groupings of metrics evaluated either at the account, basin, or stream level. For example, the account-level active-basins metric set can be obtained with:

curl \
  --request GET \
  --url "https://aws.s2.dev/v1/metrics?set=active-basins&start=${START}&end=${END}" \
  --header "Authorization: Bearer ${S2_ACCESS_TOKEN}"

Common parameters

  • set specifies the requested metric set
  • start and end timestamps, in Unix epoch seconds
    • The time period specified should not exceed 30 days
    • The end timestamp should not be in the future (though some leeway is given to accommodate clock differences)
  • interval represents a duration for use by metric sets that return timeseries
    • for accumulation, this specifies the requested bucket length, or the window of time which the relevant value is an aggregation over
    • for gauge, this specifies the unit to divide the start/end period into, and the timeseries will reflect a momentary reading at each of these divisions of time

Metric types

scalar

Represents a single numeric value. Can represent a summary, or aggregation, if the metric set requires a start and end period, or an instantaneous value if not.

accumulation

Timeseries where each (epoch, value) tuple represents an aggregation value for a bucket of time beginning at the epoch, lasting for the specified bucket_length.

Buckets within the time period which have no data will be omitted (unlike with GaugeTimeseries).

gauge

Timeseries where each (epoch, value) tuple represents a momentary reading of a value, at the specified epoch instance.

Gauge timeseries will contain entries for every interval within the requested time period.

label

A set of string labels representing a set. It can represent a summary or aggregation if the metric set requires a start and end period, or an instantaneous set if not.

# Get storage at current moment for a stream.
curl \
  --request GET \
  --url "https://aws.s2.dev/v1/metrics/${BASIN}/${STREAM}?set=storage&start=$(date +%s)&end=$(date +%s)" \
  --header "Authorization: Bearer ${S2_ACCESS_TOKEN}" \
| jq
{
  "values": [
    {
      "gauge": {
        "name": "metered_size",
        "unit": "bytes",
        "values": [
          [
            1748473860,
            589.0
          ]
        ]
      }
    }
  ]
}