在https://docs.influxdata.com/kapacitor/v1.5/tick/syntax/#declarations
以下段落具有指导意义:
数据库声明以关键字 dbrp 开头,后跟两个用句点分隔的字符串。第一个字符串声明将使用脚本的默认数据库。第二个字符串声明其保留策略。请注意,在使用命令行上的命令 kapacitor define 定义任务时,也可以使用标志 -dbrp 声明数据库和保留策略,因此该语句是可选的。...
由于它在 TICKscript 中是可选的,因此您可以在加载脚本时从命令行设置数据库声明,例如
kapacitor 定义 load_1 -tick ~/tick/telegraf-autogen/load_1.tick -dbrp "telegraf"."autogen"
以这种方式定义的 dbrp 被认为是隐式设置的,因为它没有在 TICKscript 中定义。如果您在 TICKscript 中定义它,则它是显式设置的。这个小细节解决了这个难题 - 在加载脚本而不是 TICKscript 上定义 drp。
以这种方式编码,如果您稍后将 TICKscript 保存在 cronograf TICKscript 编辑器中,您将不会收到此错误,因为它没有在 TICKscript 中明确设置。
是的,您必须跟踪两段代码,例如 TICKscript 和用于将其加载到 kapacitor 的命令行。建议,在 TICKscript 中添加提示将有助于减少对预期 dbrp 的混淆。此外,通过 dbrp(如上所示)将子目录中的 TICKscript 与该目录中的加载脚本一起分组,可以保持干净。