日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

服務網格可觀測性之平臺化監控報警

來源: 責編: 時間:2023-09-20 21:53:08 327觀看
導讀一.項目背景近期,汽車之家正在加速云原生服務網格化改造,以進一步提高業務系統的可擴展性和穩定性。目前汽車之家看選業務、資訊業務、買用業務等多個業務線已經陸續接入服務網格,累計接入應用數量200+、網格流量每日15

全鏈路展示-圖1全鏈路展示-圖12Na28資訊網——每日最新資訊28at.com

1.2指標大盤

網格全局流量大盤2Na28資訊網——每日最新資訊28at.com

網格全局流量大盤展示-圖2網格全局流量大盤展示-圖22Na28資訊網——每日最新資訊28at.com


2Na28資訊網——每日最新資訊28at.com

網格應用級流量大盤2Na28資訊網——每日最新資訊28at.com

網格應用級進流量大盤展示--圖03網格應用級進流量大盤展示--圖032Na28資訊網——每日最新資訊28at.com


2Na28資訊網——每日最新資訊28at.com

網格應用級出流量大盤展示--圖04網格應用級出流量大盤展示--圖042Na28資訊網——每日最新資訊28at.com


2Na28資訊網——每日最新資訊28at.com

源站應用級大盤2Na28資訊網——每日最新資訊28at.com

服務源站進流量大盤展示--圖05服務源站進流量大盤展示--圖052Na28資訊網——每日最新資訊28at.com


2Na28資訊網——每日最新資訊28at.com

服務源站出流量大盤展示-圖06服務源站出流量大盤展示-圖062Na28資訊網——每日最新資訊28at.com


2Na28資訊網——每日最新資訊28at.com

1.3異常報警

異常報警釘釘展示-圖07異常報警釘釘展示-圖072Na28資訊網——每日最新資訊28at.com

可觀測體系中“指標大盤系統”與“異常報警系統”我們采用了Opentelemetry+Prometheus+Grafana 的技術選型。 2Na28資訊網——每日最新資訊28at.com

本篇文章我們將主要描述“異常報警系統”的技術方案。在“異常報警系統”的建設過程中,我們面臨了兩類Prometheus Metrics數據的處理。首先是來自Istio架構本身的Metrics數據,其次是應用源站產生的Metrics數據,例如:進出流量等關鍵指標。作為業務方,我們希望能夠快速構建一個獨立的報警系統來監控這些數據,并及時發現和響應異常情況。盡管運維側可能已經提供了Prometheus Alertmanager,但考慮到獨立性和靈活性的需求,我們選擇了使用“Grafana Alert 警報模塊”來實現自主報警管理。2Na28資訊網——每日最新資訊28at.com

二. Grafana 警報模塊介紹

grafana 8.0 以后添加了新的警報模塊"unified_alerting",以下簡稱為“統一警報模塊”。2Na28資訊網——每日最新資訊28at.com

“統一警報模塊” 是一個基于 Grafana 的插件,它能夠輕松地創建和管理報警規則,并將報警發送到多個渠道,例如電子郵件、Slack 、釘釘、webhook等。這個工具的主要特點包括:2Na28資訊網——每日最新資訊28at.com

  1. 可視化警報配置:“統一警報模塊” 提供了一個可視化界面,讓用戶可以方便地創建和管理報警規則。您可以通過簡單地設置觸發條件、定義報警接收者以及報警通知方式,輕松實現警報功能。
  2. 多數據源支持:“統一警報模塊” 警報規則可以配置多種數據源作為數據來源,比如:prometheus、mysql、es等。
  3. 多維度警報:警報規則可以為每個警報規則創建多個單獨的警報實例(稱為多維警報),使你能夠強大而靈活地通過單個警報來了解整個系統。
  4. 多種報警通知方式:“統一警報模塊” 支持多種報警通知方式,包括電子郵件、Slack、PagerDuty 等。根據實際需求選擇適合您的報警通知方式。
  5. 報警歷史記錄:“統一警報模塊” 記錄每次觸發的報警事件,并提供報警歷史記錄查詢功能。通過查看歷史記錄,您可以更好地了解您的系統狀態并進行優化。
  6. 自定義報警模板:“統一警報模塊” 允許用戶自定義報警模板,以適應不同場景下的報警需求。通過自定義警報模板,可以使報警信息更加精準和有效。
  7. 抑制警報:抑制警報允許您停止接收來自一個或多個警報規則的持久通知。您還可以根據特定條件部分暫停警報。比如:使用抑制警報時間段設置,您可以指定不希望生成或發送新通知的時間間隔。您還可以將警報通知凍結在重復時間段內,例如在維護期間。

