日志服务提供大规模日志实时查询与分析能力(LogSearch/Analytics),未开启索引时,原始数据可以根据Shard进行类似Kafka的顺序消费;开启索引后,除了支持顺序消费外,还可以对日志数据进行统计与查询。

功能优势

  • 实时:写入后可以立即被分析。
  • 快速:
    • 查询:一秒内查询(5个条件)可处理10亿级数据。
    • 分析:一秒内分析(5个维度聚合+GroupBy)可聚合亿级别数据。
  • 灵活:可以改变任意查询和分析条件,实时获取结果。
  • 生态丰富:除控制台提供的报表、仪表盘、快速分析等功能外,还可以与Grafana、DataV、Jaeger等产品无缝对接,并支持Restful API,JDBC等协议。

索引

日志服务中的索引是对日志数据一列或多列的值进行排序的一种结构,使用索引可快速访问日志服务采集到的日志数据。使用日志服务查询与分析功能之前,必须采集到日志数据,并对日志数据开启并配置索引

日志服务索引包括 全文索引键值索引
  • 全文索引:对日志全文内容开启索引,默认的索引会查询日志中所有Key对应的内容,只要有一个命中,就会被查询到。
  • 键值索引:为特定的Key配置索引,配置键值索引后,可以通过查询特定Key的内容,缩小查询范围。

其中,在键值索引中,需要指定字段的数据类型。当前,日志服务支持的字段类型包括:textjsonlong和double。关于索引数据类型的更多信息,请查看索引数据类型简介

查询方式

  • 控制台查询:

    在日志服务控制台查询页面指定查询时间段和查询语句进行查询。详细说明和查询语法请参考查询日志查询语法

  • API查询:

    通过日志服务API中的接口GetLogsGetHistograms接口可以查询日志数据。

说明 查询日志前,请确认您已采集到日志数据,且已开启并配置索引

查询分析语句格式

对采集到的日志数据进行实时查询分析时,需要输入查询分析语句(Query)。由查询语句(Search)和分析语句(Analytics)两个部分组成,查询和分析语句之间通过 |进行分割。
$Search |$Analytics
语句类型 是否可选 说明
查询语句(Search) 可选 查询条件,可以包括关键词、模糊、数值、区间范围和组合条件。

如果为空或”*”,表示针对当前时间段所有数据不设置任何过滤条件,即返回所有数据。详细说明请参考查询语法

分析语句(Analytics) 可选 对查询结果或全量数据进行计算和统计。

如果为空,表示只返回查询结果,不需要做统计分析。详细说明请参考实时分析简介

注意事项

如果您需要检索的日志数据量很大,例如查询时间跨度非常长,其中数据量在百亿以上时,则一次查询请求无法检索完所有数据。在这种情况下,日志服务会把已有的数据返回给您,并在返回结果中告知您该查询结果并不完整。

同时,服务端会缓存 15 分钟内的查询结果。当查询请求的结果有部分被缓存命中,则服务端会在这次请求中继续扫描未被缓存命中的日志数据。为了减少您合并多次查询结果的工作量,日志服务会把缓存命中的查询结果与本次查询新命中的结果合并返回给您。

因此日志服务可以让您通过以相同参数反复调用该接口来获取最终完整结果。