阿里云日志服务 SLS + 函数计算:给商会系统做一次线上慢接口排查实战

简介: 商会系统上线后,会员反馈接口“卡顿”“导出慢”,但本地无法复现。我们接入阿里云SLS日志分析+函数计算(FC)实现自动巡检:统一采集JSON日志、索引关键字段,SQL秒级统计P95耗时与慢请求明细,FC定时告警并联动钉钉。实战中1小时内定位导出接口瓶颈,优化后P95从8s降至1s内。低成本、免运维、高时效。(239字)

商会系统上线后,会员反馈"列表偶尔卡好几秒""导出报表半天"。这类"慢"本地复现不了,只能上线上看真实日志,我们之前靠文本日志 grep 半天,效率很低。

后来把日志接进 SLS,再用函数计算 FC 跑定时排查,慢接口一目了然。

一、先说边界

我们的诉求三点:查任意窗口的接口耗时分布、慢接口自动告警、排查任务按需跑不养服务器。

基于这三条,我们排除了两套:自己搭 ELK 运维太重,只打点又没法聚合查询。

最终方案:日志统一采集到 SLS,用其查询分析做耗时统计,用 FC 定时跑慢接口巡检并告警。

二、日志采集:Logtail 统一打点

后端每个接口在入口出口记录耗时,按统一 JSON 输出,Logtail 自动采集进 SLS。

{
   
  "level": "info",
  "trace_id": "a1b2c3",
  "method": "GET",
  "path": "/api/members",
  "status": 200,
  "cost_ms": 1820,
  "org_id": 1024,
  "ts": "2026-09-07T10:22:01Z"
}

关键是 cost_ms 和 path 两个字段,Logtail 设成索引 SLS 才能统计。

三、SLS 查询:耗时分布

查某个接口在过去一小时的 P95 耗时,用 SLS 的 SQL 分析:

* and path: "/api/members" and status: 200
| select
    date_trunc('minute', ts) as minute,
    avg(cost_ms) as avg_ms,
    approx_percentile(cost_ms, 0.95) as p95_ms,
    count(*) as qps
  group by minute
  order by minute

这条查询画出每分钟平均耗时和 P95 曲线,哪个分钟突然抬高一眼可见。

还加了一条"慢请求明细"查询,专门捞耗时超一秒的:

* and cost_ms > 1000
| select path, cost_ms, org_id, ts
  order by cost_ms desc
  limit 100

这根查询排在前面的,就是当天响应慢的接口,排查就从这里入手。

四、函数计算:定时巡检 + 告警

SLS 查询要手动跑,我们希望每天自动跑、超阈值告警,于是用 FC 定时触发器跑巡检函数。

const {
    Client } = require('@alicloud/sls20201230');

exports.handler = async (event) => {
   
  const client = new Client({
    accessKeyId: process.env.AK, accessKeySecret: process.env.SK, endpoint: process.env.SLS_EP });
  const query = `* and cost_ms > 1000 | select path, approx_percentile(cost_ms,0.95) as p95, count(*) as cnt group by path having cnt > 20`;

  const res = await client.ExecuteQuery({
   
    projectName: process.env.SLS_PROJECT,
    logStoreName: 'app-access',
    query,
    from: Date.now() - 3600 * 1000,
    to: Date.now()
  });

  const slow = (res.body.results || []).filter((r) => r.p95 > 800);
  if (slow.length) {
   
    // 推到钉钉/短信,这里只示意
    await notify({
    title: '慢接口告警', detail: slow.map((s) => `${
     s.path} p95=${
     s.p95}ms 次数=${
     s.cnt}`) });
  }
  return {
    slowCount: slow.length };
};

FC 按调用计费,巡检每天跑几次费用可忽略。

五、实战:一次导出接口变慢

上个月排查"导出报表卡半天",按上面流程先捞慢请求明细,发现 /api/reports/export 的 P95 到八秒,且卡在一个 org_id 上。

顺着 org_id 查发现导出时后台在跑全量会员聚合查询,重查询和定时任务撞车。

解决办法:导出任务改异步扔进消息队列,后端限流控制同时只跑两个导出。改完再跑巡检,P95 回到一秒以内。

走 SLS 加 FC,从告警到定位不到一小时。

六、几个细节

一是索引字段别太多。SLS 按索引字段计费,只把 path、status、cost_ms、org_id、ts 设索引,其余当原文存,省钱。

二是采样,高峰全量采集量大,对 info 级采样、error 级全采,存储成本降六成。

