Я пытаюсь изучить TICKscript, но официальная документация запутана.
Я понимаю часть объявления переменных и выражений в нем. Но есть еще «узлы». Какие они?
UPD: Я даже их EBNF: https://docs.influxdata.com/kapacitor/v1.5/reference/spec/ нашел, а в нем нет определения узла.
Что такое узел в TICKscript?
В синтаксисе TICKScript нет описания узла, потому что это не синтаксическая концепция, а семантическая. Узел примерно соответствует Function { Chain }
в EBNF.
Вот описание узлов из документации: https://docs.influxdata.com/kapacitor/v1.5/nodes/
Nodes represent process invocation units that either take data as a batch or a point-by-point stream, and then alter the data, store the data, or trigger some other activity based on changes in the data (e.g., an alert).
Вы можете увидеть визуализацию узлов, когда вы запустите kapacitor show <your_task_name>
, и запустите раздел вывода DOT с помощью команды dot
. Вы получите что-то вроде:
На этом рисунке узлы графика будут соответствовать узлам вашего TICKscript.
@GeorgeShuklin Я думаю, что даже минимальный сценарий TICKscript требует ввода и вывода. Допустимые типы задач, вероятно, пакетные и потоковые. Вот несколько примеров в стиле "привет, мир": docs.influxdata.com/kapacitor/v1.5/tick/introduction/…
Спасибо, поиграю с этим. (Ключевые слова для меня здесь «типы задач»). Я хочу создать что-то более простое, чем фактическое рабочее предупреждение о конденсаторе, просто чтобы изучить TICKscript как обычный язык программирования.
Большое спасибо @Bunyk, мне удалось создать минимальный TICKscript, который будет принят kapacitor.
dbrp "a"."b"
stream|from()
Я попытался скормить простейший TICKscipt (это
0
) на конденсатор, но он отвергает его какinvalid task type: invalid
. Каковы минимальные требования, чтобы тикскрипт был принят конденсатором? (Мне нужен какой-то минимальный пример «привет, мир»).