《腾讯在云原生可观测领域的探索与实践-黄杰.pdf》由会员分享,可在线阅读,更多相关《腾讯在云原生可观测领域的探索与实践-黄杰.pdf(36页珍藏版)》请在三个皮匠报告上搜索。
1、腾讯在云原生可观测领域的探索与实践黄杰/技术专家个人简介个人简介目前负责腾讯云云原生可观测产品专注于监控、可观测性开源爱好者目录目录什么是云原生可观测性如何实施可观测性如何产品化总结展望什么是云原生可观测性什么是云原生可观测性与监控的区别可观测性几大支柱如何建立关系监控监控 vs 可观测可观测监控监控-系统是否正常工作-解决个体问题-Log/Metric/Trace,但相对独立可观测可观测-系统是否正常工作,为什么无法工作-解决系统问题-Log/Metric/Trace/Event/Profiler等-数据之间的上下文,关系及相关性服务架构在变化服务架构在变化-系统更加复杂-上下游依赖更多-环
2、境越来越复杂-效率要求越来越高-人员角色越来越多单VMN VM一个常见的服务部署架构,大体包括如下几点:一个常见的服务部署架构,大体包括如下几点:-服务应用之间存在调用-服务运行在基础设施-服务依赖于一些中间件或者基础设施应用应用AVM/K8S应用应用CDB/Cache/Queue运行依赖应用应用B调用调用服务架构在变化服务架构在变化可观测性几大支柱可观测性几大支柱LoggingTracingMetricsMetrics-业务指标:订单数-应用服务指标:延时、失败率-中件间指标:缓存命中率、消息积压-系统基础设施指标:CPU使用率、网络带宽如何快速找到对应的Trace/LogTracingga
3、tewaycreate_orderuser.serviceget_usermysql/selectorder.servicemysql/insertmake_orderredis/put0ms50ms100ms200ms182ms50ms125msTraceId:xxx-123454服务Spans/LogsStatus/Attr.Region:sh Host:192.168.10.100Region:sh Host:192.168.10.130Region:sh Host:192.168.10.120user_db(192.168.10.88)order_cache(192.168.10.11
4、)如何快速找到对应的LogLoggingWhenTimestamp:2020-11-06T15:02:10.249ZMessageLevel:infoMsg:HTTP client successOtherTraceId:fb0fbe72.Trace.WhereRegion:shHost:sh-order-vm-1/192.168.1.10WhoService:order.serviceTeam:order通用属性-可读性-可检索性-中央集中式如何快速找到对应的请求上下文Logging 关联性关联性没有上下文,没有 TraceID通过 TraceID 构建请求上下文Metrics 关联性关联性
5、-业务指标:订单数-应用服务指标:延时、失败率-中件间指标:缓存命中率、消息积压-系统基础设施指标:CPU使用率、网络带宽通过 Trace 提取计算 MetricsHealth CheckGET http:/192.168.1.20:8080/health serviceName:”order.service”,status:”up”,dependencies:name:”user.service”,status:”up”,name:”192.168.1.99:3306”,status:”up”,Events变更变更应用发布/配置变理.事件事件OOM/告警/扩缩容.serviceName:”o
6、rder.service”,type:”change”,tags:key:”version”,value:”v1.0.1”,key:”commit”,status:”34w2323”,key:”runtime”,status:”jdk1.8”,Region:sh Host:192.168.10.120相互关联相互关联MetricsAggregatableTracingRequest scopedLoggingEvents可观测性几大支柱可观测性几大支柱OpenTelemetry目录目录什么是云原生可观测性如何实施可观测性如何产品化总结展望如何建设可观测性如何建设可观测性采集计算存储如何建设可观
7、测性如何建设可观测性Jaeger AgentSkyWalking AgentOTEL AgentLogAgentOther AgentPrometheusOTELCollectorKafkaFlinkMetricAggregateTraceSamplingWriterMetadataCollectDataIndexCTSDBESCOSCKQuery EngineSQLYun API采集计算存储如何采集如何采集-多协议、多语言-拥抱开源-标准化协议-组件化-前置路由OpenTelemetry CollectorJaeger ReceiverSkyWalking ReceiverOTEL Rece
8、iverPrometheus ReceiverOpenTelemetry鉴权限流/限频路由采样Local Memory/Disk QueueKafka ExporterLogReceiverPipeline Processors如何计算如何计算视图级联运算延时数据运算平滑重启数据补算规则动态加载自定义算子Flink状态自监控-高吞吐-通用性-稳定性-聚合性如何计算如何计算-聚合&压缩 数据裁剪,输入及输出数据聚合加压缩-弃用 Checkpoint 故障异常基于补算机制保证数据完整性-业务拆分调度 大任务拆解-引入迭代流 支持级联运算,复用已有中间结果高吞吐通用性稳定性-通用聚合算子 count
9、、sum、gauge、histogram等10种聚合算子-计算任务抽象成 SQL,动态调整计算任务-过载保护 对Kafka消费进行流控,反压-积压数据自动补算,保证实时性 对积压的数据通过新任务补算,确保监控数据实时性-无损重启恢复 避免重启导致数据丢失如何如何存储存储数据访问性能优化异构存储及容灾-数据 ID 化(Time Series ID)数据可灵活新增及更新,以及标签元数据的补齐-抽象统一数据读写层 屏蔽底层存储,支持灵活的配置调度,存储异构-通过统一的管控调度数据流向-数据双写容灾统一管控调度统一管控调度CTSDBCKES存储过期管理Rollup 管理分片管理Schema管理存储管理
10、QueryWriter存储访问-分片数太多 通用指标合并数据表-查询范围太大 数据自动 Rollup(S-M-H),查询 Time Segment 分片缓存-单分片达到上限 1.分片数为节点整数倍,使其均匀分布 2.基于数据上报状态周期性动态调整分片数量 3.查询层聚合各分片数据如何建设可观测性如何建设可观测性-采集 拥抱开源、多协议、标准化、可扩展性-计算 高效、通用、稳定-存储 成本、通用、简化目录目录什么是云原生可观测性如何实施可观测性如何产品化总结展望一体化可观测一体化可观测一体化可观测一体化可观测-RUM一体化可观测一体化可观测 RUM/APM一体化可观测一体化可观测 Metrics/Tracing/Logging一体化可观测一体化可观测 Metrics/Tracing/Logging目录目录什么是云原生可观测性如何实施可观测性如何产品化总结展望总结展望总结展望可观测性数据标准化聚焦于产品、成本为AIOps奠定基础