三是告警阈值:P95 超八百毫秒且持续十分钟才告警,避免偶发抖动误报。

四是 trace_id 串联,慢请求顺 trace_id 看完整调用链,前端到数据库都能追。

我们这边在跑的商会管理系统叫未来漫城·商会互联平台,线上可观测就是这套 SLS 加 FC 的组合,会员反馈"卡"时秘书处不用等我们远程,告警已先到,慢接口在哪个商会、哪个接口、卡多久,打开 SLS 一看就清楚。

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
人工智能 编解码 安全
阿里云服务器计算型c7、c8a、c8y、c8i、c9i实例区别及选型指南参考
在阿里云的活动中,属于计算型实例的通常有计算型c7、计算型c8a、计算型c8y、计算型c8i和计算型c9i这几个实例规格,不同实例规格在处理器架构、存储技术、网络协议、安全特性等性能并不是一样的,所以他们的适用场景也有所差异。本文为大家介绍计算型c7、c8a、c8y、c8i、c9i实例的性能、适用场景的区别以及选择参考。
|
数据采集 存储 NoSQL
Scrapy 框架实战:构建高效的快看漫画分布式爬虫
Scrapy 框架实战:构建高效的快看漫画分布式爬虫
|
JSON 自然语言处理 监控
淘宝关键词搜索与商品详情API接口(JSON数据返回)
通过商品ID(num_iid)获取商品全量信息,包括SKU规格、库存、促销活动、卖家信息、详情页HTML等。
|
存储 安全 API
如何编写假设和约束---SRS软件需求规格指南系列
本文介绍了软件需求规范(SRS)中假设与约束的重要性,涵盖技术、运营、商业假设及资源、技术、外部、运营、性能约束等内容。文章强调了其在风险管理、可追溯性、维护更新及利益相关者沟通中的作用,并提供了编写、验证与持续管理的最佳实践,助力项目成功。
743 8
|
安全 Linux 网络安全
CentOS 8下SSH连接超时与“无法加载主机密钥”错误的排查与修复
在CentOS 8系统中,宝塔面板提示“出错了,面板运行时发生错误”,导致插件无法正常显示。同时,SSH连接超时,修复面板功能失效。通过VNC连接排查,发现SSH服务安装和配置问题频发,最终通过重装SSH、调整权限并重新生成主机密钥文件解决问题,成功恢复SSH连接。
1505 16
|
人工智能 监控 安全
从 DeepSeek 敏感信息泄露谈可观测系统的数据安全预防
探讨了 SLS 中增强数据安全的几种方式:权限精细化管控有效减少了潜在安全风险;接入层脱敏技术阻止敏感数据落库,提升了隐私保护;StoreView 字段集控制通过限制查询数据范围,降低数据泄露损害。智能监控系统提供实时监测,快速识别并阻断异常拖库行为,为企业提供了迅速响应和抵御威胁的能力。
|
关系型数据库 MySQL 测试技术
记录一次后端接口抖动的排查过程
某天下午,测试新功能时发现页面接口偶尔变慢,平均十次调用中有三到四次出现3秒以上的延迟。排查了接口、数据库和服务器资源后未发现问题,最终锁定为K8s节点的负载均衡策略导致。测试环境仅有一个公网IP,SLB轮询四个Pod(其中三个为空),造成周期性延迟。移除空Pod后问题解决。
539 6
|
存储 编解码 人工智能
自媒体影视后期数字助理2--SDR与HDR中间件设计
阿里云提供的线上AI能力在处理视觉信息方面已经有较为成熟和通用的产品,对于开始兴建媒体资源管理平台的自媒体来说,采用阿里云的AI能力、函数计算以及OSS等产品进行平台搭建可以快速实现建设与能力扩充。本文为SDR与HDR中间件的开发思路、技术架构设计和开发实战中参数的设置介绍,对一些数字影像的基础概念和阿里云视觉人工智能的API细节进行了分析。
1254 122
自媒体影视后期数字助理2--SDR与HDR中间件设计
|
JavaScript 前端开发 API
精选5个.NET开源且免费的通用权限管理系统
精选5个.NET开源且免费的通用权限管理系统
628 3
|
消息中间件 监控 Kafka
Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面
随着大数据技术的发展,Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面,方便管理和监控 Kafka 集群。本文详细介绍了 Kafka Manager 的部署步骤和基本使用方法,包括配置文件的修改、启动命令、API 示例代码等,帮助你快速上手并有效管理 Kafka 集群。
391 0

热门文章

最新文章