日志
日志和指标、链路共用同一个引擎,所以日志表可以用 SQL 查询,也能和其他信号做 JOIN。和指标相比,日志多一个环节,发生在入库之前:Pipeline 把一行原始日志拆成列,并决定哪些列需要索引。
一条日志如何变成一行数据
指标写入时已经是结构化的:指标名、一组标签、一个值。非结构化的日志行没有这层结构,它就是一个字符串,里面有什么取决于当初写日志的人。Pipeline 负责补上结构化这一步,在数据落库之前完成。
Pipeline 分两个阶段:
- Processor 解析和改写输入字段。
dissect和regex把原始日志切分成命名字段,json_parse和csv读取结构化格式,date和epoch把文本转成时间戳,vrl、gsub、select、filter用于进一步整形或丢弃字段。 - Transform 决定这些字段如何存储:每个字段的列类型、是否作为 tag,以及是否建立
inverted、skipping或fulltext索引。
处理完得到的是一张普通的表,查询方式和其他数据没有区别。如果同一个来源混着多种日志类型,可以用 dispatcher 把它们分别路由到不同的表。
如果写入的数据本身已经结构化,则不需要任何配置:内置的 greptime_identity Pipeline 会把每个字段按列存储。
快速上手
快速开始用内置的 greptime_identity Pipeline 演示日志写入。
通过收集器写入
每篇文档都包含对应收集器的配置,以及配套的 Pipeline 设置:
编写自己的 Pipeline
内置 Pipeline 覆盖不到的日志格式,需要自己写配置。
- 使用自定义 Pipeline——Pipeline 配置的写法。
- 管理 Pipeline——创建、更新和删除 Pipeline。
查询日志
- 全文搜索——在日志内容中匹配文本。
- GreptimeDB 控制台——在内置控制台中用查询构建器或代码编辑器筛选和搜索。
参考
- 内置 Pipeline——GreptimeDB 自带的 Pipeline。
- 日志写入 API——接收日志写入的 HTTP 接口。
- Pipeline 配置——全部 processor 和 transform 选项。