【问题标题】:(Grafana Table) ${__cell} containing an apostrophe/single quote breaks the Query String to Kibana(Grafana 表)${__cell} 包含撇号/单引号将查询字符串中断到 Kibana
【发布时间】:2018-10-02 07:07:53
【问题描述】:

在 Grafana 中,我有一个表格面板,其中包含一些名称(每行一个),如果单击该面板,则会在 Kibana 上打开一个新窗口,通过 URL 传递用户单击的名称(${__cell}),以便向下钻取该特定名称。

这种用法很好用,但是当名称包含特殊字符(例如“Identita' Digitale”)(不带双引号)时,我遇到了问题:如您所见,它包含一个撇号/单引号,会破坏查询,因此 Kibana 的 URL 变得不完整。

【问题讨论】:

    标签: elasticsearch kibana grafana drilldown


    【解决方案1】:

    试试

    ${__cell:lucene}
    

    而不是

    ${__cell}
    

    对于 Lucene 查询,所有特殊字符都应该被转义。实际上,您的案例需要 URL 编码 - 您可以尝试其他高级格式选项。

    文档:http://docs.grafana.org/reference/templating/#advanced-formatting-options

    另一个肮脏的hackish解决方案,在onclick事件中使用JS对链接进行urlencode,在Grafana中的链接定义末尾添加此字符串:

    " onclick="location.href=encodeURI(this);
    

    所以在完整的 HTML 中它会创建链接:

    <a href="<URL>" onclick="location.href=encodeURI(this);">...
    

    我的示例中的语法可能是错误的,它可能需要进行一些小的更改才能正常工作。理论上你可以使用jQuery。

    【讨论】:

    • 我试过了,一旦点击,如果名称包含单引号,Kibana 会说“无法解析 URL”,而如果没有,Kibana 不会显示任何内容,因为 ${__cell} 变为(比方说)“列表\日记”。
    • 因此,您需要对 Grafana 中的单元格值进行正确的 URL 编码 - Kibana 的 URL 中的 ' = %27(如您所见不可用)。或者将其用作另一个 Grafana 仪表板中的变量并在那里进行 Lucene 查询。
    • 我不明白您所说的“您所看到的不可用”的意思。根据情况,URL 可能包含或不能包含 ' (单引号),所以我不能在 URL 中任意输入 %27 。不幸的是,我需要在 Kibana 中进行 Lucene 查询。
    • => 据我所知,字符串功能 urlencode 在 Grafana 中不可用 = Grafana 无法为您将 ' 转换为 %27(通常是任何特殊字符)。
    • 好的,谢谢。我也相信。如果我发现有用的东西,我会更新这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    相关资源
    最近更新 更多