When the data is sent to downstream systems, also known as flush of the record, a record in json format will be sent for each meter associated with the Meter processor.
These are the fields which are sent to downstream systems:
Field | Purpose |
---|---|
id | The unique ID of meter. |
userId | Unique ID of the user the meter belongs to, for example an email address, user name or MSISDN number. |
meterTypeId | The unique ID of the meter type that the meter aggregate usage for. |
meterTypeName | Name of the meter type this meter is created using. |
timezone | The timezone that should be applied for reset time. Defined on the meter type of this meter. |
meterKey | The meter key for the Meter processor aggregating the usage for the meter. |
value | The current value of the meter, updated based on guiding rules and aggregation type defined on meter type. |
unit | Unit which this meter is measuring. Defined on the meter type of this meter. |
createdAt | UTC timestamp of when meter was created. |
updatedAt | UTC timestamp of when meter was last updated. |
periodStart | UTC timestamp from when the metering period has started. This is calculated based on when last period has ended. |
periodEnd | UTC timestamp when the metering period has ended. This is calculated based on reset schedule. |
groups | Granular breakdown of the aggregated values, grouped by the guiding rules defined in the Meter Configuration . Each group is represented by an array containing the parameters |
carryFirst | First occurrence of one or many fields that should be carried over from usage record. Configured in other operations in Meter Configuration |
carryLast | Last occurrence of one or many fields that should be carried over from usage record. Configured in other operations in Meter Configuration |
deleteOnReset | If true, the meter will be deleted when ongoing metering period ends. Can be updated using update Meter API. |
meterMetaData | Additional meta information related to usage ingestion example, datetime when the first and last record matched this meter. |
Example of metered output record:
{ "carryFirst": { "country": "Norway" }, "carryLast": { "timestamp": "2023-07-05T22:01:04.431Z" }, "createdAt": "2023-07-01T00:00:00.000Z", "deleteOnReset": false, "groups": [ { "fields": { "API name": "createUser" }, "key": "API name:createUser", "value": 10 }, { "fields": { "API name": "updateCounter" }, "key": "API name:updateCounter", "value": 15 } ], "id": "8a76066d-ff29-417c-a18e-abde22e44310", "meterKey": "a1f8797b-c827-4483-b6cf-6d3d3baa18a7", "meterMetaData": { "firstEvent": "2023-07-01T13:37:11.111Z", "lastEvent": "2023-07-05T22:01:04.431Z" }, "meterTypeId": "645ed240-02b5-400c-9a3c-21857e8f2ac4", "meterTypeName": "Usage based API counter", "periodEnd": "2023-08-01T00:00:00.000Z", "periodStart": "2023-07-01T00:00:00.000Z", "timezone": "Etc/UTC", "unit": "requests", "updatedAt": "2023-07-05T22:01:04.431Z", "userId": "user0@example.com", "value": 25 }