Querying Chart Data
Return Chart Data
The charts endpoint allows you to query for chart data out of HyperDX.
Request
POST /api/v1/chart/series
Request Body Parameters
startTime
- (Number) Start time in milliseconds since epoch
endTime
- (Number) End time in milliseconds since epoch
granularity
- (String, Optional) Granularity of each time window. Omitting
this will return all data aggregated across the entire time range. Valid values:
30 second
, 1 minute
, 5 minute
, 10 minute
, 15 minute
, 30 minute
,
1 hour
, 2 hour
, 6 hour
, 12 hour
, 1 day
, 2 day
, 7 day
, 30 day
.
seriesReturnType
- (String, Optional) Whether to return each series as a
column
, or to treat the first two series as a ratio
.
Series
series
- (Series[]) An array of series to query for (max 5). Each series is an
object with the following properties:
series.dataSource
- (String) Whether to query for metrics
or for events
(logs and spans).
series.aggFn
- (String) How to aggregate the data. Valid values: avg
,
count
, count_distinct
, max
, min
, p50
, p90
, p95
, p99
, sum
.
Sum-type metrics (opens in a new tab)
also support (avg|max|min|p50|p90|p95|p99|sum)_rate
aggregations as well to
treat the metric as a rate.
series.field
- (String, Optional) The event field or metric name to query for,
not required for count
aggregations. (ex. level
)
series.where
- (String) A search query to filter the data by,
leave as empty if a filter is not required. (ex. level:err
)
series.groupBy
- (String[]) An array of fields to group by (ex.
[level, service]
). All series must have the same exact value.
series.metricDataType
- (String, Optional) Required for metric data, whether
to query for Sum
, Gauge
, or Histogram
type.
Request Example
curl --request POST \
--url https://api.hyperdx.io/api/v1/charts/series \
--header 'Authorization: Bearer YOUR_PERSONAL_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"series": [
{
"dataSource": "events",
"aggFn": "sum",
"field": "hyperdx_event_size",
"where": "level:err",
"groupBy": ["service"]
},
{
"dataSource": "events",
"aggFn": "count",
"field": "",
"where": "",
"groupBy": ["service"]
}
],
"endTime": 1706135088919,
"startTime": 1706131488903,
"granularity": "1 minute",
"seriesReturnType": "column"
}'
Response
Response Parameters
data
- (Object[]) An array of objects, each object represents a time window.
data.ts_bucket
- (Number) The start time of the time window in milliseconds
since epoch.
data.series_N.data
- (Number) The value of the series at the given time
window. The series numbering are returned in the same order as they were
requested.
data.group
- (String[]) The group by values for the given time window.
Response Example
{
"data": [
{
"series_0.data": 852,
"series_1.data": 2,
"group": ["hdx-oss-dev-api"],
"ts_bucket": 1706131440000
},
{
"series_0.data": 364980,
"series_1.data": 254,
"group": ["hdx-oss-dev-task"],
"ts_bucket": 1706131500000
}
]
}