团队暂时没有条件部署 SkyWalking

简介: 本文详解APM链路追踪核心实践:先定位慢在哪一跳。通过SkyWalking开箱即用方案(Java零侵入Agent接入)或自研轻量方案(MDC+AOP日志埋点),快速生成耗时瀑布图,将3.2秒慢请求精准定位至2.35秒SQL,大幅提升性能排查效率。(239字)

重点一:APM 链路追踪 —— 先确定慢在哪一跳
1.1 排查思路
一个请求的典型链路是:

网关 → 服务A(业务逻辑) → 服务B(RPC调用) → MySQL → Redis
慢接口排查的第一步不是看日志,而是把整条链路的耗时拆解出来。链路追踪(Distributed Tracing)就是为这件事而生的:每个请求携带一个全局 TraceId,每经过一个节点产生一个 Span,记录该节点的开始时间和耗时。

1.2 接入 SkyWalking(开箱即用方案)
SkyWalking 是 Apache 开源的 APM 工具,Java 服务接入只需加一个 Agent 参数,零代码侵入:

启动命令中挂载 agent

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=order-service \
-Dskywalking.collector.backend_service=127.0.0.1:11800 \
-jar order-service.jar
接入后在 UI 的 Trace 页面可以看到这样的耗时瀑布图:

/order/detail 3200ms ├──────────────────────────────┤
├─ OrderService.detail 180ms ├──┤
├─ UserRPC.getUser 2400ms ├───────────────────┤
│ └─ MySQL.select 2350ms ├────────────────┤ ← 慢在这里
└─ Redis.get 12ms ├┤
一眼就能看出:总耗时 3.2 秒,其中 2.4 秒花在一次 RPC 调用上,而 RPC 内部又有 2.35 秒是一条 SQL。排查范围瞬间从"整个系统"缩小到"一条 SQL"。

1.3 没有 APM 时的自建轻量方案
如果团队暂时没有条件部署 SkyWalking,可以用 MDC + AOP 自建一个简化版,把每个环节的耗时打到日志里:

/**

  • 基于 AOP 的链路耗时埋点:在关键方法上标注 @TraceSpan 即可记录耗时
    */
    @Aspect
    @Component
    @Slf4j
    public class TraceSpanAspect {
@Around("@annotation(traceSpan)")
public Object around(ProceedingJoinPoint pjp, TraceSpan traceSpan) throws Throwable {

    String spanName = traceSpan.value();
    String traceId = MDC.get("traceId");  // 由网关过滤器统一塞入
    long start = System.currentTimeMillis();

    try {

        return pjp.proceed();
    } finally {

        long cost = System.currentTimeMillis() - start;
        // 统一格式输出,方便用 ELK 做聚合分析
        log.info("SPAN|{}|{}|{}ms", traceId, spanName, cost);
    }
}

}

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TraceSpan {

String value();

}
在业务方法上使用:

@Service
public class OrderService {

@TraceSpan("OrderService.detail")
public OrderDetailVO detail(Long orderId) {

    UserDTO user = userRpcClient.getUser(orderId);   // RPC 调用
    OrderDO order = orderMapper.selectById(orderId); // DB 查询
    return assemble(user, order);
}

}
同时在网关层加一个过滤器生成 TraceId:

@Component
public class TraceIdFilter implements Filter {

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
        throws IOException, ServletException {

    String traceId = UUID.randomUUID().toString().replace("-", "").substring(0, 16);
    MDC.put("traceId", traceId);
    try {

        chain.doFilter(req, res);
    } finally {

        MDC.remove("traceId");  // 防止线程复用导致 traceId 串号
    }
}

}
这样用 grep "SPAN|abc123" app.log 就能还原一次请求各环节的耗时分布。

本阶段结论:链路追踪解决的是"定位"问题。找到耗时占比最高的那一跳之后,才进入下一阶段。






