阅读576 返回首页    go 微信


查询日志__logsearch_用户指南_日志服务-阿里云

日志服务的“索引”模式能让用户在其Logstore上快速查询海量的日志数据,检索出用户真正感兴趣的日志数据。日志写入Logstore后,用户通过控制台为Logstore内的日志内容创建索引,索引和查询特点如下:

  • 大规模:支持PB/Day数据量
  • 低延时:数据写入3秒内既可以查询
  • 秒级返回:一秒可以过10亿级日志

注意点:

  • 消费日志与查询日志都意味着“读取”日志,两者区别见这里
  • 在查询特定日志后,使用Logtail用户可以使用上下文查询功能

查询结果

用户可以通过管理控制台、SDK或者API查询日志。无论使用何种方式查询日志,用户都必须指定查询的Project、Logstore(且Logstore必须属于所指定的Project)即查询时间区域(该时间区域不可以超过Logstore的日志存储周期)。除此之外,用户还可以指定查询的日志主题、返回的最大日志条数及返回日志的Offset等信息。

为适应用户对于日志查询的不同需求,日志服务提供两种类型的查询,即查询日志分布和查询原始日志,具体如下:

  • 查询日志分布(GetHistograms):查询符合查询条件的日志数目及这些日志在整个查询时间区域上的分布情况(即每个子时间区域上有多少条符合查询条件的日志),但并不返回具体的日志原始数据。
  • 查询原始日志(GetLogs):查询符合查询条件的日志并返回所有的原始日志数据。

查询延时

日志服务内部对于写入Logstore的日志按照其日志时间戳划分为实时数据和历史数据。具体定义及其对查询的结果影响如下

  • 实时数据:日志中时间点为服务器当前时间点(-180秒,900秒],例如日志时间为UTC 2014-09-25 12:03:00,服务器收到时UTC 2014-09-25 12:05:00,则该日志在写入Logstore时实时建立索引,且从写入Logstore到可以查询到的延时在3秒内。
  • 历史数据:日志中时间点为服务器当前时间点[-7 x 86400秒, -900秒),例如日志时间为UTC 2014-09-25 12:00:00,服务器收到时UTC 2014-09-25 12:05:00,则该日志被作为历史数据处理。这类日志从写入Logstore到可以查询到的延时最多为5分钟。

(如果用户查询需要检索的日志数据量很大时(如查询时间跨度非常长,用户日志数据量很大等),则一次查询请求无法检索完所有数据。在这种情况下,日志服务会把已有的数据返回给用户,并在返回结果中告知用户该查询结果并不完整。如此同时,服务端会缓存15分钟内的查询结果。当查询请求的结果有部分被缓存命中,则服务端会在这次请求中继续扫描未被缓存命中的日志数据。为了减少用户合并多次查询结果的工作量,日志服务会把缓存命中的查询结果与本次查询新命中的结果合并返回给用户。因此日志服务可以让用户通过以相同参数反复调用该接口来获取最终完整结果。)

使用控制台查询日志

日志服务控制台提供和API及SDK同样能力的日志查询功能。用户可以参考日志库操作了解控制台上的查询日志界面及交互方式。与此同时,控制台还提供了非常直观的交互界面帮助用户查询和理解查询结果。具体如下:

  1. 提供图形化的界面(即柱状图)来展示查询结果的分布情况。并用户不同颜色的柱状图标示日志查询结果是否完整。
  2. 提供灵活的翻页、排序机制帮助用户浏览返回的日志原始数据
  3. 提供直观的交互方式让用户修正查询条件。例如,通过在柱状图上拖拽的方式修改查询时间范围,或者点击日志原始数据上的关键字来添加添加查询关键字。
  4. 提供上下文查询功能帮助定位

使用SDK查询日志

日志服务提供多种语言(Java、.NET、PHP和Python)的SDK,且这些语言的SDK都支持全功能的日志查询接口。关于SDK的更多信息请参考日志服务SDK

使用API查询日志

日志服务提供REST风格的API,基于HTTP协议实现。日志服务的API同样提供全功能的日志查询接口。具体参考请见日志服务API

查询语法

参见日志查询语法章节,索引参见索引设置章节。

最后更新:2016-12-12 16:55:15

  上一篇:go 索引设置__logsearch_用户指南_日志服务-阿里云
  下一篇:go 查询方案(ELK/Hive)对比__logsearch_用户指南_日志服务-阿里云