当前位置: 首页 > article >正文

hyperf 可观测性方案大全

---1)日志结构化日志、ELK 大白话 日志就像飞机黑匣子。 出了问题你要能回答三件事1. 谁请求的user_id、trace_id2. 做了什么接口、参数、结果3. 什么时候慢/错了耗时、错误栈 结构化日志就是把日志写成 JSON不是乱七八糟一行字符串。这样 ES 才好查、Kibana 才好看。 Hyperf 示例写结构化日志JSON?php namespace App\Controller;use Hyperf\Logger\LoggerFactory;use Hyperf\Di\Annotation\Inject;class OrderController{#[Inject]protected LoggerFactory$loggerFactory;publicfunctioncreate(){$logger$this-loggerFactory-get(app,default);$startmicrotime(true);try{// 业务代码...$orderId12345;$logger-info(order_create_success,[eventorder_create,order_id$orderId,user_id1001,cost_ms(int)((microtime(true)-$start)*1000),trace_id\Hyperf\Context\Context::get(trace_id),]);return [order_id$orderId];} catch(\Throwable $e){ $logger-error(order_create_fail,[ eventorder_create,user_id1001,error$e-getMessage(),trace_id\Hyperf\Context\Context::get(trace_id),]);throw $e;} } } ELK 怎么接-Filebeat 收集日志文件-Logstash/Ingest Pipeline 处理-Elasticsearch 存储-Kibana 查询看板 关键点日志里一定带 trace_id后面链路追踪能串起来。---2)指标PrometheusGrafana 大白话 日志是“看细节”指标是“看体温”。 你每天盯的核心指标通常就这些-QPS每秒请求数-错误率5xx 比例-延迟P95/P99-Redis/MySQL 连接状态 Hyperf 示例打业务指标 下面用 CounterHistogram计数耗时分布?php namespace App\Service;use Prometheus\CollectorRegistry;use Hyperf\Di\Annotation\Inject;class PayService { #[Inject] protected CollectorRegistry $registry;public function pay(int $userId,float $amount):void { $counter$this-registry-getOrRegisterCounter(biz,pay_total,Total pay requests,[result]);$histogram$this-registry-getOrRegisterHistogram(biz,pay_cost_ms,Pay cost in ms,[api],[10,30,50,100,200,500,1000]);$startmicrotime(true);try {//业务逻辑... $counter-inc([success]);} catch(\Throwable $e){ $counter-inc([fail]);throw $e;} finally { $costMs(microtime(true)-$start)*1000;$histogram-observe($costMs,[pay]);} } } Prometheus 定时抓/metricsGrafana 画图。 最实用面板QPS错误率P95下游依赖耗时 四联图。---3)链路追踪OpenTelemetry 大白话 链路追踪就是给一次请求发“快递单号”。 请求经过网关-订单服务-库存服务-支付服务整个路径和每段耗时都能看到。 Hyperf 示例手动埋 Span?php namespace App\Service;use OpenTelemetry\API\Trace\TracerInterface;use Hyperf\Di\Annotation\Inject;class StockService { #[Inject] protected TracerInterface $tracer;public function deduct(int $skuId,int $num):void { $span$this-tracer-spanBuilder(stock.deduct)-startSpan();$scope$span-activate();try { $span-setAttribute(sku_id,$skuId);$span-setAttribute(num,$num);//扣库存逻辑... usleep(20000);$span-setAttribute(result,success);} catch(\Throwable $e){ $span-recordException($e);$span-setAttribute(result,fail);throw $e;} finally { $scope-detach();$span-end();} } } 配 OTLP 导出到 Jaeger/Tempo就能看到完整调用链。 日志里加同一个 trace_id排障速度会快很多。---4)告警策略 大白话 告警不是“越多越好”是“能叫醒人且真有事”。 常见坑阈值太敏感半夜一直误报最后大家都静音了。 实战策略推荐1.分级-P1核心不可用立刻电话-P2性能明显下降企业微信/钉钉-P3趋势异常白天处理2.多窗口短窗口长窗口 避免瞬时抖动误报。3.按业务SLO告警 比如“5分钟错误率2%且 QPS50”。 Prometheus 告警规则示例 groups:-name:hyperf-alerts rules:-alert:HighErrorRate expr:|(sum(rate(http_requests_total{status~5..}[5m]))/ sum(rate(http_requests_total[5m])))0.02and sum(rate(http_requests_total[5m]))50for: 10m labels: severity: P1 annotations: summary:HyPerf 5xx 错误率过高description:5xx错误率连续10分钟超过2%且请求量50rps- alert: HighP95Latency expr:|histogram_quantile(0.95, sum(rate(http_request_duration_ms_bucket[5m]))by(le))300for: 10m labels: severity: P2 annotations: summary:HyPerf P95 延迟过高description:P95 连续10分钟大于300ms---5)一套能直接上的 Hyperf 可观测性最小方案 - 日志JSON结构化 trace_id ELK 检索 - 指标QPS/错误率/P95/依赖耗时 Grafana 四联图 - 追踪OpenTelemetry 打通服务链路 - 告警按 SLO 分级多窗口先控误报再扩覆盖 先把这套最小闭环跑起来你的线上排障效率会明显上一个台阶。

相关文章:

hyperf 可观测性方案大全

---1) 日志(结构化日志、ELK) 大白话 …...

