用途:这是 OpenSearch PPL(管道处理语言)的参考文档,用于对 trace 与 log 索引编写可观测性查询。PPL 以 source=<index> 开头,用 | 串联命令。
主要能力:核心命令包括 search/source、where、fields、stats、sort、head、eval、dedup、rename、top、rare、table;时序命令包括 timechart、chart、bin、trendline、streamstats、eventstats;解析命令包括 parse、grok、rex、regex、patterns、spath;关联命令包括 join、lookup、graphlookup、subquery、append、appendcol。stats 支持 count、sum、avg、max、min、percentile、distinct_count 等聚合。
使用方式:通过 POST $OPENSEARCH_ENDPOINT/_plugins/_ppl 执行查询,请求体为 {"query": "<ppl_query>"};用 _plugins/_ppl/_explain 获取执行计划。默认连接变量为 OPENSEARCH_ENDPOINT=https://localhost:9200、OPENSEARCH_USER=admin、OPENSEARCH_PASSWORD=My_password_123!@#。含点的字段名需用反引号包裹,如 status.code、attributes.gen_ai.operation.name。
限制:dedup 在字段类型混合时可能抛 ClassCastException;parse 在部分版本可能静默丢弃提取字段;streamstats、eventstats、grok 会在内存中处理全部匹配行,大索引需先加 | head N;graphlookup 在 OpenSearch 3.x 支持有限;appendcol 的 [] 子查询内不能使用 source=。spath 使用前建议先 describe 确认字段存在。