Using shortcuts to define alerts
Setting alerts as service labels is great but, as you probably noticed, a bit cumbersome. Alert conditions can get pretty long and repetitive. I, for one, got tired of writing the same statement over and over again. So, I created shortcuts that accomplish the same functionality. Let's see them in action.
The modified version of the go-demo
stack definition is as follows (restricted to relevant parts).
version: '3' services: main: ... deploy: ... labels: - com.df.alertIf=@service_mem_limit:0.8 ...
We simplified the definition by replacing the expression that follows with com.df.alertIf=@service_mem_limit:0.8
.
com.df.alertIf=container_memory_usage_bytes{container_label_com_\ docker_swarm_service_name="go-demo_main"}/container_spec_memory_limit_\ bytes{container_label_com_docker_swarm_service_name="go-demo_main"}\ > 0.8
Similarly, the modified version of the exporter
stack definition is as follows (limited to relevant...