Linux怎么监控HTTP接口响应耗时如果超过3秒自动告警

酷萱姑娘_2771

酷萱姑娘_2771

2026-10-14

711人浏览

原创

curl -w 可提取各阶段耗时,关键指标是 time_starttransfer(ttfb),反映服务端真实响应起点;需配合 --connect-timeout 和 -m 超时控制、bc 浮点判断、告警冷却及业务状态校验,避免误报。

linux怎么监控http接口响应耗时如果超过3秒自动告警

直接用 curl 配合超时参数 + 状态判断就能实现,不需要上 Zabbix 或 Prometheus 这类重型工具——但必须加业务校验和冷却机制,否则一抖就告警。

用 curl -w 提取真实响应耗时

curl 的 -w 参数能输出各阶段耗时,关键不是总时间,而是 time_starttransfer(TTFB),它反映服务端真正开始响应的时间,比 time_total 更准。

  • 只测 TTFB: curl -s --connect-timeout 2 -m 5 -w "%{time_starttransfer}" -o /dev/null http://localhost:8080/health
  • --connect-timeout 2 控制 DNS + TCP 连接阶段最多 2 秒,防卡在握手
  • -m 5 是整个请求最大耗时(含传输),超时返回非零退出码,可直接用于 if 判断
  • 注意:如果后端用了 CDN 或反向代理,time_starttransfer 可能包含其缓存逻辑,需结合日志交叉验证

判断超时并触发告警的 Shell 逻辑

不能一测出 >3 秒就发邮件,得连续失败、有状态记忆、还要防恢复静默。

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • 用 bc 做浮点比较:$(echo "$ttfb > 3" | bc -l),避免 Bash 不支持小数
  • 记录上次告警时间到 /tmp/http_alert_last_sent,两次告警间隔至少 15 分钟
  • 检查前先确认服务进程和端口是否正常,避免因 nginx worker 崩了但 master 还在导致误判
  • 示例片段:
    ttfb=$(curl -s --connect-timeout 2 -m 5 -w "%{time_starttransfer}" -o /dev/null http://localhost:8080/health 2>/dev/null)
    if [ -z "$ttfb" ] || [ "$(echo "$ttfb > 3" | bc -l)" = "1" ]; then
      if [ ! -f /tmp/http_alert_last_sent ] || [ $(($(date +%s) - $(cat /tmp/http_alert_last_sent))) -gt 900 ]; then
        echo $(date +%s) > /tmp/http_alert_last_sent
        echo "HTTP TTFB $ttfb s on $(date)" | mail -s "⚠️ Slow API" admin@example.com
      fi
    fi

为什么不用 systemctl show -p SubState 替代?

因为 SubState 只反映 systemd 对服务“启动意图”的理解,不等于接口真能响应。比如:

  • nginx master 进程在,但所有 worker 都卡死 —— SubState=running,但 curl 超时
  • Java 应用已启动,但 Spring Boot Actuator 的 /health 返回 {"status":"DOWN"} —— systemctl 显示 active,实际不可用
  • 所以必须走真实 HTTP 探测,systemd 只能作为兜底(比如配合 ExecStartPost 健康检查)

真正难的不是测出耗时,而是区分“瞬时抖动”和“持续劣化”;一次超时可能是 GC 或磁盘 I/O 尖峰,连续三次才值得人看——这个阈值和冷却窗口,得根据你的业务容忍度调,别抄别人家的 3 秒或 15 分钟。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3128

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

4769

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3769

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

446

15

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.09

3383

4

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

2023.11.14

854

3

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

2024.03.12

6426

8

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.08.16

5410

6

Go 语言 HTTP 编程与中间件开发教程合集
Go 语言 HTTP 编程与中间件开发教程合集

全面讲解 Go 语言 HTTP 编程的核心知识,涵盖 net/http 标准库的 Server/Handler/HandlerFunc 体系、DefaultServeMux 路由注册与自定义路由器、Request / ResponseWriter 请求响应处理、中间件(Middleware)链式设计模式与常见中间件(日志/CORS/认证/限流)开发、http.Client 的超时配置与连接池管理、Cookie / Session 处理、

2026.05.08

481

31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
尚观shell视频教程
尚观shell视频教程

共8课时 | 1.9万人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习