拒绝孤岛-可观测数据融合分析
如果无法正常显示,请先停止浏览器的去广告插件。
1. 拒绝孤岛
可观测数据融合分析
张城(元乙)-阿里云
2.
3. IT系统的可观测
• 系统更加复杂
• 开发涉及更多的人
• 运行环境多种多样
开发模式
系统架构
部署模式
基础设施
4. 可观测挑战
计算节点数
技术依赖
微服务
大量开源软
件、SaaS
容器
少量技术
虚拟机
物理机
单一
异构/云
发布频率
静态
动态
参与人数
一天一次
DevOp
s
一年一次
瀑布
Ops
按需发布
敏捷
单兵
DevSecOp
s
DevSecBusO
ps
协同
5. 什么是成熟的可观测方案
自动发现
一套工具
全栈数据
统一海量存储
数据关联分析
服务自动发现 客户端到服务端 减少跳转上下文缺失 超大规模写入 完备分析语法
基础设施自动化 基础设施到应用 降低体验割裂 长期存储友好 跨多种数据源
自动生成服务拓扑 IT、商业、Sec… 学习代价低易上手 Log/Trace/Metric统一 大规模分析能力
丰富的上下文
实时性
高基数
部分智能化
统一存储
关联Meta/CMDB 产生到可见秒级 问题来源于细节 告警收敛 实时分析
服务/交易上下文 快速返回查询结果 尽可能保留原始数据 基础的异常检测 融合分析
数据上下文 实时的告警能力 数据记录更多维度 基础的根因分析
智能化
6. 可观测数据分析发展历程
多套系统
统一可视化
统一存储分析
Metric
Trace
Log
Jaeger Grafana
Kibana
Loki
Tempo
SLS
Mimir
Grafana
观测数据采集 降低跳转代价 降低维护代价
数据都能用上 统一Meta数据 统一分析语言
更快、更便捷、更有效的观测数据价值挖掘:数据融合分析
7. 可观测数据融合分析
用户行为分析
监控
访问日志
Profiling
Android
Login
Logout
IOS
Payments
Crash
CMDB
Network
Logs
Metrics
用户DB
问题定位
登录日志
攻击检测
Network Packet
Configs
UserInfo
Access Log
PerfCounter
反作弊
Syslog
变更管理
Traces Profiling
CMDB DB
ML模型 …
Event Command
Binlog
Orders
Tracing
Error Log
Web Access
Audit Log
Profiling
Ping
Clouds
OpenFile
8. 技术难点与挑战
统一海量存储 PB级规模 数据关联分析 同类数据源关联 跨数据源关联
实时性 端到端秒级可见 交互式分析能力
高基数 多维度数据分析内存压力
统一的存储引擎
应对突增的写入
兼顾完备性与易用性
兼顾实时性与性能
超大规模存储成本
9. SLS可观测技术架构
SLS可观测统一平台架构
全栈监控
智能算法与编排
多种类
功能丰富
可定制
异常检测 时序预测 文本聚类 多维分析
根因定位 打标反馈 仪表盘 可视化嵌入
Trace
实时数据流转与分析
交互式
PB级
300+源
易用性
稳定性
无侵入
高性能
自动扩容
消耗低
实时消费 SQL PromQL 独享计算
数据加工 调度引擎 融合分析 数据导出
MetricStore
冷热分离
全栈数据采集
日志
指标
Trace
Cloud Lens
RUM
可观测统一存储引擎
LogStore
移动端监控
Event
成本管家
日志审计
…
10. 数据融合分析核心架构
Tag局部访问
数据
特性
正排
Metrics
OpenAPI
M
关键词随机过滤
倒排
Logs/Traces
L/T
列存
聚合分析
Query&Analysis Engine
Put&
Pull
访问
偏好
分析
诉求
面向
未来
写多读少
Query
Engine
SQL
Engine
Scheduler
PromQL
Engine
Batch写后台Compaction
SLS Worker
近期数据访问频繁
语法简洁&完备性
弹性分析能力
冷热分层
Query
多层缓存
PromQL
分布式执行
SQL
Data Indexing
Data Management
MetricStore Archive
Manager Retention
Manager
LogStore Cache
Manager Compaction
Manager
FIFO Queue
负载均衡
OSS
Pangu
可扩展能力
计算存储分离
无状态
数据流 水平扩展
控制流 带状态
11. 统一的存储引擎
Sort By Event Time
Sort By PK(MetricName Labels)
Inverted Index
Logs
Traces
LogStore
MetricStore
Column Oriented
Compaction
Sort By Arrive Time
FIFO Binlog
Logs协议
Traces协议
Metrics
Metrics协议
其他协议
12. 融合分析引擎
Pull、Search、
PromQL、SQL、
Pipeline …
SLS Query
Proxy
SLS Meta
Service
SQL
Coordinator
OpenAPI 、JDBC 、
HTTPS、Grafana、
Tableau…
SQL
Worker
SQL
Worker
SQL
Worker
SQL
Worker
Scale
Up/Down
Sorted Key过滤
关键词过滤
PromQL结果
SLS Prometheus
Prometheus
Query Engine
SLS TimeSeries
Storage
LogStore
MetricStore
MySQL
Presto Connectors
OSS
…
13. 融合分析示例
level: error and content : pay not source : 11.120.30.40 关键词查询 level: error and content : pay | select source, count(1)
as total from log group by source order by total desc 关键词查询 SQL
PromQL SQL
select time, value, instance from ( select promql_query_range(‘avg
by (instance) (irate(node_cpu_seconds_total{}[5m])’) from metrics )
a join cmdb b on a.instance = b.hostname and b.region = ‘shanghai’
select ts_predicate (time, value) as tsVal, instance, region
from( select a.time as time, a.value as value, a.instance as
instance, b.region as region from( select promql_query_range(‘avg
by (instance) (rate( node_cpu_seconds_total {mode=~“system”}[5m]))’
from metrics ) a join cmdb b on a.instance = b.hostname) where
instance in (select distinct source as instance from access_log
where level = ‘error’ and content like ‘%pay%’))
CPU System指标 关联Region信息
MetricStore CMDB
过滤日志中出现错误的机器
LogStore
SQL
PromQL
关键词查询
应用时序异常检测算法
ML模型
ML模型
CMDB
14. 当可观测执行到一定程度后
系统中有哪些观测数据
数据到底是什么样的
每种数据存储在哪里
数据的特性是什么
各类数据之间怎么关联
如何观测你的可观测数据?
15. 数据表达-观测可观测数据
实体/Resource 关联的数据
可观测数据的类型与关系
Traces
TraceContext
错误传播路径
Deploy1
触发
IP
Logs
User1
发布
Region
Pod
TraceID
CICD Job 1
Image
Access
Log
Metrics
Resource
实体/Resource之间的关系
K8s
Audit
Log
Pod Base
Metrics
Pod
Event
Pod Meta
实例
关联
问题根因
依赖
SpanID
可观测数据中的实体与关系
Image1
依赖
Service
Trace
Code Repo 1
GitLab
Access
Log
Pod1
运行在
Service A
Service B
运行在
Pod2
Mongo A
Service C
调用
Redis A
MySQL A
?
发现问题
Pod App
Metrics
Pod App
Access
Logs
Pod App
Error
Logs
Node1
Node
Metrics
VPC1
16. 案例1:SLS可观测建设实践
SLS全球化集群
SLS智能观测平台
负载均衡、自动扩容、
机器下线、故障隔离
SLS可观测数据存储
全球化大盘
集群稳定
性大盘
计费稳定
性大盘
营收分析
大盘
重保客户
大盘
SLS Admin Project
SLS服务
监控与问题排查
全量可观测数据
依赖服务
预聚和
全球同步
基础设施
cn-beijing
…
SLS Admin
Global Project
聚合/重要
可观测数据
预聚和
全球同步
SLS服务
依赖服务
•
•
•
•
• 账单数据
计费计量
用户SLA数据
集群水位
核心稳定性指标
•
•
•
•
•
•
•
•
•
•
• 用户访问日志
查询明细日志
各类应用日志
各类应用指标
全链路Trace
K8s 系统指标
K8s 组件日志
K8s 审计日志
K8s 事件
物理机指标
物理机Syslog
基础设施
监控 集群水位
监控 Agent稳
定性监控 SLS服务
监控
异常查询
分析 用户行为
分析 访问日志
分析 数据自定
义分析
智能告警与诊断
智能异常
告警 智能发布
管理 异常根因
定位 集群资源
预测
数据采集
诊断 查询异常
诊断 计量计费
诊断 消费延迟
诊断
SLS Admin Project
基础设施
全量可观测数据
us-west-1
DevOps
运维、发布、应急处理
产品
运营
架构师
技术支持
17. 案例2:多端全链路融合可观测
全链路观测数据应用平台
服务端
•
•
•
•
车机
APP
APP 遥控打开空调 …
服务端 OTA升级派发 …
车机
驾驶员操作
…
异步发送
断点续传
弱网优化
全球加速
全 链路 排查 自 定义 统 计
多 端监 控大 盘 工 单自 助 排查
告 警通 知 交 互行 为回 放
多 版本 对 比 根 因定 位
服务端Bug
手机无信号
云端MQ丢消息
功能禁用
DNS劫持
车机无信号
车机升级中
车机未启动
车机Bug
协议不匹配
APP Bug
身份验证失败
18. 案例3:基于SQL进行指标治理
(*)| select a as "LabelKey", approx_distinct(b) as "唯一数",
count(1) as "总数", arbitrary(b) as "LabelValue采样" from
( SELECT a, b FROM "sls-mall-k8s-metrics.prom",
UNNEST(split_to_map(__labels__, '|', '#$#')) AS t(a, b)
where __name__ != '' and regexp_like(__name__, '.*') )
group by a order by "唯一数" desc
19. 案例4-1:多数据类型关联分析
20. 案例4-2:带状态的流式异常检测
21. 可观测成熟度模型
自动化观测
预测&提升
故障预测
IT可观测 定位/修复建议
监控 数据查询 自动故障发现 服务健康度大盘 自动根因定位 减少故障间隔MTBF
全类型数据 故障根因分析 持续改进能力 监控数据 统一存储管理 系统稳定性提升 监控大盘 实时查询能力
告警系统
L1
L2
L3
L4
L5
22. 谢谢
Q&A