Jinja2生成Grafana SQL模板:变量紧邻{的语法问题解决方案咨询
解决Jinja2生成Grafana SQL模板的变量冲突问题
直接写${{{ var }}:csv}会导致Jinja2解析冲突,试试这几个实用办法:
字符串拼接:用Jinja2的
~运算符把Grafana语法的固定部分和Jinja变量拼起来,完美避开解析问题:WHERE '{{ '${' ~ var ~ ':csv}' }}' = ''当Jinja变量
var的值是foo时,输出就是你要的:WHERE '${foo:csv}' = ''格式化过滤器:用
format过滤器做字符串占位替换,写法更简洁:WHERE '{{ "${%s:csv}"|format(var) }}' = ''同样能生成符合要求的SQL语句。
拆分写法(备选):如果场景特殊,也可以把Grafana语法拆成几部分,中间插入Jinja变量:
WHERE '${'{{ var }}':csv}' = ''不过这种写法可读性不如前两种,优先推荐前两个方案。
内容的提问来源于stack exchange,提问作者sknaumov
相关产品推荐
相关产品推荐

