V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
UnknownR
V2EX  ›  程序员

ELK 里 KQL 过滤 PostgreSQL 的执行语句时间,匹配出错

  •  
  •   UnknownR · 2021-04-13 19:41:16 +08:00 · 713 次点击
    这是一个创建于 1080 天前的主题,其中的信息可能已经有所发展或是发生改变。
    **现象**

    ELK 环境,filebeat 从 PostgreSQL 读取日志后由 Logstash 分析再传到 ES 里,在 Kibana 里搜索数值比较的条件时,匹配的结果和预期的不一样

    想比较大值是执行语句的用时,以毫秒为单位,2-3 位小数,在 KQL 里搜索时不管输的数值多大,它都能匹配到
    比如我搜索 postgresql.log.duration > 30000000,应该是搜索到大于 30000000 毫秒的结果,但是不管是 123.12 毫秒的,还是 1234.12 毫秒的,都能匹配到,有大神知道是咋回事吗?



    **Logstash 里的 Grok 语句**

    %{NUMBER}和%{BASE16FLOAT}都试过了,都不行

    "message" => "^%{LOCALDATETIME:[postgresql][log][timestamp]} %{WORD:[postgresql][log][timezone]} \[%{NUMBER:[postgresql][log][thread_id]}(-%{BASE16FLOAT:[postgresql][log][core_id]})?\] ((\[%{USERNAME:[user][name]}\]@\[%{POSTGRESQL_DB_NAME:[postgresql][log][database]}\]|%{USERNAME:[user][name]}@%{POSTGRESQL_DB_NAME:[postgresql][log][database]}) )?%{WORD:[postgresql][log][level]}: (duration: %{BASE16FLOAT:[postgresql][log][duration]} ms ?%{DATA:[postgresql][log][cmd_type]}: %{GREEDYDATA:[postgresql][log][query]})"
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2339 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:11 · PVG 00:11 · LAX 09:11 · JFK 12:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.