上報源說明-Prometheus
Prometheus是一個開源的系統(tǒng)監(jiān)控和報警工具包,服務(wù)商通過模板或手動創(chuàng)建一個Prometheus實例,計算巢會通過Prometheus實例依據(jù)計量項調(diào)用不同的PromQL語句執(zhí)行,將獲取的返回值作為上報數(shù)據(jù)值推送至云市場。
使用說明
推送頻次:1次/小時。
服務(wù)類型:全托管服務(wù)。
適用場景:ECS部署與ACK部署場景。
支持計量項:Unit、Memory、VirtualCpu、NetworkIn、NetworkOut。
VirtualCpu:虛擬CPU核數(shù)。
-Unit: 計量單位--個。
-Memory: 內(nèi)存(GB)。
NetworkIn:下行使用流量(Bit)。
NetworkOut:上行使用流量(Bit)。
不同的計量項采集需執(zhí)行不同的PromQL語句,請參見PromQL語句。
操作步驟
開啟Prometheus上報,需要創(chuàng)建Prometheus實例以及在計算巢中配置計量項上報源為Prometheus。
步驟一:創(chuàng)建Prometheus實例
需要創(chuàng)建Prometheus實例,計算巢才可通過此實例采集數(shù)據(jù),計算巢支持ECS與ACK部署場景。
ACK場景
新建ACK
開啟Prometheus組件,在模板Resources
中添加資源ALIYUN::CS::ManagedKubernetesCluster
中的Addons
參數(shù)Name:arms-prometheus
。
ManagedKubernetesCluster:
Type: ALIYUN::CS::ManagedKubernetesCluster
Properties:
……
Addons:
- Name: arms-prometheus
……
已有ACK
開啟Prometheus組件。
進入集群詳情頁并單擊左側(cè)運維管理。
單擊Prometheus監(jiān)控,并單擊開始安裝。
ECS場景
新建VPC
新建VPC場景需要同步新建Prometheus
實例。模板中需要創(chuàng)建資源ALIYUN::ARMS::Environment
、ALIYUN::ARMS::AddonRelease
、ALIYUN::ARMS::EnvironmentFeature
。
Resources:
VPC: // 新建的VPC
……
Environment:
Type: ALIYUN::ARMS::Environment
Properties:
ManagedType: agent-exporter
EnvironmentSubType: ECS
EnvironmentName:
Ref: ALIYUN::StackName
BindResourceId:
Ref: Vpc
EnvironmentType: ECS
AddonRelease:
DependsOn: Environment
Type: ALIYUN::ARMS::AddonRelease
Properties:
EnvironmentId:
Ref: Environment
Name: ecs-node-exporter
AddonVersion: 1.6.1
Values: '{"install":{"mode":"auto-install","processExporter":{"enable":true},"listenPort":9100},"discoverMode":"none","collectTextFile":"","scrapeInterval":"15","enableSecurityGroupInjection":true,"metricTags":"serviceInstanceId"}'
EnvironmentFeature:
DependsOn: AddonRelease
Type: ALIYUN::ARMS::EnvironmentFeature
Properties:
EnvironmentId:
Ref: Environment
FeatureVersion: 1.1.17
FeatureName: metric-agent
已有VPC
已有VPC場景,除了在計算巢中配置VPC參數(shù)映射外,還需要手動創(chuàng)建Prometheus實例。
前往ARMS監(jiān)控,在左側(cè)導(dǎo)航欄中單擊接入中心并選擇主機監(jiān)控。
選擇已有的VPC()。
說明與計算巢參數(shù)映射填寫VPC一致。具體內(nèi)容,請參見配置參數(shù)映射。
在配置信息部分,填寫接入名稱,主機服務(wù)發(fā)現(xiàn)方式選擇無條件,自定義ECS Tag注入寫入
serviceInstanceId
,單擊確定即可創(chuàng)建完成。
步驟二:配置上報源
配置計量項
說明對于Unit計量項,可以選擇平均Pod數(shù)(ACK場景)或自定義指標(ECS/ACK場景)中的一種指標。若選擇自定義指標,則需要輸入自定義的PromQL語句,計算巢將讀取此語句,并替換
namespace/serviceInstancename
收集計量數(shù)據(jù),具體請參見PromQL語句,請確保自定義語句的準確性。登錄計算巢控制臺。
前往服務(wù)詳情,單擊售賣配置。
在計量項配置區(qū)塊單擊修改上報方式,對需要開啟Prometheus的計量項區(qū)塊中單擊修改上報方式。
在彈框中選擇計算巢上報,并在上報源選擇Proemtehus。
綁定計量項
返回售賣配置頁面。
在計量項綁定區(qū)塊單擊編輯,綁定需要上報的計量項。
PromQL語句
ACK場景計量項對應(yīng)PromQL語句
不同的計量項采集需執(zhí)行不同的PromQL語句,計算巢執(zhí)行完成、獲取指標值后將會適配云市場上報單位。
語句中Namespace
參數(shù)值計算巢將會依據(jù)不同服務(wù)實例替換,下方語句示例默認為default
。默認情況下,Namespace
為服務(wù)實例名稱,若服務(wù)商需要指定可采用如下方式:
已有ACK場景
若需指定Namespace
,需在資源ALIYUN::CS::ClusterApplication
- DefaultNamespace
中指定,如下指定Namespace
為default
。
ClusterApplication:
Type: ALIYUN::CS::ClusterApplication
Properties:
……
DefaultNamespace: default
……
新建ACK場景
若需指定Namespace
,需在資源MODULE::ACS::ComputeNest::FluxOciHelmDeploy
- Namespace
中指定為default
。
WordpressComputenestHelmApplication:
Type: MODULE::ACS::ComputeNest::FluxOciHelmDeploy
Version: v1
Properties:
……
Namespace: default
……
Unit - 平均Pod數(shù)
avg_over_time(count(kube_pod_info{namespace="default"})[1h:1m])
PromQL單位:個。
云市場單位:個。
Unit - 自定義指標
選擇自定義指標且Namespace
為服務(wù)實例名稱(ALIYUN::StackName
),計算巢將會自動替換,示例如下:
avg_over_time(count(kube_pod_info{namespace="ALIYUN::StackName"})[1h:1m])
Memory - 平均內(nèi)存
avg_over_time(sum(container_memory_working_set_bytes{namespace=~"default"}) [1h:10s])
PromQL單位:bytes。
云市場單位:GB(PromQL返回值/1024/1024/1024)。由于云市場必須為整數(shù),因此計算巢上報時會進行四舍五入處理。
VirtualCpu - 平均虛擬CPU
avg_over_time(sum(rate(container_cpu_usage_seconds_total{namespace=~"arms-prom"}[2m]))[1h:10s])
PromQL單位:核數(shù)。
云市場單位:核數(shù)。
NetworkIn - 流入總流量
sum by(namespace) (increase(container_network_receive_bytes_total{namespace="default", pod_name!=\"\"}[1h]))
PromQL單位:bytes。
云市場單位:bits(PromQL返回值 * 8)。
NetworkOut - 流出總流量
sum by(namespace) (increase(container_network_transmit_bytes_total{namespace="default", pod_name!=\"\"}[1h]))
PromQL單位:bytes。
云市場單位:bits(PromQL返回值 * 8)。
ECS場景計量項對應(yīng)PromQL語句
Unit - 自定義指標
服務(wù)實例ID需填寫偽參數(shù):ALIYUN::ServiceInstanceId
。
avg_over_time(node_memory_MemTotal_bytes{serviceInstanceId="ALIYUN::ServiceInstanceId"}[1h])
Memory - 平均內(nèi)存
avg_over_time(node_memory_MemTotal_bytes{serviceInstanceId="si-xxx"}[1h])
PromQL單位:bytes。
云市場單位:GB(PromQL返回值/1024/1024/1024)。由于云市場必須為整數(shù),因此計算巢上報時會進行四舍五入處理。
VirtualCpu - 平均虛擬CPU
avg_over_time(count(count(node_cpu_seconds_total{serviceInstanceId="si-xxx"}) by (cpu))[1h:])
PromQL單位:核數(shù)。
云市場單位:核數(shù)。
NetworkIn - 流入總流量
increase(node_network_receive_bytes_total{serviceInstanceId="si-xxx"}[1h])
PromQL單位:bytes。
云市場單位:bits(PromQL返回值 * 8)。
NetworkOut - 流出總流量
increase(node_network_transmit_bytes_total{serviceInstanceId="si-xxx"}[1h])
PromQL單位:bytes。
云市場單位:bits(PromQL返回值 * 8)。