2.1主要概念

下圖向您概述了Grafana警報的工作原理,并向您介紹了一些關鍵概念,這些概念一起工作,形成了我們靈活而強大的警報引擎的核心。2Na28資訊網——每日最新資訊28at.com

概念架構-圖08概念架構-圖082Na28資訊網——每日最新資訊28at.com


2Na28資訊網——每日最新資訊28at.com

  1. Alert rules [警報規則]  設置評估標準,該標準確定警報實例是否會背觸發。警報規則包括一個或多個查詢和表達式、條件、評估頻率以及滿足條件的持續時間(可選)。
  2. Labels[標簽]    將警報規則及其實例與通知策略(Notification policies)和靜默(Silences)匹配。它們還可以用于按嚴重程度對警報進行分組。
  3. Notification policies[通知策略]    通過配置“通知策略” 可以實現警報的通知時間以及匹配具體的警報規則。每個“通知策略”通過一組標簽匹配器來匹配警報規則。警報的"聯絡點"也是在此進行關聯。
  4. Contact points[聯絡點]    定義警報觸發時如何通知聯系人。支持多種通訊工具[dingding、email、webhook等],以確保警報到達您的團隊。

2.2 警報工作原理

下圖向您概述了"統一警報模塊"工作原理,并向您介紹了一些關鍵概念,這些概念一起工作,形成了我們靈活而強大的警報引擎的核心。2Na28資訊網——每日最新資訊28at.com

工作原理-圖09工作原理-圖092Na28資訊網——每日最新資訊28at.com

你可以直接在Grafana UI中創建警報資源(警報規則,通知策略等),如下圖所示:2Na28資訊網——每日最新資訊28at.com

告警規則示例-圖10告警規則示例-圖102Na28資訊網——每日最新資訊28at.com


2Na28資訊網——每日最新資訊28at.com

? 2.2.1 Alert rules [警報規則]2Na28資訊網——每日最新資訊28at.com

可以為你的警報規則添加摘要/注釋[Summary and annotations],為報警提供額外的信息。還可以添加標簽,通過此標簽可以配置路由規則。標簽將警報規則與通知策略相關聯,因此您可以輕松管理哪個策略應處理哪些警報以及誰應該收到通知。2Na28資訊網——每日最新資訊28at.com

一個警報規則可以產生多個警報實例,詳見【**Alert instances[警報實例]**】。2Na28資訊網——每日最新資訊28at.com

創建警報規則后,它們會經歷各種狀態轉換。狀態一般為:Normal, Pending,  Firing 。例如,如果一個警報實例正在觸發[firing],則警報規則的狀態也將是觸發[firing]。2Na28資訊網——每日最新資訊28at.com

? 2.2.2 Alert instances[警報實例]2Na28資訊網——每日最新資訊28at.com

對于grafana管理的警報規則,可以根據一個警報規則創建多個警報實例(也稱為多維警報)。它可以幫你在單個表達式中觀察多個實例。比如:2Na28資訊網——每日最新資訊28at.com

比如:2Na28資訊網——每日最新資訊28at.com

sum by(cpu) (  rate(node_cpu_seconds_total{mode!="idle"}[1m]) )

使用此表達式的“警報規則”將創建與第一次求值后觀察到的CPU數量相同數量的“警報實例”,從而為每個CPU都生成一條報警實例。2Na28資訊網——每日最新資訊28at.com

多維報警示例-圖11多維報警示例-圖112Na28資訊網——每日最新資訊28at.com

grafana管理的警報實例都可以處于Normal、Pending、Alerting、No Data、Error狀態。2Na28資訊網——每日最新資訊28at.com

? 2.2.3 Notification policy[通知策略]2Na28資訊網——每日最新資訊28at.com

每個通知策略都包含一組標簽匹配器[labels matcher],以指示它負責哪些警報規則或實例;2Na28資訊網——每日最新資訊28at.com

通知策略-圖12通知策略-圖122Na28資訊網——每日最新資訊28at.com

可以添加聯絡點[Contact point]來配置警報規則觸發后通知的渠道[dingding、email、webhook等];還可以配置靜默時間[Mute timings]用來配置報警觸發后通知的時間,比如:凌晨1點到5點不發送報警信息。2Na28資訊網——每日最新資訊28at.com

? 2.2.4 Message templates[消息模板]2Na28資訊網——每日最新資訊28at.com

