ENetrebin (обсуждение | вклад) (Новая страница: «Расширения Ключ-АСТРОМ позволяют отправлять пользовательские свойства отслеживаемой т...») |
Нет описания правки |
||
| (не показаны 3 промежуточные версии 2 участников) | |||
| Строка 1: | Строка 1: | ||
Расширения | '''''[[Расширения]] / [[Расширения|Разработка]] / [https://docs.expert-apm.ru/index.php/%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F#:~:text=%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-,%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F,-%D0%A0%D0%B0%D0%B7%D0%B2%D1%91%D1%80%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F Расширения] / Пользовательские свойства''''' | ||
Расширения АппОптима позволяют отправлять пользовательские свойства отслеживаемой технологии как на уровне устройства, так и на уровне группы устройств. Свойство имеет форму пары ключ-значение, где оба являются строками. | |||
Чтобы отправить свойство, используйте метод ''report_property(key="Key", value="Value")'' : | Чтобы отправить свойство, используйте метод ''report_property(key="Key", value="Value")'' : | ||
| Строка 37: | Строка 39: | ||
<code> stats = json.loads(requests.get(self.url).content.decode())</code> | <code> stats = json.loads(requests.get(self.url).content.decode())</code> | ||
<code> # Create group - provide group id used to calculate unique entity id in | <code> # Create group - provide group id used to calculate unique entity id in AppOptima</code> | ||
<code> # and display name for UI presentation</code> | <code> # and display name for UI presentation</code> | ||
| Строка 45: | Строка 47: | ||
<code> group_name="ActiveGate Demo Group")</code> | <code> group_name="ActiveGate Demo Group")</code> | ||
<code> # report group custom property - any string-string values pair. It is added to device group metadata displayed in | <code> # report group custom property - any string-string values pair. It is added to device group metadata displayed in AppOptima UI</code> | ||
<code> group.report_property(key='Group custom property: version', value=stats['version'])</code> | <code> group.report_property(key='Group custom property: version', value=stats['version'])</code> | ||
| Строка 51: | Строка 53: | ||
<code> logger.info("1. Group custom property")</code> | <code> logger.info("1. Group custom property")</code> | ||
<code> # Create node - provide node id used to calculate unique entity id in | <code> # Create node - provide node id used to calculate unique entity id in AppOptima</code> | ||
<code> # and display name for UI presentation</code> | <code> # and display name for UI presentation</code> | ||
| Строка 61: | Строка 63: | ||
<code> logger.info("Topology: group name=%s, node name=%s", group.name, node.name)</code> | <code> logger.info("Topology: group name=%s, node name=%s", group.name, node.name)</code> | ||
<code> # report property - any string-string values pair. It is added to device metadata displayed in | <code> # report property - any string-string values pair. It is added to device metadata displayed in AppOptima UI</code> | ||
<code> node.report_property(key='Device custom property: version', value=stats['version'])</code> | <code> node.report_property(key='Device custom property: version', value=stats['version'])</code> | ||
| Строка 71: | Строка 73: | ||
См. пример пользовательских свойств, сообщаемых на уровне группы устройств и устройств: | См. пример пользовательских свойств, сообщаемых на уровне группы устройств и устройств: | ||
Модуль плагина АктивногоШлюза ограничивает объем данных (настраиваемые свойства и слишком длинные строки), отправляемых на сервер | Модуль плагина АктивногоШлюза ограничивает объем данных (настраиваемые свойства и слишком длинные строки), отправляемых на сервер АппОптима. Ограничение установлено на уровне 100 пользовательских свойств, отправленных в течение 24 часов. Строка ключа одного свойства не может содержать более 50 символов. Строка значения одного свойства не может быть длиннее 140 символов. Свойства сообщаются в пакетах, длина одного пакета не может превышать 5120 символов. | ||
Текущая версия от 09:01, 6 января 2025
Расширения / Разработка / Расширения / Пользовательские свойства
Расширения АппОптима позволяют отправлять пользовательские свойства отслеживаемой технологии как на уровне устройства, так и на уровне группы устройств. Свойство имеет форму пары ключ-значение, где оба являются строками.
Чтобы отправить свойство, используйте метод report_property(key="Key", value="Value") :
group.report_property(key='Group version', value="0.5")
или
node.report_property(key='Device version', value="2.3")
В следующем примере представлен полный код расширения:
import json
import requests
from ruxit.api.base_plugin import RemoteBasePlugin
import logging
logger = logging.getLogger(__name__)
class DemoPluginRemote(RemoteBasePlugin):
def initialize(self, **kwargs):
config = kwargs['config']
logger.info("Config: %s", config)
self.url = config["url"]
def query(self, **kwargs):
# Collect stats
stats = json.loads(requests.get(self.url).content.decode())
# Create group - provide group id used to calculate unique entity id in AppOptima
# and display name for UI presentation
group = self.topology_builder.create_group(identifier="DemoGroup",
group_name="ActiveGate Demo Group")
# report group custom property - any string-string values pair. It is added to device group metadata displayed in AppOptima UI
group.report_property(key='Group custom property: version', value=stats['version'])
logger.info("1. Group custom property")
# Create node - provide node id used to calculate unique entity id in AppOptima
# and display name for UI presentation
node = group.create_element(identifier="DemoNode",
element_name="ActiveGate Demo Node")
logger.info("Topology: group name=%s, node name=%s", group.name, node.name)
# report property - any string-string values pair. It is added to device metadata displayed in AppOptima UI
node.report_property(key='Device custom property: version', value=stats['version'])
logger.info("2. Device custom property")
Никаких особых правок в plugin.jsonфайле не требуется.
См. пример пользовательских свойств, сообщаемых на уровне группы устройств и устройств:
Модуль плагина АктивногоШлюза ограничивает объем данных (настраиваемые свойства и слишком длинные строки), отправляемых на сервер АппОптима. Ограничение установлено на уровне 100 пользовательских свойств, отправленных в течение 24 часов. Строка ключа одного свойства не может содержать более 50 символов. Строка значения одного свойства не может быть длиннее 140 символов. Свойства сообщаются в пакетах, длина одного пакета не может превышать 5120 символов.