Stackdriver 无法根据自定义指标创建警报
Stackdriver failing to create alert based on custom metric
我有以下高级日志查询:
resource.type="container"
resource.labels.cluster_name="my-cluster"
resource.labels.namespace_id="mynamespace"
"SOMESTRING"
执行时获取预期结果。
我根据这个查询创建了一个自定义指标。
然后我 select "Create Alert from Metric" (my-custom-metric
) 并尝试设置警报。
尝试保存警报策略后,出现以下错误:
Error 400: Field alert_policy.conditions[0].condition_threshold.filter had an invalid value of “metric.type=“logging.googleapis.com/user/my-custom-metric” resource.type=“container”“: The filter contains unknown resource type: container
这怎么可能?
当我 selected
时,Stackdriver 本身会自动填写资源类型
Create Alert from Metric
出现此错误消息的原因是在 Kubernetes [1] 中使用了 Legacy Stackdriver。
在旧版 Kubernetes Stackdriver 中,GCP 有 2 种不同的 Kubernetes 资源类型;
1-gke_container;仅用于指标
2-容器;仅用于日志
在新版 Stackdriver 中,GCP 只有一种名为“k8s_container”的资源类型,包括指标和日志。这意味着使用这个新版本将最终解决问题。
新的 Stackdriver 版本在 Kubernetes 1.14+ 上默认启用,但如果您使用不同的版本,您可以按照本文档 [2][3] 中的说明手动更改它。
但是,作为解决方法,您可以简单地将红色受污染的资源类型删除到 Stackdriver 工作区中,然后添加“gke_container”。这对我有用。
[1] https://cloud.google.com/monitoring/kubernetes-engine/migration#what-is-changing
[2]https://cloud.google.com/monitoring/kubernetes-engine/installing#migrating
[3] https://cloud.google.com/monitoring/kubernetes-engine/migration#upgrade-timeline
我有以下高级日志查询:
resource.type="container"
resource.labels.cluster_name="my-cluster"
resource.labels.namespace_id="mynamespace"
"SOMESTRING"
执行时获取预期结果。
我根据这个查询创建了一个自定义指标。
然后我 select "Create Alert from Metric" (my-custom-metric
) 并尝试设置警报。
尝试保存警报策略后,出现以下错误:
Error 400: Field alert_policy.conditions[0].condition_threshold.filter had an invalid value of “metric.type=“logging.googleapis.com/user/my-custom-metric” resource.type=“container”“: The filter contains unknown resource type: container
这怎么可能?
当我 selected
时,Stackdriver 本身会自动填写资源类型Create Alert from Metric
出现此错误消息的原因是在 Kubernetes [1] 中使用了 Legacy Stackdriver。
在旧版 Kubernetes Stackdriver 中,GCP 有 2 种不同的 Kubernetes 资源类型;
1-gke_container;仅用于指标
2-容器;仅用于日志
在新版 Stackdriver 中,GCP 只有一种名为“k8s_container”的资源类型,包括指标和日志。这意味着使用这个新版本将最终解决问题。
新的 Stackdriver 版本在 Kubernetes 1.14+ 上默认启用,但如果您使用不同的版本,您可以按照本文档 [2][3] 中的说明手动更改它。
但是,作为解决方法,您可以简单地将红色受污染的资源类型删除到 Stackdriver 工作区中,然后添加“gke_container”。这对我有用。
[1] https://cloud.google.com/monitoring/kubernetes-engine/migration#what-is-changing
[2]https://cloud.google.com/monitoring/kubernetes-engine/installing#migrating
[3] https://cloud.google.com/monitoring/kubernetes-engine/migration#upgrade-timeline