為通知消息創建可重用的自定義模板,并在聯絡點[Contact point]中使用它們。模板語法以Go templating system [https://pkg.go.dev/text/template]為基礎。2Na28資訊網——每日最新資訊28at.com

? 2.2.5 Silences and mute timings[靜默與靜音時間]2Na28資訊網——每日最新資訊28at.com

Sliences:  添加靜默配置可在一段時間內停止某個告警規則的通知。是一種快速而有效的方法,可以將不必要的告警暫停,從而避免不必要的干擾和誤報。例如,在系統維護期間,可以將某些告警規則設置為靜音以減少通知,也可以在進行緊急修復時暫停某些告警。2Na28資訊網——每日最新資訊28at.com

Mute timings:指定了通知被禁止的時間段,這些時間段可以是重復的,例如,每周五晚上。這種方式適用于計劃的活動或預定的維護窗口,其中需要在一段時間內暫停特定的告警通知。2Na28資訊網——每日最新資訊28at.com

下面章節將通過一個具體案例展示grafana “統一警報模塊”的使用。2Na28資訊網——每日最新資訊28at.com

三. Grafana 警報實戰

3.1安裝

參考:https://grafana.com/docs/grafana/latest/setup-grafana/installation/2Na28資訊網——每日最新資訊28at.com

開啟"統一警報模塊"2Na28資訊網——每日最新資訊28at.com

#################################### Unified Alerting ####################[unified_alerting]#開啟統一報警模塊enabled = true

配置"統一警報模塊"高可用2Na28資訊網——每日最新資訊28at.com

#################################### Unified Alerting ####################[unified_alerting]#開啟統一報警模塊enabled = true#監聽地址/主機名和端口,用于接收其他Grafana實例的統一警報消息。ha_listen_address = "${POD_IP}:9094"#監聽地址/主機名和端口,用于接收其他Grafana實例的統一警報消息。ha_advertise_address = "${POD_IP}:9094"#以“主機:端口”的格式列出初始實例(逗號分隔),這些實例將組成HA集群。配置此設置將啟用警報的高可用模式。#注: 此pod申請固定IP,也可以將grafna部署為statefulset模式。ha_peers = 10.23.2.32:9094,10.23.2.33:9094,10.23.2.34:9094

3.2案例說明

下面是此案例的數據流圖:2Na28資訊網——每日最新資訊28at.com

數據流圖-圖13數據流圖-圖132Na28資訊網——每日最新資訊28at.com

此案例中聯絡點為webhook實現方式,采用webhook方式定制自己的webhook服務可以更靈活的配置報警消息的發送策略,比如:配置多渠道的發送機制[釘釘+短信+郵件]、可通過服務名稱匹配到具體的應用相關人。2Na28資訊網——每日最新資訊28at.com

報警規則2Na28資訊網——每日最新資訊28at.com

計算服務名稱為"vehicle_service"的服務所提供的所有接口響應時間,對5分鐘內99百分位大于70ms的接口進行分組報警。

Metrics數據格式2Na28資訊網——每日最新資訊28at.com

http_server_duration_bucket{http_method="GET", http_route="/v1/app/getVehicleList", http_status_code="200", instance="10.29.2.9:9464",  le="0.0", service="vehicle_service"}  0.0http_server_duration_bucket{http_method="GET", http_route="/v1/app/getVehicleList", http_status_code="200", instance="10.29.2.9:9464",  le="5.0", service="vehicle_service"}  102356.0http_server_duration_bucket{http_method="GET", http_route="/v1/app/getVehicleList", http_status_code="200", instance="10.29.2.9:9464",  le="10.0", service="vehicle_service"}  136099.0http_server_duration_bucket{http_method="GET", http_route="/v1/app/getVehicleList", http_status_code="200", instance="10.29.2.9:9464",  le="25.0", service="vehicle_service"}  163764.0http_server_duration_bucket{http_method="GET", http_route="/v1/app/getVehicleList", http_status_code="200", instance="10.29.2.9:9464",  le="50.0", service="vehicle_service"}  175603.0http_server_duration_bucket{http_method="GET", http_route="/v1/app/getVehicleList", http_status_code="200", instance="10.29.2.9:9464",  le="75.0", service="vehicle_service"}  179163.0http_server_duration_bucket{http_method="GET", http_route="/v1/app/getVehicleList", http_status_code="200", instance="10.29.2.9:9464",  le="100.0", service="vehicle_service"}  180891.0http_server_duration_bucket{http_method="GET", http_route="/v1/app/getVehicleList", http_status_code="200", instance="10.29.2.9:9464",  le="250.0", service="vehicle_service"}  182806.0

數據說明:此Metrics數據描述了HTTP 服務的響應時間分布數據,通過這些 metrics 數據可以得到該 HTTP 接口在不同響應時間區間的請求數量,以及每個區間的響應時間度量值。例如,在此數據中,le=5.0 的 bucket 中有 102356 次請求,對應的響應時間在 0 到 5 秒之間,le=250.0 的 bucket 中有 182806 次請求,對應的響應時間在 0 到 250 秒之間。2Na28資訊網——每日最新資訊28at.com

下面將演示通過Grafana “統一警報模塊”實現上面的報警規則:2Na28資訊網——每日最新資訊28at.com

3.3案例配置說明

? 3.3.1 配置prometheus數據源2Na28資訊網——每日最新資訊28at.com

數據源-圖14數據源-圖142Na28資訊網——每日最新資訊28at.com

? 3.3.2 配置警報規則2Na28資訊網——每日最新資訊28at.com

配置報警規則-圖15配置報警規則-圖152Na28資訊網——每日最新資訊28at.com

配置表達式:2Na28資訊網——每日最新資訊28at.com

round(histogram_quantile(0.99, sum(irate(http_server_duration_bucket{service=~"vehicle_service",http_route!="/**",http_status_code="200"}[5m])) by (service,http_route,http_method,http_status_code, le)) > 60,0.01)

添加標簽-圖16添加標簽-圖162Na28資訊網——每日最新資訊28at.com

配置標簽 name=vehicle_service-rt99 ,此標簽為通知策略匹配關聯。2Na28資訊網——每日最新資訊28at.com

? 3.3.3 配置聯絡點2Na28資訊網——每日最新資訊28at.com

配置聯絡點-圖17配置聯絡點-圖172Na28資訊網——每日最新資訊28at.com

webhook URL:2Na28資訊網——每日最新資訊28at.com

http://alert-webhook.zhijiajishu.com/mc/multiMessage?serviceName=vehicle_service&channels=dingding

此webhook接口實現的功能為:接收到alert請求以后,通過serviceName匹配到相應的應用相關人,并通過釘釘的方式進行報警消息發送。2Na28資訊網——每日最新資訊28at.com

更多webhook參數可以參照:https://grafana.com/docs/grafana-cloud/alerting-and-irm/alerting/alerting-rules/manage-contact-points/webhook-notifier/2Na28資訊網——每日最新資訊28at.com

? 3.3.4 配置消息模板2Na28資訊網——每日最新資訊28at.com

配置消息模板-圖18配置消息模板-圖182Na28資訊網——每日最新資訊28at.com

模板內容:2Na28資訊網——每日最新資訊28at.com

{{ define "vehicle_service_rt99_tpl" }}{{ if .Alerts.Firing -}}{{ range .Alerts.Firing }}{{ .Labels.service }} ## 報警詳情:應用名[{{ .Labels.service }}] 接口 [{{ .Labels.http_route }}],5分鐘內接口平均響應時間為[{{.Values.B}}] 超過閾值[70ms].{{ end }}{{- end }}{{ if .Alerts.Resolved -}}{{- range .Alerts.Resolved }}{{ .Labels.service }} ## 報警詳情[恢復]:應用名[{{ .Labels.service }}] 接口 [{{ .Labels.http_route }}],5分鐘內接口平均響應時間為[{{.Values.B}}] 超過閾值[70ms].{{- end }}{{- end }}{{- end }}

? 3.3.5 配置通知策略2Na28資訊網——每日最新資訊28at.com

配置通知策略-圖19配置通知策略-圖192Na28資訊網——每日最新資訊28at.com

通過Labels Matcher 匹配 name=vehicle_service-rt99 的警報規則,并通過 contact point = vehicle_service-rt99-webhook-point01 的聯絡點進行報警。2Na28資訊網——每日最新資訊28at.com

? 3.3.6 配置靜默規則2Na28資訊網——每日最新資訊28at.com

配置靜默規則-圖20配置靜默規則-圖202Na28資訊網——每日最新資訊28at.com

? 3.3.7 警報消息2Na28資訊網——每日最新資訊28at.com

[AutoMesh報警] CarAPI 99%請求的的平均處理時間超閾值報警報警詳情:應用名[vehicle_service] 接口 [/v1/app/getVehicleList],5分鐘內接口平均響應時間為[79.79] 超過閾值[70ms].報警詳情:應用名[vehicle_service] 接口 [/v1/app/getVehicleDetails],5分鐘內接口平均響應時間為[84.84] 超過閾值[70ms].報警詳情:應用名[vehicle_service] 接口 [/v1/app/updateVehicleInfo],5分鐘內接口平均響應時間為[82.62] 超過閾值[70ms].報警詳情:應用名[vehicle_service] 接口 [/v1/app/countVehicles],5分鐘內接口平均響應時間為[91.49] 超過閾值[70ms].

四. 總結

通過本篇文章,大家應該可以了解了Grafana 警報模塊的工作原理以及具體使用方式。如果想更深入的了解grafana 的警報模塊的更多功能還應該閱讀官方文檔。另:如果不用使用Grafana UI配置相關警報規則,大家還可以通過Grafana 提供的API[https://grafana.com/docs/grafana/latest/developers/http_api/]定制自己的告警系統.2Na28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-10646-0.html服務網格可觀測性之平臺化監控報警

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Next.js 13.5 正式發布,速度大幅提升!

下一篇: 很多主流項目都放棄了Java 8,背后的原因是什么

標簽:
  • 熱門焦點
  • 石頭自清潔掃拖機器人G10S評測:多年黑科技集大成之作 懶人終極福音

    科技圈經常能看到一個詞叫“縫合怪”,用來形容那些把好多功能或者外觀結合在一起的產品,通常這樣的詞是貶義詞,但如果真的是產品縫合的好、縫合的實用的話,那它就成了中性詞,今
  • 28個SpringBoot項目中常用注解,日常開發、求職面試不再懵圈

    前言在使用SpringBoot開發中或者在求職面試中都會使用到很多注解或者問到注解相關的知識。本文主要對一些常用的注解進行了總結,同時也會舉出具體例子,供大家學習和參考。注解
  • 服務存儲設計模式:Cache-Aside模式

    Cache-Aside模式一種常用的緩存方式,通常是把數據從主存儲加載到KV緩存中,加速后續的訪問。在存在重復度的場景,Cache-Aside可以提升服務性能,降低底層存儲的壓力,缺點是緩存和底
  • 三言兩語說透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是兩種很有用的技術,可以幫助我們寫出更加優雅、泛用的函數。本文將首先介紹柯里化和反柯里化的概念、實現原理和應用
  • “又被陳思誠騙了”

    作者|張思齊 出品|眾面(ID:ZhongMian_ZM)如今的國產懸疑電影,成了陳思誠的天下。最近大爆電影《消失的她》票房突破30億斷層奪魁暑期檔,陳思誠再度風頭無兩。你可以說陳思誠的
  • 東方甄選單飛:有些鳥注定是關不住的

    文/彭寬鴻編輯/羅卿東方甄選創始人俞敏洪帶隊的“7天甘肅行”直播活動已在近日順利收官。成立后一年多時間里,東方甄選要脫離抖音自立門戶的傳聞不絕于耳,“7
  • iQOO Neo8 Pro即將開售:到手價3099元起 安卓性能最強旗艦

    5月23日,iQOO如期舉行了新品發布會,全新的iQOO Neo8系列也正式與大家見面,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標準版搭載高通驍龍8+,而Pro版更
  • iQOO Neo8 Pro搶先上架:首發天璣9200+ 安卓性能之王

    經過了一段時間的密集爆料,昨日iQOO官方如期對外宣布:將于5月23日推出全新的iQOO Neo8系列新品,官方稱這是一款擁有旗艦級性能調校的作品。隨著發布時
  • 北京:科技教育體驗基地開始登記

      北京“科技館之城”科技教育體驗基地登記和認證工作日前啟動。首批北京科技教育體驗基地擬于2023年全國科普日期間掛牌,后續還將開展常態化登記。  北京科技教育體驗基
Top 主站蜘蛛池模板: 哈巴河县| 北宁市| 静乐县| 泾川县| 凤阳县| 镇平县| 远安县| 庐江县| 涟源市| 诸城市| 郁南县| 通化市| 盐源县| 繁峙县| 东光县| 竹山县| 怀安县| 会宁县| 大渡口区| 泽普县| 云南省| 通渭县| 常州市| 嘉禾县| 磐安县| 陕西省| 博野县| 托里县| 柳林县| 灯塔市| 缙云县| 义马市| 监利县| 哈巴河县| 西峡县| 宣武区| 乌拉特前旗| 陆川县| 黎平县| 安阳县| 都昌县|