擎创智能搜索平台

我要开发同款
zhang_hytc2024年11月15日
303阅读

作品详情

公司主要是做智能运维平台,将数据采集到elasticsearch之后,进行清洗,我负责的模块是统一查询平台,参照splunk
语法定义
使用ANTLR
(用JAVA写的语言识别工具),定义一套类似splunk的查询语言,简单,易用,可重复嵌套,项目使用JAVA语言开发,
ANTLR分为以下2个阶段:
1. 词法分析阶段,对应的分析程序叫做 lexer ,负责将符号(token)分组成符号类
2. 根据词法,构建出一棵分析树(parse tree)或叫语法树(syntax tree)
构建完成之后, 通过JAVA程序将各个语法规则解析通过程序去转换成dsl后查询查询Elasticsearch,以上操作是在es中执行,
查询出来结果可以进行pipeline操作,比如再计算,过滤等,此时pipleLine操作是在本地Java程序中执行,
相比于sql
来说,不仅语法简单,功能强大,最主要的是学习成本低,相对于售前,运维人员来说,上手很快,该平台开发一年多,
参与了大部分的前期,中期开发任务,以下是一个查询案例
示例: index= shbank_machinealarm* appName ='t24' ruleName = 'ripple' AND eventHost = 't24db02' | stats count
as cnt by eventHost,metricName
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论