注意:使用伪代码实例表示法:
ObjectType("<name>", | <attr>: <attr-value>])
。
我们有一个容器:
Container("k8s-snapshots")
位于“StatefulSet”中的Pod("k8s-snapshots-0")
(&#34; k8s-snapshots&#34;,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警报。