设置
注意:使用伪代码实例表示法:
ObjectType("<name>", | <attr>: <attr-value>])
.
我们有一个容器:
Container("k8s-snapshots")
在Pod("k8s-snapshots-0")
一个 `StatefulSet("k8s-snapshots", spec.replicas: 1)
我们预计在任何时间点最多运行 1 个 Pod。
我们有一个基于日志Counter
Metric("k8s-snapshots/snapshot-created")
的过滤器:
resource.type="container"
resource.labels.cluster_name="my-cluster"
logName="projects/my-project/logs/k8s-snapshots"
jsonPayload.event:"snapshot.created"
我们有一个 Stackdriver 政策:
Policy(
Name: "snapshot metric absent",
Condition: Condition(
Metric("k8s-snapshots/snapshot-created"),
is absent for: "more than 30 minutes"
)
)
为了监控是否Container("k8s-snapshots")
已停止创建快照。
预期结果
如果没有任何实例Pod("k8s-snapshots-0")
记录任何匹配的事件,则会触发警报Metric("k8s-snapshots/snapshot-created")
。
结果
Policy(Name: "snapshot metric absent")
每次都Pod("k8s-snapshots-0")
被重新安排。
似乎为每个实例创建了基于日志的主要指标的子指标Pod("k8s-snapshots")
,并为每个子指标创建了 Stackdriver 警报。