@@ -604,6 +604,37 @@ func TestGrafanaAlertmanager_setInhibitionRulesMetrics(t *testing.T) {
604604` ), "grafana_alerting_alertmanager_inhibition_rules" ))
605605}
606606
607+ func TestGrafanaAlertmanager_setTemplateMetrics (t * testing.T ) {
608+ am , reg := setupAMTest (t )
609+
610+ cfgTemplates := []templates.TemplateDefinition {
611+ {Name : "grafana-1" , Kind : templates .GrafanaKind },
612+ {Name : "grafana-2" , Kind : templates .GrafanaKind },
613+ {Name : "mimir-1" , Kind : templates .MimirKind },
614+ }
615+ am .setTemplateMetrics (cfgTemplates )
616+
617+ require .NoError (t , testutil .GatherAndCompare (reg , bytes .NewBufferString (`
618+ # HELP grafana_alerting_alertmanager_templates Number of configured templates by kind.
619+ # TYPE grafana_alerting_alertmanager_templates gauge
620+ grafana_alerting_alertmanager_templates{kind="Grafana",org="1"} 2
621+ grafana_alerting_alertmanager_templates{kind="Mimir",org="1"} 1
622+ ` ), "grafana_alerting_alertmanager_templates" ))
623+
624+ // Applying a config that no longer has Mimir templates must reset that
625+ // kind's gauge to 0 instead of leaving the stale previous value.
626+ am .setTemplateMetrics ([]templates.TemplateDefinition {
627+ {Name : "grafana-1" , Kind : templates .GrafanaKind },
628+ })
629+
630+ require .NoError (t , testutil .GatherAndCompare (reg , bytes .NewBufferString (`
631+ # HELP grafana_alerting_alertmanager_templates Number of configured templates by kind.
632+ # TYPE grafana_alerting_alertmanager_templates gauge
633+ grafana_alerting_alertmanager_templates{kind="Grafana",org="1"} 1
634+ grafana_alerting_alertmanager_templates{kind="Mimir",org="1"} 0
635+ ` ), "grafana_alerting_alertmanager_templates" ))
636+ }
637+
607638func TestGrafanaAlertmanager_setReceiverMetrics (t * testing.T ) {
608639 am , reg := setupAMTest (t )
609640
0 commit comments