41

美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV
Page 2: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

美团点评分布式实时监控平台CAT

美团点评基础架构 孙佳林

Page 3: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

目录

CAT介绍

架构与设计

实战经验

Page 4: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

CAT介绍

• CAT(Central Application Tracking)

• 基于纯Java开发的分布式实时监控系统• 分布式• 实时 (毫秒)• 近全量• 监控(性能指标、健康状况、基础告警等)

Page 5: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Why?

• 系统指标正常 ≠ 应用健康

• 故障快速发现定位(时间 == 金钱 )

• 用户侧真实访问情况

• 掌握线上的应用健康,扩容、缩容、降级 …

Page 6: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Do what?

• 故障发现

• 性能分析

• 治理

Page 7: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

How - 故障发现

• 业务大盘• 报错大盘• 服务大盘• 存储大盘(数据库、缓存)

• 实时告警服务

Page 8: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

业务大盘

Page 9: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

报错大盘

Page 10: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

服务大盘

Page 11: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

数据库大盘

Page 12: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

How - 性能分析

• 指标• 访问量• 响应时间

• 对象• 应用本身(业务请求量、响应时间)• 客户端(RPC服务、数据库、缓存、消息 …)• 服务端(RPC服务、数据库、缓存、消息 …)

Page 13: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

一个case

• 特定业务订单成交的分钟级统计• 成交额总量• 成交数总量

• 成交平均耗时、最大耗时、TP9X …• 执行出错量• 请求落到服务器的分布情况

Page 14: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

简单做法

long start = System.currentTimeMillis();

try {int money = myBusinessPayOrder();

System.out.println("myBusinessPayOrder");} catch (Exception e) {

logger.error(e);}

long timeElasped = System.currentTimeMillis() - start;

System.out.println("myBusinessPayOrder_time:"+timeElasped);

Page 15: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

CAT APITransaction t = Cat.newTransaction("URL", "PayOrder");

try {int money = myBusinessPayOrder();

Cat.logMetricForCount("myBusinessPayOrder");

Cat.logMetricForCount(“PayMoney", money);

Cat.logEvent("ServerIp", localIpAddress);

t.setStatus(Transaction.SUCCESS);} catch (Exception e) {

Cat.logError(e);t.setStatus(e);

} finally {t.complete();

}

Page 16: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

业务监控Metric

Page 17: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Transaction 报表

Page 18: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Transaction报表

• 支持项目、IP、TYPE、NAME 四层统计

• 数据来源:

• API打点:Cat.newTransaction(type, name)

• 框架打点:框架层面 MVC、RPC、SQL、Cache、Message …

Page 19: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Transaction报表

Page 20: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

分钟级统计

访问量趋势耗时分布

平均耗时趋势 成功率趋势

Page 21: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Event报表

• 用于一些事件的统计,比如程序异常路径访问、任务执行记录等

• 统计一些QPS分布、SQL长度分布等

• 数据来源:

• API打点:Cat.newEvent(type, name)

• 框架打点:框架层面 MVC、RPC、SQL、Cache、Message …

Page 22: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Event报表

Page 23: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Problem报表

• 实时分析所有transaction\event消息

• 找出存在异常的调用链路

• Exception

• Failed Transaction

• Long Http/SQL/Service/Call/KV

Page 24: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Problem报表

Page 25: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

problem logview

Page 26: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Heartbeat报表

• 系统指标

• JVM指标

• 数据库连接池

• 业务实现SPI上报 …

Page 27: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Heartbeat报表

Page 28: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

远端调用logview

Page 29: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

设计目标

• 可扩展 √• 高可用 √ • 实时性 √ • 全量数据 √ • 高吞吐 √ • 故障容忍 √ • 可靠性 ✘

Page 30: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

监控模型

Page 31: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

消息组成

Page 32: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV
Page 33: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV
Page 34: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

CAT整体架构

Page 35: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

客户端设计

process in a thread

创建消息树

ThreadContext

Server

Server

Sender

Sender

长连接

Page 36: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

CAT消费机制

应用A

应用B

应用C

Receiver

Receiver

Receiver

消费机

异步发送

Analyzer

Analyzer

Analyzer

异步转存

统计报表

Local

Page 37: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

实战

• Mysql 服务端基本没有慢查询,CAT上却有很多long-sql

• CAT统计不对?OR …

Page 38: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

CAT规模

• 接入应用数: 6K+

• 接入机器: 40K+

• 消息处理量(每天): 3000亿+

• 消息存储量(每天) : 230T+

• 高峰期QPS可达 : 550万

• 可用性 99.999+

Page 39: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

CAT现状

Page 40: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Thanks

Page 41: 美团点评 - pic.huodongjia.com分布式实时监控平台CAT 美团点评基础架构 孙佳林 ... •存储大盘(数据库、缓存) ... • Long Http/SQL/Service/Call/KV

Q&A