Добрый день!
Помогите разобраться. Пытаюсь сделать вычисляемый элемент данных, графики, куда бы автоматически попадали создаваемые прототипы элемента данных с использованием макроса LLD.
В LLD макрос попадают записи в форме {#EVENTLOG} - VoiceService.onStart_NO_MONEY или GprsGxService.onStart_CARD_NOT_FOUND и т.д. Прототип элемента данных создает ключи с использованием данных из lld макроса {#EVENTLOG} и ключи получаются к примеру такого формата 50prcntExTime[GprsGxService.onStart_CARD_NOT_FOUND], 50prcntExTime[VoiceService.onStart_NO_MONEY]. Для вычисляемого элемента данных пробовал различные варианты в виде "max(max_foreach(/BILLING-DB-01/50prcntExTime[*],1m))" где вместо * пытался использовать частичное совпадения ключа. Мне нужно разделить по типам сервисов ключи т.е. GprsGxService.onStart_ калькулировать отдельно, VoiceService.onStart_ калькулировать отдельно.
Как мне подсказали, вариант max(max_foreach(/BILLING-DB-01/50prcntExTime[GprsGxService.onStart_*],1m)) не допускает частичного совпадения ключа и рекомендовали группировать данные на уровне тегирования элементов данных создаваемых прототипом с применением частичного совпадения данных в макросе LLD пример: {{#LLDMACRO}.regsub(pattern, output)}.
Пробовал разные варианты, но все приводят к тому, что вне зависимости от совпадения в макросе паттерна с к примеру GprsGxService.onUpdate_ тэги вешаются всем элементам данных рассматриваемого прототипа.
К примеру на элемент данных с ключом 50prcntExTime[BillingFunctions.requestGprsTariff].
{{#EVENTLOG}.regsub("GprsGxService.onUpdate_", \1)}
{{$EVENTLOG}.regsub("(GprsGxService.onStart_)", \1)}
{{$EVENTLOG}.regsub("^([GprsGxService.onStart_+])", \1)}
Судя по https://regex101.com/r/b7WJBY/1 вариант (GprsGxService.onStart_) уже должен дать мне искомый результат. Но к сожалению не работает.
В чем ошибка можете подсказать?
И если не сложно, подскажите как будет выглядеть вариант вычисляемого элемента данных на основе тегированных элементов данных? К примеру в тег GprsGxonStart50pr_of_inquiries должны попасть все элементы данных с ключами 50prcntExTime[GprsGxService.onStart_....], как потом вычислять по тегу, так?: max(max_foreach(/BILLING-DB-01/50prcntExTime[*] and (tag="GprsGxonStart50pr_of_inquiries"),1m))
Zabbix server 6.2
Заранее спасибо!
Помогите разобраться. Пытаюсь сделать вычисляемый элемент данных, графики, куда бы автоматически попадали создаваемые прототипы элемента данных с использованием макроса LLD.
В LLD макрос попадают записи в форме {#EVENTLOG} - VoiceService.onStart_NO_MONEY или GprsGxService.onStart_CARD_NOT_FOUND и т.д. Прототип элемента данных создает ключи с использованием данных из lld макроса {#EVENTLOG} и ключи получаются к примеру такого формата 50prcntExTime[GprsGxService.onStart_CARD_NOT_FOUND], 50prcntExTime[VoiceService.onStart_NO_MONEY]. Для вычисляемого элемента данных пробовал различные варианты в виде "max(max_foreach(/BILLING-DB-01/50prcntExTime[*],1m))" где вместо * пытался использовать частичное совпадения ключа. Мне нужно разделить по типам сервисов ключи т.е. GprsGxService.onStart_ калькулировать отдельно, VoiceService.onStart_ калькулировать отдельно.
Как мне подсказали, вариант max(max_foreach(/BILLING-DB-01/50prcntExTime[GprsGxService.onStart_*],1m)) не допускает частичного совпадения ключа и рекомендовали группировать данные на уровне тегирования элементов данных создаваемых прототипом с применением частичного совпадения данных в макросе LLD пример: {{#LLDMACRO}.regsub(pattern, output)}.
Пробовал разные варианты, но все приводят к тому, что вне зависимости от совпадения в макросе паттерна с к примеру GprsGxService.onUpdate_ тэги вешаются всем элементам данных рассматриваемого прототипа.
К примеру на элемент данных с ключом 50prcntExTime[BillingFunctions.requestGprsTariff].
{{#EVENTLOG}.regsub("GprsGxService.onUpdate_", \1)}
{{$EVENTLOG}.regsub("(GprsGxService.onStart_)", \1)}
{{$EVENTLOG}.regsub("^([GprsGxService.onStart_+])", \1)}
Судя по https://regex101.com/r/b7WJBY/1 вариант (GprsGxService.onStart_) уже должен дать мне искомый результат. Но к сожалению не работает.
В чем ошибка можете подсказать?
И если не сложно, подскажите как будет выглядеть вариант вычисляемого элемента данных на основе тегированных элементов данных? К примеру в тег GprsGxonStart50pr_of_inquiries должны попасть все элементы данных с ключами 50prcntExTime[GprsGxService.onStart_....], как потом вычислять по тегу, так?: max(max_foreach(/BILLING-DB-01/50prcntExTime[*] and (tag="GprsGxonStart50pr_of_inquiries"),1m))
Zabbix server 6.2
Заранее спасибо!
Comment