《匡凌轩-虎牙业务监控的标准化改造实践.pdf》由会员分享,可在线阅读,更多相关《匡凌轩-虎牙业务监控的标准化改造实践.pdf(22页珍藏版)》请在三个皮匠报告上搜索。
1、虎牙虎牙业务应用监控的业务应用监控的标准化标准化改造实践改造实践匡凌轩 可观测平台负责人匡凌轩匡凌轩虎牙直播 可观测平台负责人虎牙直播可观测平台负责人,负责虎牙事件中心、元数据、计量计费、统一可观测和告警等平台建设,最近主导可观测平台OpenTelemetry标准化改造等项目从零到一实践落地;曾任职欢聚时代集团,负责YY直播Web研发团队,主导业务高可用、高并发分布式服务架构设计和实现,保障过多届年度盛典等海量用户业务场景。虎牙公司是一家致力于打造全球领先直播平台的技术驱动型内容公司,在直播游戏化、虚实融合技术方面积累了丰富经验,为用户和行业赋能。目 录0101项目背景0202方案实践0303
2、0404效果展示未来展望PART 01项目背景如何兼顾业务自定义和标准化GOPS 全球运维大会 2024 深圳站项目背景当时痛点01监控方式多样监控方式多样接入效率问题接入效率问题稳定性问题稳定性问题-不标准化不标准化、难以通用难以通用-重复开发重复开发、不够不够复用复用-QPS-QPS、时延时延、可用性可用性切入点02基于业界标准基于业界标准接入接入零成本零成本告警根因告警根因定位定位-Otel-Otel标准标准、组件化组件化-框架集成框架集成、字节码植入字节码植入-告警告警分析分析、多维下钻多维下钻效果衡量03新旧同时兼容新旧同时兼容业务业务覆盖率覆盖率整体平台落地整体平台落地-统一转换统
3、一转换、统一存储统一存储-语言框架语言框架、应用服务应用服务-排障排障、提效提效、止损止损PART 02方案实践OpenTelemetry标准化统一改造GOPS 全球运维大会 2024 深圳站Otel标准化思考1.存量和增量上报同时兼容2.Otel Metrics统一设计方案GOPS 全球运维大会 2024 深圳站SDK架构设计FrameworkFrameworkInstrumentationInstrumentationTrpc FrameworkGo/JavaSpringCloudSpringmvc/FeignHttp ClientVertxReactive FrameworkRedis
4、ClientMysql ClientTaf FrameworkJava/Cpp Dcache Client零成本接入:零成本接入:Java:Agent探针字节码植入Cpp/Go:框架级插桩植入按规范标准采集Metric和TraceMetrics TypeMetrics TypeRPC模调指标主调/被调应用资源指标线程池/队列/连接池.StandardStandardMetric Model&AttributesTrace Model&Attributes自定义指标送礼/登录/充值.统一统一规范标准:规范标准:Standard:模型和属性定义Metrics Type:监控指标分类SDK API:
5、按规范无侵入API埋点SDK APISDK APIOpenTelemetry SDKMetric/Trace/Log Otel ExporterMetric ExporterTrace ExporterOtel CollectorGrpc/HttpOTLPReceiversSDKSDK封装:封装:SDK:底层基于Otel SDKExporter:Metric/TraceCollector:Grpc/Http OtlpGOPS 全球运维大会 2024 深圳站Otel统一链路架构业务监控业务监控应用资源指标自定义指标RPC模调指标SinkerSinker:1.Receiver:消费Kafka的OT
6、LP数据2.Processor:重试、防丢、反压、批处理等3.Exporter:输出OTLP到VM,多数据源支持StoragesStoragesVM TSDBClustersSinkersSinkersReceiverOTLP From KafkaKafkaKafkaOtel TopicProcessors攒批/重试/反压.ExporterOTLP to VMVM TSDBToolchainotlpotlpotlpVM AgentPre-agg产品:产品:1.可视化:Grafana/自研结合2.告警:规则策略、动态阈值3.定位:指标关联、多维下钻产品建设产品建设监控告警规则策略/根因定位数据可
7、视化Grafana/自研图表promqlSelf ObservabilityResource BillingCollectors异常/流量/包大小/.Sinkers异常/延迟/反压/.Storages流量/慢写入/时间线/.Points数据点:应用/业务模块TimeSeries时间线:应用/业务模块Resources资源:cpu/mem/disk/.自身可观测资源计量CollectorCollector:1.Receiver:同时兼容老协议和Otel上报2.Processor:验证、清洗、转换等3.Exporter:转换OTLP后统一输出到Kafka接入方式接入方式Xiwi SDKwith o
8、telOld APIhttp/tafCollectorsCollectorsReceiverMuti Protocol DataProcessors验证/清洗/转换.ExporterOTLP to Kafkagrpc/http otlphttp jsontaf jceFlink Agglog to metric转成otlpJson/JceGOPS 全球运维大会 2024 深圳站元数据分析设计Meta Analyser ServerMeta Analyser ServerOtlp ReceiverOtlp ReceiverResourceAttributesScopeAttributesPoin
9、tAttributesMeta MappingMeta MappingExpressionYaml Conf KeyMeta Data Dynamic MappingBloom FilterReduce DuplicatesMeta ExporterMeta ExporterAsync ExportBuffer MetaBatch InsertNew MetaBatch DeleteExpired MetaStoragesStoragesHugeGraphMulti-level RelationsVertex/EdgeMysqlApp/Server/Api/HostCustom Dimensi
10、onotlpCollectorCollector:1.新旧多协议支持,统一转成OtlpKafkaKafkaOtel TopicCollectorsCollectorsHttp JsonOtel OtlpTaf JceotlpGrpc/Http OtlpTaf ApiHttp ApiOtlp Otlp ReceiverReceiver:1.解析otlp结构中各层的attributes2.Resource/Scope/Point平铺封装Meta MappingMeta Mapping:1.布隆过滤器减少重复的元数据处理开销2.自定义表达式来配置指定attributes key3.动态Mapping
11、映射来提取元数据Meta Meta ExporterExporter:1.异步缓冲元数据并批量输出存储2.配置支持定时删除过期元数据StorageStorage:1.支持Plugin配置输出到多个存储引擎2.自定义维度,RPC主被调Server/Api/Host等3.多层级应用服务调用链路关系数据应用数据应用:1.RPC主被调关系信息下拉框或列表展示2.自定义Tag,Restful uri等高基维度治理3.应用服务级、接口级调用链拓扑图展示4.赋能更多运维层面的业务提效和成本优化MappingBatchingExportingGOPS 全球运维大会 2024 深圳站告警模块设计业务监控业务监控
12、应用资源指标自定义指标RPC模调指标VM TSDBVM TSDBVM DetailClusterVM QueryGateWayVM PreAggClusterAlarm Analyse ModuleAlarm Analyse ModuleSchedulerSchedulerScheduled Metrics QueryTimeSeries Timestamp MarkRule ExpressionCheckEventsEvents Exporter ExporterMysqlInsert EventsAlarm CenterWechat/SMS/.查询路由:1.明细集群2.预聚合集群VM AP
13、IPromQLEvents BuilderEvents BuilderError Events 1.Alarm Templates 2.Metric/Point/Rule 3.Dimension Tags 4.Event Snapshots 产品层产品层企业微信告警概要/详情错误事件展示搜索/统计BuildingEventsAlarmCenterEvent SnapshotsRolling Up/AggMysqlQueryVM TSDB VM TSDB:1.明细集群和预聚合集群存储VM Query GateWayVM Query GateWay:1.VM标准API网关服务2.PromQL/Me
14、tricQL查询支持3.请求路由/鉴权/限流/自监控Scheduled Rule CheckScheduled Rule Check:1.读取各种告警策略的规则表达式2.周期性查询VM Metric Point数据3.根据表达式判断是否异常错误Events ExportEvents Export:1.构建错误事件快照对象2.事件输出到存储和告警中心Events Rolling Up/AggEvents Rolling Up/Agg:1.周期性查询事件进行分析2.统计聚合相关Tag事件数据3.输出聚集性问题根因定位存储VMGOPS 全球运维大会 2024 深圳站多维根因下钻StoragesSto
15、ragesVM QueryGateWayMultMulti-Dimension Root CauseRoot CauseCause AnalyserCause AnalyserHigh CardinalityFilterCorrelation Algorithm(Pearson)VM APIPromQLQueryQueryTimeSeriesMulti-Dim QueryQueryCause AnalyserCause Analyser:1.各时间线的高基维度过滤掉2.根据可下钻维度去查询相关时序数据3.相关性检测算法,如:皮尔逊相关性Cause ByCause By:1.输出下钻检测到的根因
16、维度2.根因维度占比的降序列表Meta DimensionsQueryMetric PointsQueryMeta DataOpenAPIHttp APICause ByCause By多维时序数据查询Dimension List 1.dimension1:60%2.dimension2:30%3.dimension3:10%4.others:10%相关性检测算法输出下钻检测到的根因维度QueryQuery:1.Meta Data OpenAPI:查询指标维度标签2.VM Query GateWay:查询指标时序数据Alarm/EmailAlarm/Email:1.异常告警和邮件的应用场景2.
17、多维下钻找到根因维度产品层产品层多维多维根因下钻根因下钻Email多维多维根因下钻根因下钻Alarm送礼营收日报2023-09-02送礼营收环比降幅:30%是由于下面根因导致:根因维度根因维度分布:分布:1.gameId=1,itemType=火箭,降幅:20%2.gameId=2,itemType=情书,降幅:5%3.gameId=1,itemType=鲜花,降幅:3%4.gameId=3,itemType=鲜花,降幅:1%5.others.时序图对比:时序图对比:时间线相关性对比图表1时间线相关性对比图表2更多.Case Case 样例样例:1.下钻根因维度占比排序2.各维度时序图分布对比
18、PART 03效果展示指标可视化、业务告警、多维下钻GOPS 全球运维大会 2024 深圳站RPC主被调查询过滤条件主调概况视图被调概况视图GOPS 全球运维大会 2024 深圳站下钻分组展示请求量指标服务下钻分组成功率指标IP下钻分组更多下钻分组方式:1.服务/IP/接口/Set2.服务+接口3.服务+IP4.被调+主调.GOPS 全球运维大会 2024 深圳站业务自定义指标自定义指标凭证服务错误码业务应用场景:1.业务数据可视化配图2.发现业务异常并告警3.业务日报周报统计.自定义指标登录态成功率注明:业务指标数据值打码,这里图表只做简单示例GOPS 全球运维大会 2024 深圳站多维根因
19、下钻自定义指标告警突增问题多维根因下钻RPC模调告警接口/IP聚集性根因下钻PART 04未来展望基于Otel可观测元数据自动分析GOPS 全球运维大会 2024 深圳站未来展望OtelOtel生态贡献生态贡献-Meta AnalyserMeta Analyser多协议支持0101-Type:-Type:MetricMetric、TraceTrace、Log.Log.-Protocol:Kafka-Protocol:Kafka、HttpHttp、Grpc.Grpc.-Data:Json-Data:Json、OtlpOtlp、Text.Text.可配置化0202-Expression:Expre
20、ssion:SpELSpEL、JsonPath.JsonPath.-Mapping:-Mapping:SPISPI、BytecodeBytecode、R Reflecteflect.-Manage:Grayscale-Manage:Grayscale、Sampled.Sampled.数据处理0303-Process:Batch-Process:Batch、StepStep、ExpiredExpired.-Filter:BloomFilterFilter:BloomFilter、RestfulURI.RestfulURI.-Storage:Storage:MysqlMysql、GraphDB.GraphDB.Meta Analyser ComponentPre-Agg ComponentAlarm&Cause Analyser Component更多生态组件展望更多生态组件展望GOPS 全球运维大会 2024 深圳站Thanks高效运维社区DevOps 时代荣誉出品荣誉出品感谢大家观看THANKS