博客 / 詳情

返回

構建低利用率雲資源面板,觀測雲助力企業縮減雲成本

背景

隨着公有云的廣泛應用,企業普遍面臨雲資源利用率不足、資源配置不合理(如高配低用)等挑戰,導致雲支出持續居高不下。據行業報告顯示,超過 90% 的用雲企業存在明顯的資源浪費現象,雲資源投入與業務收益的匹配度不足已成為企業數字化轉型中的核心痛點。在此背景下,雲資源管理部門亟需對低利用率的雲資源進行降配或關停。

觀測雲作為一款現代化的監控觀測雲服務,不僅能滿足研發、運維團隊的觀測需求,也能站在「雲中立」的角度幫助客户持續優化雲資源成本。本文以 ECS 產品為例,向大家介紹如何在觀測雲上構建低利用率雲資源面板。針對其他雲產品,讀者亦可參考該模式進行資源優化。

構建低利用率雲資源面板

筆者近期在服務於某客户時瞭解到,該客户的 ECS 的月消費金額始終位於雲消費總金額的首位,比第二名的雲數據庫(RDS)高出 5 倍還多。因此客户認為從 ECS 入手進行成本優化,其風險小收益大。因此在雙方共同努力下,在觀測雲上構建了「低資源利用率 ECS 面板」,具體效果如下:

第一部分:CPU、內存利用率蜂窩圖

作為儀表板的第一部分,蜂窩圖能幫助用户一目瞭然看到當前有哪些 ECS 的利用率過低。

圖片

以阿里雲 ECS 為例,圖表的 DQL 語句:

CPU利用率P90

M::aliyun_acs_ecs_dashboard:(percentile(`CPUUtilization_Average`, 90)) BY `cloud_provider`, `cluster_name_k8s`,`instanceId`
內存利用率P90

M::aliyun_acs_ecs_dashboard:(percentile(`memory_usedutilization_Average`, 90)) BY `cloud_provider`, `cluster_name_k8s`,`instanceId`

圖表特點:

  • 選擇 CPU 利用率和內存利用率 P90 指標,兼顧了高峯期資源利用率升高的場景;
  • 採用蜂窩圖,高密度展示各 ECS 的 CPU 和內存利用率,並按照雲廠、k8s 集羣、環境等標籤進行分組展示;
  • 將資源利用率分為紅、黃、綠三個檔次,用紅色突出顯示資源利用率很低的 ECS;
  • 鼠標懸浮到單個蜂窩時,瀏覽器將顯示該 ECS 的分組信息,如 instanceId,k8s 集羣名稱等,支持鑽取到單台 ECS 進行下鑽。

第二部分:CPU、內存利用率趨勢圖

圖表顯示了 CPU 利用率 P90、CPU 利用率均值、內存利用率 P90、內存利用率均值,每個趨勢圖展示資源率最低的 Top20 ECS 的利用率曲線。

圖片

在蜂窩圖上點擊某個 instanceId 的蜂窩進行下鑽,圖表將過濾顯示該 instanceId 的 CPU、內存利用率的 P90 趨勢和均值趨勢。

圖片

以阿里雲 ECS 為例,圖表的 DQL 語句:

CPU利用率P90

M::aliyun_acs_ecs_dashboard:(percentile(`CPUUtilization_Average`, 90)) BY `cloud_provider`, `cluster_name_k8s`,`instanceId`
CPU利用率均值

M::aliyun_acs_ecs_dashboard:(avg(`CPUUtilization_Average`)) BY `cloud_provider`,`cluster_name_k8s`, `instanceId`
內存利用率P90

M::aliyun_acs_ecs_dashboard:(percentile(`memory_usedutilization_Average`, 90)) BY `cloud_provider`, `cluster_name_k8s`,`instanceId`
內存利用率均值

M::aliyun_acs_ecs_dashboard:(avg(`memory_usedutilization_Average`)) BY `cloud_provider`, `cluster_name_k8s`,`instanceId`

圖表特點:

  • 通過趨勢圖,反映 ECS 在一個較長週期內的資源利用率變化趨勢,例如 30 天、180 天、360 天等;
  • 同時提供 P90 和均值趨勢,以評估 ECS 在日常使用和高峯期的資源使用率
  • 支持與蜂窩圖聯動,當用户從蜂窩圖上點擊單個蜂窩時(例如代表資源利用率很低的紅色蜂窩),趨勢圖將聯動該過濾條件,僅顯示該 ECS 的趨勢圖
  • 在趨勢圖中,同時還展示了低水位基準線,以便反映 ECS 實際資源率和基準線的差異。

