日志服务Dashboard加速

本文涉及的产品
对象存储 OSS,20GB 3个月
云备份 Cloud Backup,100GB 3个月
对象存储 OSS,内容安全 1000次 1年
简介: 阿里云日志服务致力于为用户提供统一的可观测性平台,同时支持日志、时序以及Trace数据的查询存储。用户可以基于收集到的各类数据构建统一的监控以及业务大盘,从而及时发现系统异常,感知业务趋势。但是随着收集到的数据量不断增长,特别是遇到业务峰值的时候,大盘报表展示会产生明显的延迟,无法及时查看重要数据。Scheduled SQL支持定时分析数据、存储聚合数据、投影与过滤数据,并将执行的分析结果存入用户指定的日志库或者时序库中,供用户后续分析使用。由于在聚合后数据量将大大小于之前,因而非常适合进行即时数据分析以及大盘展示。

背景

阿里云日志服务致力于为用户提供统一的可观测性平台,同时支持日志、时序以及Trace数据的查询存储。用户可以基于收集到的各类数据构建统一的监控以及业务大盘,从而及时发现系统异常,感知业务趋势。但是随着收集到的数据量不断增长,特别是遇到业务峰值的时候,大盘报表展示会产生明显的延迟,无法及时查看重要数据。Scheduled SQL支持定时分析数据、存储聚合数据、投影与过滤数据,并将执行的分析结果存入用户指定的日志库或者时序库中,供用户后续分析使用。由于在聚合后数据量将大大小于之前,因而非常适合进行即时数据分析以及大盘展示。下面我们以服务的请求成功率为例,介绍下如何基于Scheduled SQL加速大盘报表。

方案

假如我们需要查看以一分钟为粒度,一小时内的请求成功率。在构建报表的时候,需要基于当前不足一分钟的部分数据配置实时报表,而针对之前已满一分钟的历史数据配置历史报表。当然,如果用户觉得一分钟的数据延迟是可以接受的,就可以只配置历史报表,而不需要实时报表。假如当前时间为11:09:47,需要查看10:11:00一直到11:09:00的分钟级请求成功率,以及11:09:00到11:09:47的秒级成功请求率。

日志内容

字段名称

示例

描述

receive_time

1636616663654

时间戳,毫秒级

status

500

http状态码,200表示成功,其余表示失败

error_code

2001

错误码,标识错误原因

message

server is busy

错误描述

action_name

list_shop_product

访问的服务接口

user_agent

chrome

客户浏览器

历史报表

如图所示展示了分钟级的请求成功率,可以通过配置分钟级的ScheduledSQL任务,计算每分钟的成功率,并通过历史报表直接展示。因为只需要直接拉取聚合结果,不需要即时计算,所以展示速度大大提升。

实时报表

如图所示展示了秒级的请求成功率,因为只需要计算不到一分钟的数据,而不是1小时的数据,因而速度也得到的提升。

配置

下面仍然以请求成功率为例,向大家介绍下如何实现通过ScheduledSQL加速报表。

创建目标时序库

首先需要创建目标时序库存储ScheduledSQL的聚合数据。

创建Scheduled SQL任务

在存储服务请求的数据logstore查询界面,输入查询语句,点击查询/分析按钮,在成功执行查询分析之后,点击创建Scheduled SQL按钮。

*|select(__time__ - __time__ %60)astime, sum(IF(status =200,1,0))*1.0/count(*)AS success_ratio  from log groupbytimeorderbytime

计算配置

  1. 填入对应的作业名以及作业描述,写入模式选择日志库导入时序库
  2. 指标列指选择结果中的一列作为时序结果,此处选择success_ratio;
  3. Labels指选择结果中的哪几列作为时序数据的标签,此处留空即可;
  4. 时间列指时序数据的时间,此处选择time;
  5. 目标库选择刚刚创建的目标时序库;

调度配置

因为我们需要查看分钟级别的服务请求成功率,所以调度间隔还有SQL时间窗口均需要以分钟为粒度。用户也可以根据自己的需求进行调整。

  1. 调度间隔选择1分钟;
  2. SQL时间窗口填入@m - 1m ~ @m;
  3. 点击确认创建任务

查看任务详情

在作业菜单中点击Scheduled SQL,即可查看Scheduled SQL任务列表。点击刚刚创建的任务名称即可查看任务执行详情。在任务执行成功之后,我们就可以创建历史报表了。

配置历史报表

在目标时序库查询界面,执行查询语句,点击添加到仪表盘,即可创建历史报表。

*|select promql_query_range('success_ratio')from metrics limit1000

配置实时报表

在存储服务请求的数据logstore查询界面,输入查询语句,并选择时间范围为1分钟,点击添加到仪表盘创建实时报表:

*|select  __time__ astime, sum(IF(status =200,1,0))*1.0/count(*)AS success_ratio  from log groupbytimeorderbytime

总结

Scheduled SQL为用户周期性的进行分析数据、存储聚合数据、投影与过滤数据提供了较大的便利。用户还可以使用Scheduled SQL定时执行聚合任务,减少即时查询所需要的数据量,从而加速大盘展示。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
存储 Prometheus Kubernetes
轻量级日志可视化平台Grafana Loki接入nginx访问日志
轻量级日志可视化平台Grafana Loki接入nginx访问日志
1602 0
轻量级日志可视化平台Grafana Loki接入nginx访问日志
|
1月前
|
前端开发 测试技术 对象存储
Grafana Loki查询加速:如何在不添加资源的前提下提升查询速度
Grafana Loki查询加速:如何在不添加资源的前提下提升查询速度
76 2
|
4月前
|
存储 弹性计算 Linux
Kibana+云上ES访问SLS的操作文档
本文介绍了如何用Kibana+云上ES访问SLS的方案
340 2
Kibana+云上ES访问SLS的操作文档
|
4月前
|
存储 Kubernetes Cloud Native
云原生|kubernetes|apiserver审计日志的开启
云原生|kubernetes|apiserver审计日志的开启
139 0
|
存储 Prometheus Kubernetes
使用loki和grafana展示ingress-nginx的日志
使用loki和grafana展示ingress-nginx的日志
使用loki和grafana展示ingress-nginx的日志
|
存储 Prometheus 监控
统一观测丨使用 Prometheus 监控 Nginx Ingress 网关最佳实践
统一观测丨使用 Prometheus 监控 Nginx Ingress 网关最佳实践
统一观测丨使用 Prometheus 监控 Nginx Ingress 网关最佳实践
|
4月前
|
Kubernetes 监控 Docker
阿里云SLS 容器采集全面兼容Kubernetes
iLogtail致力于打造覆盖Trace、Metrics 以及Logging 的可观测性的统一Agent,而对Kubernetes 语义的原生支持大大增强了Log在Kubernetes场景的采集体验。
162 0
阿里云SLS 容器采集全面兼容Kubernetes
|
存储 JSON Kubernetes
Kubernetes【日志】日志架构介绍
Kubernetes【日志】日志架构介绍
Kubernetes【日志】日志架构介绍
|
数据采集 运维 监控
本地机器安装Logtail接入到阿里云SLS日志服务
本地机器安装Logtail接入到阿里云SLS日志服务
1303 0
本地机器安装Logtail接入到阿里云SLS日志服务
|
存储 JSON Kubernetes
Kubernetes 集群日志和 EFK架构日志方案
Kubernetes 集群日志和 EFK架构日志方案
762 1
Kubernetes 集群日志和 EFK架构日志方案

热门文章

最新文章