Расширения / Разработка / Расширения / Метрики состояний
Используйте состояния, чтобы понять состояние любого устройства, контролируемого расширением АктивногоШлюза.
Определение состояний
См. этот пример определения состояния в JSON:
{
"name": "custom.remote.python.my_plugin",
"version": "1.001",
"type": "python",
"entity": "CUSTOM_DEVICE",
"metricGroup": "my_plugin",
"processTypeNames": ["PYTHON"],
"technologies": ["example technology"],
"source": {
"package": "my_plugin",
"className": "MyPlugin",
"activation": "Remote"
},
"metrics": [
{
"entity": "CUSTOM_DEVICE",
"statetimeseries": {
"key": "my_state",
"states": ["OK", "Troubles", "Bad"],
"dimensions": [],
"displayname": "My state"
}
}
],
"ui": {
"keymetrics": [
{
"key": "my_state",
"displayname": "My state",
"statemetric": true
}
],
"charts": [
{
"group": "States",
"title": "My state",
"series": [
{
"key": "my_state",
"displayname": " ",
"seriestype": "bar",
"statecolors": ["#008cdb", "#b4e5f9", " #2ab6f4"],
"statechart": true
}
]
}
]
}
}
Сообщения в отчете
Посмотрите, как заставить ваше расширение отправлять информацию о состоянии:
from ruxit.api.base_plugin import RemoteBasePlugin
class MyPlugin(RemoteBasePlugin):
def query(self, **kwargs):
group = self.topology_builder.create_group("My group1", "My group1")
device = group.create_element("My device1", "My device1")
device.state_metric("my_state", "OK")