news 2026/5/23 20:36:55

淘宝返利软件的可观测性架构:Prometheus与Grafana监控体系搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
淘宝返利软件的可观测性架构:Prometheus与Grafana监控体系搭建

淘宝返利软件的可观测性架构:Prometheus与Grafana监控体系搭建

大家好,我是 微赚淘客系统3.0 的研发者省赚客!

在高并发、分布式环境下,淘客系统的稳定性依赖于完善的可观测性能力。微赚淘客系统3.0 基于 Prometheus + Grafana + Spring Boot Actuator 构建了端到端监控体系,覆盖 JVM 指标、HTTP 接口性能、业务关键链路及异常告警,实现“问题可发现、根因可定位、趋势可预测”。

一、Spring Boot 应用暴露指标

首先,在juwatech.cn.rebate模块中集成 Micrometer 与 Actuator:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId></dependency>

配置application-prod.yml开启 Prometheus 端点:

management:endpoints:web:exposure:include:health,info,prometheus,metricsendpoint:prometheus:enabled:truehealth:show-details:always

启动后,访问/actuator/prometheus即可获取指标文本,例如:

http_server_requests_seconds_count{method="GET",uri="/api/commission",status="200",} 1245.0 jvm_memory_used_bytes{area="heap",id="G1 Eden Space",} 2.147e8

二、自定义业务指标埋点

针对核心业务如佣金计算、订单同步,我们通过MeterRegistry注入自定义计数器与直方图:

