【发布时间】:2020-07-01 01:16:39
【问题描述】:
我有一个 GKE 集群,我想跟踪请求的总内存与可分配的总内存之间的比率。我能够使用
在 Google Cloud Monitoring 中创建图表metric.type="kubernetes.io/container/memory/request_bytes" resource.type="k8s_container"
和
metric.type="kubernetes.io/node/memory/allocatable_bytes" resource.type="k8s_node"
两者都将crossSeriesReducer 设置为REDUCE_SUM,以便获得整个集群的总数。
然后,当我尝试使用两者的比率(遵循this)设置警报策略(使用云监控 api)时,我收到此错误
ERROR: (gcloud.alpha.monitoring.policies.create) INVALID_ARGUMENT: The numerator and denominator must have the same resource type.
不喜欢第一个指标是 k8s_container 而第二个指标是 k8s_node 是否可以使用不同的指标或某种解决方法来提醒 Google 中的内存请求/可分配比率云监控?
编辑:
这是完整的请求和响应
$ gcloud alpha monitoring policies create --policy-from-file=policy.json
ERROR: (gcloud.alpha.monitoring.policies.create) INVALID_ARGUMENT: The numerator and denominator must have the same resource type.
$ cat policy.json
{
"displayName": "Cluster Memory",
"enabled": true,
"combiner": "OR",
"conditions": [
{
"displayName": "Ratio: Memory Requests / Memory Allocatable",
"conditionThreshold": {
"filter": "metric.type=\"kubernetes.io/container/memory/request_bytes\" resource.type=\"k8s_container\"",
"aggregations": [
{
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_SUM",
"groupByFields": [
],
"perSeriesAligner": "ALIGN_MEAN"
}
],
"denominatorFilter": "metric.type=\"kubernetes.io/node/memory/allocatable_bytes\" resource.type=\"k8s_node\"",
"denominatorAggregations": [
{
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_SUM",
"groupByFields": [
],
"perSeriesAligner": "ALIGN_MEAN",
}
],
"comparison": "COMPARISON_GT",
"thresholdValue": 0.8,
"duration": "60s",
"trigger": {
"count": 1
}
}
}
]
}
【问题讨论】:
-
如果可能,请编辑您的帖子并显示请求以及返回响应代码。
-
@DawidKruk 已编辑。我使用了 gcloud cli,所以我没有看到 API 响应代码,但我猜它是 4xx 代码。
标签: google-cloud-platform google-kubernetes-engine stackdriver google-cloud-stackdriver google-cloud-monitoring