Returns a list of all metrics belonging to a thing template as per the specified criteria. This API is paginated and returns 20 metrics by default. An metric is uniquely identified by an 'metric_key'. This key should be used in all the other API referencing a particular metric.
| Param name | Description |
|---|---|
|
thing_template_key optional |
Key of thing template for which metrics to be fetched. This field is required Value: Must be a String |
|
page optional |
Page number of results to be fetched, Default 1 Value: Must be Integer. |
|
per optional |
Number of metrics to be returned in one page, Default 20 Value: Must be Integer. |
|
order_by optional |
Field on which metrics should be sorted Value: Must be a String |
|
order optional |
Order, “asc” or “desc”, in which results should be sorted Value: Must be a String |
|
search optional |
Keywords based on which metrics should be searched. Currently you can search metrics on - metric_key, name, tags or user_defined_properties Value: Must be a String |
|
scope optional |
Matching condition if multiple keywords are specified for search. Valid values are “all” or “any”. Default is “all” Value: Must be a String |
|
timestamp_format optional |
Format, “str” or “int”, in which timestamps should be returned, Default “int” Value: Must be a String |
|
pretty optional |
Return a pretty formatted response if true, Default is false Value: Must be a Boolean |
|
field_list optional |
List of fields required in the result. Value: Must be an array of any type |
|
is_oem optional |
Returns metrics of child accounts if is_oem flag is true. Value: Must be one of: <code>true</code>, <code>false</code>, <code>true</code>, <code>false</code>. |
Request - listing all metrics belonging to a thing template without any criteria
curl -X GET -H "Content-Type:application/json" -H "X-Auth-Token:olezAZXGQn9MutnfNerKDQ" -d '{"thing_template_key":"af31ae5fb2"}' https://api.datonis.io/api/v3/metrics
Response (returns first 20 records)
{
"total_count": 4,
"page": 1,
"metrics": [
{
"abbreviation": "capacity",
"created_at": 1448364456,
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "4f9b9764t7",
"name": "capacity",
"unit_of_measure": "kilogram",
"updated_at": 1448364456,
"treatments": [
],
"thing_template_key": "af31ae5fb2"
},
{
"abbreviation": "speed",
"created_at": 1448364456,
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "4tb363cc88",
"name": "maximum_rotational_speed",
"unit_of_measure": "RPM",
"updated_at": 1448364456,
"treatments": [
],...
Request - listing metrics belonging to a thing template by specifying number of metrics to be returned at a time (page size) and specific set to be returned (page)
curl -X GET -H "Content-Type:application/json" -H "X-Auth-Token:olezAZXGQn9MutnfNerKDQ" -d '{"thing_template_key":"af31ae5fb2","per":"2","page":"2"}' https://api.datonis.io/api/v3/metrics
Response (returns page 2 with 2 metrics per page)
{
"total_count": 4,
"page": "2",
"metrics": [
{
"abbreviation": "noise",
"created_at": 1448364456,
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "278t29123d",
"name": "noise_level",
"unit_of_measure": "dB",
"updated_at": 1448364456,
"treatments": [
],
"thing_template_key": "af31ae5fb2"
},
{
"abbreviation": "voltage",
"created_at": 1448364457,
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "492c52bf56",
"name": "voltage",
"unit_of_measure": "volt",
"updated_at": 1448364457,
"treatments": [
],
...
Request - listing metrics belonging to a thing template ordered by a field with string formatted timestamps
curl -X GET -H "Content-Type:application/json" -H "X-Auth-Token:olezAZXGQn9MutnfNerKDQ" -d '{"thing_template_key":"af31ae5fb2","timestamp_format":"str","order_by":"name","order":"desc"}' https://api.datonis.io/api/v3/metrics
Response (returns metrics in the reverse order of their name and timestamps in string format)
{
"total_count": 4,
"page": 1,
"metrics": [
{
"abbreviation": "voltage",
"created_at": "2015/11/24 11:27:37",
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "492c52bf56",
"name": "voltage",
"unit_of_measure": "volt",
"updated_at": "2015/11/24 11:27:37",
"treatments": [
],
"thing_template_key": "af31ae5fb2"
},
{
"abbreviation": "noise",
"created_at": "2015/11/24 11:27:36",
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "278t29123d",
"name": "noise_level",
"unit_of_measure": "dB",
"updated_at": "2015/11/24 11:27:36",
...
Request - listing metrics belonging to a thing template based on some search criteria with all keywords matching
curl -X GET -H "Content-Type:application/json" -H "X-Auth-Token:olezAZXGQn9MutnfNerKDQ" -d '{"thing_template_key":"af31ae5fb2","search":"capacity level"}' https://api.datonis.io/api/v3/metrics
Response (returns metrics containing both keywords 'capacity' as well as 'level')
{
"total_count": 0,
"page": 1,
"metrics": [
]
}
Request - listing metrics belonging to a thing template based on some search criteria with any of the keywords matching
curl -X GET -H "Content-Type:application/json" -H "X-Auth-Token:olezAZXGQn9MutnfNerKDQ" -d '{"thing_template_key":"af31ae5fb2","search":"capacity level","scope":"any"}' https://api.datonis.io/api/v3/metrics
Response (returns metrics containing either of the keywords 'capacity' or 'level')
{
"total_count": 2,
"page": 1,
"metrics": [
{
"abbreviation": "capacity",
"created_at": 1448364456,
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "4f9b9764t7",
"name": "capacity",
"unit_of_measure": "kilogram",
"updated_at": 1448364456,
"treatments": [
],
"thing_template_key": "af31ae5fb2"
},
{
"abbreviation": "noise",
"created_at": 1448364456,
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "278t29123d",
"name": "noise_level",
"unit_of_measure": "dB",
"updated_at": 1448364456,
"treatments": [
],
"thing_template_key": "af31ae5fb2"
}
]
}
Creates an metric with given parameters
| Param name | Description |
|---|---|
|
metric required |
Map containing details of the metric to be created, This map must contain thing_template_key Value: Must be a Hash |
|
pretty optional |
Return a pretty formatted response if true, Default is false Value: Must be a Boolean |
|
is_oem optional |
Create metric in child account by oem user if is_oem flag is true. Value: Must be a Boolean |
|
child_organisation_key optional |
Organisation key of child account where oem user wants to create metric. Required field if is_oem is present. Value: Must be a String |
Request
curl -X POST -H "Content-Type:application/json" -H "X-Auth-Token:olezAZXGQn9MutnfNerKDQ" -d '{"metric":{"name":"capacity","abbreviation":"capacity","description":"Metric for thing template Washing Machine","data_type":0,"unit_of_measure":"kilogram","thing_template_key":"af31ae5fb2"}}' https://api.datonis.io/api/v3/metrics
Response (containing details of the metric created)
{
"metric": {
"abbreviation": "capacity",
"created_at": 1448364456,
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "4f9b9764t7",
"name": "capacity",
"unit_of_measure": "kilogram",
"updated_at": 1448364456,
"treatments": [
],
"thing_template_key": "af31ae5fb2"
}
}
Get details of an metric
| Param name | Description |
|---|---|
|
pretty optional |
Return a pretty formatted response if true, Default is false Value: Must be a Boolean |
|
is_oem optional |
Show metric of child account if is_oem flag is true. Value: Must be one of: <code>true</code>, <code>false</code>, <code>true</code>, <code>false</code>. |
Request
curl -X GET -H "Content-Type:application/json" -H "X-Auth-Token:olezAZXGQn9MutnfNerKDQ" https://api.datonis.io/api/v3/metrics/4f9b9764t7
Response (containing details of the metric)
{
"metric": {
"abbreviation": "capacity",
"created_at": 1448364456,
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "4f9b9764t7",
"name": "capacity",
"unit_of_measure": "kilogram",
"updated_at": 1448364456,
"treatments": [
],
"thing_template_key": "af31ae5fb2"
}
}
Updates an metric with given parameters
| Param name | Description |
|---|---|
|
metric required |
Map containing details of the metric to be updated Value: Must be a Hash |
|
pretty optional |
Return a pretty formatted response if true, Default is false Value: Must be a Boolean |
|
is_oem optional |
Update metric in child account by oem user if is_oem flag is true. Value: Must be a Boolean |
|
child_organisation_key optional |
Organisation key of child account where oem user wants to update metric. Required field if is_oem is present. Value: Must be a String |
Request
curl -X PUT -H "Content-Type:application/json" -H "X-Auth-Token:olezAZXGQn9MutnfNerKDQ" -d '{"metric":{"unit_of_measure":"kg"}}' https://api.datonis.io/api/v3/metrics/4f9b9764t7
Response (containing details of the metric updated)
{
"metric": {
"abbreviation": "capacity",
"created_at": 1448364456,
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "4f9b9764t7",
"name": "capacity",
"unit_of_measure": "kg",
"updated_at": 1448428909,
"treatments": [
],
"thing_template_key": "af31ae5fb2"
}
}
Deletes an metric from the system
| Param name | Description |
|---|---|
|
pretty optional |
Return a pretty formatted response if true, Default is false Value: Must be a Boolean |
|
is_oem optional |
Delete metric in child account by oem user if is_oem flag is true. Value: Must be a Boolean |
Request
curl -X DELETE -H "Content-Type:application/json" -H "X-Auth-Token:olezAZXGQn9MutnfNerKDQ" https://api.datonis.io/api/v3/metrics/4f9b9764t7
Response
{
}
Creates treatments with given parameters
| Param name | Description |
|---|---|
|
treatments required |
Map containing details of the treatments to be created Value: Must be a Hash |
|
pretty optional |
Return a pretty formatted response if true, Default is false Value: Must be a Boolean |
|
is_oem optional |
Add treatment in child account by oem user if is_oem flag is true. Value: Must be a Boolean |
Request
curl -X POST -H "Content-Type:application/json" -H "X-Auth-Token:olezAZXGQn9MutnfNerKDQ" -d '{"treatments":{"RangeTreatment":{"_type":"Range","min":2,"max":10,"off_limit_treatment":0},"DerivedTreatment":{"_type":"DerivedTreatment","expression":"$event.data.metric_name * 3"}}}' https://api.datonis.io/api/v3/metrics/4f9b9764t7/add_treatments
Response (containing details of the metric added treatment)
{
"metric": {
"abbreviation": "capacity",
"created_at": 1448364456,
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "4f9b9764t7",
"name": "capacity",
"unit_of_measure": "kilogram",
"updated_at": 1448364456,
"treatments": {
"{\"RangeTreatment\"=>{\"_type\"=>\"Range\", \"min\"=>2, \"max\"=>10, \"off_limit_treatment\"=>0}, \"DerivedTreatment\"=>{\"_type\"=>\"DerivedTreatment\", \"expression\"=>\"$event.data.metric_name * 3\"}}": null
},
"thing_template_key": "af31ae5fb2"
}
}
Updates treatments belonging to this given metric with given parameters
| Param name | Description |
|---|---|
|
treatments required |
Map containing details of the treatments to be updated Value: Must be a Hash |
|
pretty optional |
Return a pretty formatted response if true, Default is false Value: Must be a Boolean |
|
is_oem optional |
Update treatment in child account by oem user if is_oem flag is true. Value: Must be a Boolean |
|
child_organisation_key optional |
Organisation key of child account where oem user wants to update treatment. Required field if is_oem is present. Value: Must be a String |
Request
curl -X PUT -H "Content-Type:application/json" -H "X-Auth-Token:olezAZXGQn9MutnfNerKDQ" -d '{"treatments":{"RangeTreatment":{"_type":"Range","min":2,"max":10,"off_limit_treatment":0},"DerivedTreatment":{"_type":"DerivedTreatment","expression":"$event.data.metric_name * 3"}}}' https://api.datonis.io/api/v3/metrics/4f9b9764t7/update_treatments
Response (containing details of the metric updated)
{
"metric": {
"abbreviation": "capacity",
"created_at": 1448364456,
"data_type": 0,
"description": "Metric for thing template Washing Machine",
"metric_key": "4f9b9764t7",
"name": "capacity",
"unit_of_measure": "kg",
"updated_at": 1448428909,
"treatments": "{\"treatments\":{ \"RangeTreatment\" : {\"_type\" : \"Range\", \"min\" : 2, \"max\" : 10, \"off_limit_treatment\" : 0}, \"DerivedTreatment\" : {\"_type\" : \"DerivedTreatment\", \"expression\" : \"$event.data.metric_name * 3\"}}}",
"thing_template_key": "af31ae5fb2"
}
}
Deletes treatments belonging to given metric from the system
| Param name | Description |
|---|---|
|
pretty optional |
Return a pretty formatted response if true, Default is false Value: Must be a Boolean |
|
treatment_keys required |
Array containing treatment keys to be deleted Value: Must be an array of any type |
|
is_oem optional |
Delete treatments in child account by oem user if is_oem flag is true. Value: Must be a Boolean |
Request
curl -X DELETE -H "Content-Type:application/json" -H "X-Auth-Token:olezAZXGQn9MutnfNerKDQ" -d '{"treatment_keys":["123456","125896"]}' https://api.datonis.io/api/v3/metrics/4f9b9764t7/delete_treatments
Response
{
}