基于安卓的机场贵宾接机服务系统毕设源码

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一种基于安卓平台的机场贵宾接机服务系统以提升机场贵宾服务效率与旅客体验质量。当前机场贵宾服务存在信息传递滞后、资源调度低效及个性化…...

如何免费实现《植物大战僵尸》完美宽屏体验?PvZWidescreen模组终极指南

如何免费实现《植物大战僵尸》完美宽屏体验?PvZWidescreen模组终极指南 【免费下载链接】PvZWidescreen Widescreen mod for Plants vs Zombies 项目地址: https://gitcode.com/gh_mirrors/pv/PvZWidescreen 厌倦了在宽屏显示器上玩经典游戏《植物大战僵尸》…...

别再死记硬背了!手把手教你用DSP28335的eCAP模块精准测量PWM频率与占空比

DSP28335实战指南:eCAP模块精准测量PWM参数的工程化实现 在电机控制、电源调试等嵌入式开发场景中,PWM信号的频率与占空比测量是工程师常遇到的基础需求。传统示波器测量法虽直观但缺乏系统集成性,而DSP28335内置的eCAP模块能以硬件级精度实现…...

GPTeam多智能体协作框架:从原理到实战部署指南

1. 项目概述:当AI学会“拉群”协作 如果你对AutoGPT这类单智能体工具已经玩得有点腻了,觉得一个AI自己跟自己玩效率有限,那么GPTeam这个项目可能会让你眼前一亮。简单来说,GPTeam是一个基于GPT-4(也支持GPT-3.5-turbo…...

低场MRI仿真框架:优化非理想磁场下的图像重建

1. 低场MRI技术背景与挑战 磁共振成像技术在过去四十年中已成为临床诊断不可或缺的工具,但传统高场强(>1T)MRI系统存在体积庞大、造价高昂(通常超过千万元)和运维成本高等问题。这直接限制了MRI在基层医疗机构和特殊场景(如急诊…...

30.use 的作用是什么?如何使用?

use 是 React 提供的一个较新的 API,用来在组件渲染过程中“读取资源”的值(常见资源包括 Promise 与 Context)。当你把一个 Promise 交给 use() 时,React 可以在 Promise 仍未完成时暂停(suspend)该组件的…...

【2026年拼多多暑期实习/春招- 4月26日-第三题- 多多玩拼图】(题目+思路+JavaC++Python解析+在线测试)

题目内容 多多手里有一套散落的拼图,这套拼图可以完整的拼出 nmn \times mnm 的矩形图片。拼图的每个碎片都有一个唯一的编号(从 11...

【2026年拼多多暑期实习/春招- 4月26日-第二题- 多多的推荐位】(题目+思路+JavaC++Python解析+在线测试)

题目内容 多多正在为首页内容安排推荐位。一共有 mmm 个推荐位,第 jjj 个推荐位的热度值为 sjs_j...

用100道题拿下你的算法面试(字符串篇-9):所有不同的(不重复)回文子串

一、面试问题给定一个由小写英文字母组成的字符串 s,找出该字符串中所有不重复的连续回文子串。示例 1:输入:字符串 s "abaaa"输出:[ "a", "aa", "aaa", "aba", "b"…...

用100道题拿下你的算法面试(字符串篇-8):回文子串数目

一、面试问题 给定一个字符串 s,求出该字符串中长度大于或等于 2 的所有回文子串的总数量。若一个子串正读与反读完全相同,则该子串为回文子串。 示例 1: 输入:s "abaab" 输出:3 解释:长度…...

手把手教你用Verilog在Xilinx Spartan-6上驱动IS62LV256 SRAM:从时序图到状态机的完整避坑指南

基于Xilinx Spartan-6的SRAM控制器实战:从时序解析到状态机优化 在FPGA开发中,片外存储器的接口设计往往是工程师面临的第一个真正挑战。IS62LV256这类SRAM芯片虽然接口相对简单,但要将数据手册中的时序参数准确转化为可综合的Verilog代码&am…...

2025届毕业生推荐的六大降AI率网站推荐榜单

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 需从多维度着手来降低AIGC(人工智能生成内容)可测率,首先…...

Maestro框架:用YAML简化移动端UI自动化测试

1. 项目概述:从“RunMaestro/Maestro”看移动端UI自动化测试的演进如果你是一名移动端开发者或测试工程师,最近在GitHub上搜索自动化测试方案,大概率会看到一个名为“RunMaestro/Maestro”的项目热度飙升。这不仅仅是一个新的测试框架&#x…...

CREST分子构象搜索工具完整指南:从零开始掌握高效采样技术

CREST分子构象搜索工具完整指南:从零开始掌握高效采样技术 【免费下载链接】crest CREST - A program for the automated exploration of low-energy molecular chemical space. 项目地址: https://gitcode.com/gh_mirrors/crest/crest CREST(Con…...

机器学习损失函数:原理、选择与实战技巧

1. 机器学习中的损失函数:原理与实战解析在训练机器学习模型时,损失函数就像一位严格的教练,不断告诉模型"你现在的表现离完美还有多远"。作为从业十余年的算法工程师,我见过太多项目因为损失函数选择不当而导致效果不佳…...

VS Code + MCP + Cursor + Continue:多智能体开发工作流搭建(私有化部署+离线模型接入+权限沙箱实录)

更多请点击: https://intelliparadigm.com 第一章:VS Code MCP 插件生态概览与核心价值定位 MCP 是什么? MCP(Model Context Protocol)是由 OpenAI 提出的标准化协议,用于在 IDE 中安全、可扩展地集成大…...

【2026 VS Code MCP生态白皮书】:基于127家头部科技公司实测数据的插件选型决策矩阵

更多请点击: https://intelliparadigm.com 第一章:VS Code MCP生态演进与2026技术定位 VS Code 的 MCP(Model Control Plane)生态正从实验性插件架构迈向标准化智能代理协同平台。2024年发布的 VS Code 1.90 引入了 MCP Server 协…...

Docker AI Toolkit 2026正式发布:8个生产级AI插件一键下载,附官方签名验证与离线部署脚本

更多请点击: https://intelliparadigm.com 第一章:Docker AI Toolkit 2026正式发布与核心演进 Docker AI Toolkit 2026(简称 DAIT-2026)已于 2025 年 10 月 15 日正式 GA,标志着容器化 AI 开发进入“零配置智能编排”…...

为什么你的低代码应用在MCP 2026沙箱环境总报“ContextNotBound”错误?(附官方未公开的调试模式启用密钥)

更多请点击: https://intelliparadigm.com 第一章:ContextNotBound错误的本质与MCP 2026沙箱的上下文生命周期模型 错误根源解析 ContextNotBound 是 MCP 2026 沙箱运行时的核心异常之一,表明当前执行线程试图访问一个尚未被显式绑定&#…...

面试官亲述:一道“发红包”用例设计题,我凭什么给他通过?

上周帮部门做校招面试,最近面试了不少校招同学,简历都挺能打——自动化框架、接口测试、性能压测都写着,项目经历至少两三个。我问了一个问题:“如果让你测试微信发红包,你怎么设计测试用例?”7个人里面&am…...

C++程序的五大内存分区实例详解

C程序在运行时所占用的内存区域,一般可分为栈内存区、堆内存区、全局/静态内存区、文字常量内存区及程序代码区5大分区:下面使用日常开发中的编程实例,详细介绍一下这5个分区,以便大家能更深刻的理解这5大内存分区。1、栈内存区栈…...

C++程序简单示例

前言:很多小伙伴反应想要用C刷LeetCode,但是对于C语法不熟悉,对于很多算法和数据结构也不够了解。这就导致了刷题的时候需要四处查询资料,非常的麻烦。我们先来看一段C的示例代码:1234567// my first cpp file#include…...

C++ 常用关键字使用举例

1. static控制作用域、生命周期或类成员归属123456789101112131415// 1. 全局/命名空间:仅当前文件可见(避免跨文件重定义)static int global_static 10; // 其他文件无法通过 extern 访问// 2. 局部变量:生命周期延长至程序结束…...

告别“唯大厂论”:全球财富 500 强实体企业 IT 核心岗位的隐形红利

在当前的留学生家庭中,关于计算机科学(CS)与工程类专业的就业规划,往往笼罩着一种高度趋同的“名企焦虑”。许多家长和学生将目光死死锁定在硅谷的科技巨头或少数几家头部互联网大厂上。为了挤进这些竞争白热化的窄门,…...

RAPID-LLM:大模型分布式训练性能优化实践

1. RAPID-LLM:分布式LLM训练与推理的性能优化利器在当今AI领域,大语言模型(LLM)的训练与推理已成为技术前沿的热点。随着模型参数规模从十亿级向万亿级迈进,单卡GPU已无法满足计算和内存需求,分布式训练成为…...

Python在TVA算法架构优化中的创新应用(七)

前沿技术背景介绍:AI 智能体视觉系统(TVA,Transformer-based Vision Agent),是依托Transformer架构与因式智能体所构建的新一代视觉检测技术。它区别于传统机器视觉与早期AI视觉,代表了工业智能化转型与视觉…...

Python在TVA算法架构优化中的创新应用(六)

前沿技术背景介绍:AI 智能体视觉系统(TVA,Transformer-based Vision Agent),是依托Transformer架构与因式智能体所构建的新一代视觉检测技术。它区别于传统机器视觉与早期AI视觉,代表了工业智能化转型与视觉…...

AI日志分析系统:多代理自修正RAG架构解析与实践

1. 日志分析系统的现状与挑战现代软件系统产生的日志数据正以惊人的速度增长。根据2023年DevOps状态报告,大型互联网公司每天产生的日志量普遍超过1TB,而传统金融系统的日志量也达到了数百GB级别。这些日志包含了系统运行状态、错误信息、性能指标等关键…...

独享IP+动态IP结合核心逻辑,破解稳定与灵活的矛盾

在代理IP使用中,稳定与灵活往往难以兼顾:独享IP专属可用、纯净度高、稳定性强,适合长期业务,但灵活性不足,长期固定易被标记、封禁;动态IP切换灵活、IP资源充足,能规避封禁风险,但共…...