相关文章
|
21天前
|
人工智能 自然语言处理 数据挖掘
Data Agent 落地的下半场:让企业学会与 AI 协作
Data Agent 落地的上半场,是建设 AI-Ready Data;下半场,是建设 Agent-Ready Organization。上半场决定 Agent 能不能进入企业,下半场决定 Agent 能不能真正融入工作、形成规模,并持续创造价值。
|
21天前
|
SQL JSON 运维
一条SQL同时处理结构化条件和非结构化语义匹配。
本文对比智能客服场景下向量检索的两种架构:独立向量库 vs 内置向量的关系型数据库。结合5万知识库、日增数百条、QPS 20+的实际需求,剖析二者在数据一致性、运维成本、查询性能与扩展性上的真实差异,指出多数创业团队无需“为技术而技术”,关系库向量化已足够成熟可靠。(239字)
100 0
|
21天前
|
人工智能 搜索推荐 知识图谱
2026 GEO实战指南:让AI搜索引擎正确引用你的技术文章
GEO(生成式引擎优化)是面向LLM检索-推理-生成链路的信息组织工程,聚焦语义分块、结构化数据(Schema)、引用可信度与实体关系构建,提升内容在AI搜索引擎中的召回率与引用率,非SEO替代品,而是机器可读性的新基础设施。
209 1
|
1月前
|
人工智能 分布式计算 DataWorks
阿里云大数据 AI 产品月刊-2026年6月
阿里云大数据& AI 产品技术月刊【2026 年 6 月】,涵盖 6 月技术速递、产品和功能发布、市场和客户应用实践等内容,帮助您快速了解阿里云大数据& AI 方面最新动态。
|
5月前
|
SQL Java API
Agent 越用越聪明?AgentScope Java 在线训练插件来了!
使用AgentScope Java + Trinity-RFT 在线训练优化你的Agent,让你的Agent边运行边进化。
1497 42
|
8天前
|
人工智能 JSON 物联网
8G 显存可用|ComfyUI+Qwen AI 漫剧全流程自动化搭建教程(含工作流 & 源码)
本文提出基于Qwen大模型与ComfyUI的本地全链路AI漫剧自动化流水线,专为8GB显存笔记本优化:FP8量化、显存调度、IP-Adapter角色锁定,实现“脚本生成→分镜渲染→动态化→成片合成”全流程本地部署,配套完整工程资源与落地指南。(239字)
|
17天前
|
机器学习/深度学习 缓存 人工智能
阿里云百炼 Kimi K3 模型详解:多模态能力、限流参数、调用价格一览
全球首个开源3万亿级大模型Kimi K3正式上线阿里云百炼平台。该模型由月之暗面研发,参数达2.8万亿,支持100万Token超长上下文与原生视觉理解,具备文本生成、多模态推理和深度思考能力,输入定价20元/百万Token(缓存命中仅2元)。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
|
1月前
|
应用服务中间件 网络安全 nginx
阿里云SSL证书教程:HTTPS证书申请与安装步骤!
本文是2026年阿里云SSL证书全平台部署实战指南,融合云架构与SEO双重视角:详解HTTPS为何是出海站点生死线,涵盖免费/商用证书申领、DNS验证、Nginx/Apache手动配置及CDN/SLB一键部署,并强调301重定向、混合内容修复与GSC资产更新等关键SEO检查项。
|
2月前
|
人工智能 数据可视化 定位技术
CodeGraph vs Understand-Anything:一个给 Agent 查代码地图,一个把项目变成可追问图谱
CodeGraph 与 Understand-Anything 同解“代码迷路”之困:前者是面向编程 Agent 的本地索引工具,专注快速查询调用链、影响范围与上下文;后者是面向人与团队的交互式项目图谱,提供可视化架构、业务域导览与系统理解。二者互补而非替代——一重执行精度,一重认知全局。(239字)
540 1
CodeGraph vs Understand-Anything:一个给 Agent 查代码地图,一个把项目变成可追问图谱
|
2月前
|
人工智能 供应链 数据可视化
长江商学院CIO徐斌:AI时代,组织的进化逻辑与人才转型新思维
徐斌,长江商学院CIO、计算机博士,20年世界500强及上市公司高管经验,首创数字化“三驾马车”方法论(流程变革、IT固化、数字运营),成功主导得力集团全链路转型,助力其获评首批浙江省未来工厂。