Usage Filtering
Query Usage data
https://docs.amberflo.io/reference/post_usage
Usage API payload:
Property | Description | Required |
---|---|---|
meterApiName | meterApiName as defined in meter-definition API | Yes |
aggregation | Aggregation function: 'SUM', 'COUNT', 'MIN', 'MAX' | Yes |
timeGroupingInterval | Valid time-slot or bucket size: 'HOUR', 'DAY', 'WEEK', 'MONTH' | Yes |
timeRange.startTimeInSeconds | Start date time represented as seconds since the Unix Epoch (1970-01-01T00:00:00Z) and using UTC. For example, 1619293642 => 2021-04-26T20:03:33.263Z | Yes |
timeRange.endTimeInSeconds | Optional. The end of search time range. | No |
groupBy | Defines the groupBy attributes for aggregating the data. If no groupBy is defined, the data will be aggregated for the meter as a whole. Valid groups: customerId or Any dimension defined in meter-definition API (for example: region, customerType). | No |
filter | where clause for the usage query. Valid filters: customerId or Any dimension defined in meter-definition API (for example: region, customerType). | No |
take | Setting for result set. "limit": number of records "isAscending" (default is false) | No |
POST https://app.amberflo.io/usage-java
{
"meterApiName": "ApiCalls",
"aggregation": "SUM",
"timeGroupingInterval": "Day",
"timeRange": {
"startTimeInSeconds": 1619293642
},
"filter": { "customerId": ["xxx", "yyy"]},
"groupBy": ["customerId"],
"take": {
"limit": 10,
"isAscending": false
}
}
API response breakdown:
Segment | Description |
---|---|
metadata | Embeds the usage query payload from the request for reference purposes |
secondsSinceEpochIntervals | Buckets or time-slots with the starting at time in seconds since the Unix Epoch (1970-01-01T00:00:00Z) and using UTC for time representation The query was run for usage activity in last 2 days with start time at 1619293642 => 2021-04-26T20:03:33.263Z In this example, following are the buckets: 1619222400 => 2021-04-24T00:00:00.000Z 1619308800 => 2021-04-25T00:00:00.000Z 1619395200 => 2021-04-26T00:00:00.000Z |
clientMeters | An array for each aggregation group as defined by groupBy and filter in the usage query |
clientMeters[x].group.groupInfo | Includes group info, group name and value by which the data is aggregated. If groupBy was not set in request query, this will be null. |
clientMeters[x].group.groupValue | Aggregated value for the group for all buckets |
clientMeters[x].group.values | Per bucket aggregate as listed in secondsSinceEpochIntervals |
clientMeters[x].group.values.percentageFromPrevious | Percent change from previous bucket |
Sample API response:
{
"metadata": {
"account": null,
"meterApiName": "ApiCalls",
"aggregation": "sum",
"timeRange": {
"startTimeInSeconds": 1619294851,
"endTimeInSeconds": 1619467650
},
"filter": {
"customerId": [
"xxx",
"yyy"
]
},
"groupBy": [
"customerId"
],
"take": {
"limit": 10,
"isAscending": false
},
"timeGroupingInterval": "day"
},
"secondsSinceEpochIntervals": [
1619222400,
1619308800,
1619395200
],
"clientMeters": [
{
"group": {
"groupInfo": {
"customerId": "xxx"
}
},
"groupValue": 23645.0,
"values": [
{
"percentageFromPrevious": 0.0,
"value": 0.0,
"secondsSinceEpochUtc": 1619222400
},
{
"percentageFromPrevious": 100.0,
"value": 4040.0,
"secondsSinceEpochUtc": 1619308800
},
{
"percentageFromPrevious": 385.2722772277228,
"value": 19605.0,
"secondsSinceEpochUtc": 1619395200
}
]
},
{
"group": {
"groupInfo": {
"customerId": "yyy"
}
},
"groupValue": 22608.0,
"values": [
{
"percentageFromPrevious": 0.0,
"value": 0.0,
"secondsSinceEpochUtc": 1619222400
},
{
"percentageFromPrevious": 100.0,
"value": 2507.0,
"secondsSinceEpochUtc": 1619308800
},
{
"percentageFromPrevious": 701.7949740725967,
"value": 20101.0,
"secondsSinceEpochUtc": 1619395200
}
]
}
]
}
Updated 9 months ago