packagejuwatech.cn.rebate.service;importio.micrometer.core.instrument.Counter;importio.micrometer.core.instrument.MeterRegistry;importio.micrometer.core.instrument.Timer;importorg.springframework.stereotype.Service;@ServicepublicclassCommissionCalculationService{privatefinalCountercommissionSuccessCounter;privatefinalCountercommissionFailureCounter;privatefinalTimercommissionProcessTimer;publicCommissionCalculationService(MeterRegistrymeterRegistry){this.commissionSuccessCounter=Counter.builder("rebate.commission.success").description("成功计算佣金次数").register(meterRegistry);this.commissionFailureCounter=Counter.builder("rebate.commission.failure").description("佣金计算失败次数").register(meterRegistry);this.commissionProcessTimer=Timer.builder("rebate.commission.duration").description("佣金计算耗时(秒)").register(meterRegistry);}publicBigDecimalcalculate(LongorderId){returncommissionProcessTimer.recordCallable(()->{try{// 模拟佣金计算逻辑BigDecimalamount=doCalculate(orderId);commissionSuccessCounter.increment();returnamount;}catch(Exceptione){commissionFailureCounter.increment();throwe;}});}privateBigDecimaldoCalculate(LongorderId){// 实际业务逻辑returnnewBigDecimal("12.50");}}

三、Prometheus 配置服务发现

prometheus.yml中配置基于 Kubernetes 的服务发现,自动抓取所有rebate服务实例:

scrape_configs:-job_name:'rebate-app'kubernetes_sd_configs:-role:podrelabel_configs:-source_labels:[__meta_kubernetes_pod_label_app]action:keepregex:rebate-system-source_labels:[__meta_kubernetes_pod_annotation_prometheus_io_scrape]action:keepregex:true-source_labels:[__meta_kubernetes_pod_ip]target_label:__address__replacement:$1:8080-source_labels:[__meta_kubernetes_namespace]target_label:namespace

确保 Pod 注解包含:

metadata:labels:app:rebate-systemannotations:prometheus.io/scrape:"true"

四、Grafana 仪表盘配置

导入或创建以下关键面板:

  • JVM 内存与 GC:使用JVM (Micrometer)官方模板(ID: 4701)
  • HTTP 请求延迟分布:查询语句:
    histogram_quantile(0.95, rate(http_server_requests_seconds_bucket{job="rebate-app"}[5m]))
  • 业务成功率
    rate(rebate_commission_success_total[5m]) / (rate(rebate_commission_success_total[5m]) + rate(rebate_commission_failure_total[5m]))

同时配置告警规则,例如接口错误率突增:

# alert.rules.ymlgroups:-name:rebate-alertsrules:-alert:HighCommissionErrorRateexpr:rate(rebate_commission_failure_total[5m])>0.1for:2mlabels:severity:criticalannotations:summary:"佣金计算失败率过高"description:"过去5分钟失败率超过10%,当前值:{{ $value }}"

在 Prometheus 中加载该规则:

rule_files:-"alert.rules.yml"

五、日志与链路追踪联动

虽然本文聚焦指标监控,但实际生产中需结合 Loki(日志)与 Jaeger(链路)。我们在关键方法添加 Trace ID 日志:

importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.web.filter.OncePerRequestFilter;publicclassTraceIdFilterextendsOncePerRequestFilter{privatestaticfinalLoggerlog=LoggerFactory.getLogger(TraceIdFilter.class);@OverrideprotectedvoiddoFilterInternal(HttpServletRequestrequest,HttpServletResponseresponse,FilterChainfilterChain)throwsIOException,ServletException{StringtraceId=UUID.randomUUID().toString().replace("-","").substring(0,16);MDC.put("traceId",traceId);log.info("Start request: {} {}",request.getMethod(),request.getRequestURI());try{filterChain.doFilter(request,response);}finally{MDC.clear();}}}

Grafana 中可通过 Explore 关联日志与指标,实现“从告警 → 指标 → 日志 → 代码”的完整排查链路。

本文著作权归 微赚淘客系统3.0 研发团队,转载请注明出处!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 20:36:25

分布式淘客系统的配置中心设计:Nacos在多环境配置管理的应用

分布式淘客系统的配置中心设计&#xff1a;Nacos在多环境配置管理的应用 大家好&#xff0c;我是 微赚淘客系统3.0 的研发者省赚客&#xff01; 随着微赚淘客系统3.0业务模块拆分为用户服务、佣金服务、商品同步服务等多个微服务&#xff0c;传统配置文件方式已无法满足动态调…

作者头像 李华
网站建设 2026/5/23 20:36:53

为什么三线城市测试员更易获风投?地域红利揭秘

一、引言&#xff1a;地域红利与软件测试行业的新机遇 在数字化转型浪潮中&#xff0c;软件测试行业正经历结构性变革&#xff0c;三线城市测试员凭借地域红利成为风投青睐的对象。地域红利指二三线城市在生活成本、政策支持和人才生态上的系统性优势&#xff0c;为测试从业者…

作者头像 李华
网站建设 2026/5/23 20:36:54

硅谷新风口:AI开始雇佣人类,数字打工人热度破55万!

在人工智能技术快速迭代的今天&#xff0c;硅谷迎来了一场前所未有的“反转”。一项名为“RentAHuman.ai”的新兴平台近日在互联网引发轰动&#xff0c;标志着“AI雇佣人类”这一概念不再是科幻小说的情节&#xff0c;而是正在进行的现实实验。根据36氪报道&#xff0c;这一现象…

作者头像 李华
网站建设 2026/5/3 10:45:45

路由优化:企业应如何实现VLAN、传输网与交换系统端到端协同优化

优化局域网VLAN结构、调优传输网路由路径、完善交换系统路由策略 摘要 为企业IT部门、信息化负责人及运维团队提供价值&#xff1a;通过可视化运行监控系统&#xff0c;支撑系统规划、标准化交付与平台化运维&#xff0c;实现高确定性的ICT基础设施管理&#xff0c;降低故障率…

作者头像 李华
网站建设 2026/5/23 15:18:08

【期货量化进阶】期货量化交易策略动态仓位管理(Python量化)

一、前言 固定仓位管理难以适应市场变化&#xff0c;动态仓位管理可以根据市场状态、信号强度、账户风险等因素动态调整仓位&#xff0c;提高策略的风险收益比。本文将介绍如何实现动态仓位管理。 本文将介绍&#xff1a; 动态仓位管理原理基于波动率的仓位调整基于信号强度…

作者头像 李华
网站建设 2026/5/22 3:10:47

【期货量化进阶】期货量化交易策略风险预算管理(Python量化)

一、前言 风险预算是量化交易中的核心概念&#xff0c;通过合理分配风险预算&#xff0c;可以在控制整体风险的同时最大化收益。风险预算管理是专业量化交易系统的重要组成部分。本文将介绍如何实现风险预算管理。 本文将介绍&#xff1a; 风险预算的基本概念风险度量方法风…

作者头像 李华