《騰訊在云原生可觀測領域的探索與實踐-黃杰.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 故障異?;谘a算機制保證數據完整性-業務拆分調度 大任務拆解-引入迭代流 支持級聯運算,復用已有中間結果高吞吐通用性穩定性-通用聚合算子 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奠定基礎