第三部分:ECS 資源列表

通過前兩部分的圖表,用户可以明確某台 ECS 的資源利用率是長期處於低位的,而第三部分的 ECS 資源列表則將對應 ECS 的 instanceId、主機名、規格、CPU 和內存配置信息展示出來,用户無需登陸到雲平台上進行二次搜索。

圖片

以阿里雲 ECS 為例,圖表 DQL 如下:

ECS資源列表

CO::aliyun_ecs:(`HostName`, `InstanceName`, `Cpu`, `Memory`, `Status`, `CreationTime`, `InstanceType`, `PublicIpAddress_IpAddress`) [1h] BY `InstanceId`

圖表特點:

  • 顯示規格、CPU、內存等信息
  • 支持與蜂窩圖聯動,從蜂窩圖下鑽到單台 ECS 後,資源列表也將同步過濾顯示該 ECS 的規格情況

第四部分:彙報部分

在開展雲資源優化的工作並取得階段性成果後,用户需要向管理層彙報優化工作的前後對比,例如本月的低資源利用率主機數量相對於上月的數量變化情況,因此需要直觀的數據對比,這部分圖表內容如下:

圖片

圖表 promQL:

最近30天- CPU資源利用率P90小於20%的主機數

count(quantile_over_time(0.9, aliyun_acs_ecs_dashboard:CPUUtilization_Average[30d:1h])  < 20)
上一個30天- CPU資源利用率P90小於20%的主機數

count(quantile_over_time(0.9, aliyun_acs_ecs_dashboard:CPUUtilization_Average[30d:1h])  < 20) offset 30d
最近30天- 內存資源利用率P90小於40%的主機數

count(quantile_over_time(0.9, aliyun_acs_ecs_dashboard:memory_usedutilization_Average[30d:1h])  < 40)
上一個30天- 內存資源利用率P90小於40%的主機數

count(quantile_over_time(0.9, aliyun_acs_ecs_dashboard:memory_usedutilization_Average[30d:1h])  < 40)   offset 30d
最近30天- CPU資源利用率P90小於20%的主機明細表

quantile_over_time(0.9, aliyun_acs_ecs_dashboard:CPUUtilization_Average[30d:1h])  < 20
最近30天- 內存資源利用率P90小於40%的主機明細表

quantile_over_time(0.9, aliyun_acs_ecs_dashboard:memory_usedutilization_Average[30d:1h])  < 40

圖表特點:

  • 分週期展示低資源利用率的 ECS 數量,清晰且客觀,方便彙報優化成果
  • 支持導出為 CSV 文件,方便核查明細

雲資源利用率指標採集的步驟

在本章中我們將介紹繪製低利用率雲資源面板所需要的一些前置條件和步驟,幫助大家輕鬆完成相關指標接入和指標管理。

第一步,開啓觀測雲「雲賬號管理」功能

登陸到觀測雲工作空間後,進入「集成」-「雲賬號管理」,添加公有云賬號,輸入具有 readOnly 權限的 AK/SK。如企業無法提供雲平台的 AK/SK 信息,可考慮通過在企業內網自建 Func 的方式,來進行雲資源採集。

圖片

第二步,採集指定雲產品的指標

在配置完雲賬號之後,接下來是配置具體的雲產品指標採集,選擇 Region,添加關注的資源利用率指標後保存即可。

圖片

第三步,對指標集的存儲時間配置為較長時間

資源利用率相關的指標通常需要進行長期保存,因此用户可以在「指標」-「指標管理」中為相關指標集配置長期存儲策略,如下圖所示。

圖片

總結

在完成「低利用率 ECS 面板」的第二天,我們向該客户運維團隊進行了演示彙報,對方認為這張儀表板完全滿足他們對 ECS 進行成本優化的需求,並計劃在下一步開展對 RDS、雲硬盤等支出相對較高的雲產品進行相同的分析和優化工作。大家還聊到了近期產業鏈上游硬件漲價的相關新聞。繼內存、SSD 漲價引發市場震盪後,CPU 等其他硬件的價格上漲接踵而至,這無疑給明年的公有云價格體系帶來了很大不確定性。企業儘早開始掌握分析、優化低利用率的雲資源,就越能從容應對每月的雲支出賬單。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.