mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Alerting: Integration test for testing template via remote alertmanager (#92147)
* Add integration test for testing template * Update drone signature
This commit is contained in:
parent
237f8c7bac
commit
8d725a641c
16
.drone.yml
16
.drone.yml
@ -954,7 +954,7 @@ services:
|
|||||||
- commands:
|
- commands:
|
||||||
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
||||||
environment: {}
|
environment: {}
|
||||||
image: grafana/mimir-alpine:r295-a23e559
|
image: grafana/mimir-alpine:r304-3872ccb
|
||||||
name: mimir_backend
|
name: mimir_backend
|
||||||
- environment: {}
|
- environment: {}
|
||||||
image: redis:6.2.11-alpine
|
image: redis:6.2.11-alpine
|
||||||
@ -1402,7 +1402,7 @@ services:
|
|||||||
- commands:
|
- commands:
|
||||||
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
||||||
environment: {}
|
environment: {}
|
||||||
image: grafana/mimir-alpine:r295-a23e559
|
image: grafana/mimir-alpine:r304-3872ccb
|
||||||
name: mimir_backend
|
name: mimir_backend
|
||||||
- environment: {}
|
- environment: {}
|
||||||
image: redis:6.2.11-alpine
|
image: redis:6.2.11-alpine
|
||||||
@ -2480,7 +2480,7 @@ services:
|
|||||||
- commands:
|
- commands:
|
||||||
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
||||||
environment: {}
|
environment: {}
|
||||||
image: grafana/mimir-alpine:r295-a23e559
|
image: grafana/mimir-alpine:r304-3872ccb
|
||||||
name: mimir_backend
|
name: mimir_backend
|
||||||
- environment: {}
|
- environment: {}
|
||||||
image: redis:6.2.11-alpine
|
image: redis:6.2.11-alpine
|
||||||
@ -3112,7 +3112,7 @@ services:
|
|||||||
- commands:
|
- commands:
|
||||||
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
||||||
environment: {}
|
environment: {}
|
||||||
image: grafana/mimir-alpine:r295-a23e559
|
image: grafana/mimir-alpine:r304-3872ccb
|
||||||
name: mimir_backend
|
name: mimir_backend
|
||||||
- environment: {}
|
- environment: {}
|
||||||
image: redis:6.2.11-alpine
|
image: redis:6.2.11-alpine
|
||||||
@ -5271,7 +5271,7 @@ services:
|
|||||||
- commands:
|
- commands:
|
||||||
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
||||||
environment: {}
|
environment: {}
|
||||||
image: grafana/mimir-alpine:r295-a23e559
|
image: grafana/mimir-alpine:r304-3872ccb
|
||||||
name: mimir_backend
|
name: mimir_backend
|
||||||
- environment: {}
|
- environment: {}
|
||||||
image: redis:6.2.11-alpine
|
image: redis:6.2.11-alpine
|
||||||
@ -5792,7 +5792,7 @@ steps:
|
|||||||
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM plugins/slack
|
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM plugins/slack
|
||||||
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM python:3.8
|
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM python:3.8
|
||||||
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM postgres:12.3-alpine
|
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM postgres:12.3-alpine
|
||||||
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/mimir-alpine:r295-a23e559
|
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/mimir-alpine:r304-3872ccb
|
||||||
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM mysql:5.7.39
|
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM mysql:5.7.39
|
||||||
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM mysql:8.0.32
|
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM mysql:8.0.32
|
||||||
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM redis:6.2.11-alpine
|
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM redis:6.2.11-alpine
|
||||||
@ -5829,7 +5829,7 @@ steps:
|
|||||||
- trivy --exit-code 1 --severity HIGH,CRITICAL plugins/slack
|
- trivy --exit-code 1 --severity HIGH,CRITICAL plugins/slack
|
||||||
- trivy --exit-code 1 --severity HIGH,CRITICAL python:3.8
|
- trivy --exit-code 1 --severity HIGH,CRITICAL python:3.8
|
||||||
- trivy --exit-code 1 --severity HIGH,CRITICAL postgres:12.3-alpine
|
- trivy --exit-code 1 --severity HIGH,CRITICAL postgres:12.3-alpine
|
||||||
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/mimir-alpine:r295-a23e559
|
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/mimir-alpine:r304-3872ccb
|
||||||
- trivy --exit-code 1 --severity HIGH,CRITICAL mysql:5.7.39
|
- trivy --exit-code 1 --severity HIGH,CRITICAL mysql:5.7.39
|
||||||
- trivy --exit-code 1 --severity HIGH,CRITICAL mysql:8.0.32
|
- trivy --exit-code 1 --severity HIGH,CRITICAL mysql:8.0.32
|
||||||
- trivy --exit-code 1 --severity HIGH,CRITICAL redis:6.2.11-alpine
|
- trivy --exit-code 1 --severity HIGH,CRITICAL redis:6.2.11-alpine
|
||||||
@ -6074,6 +6074,6 @@ kind: secret
|
|||||||
name: gcr_credentials
|
name: gcr_credentials
|
||||||
---
|
---
|
||||||
kind: signature
|
kind: signature
|
||||||
hmac: d35eadf9a166f68973ffd6df85f165bbda468d422d5debe416ec6a5af6ead84a
|
hmac: 39565be86e2be3f42728062ce9c4e4b28d5f386e5f48cf3c765fd443c44d9e0e
|
||||||
|
|
||||||
...
|
...
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
mimir_backend:
|
mimir_backend:
|
||||||
image: grafana/mimir-alpine:r295-a23e559
|
image: grafana/mimir-alpine:r304-3872ccb
|
||||||
container_name: mimir_backend
|
container_name: mimir_backend
|
||||||
command:
|
command:
|
||||||
- -target=backend
|
- -target=backend
|
||||||
@ -14,4 +14,4 @@
|
|||||||
- 8080:8080
|
- 8080:8080
|
||||||
volumes:
|
volumes:
|
||||||
- "./docker/blocks/mimir_backend/nginx/nginx.conf.template:/etc/nginx/templates/nginx.conf.template"
|
- "./docker/blocks/mimir_backend/nginx/nginx.conf.template:/etc/nginx/templates/nginx.conf.template"
|
||||||
- "./docker/blocks/mimir_backend/nginx/.htpasswd:/etc/nginx/.htpasswd"
|
- "./docker/blocks/mimir_backend/nginx/.htpasswd:/etc/nginx/.htpasswd"
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
|
|
||||||
"github.com/grafana/alerting/definition"
|
"github.com/grafana/alerting/definition"
|
||||||
alertingModels "github.com/grafana/alerting/models"
|
alertingModels "github.com/grafana/alerting/models"
|
||||||
|
"github.com/grafana/alerting/notify"
|
||||||
"github.com/grafana/grafana/pkg/infra/db"
|
"github.com/grafana/grafana/pkg/infra/db"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
"github.com/grafana/grafana/pkg/infra/log"
|
||||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||||
@ -739,6 +740,66 @@ func TestIntegrationRemoteAlertmanagerReceivers(t *testing.T) {
|
|||||||
}, rcvs)
|
}, rcvs)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIntegrationRemoteAlertmanagerTestTemplates(t *testing.T) {
|
||||||
|
if testing.Short() {
|
||||||
|
t.Skip("skipping integration test")
|
||||||
|
}
|
||||||
|
|
||||||
|
amURL, ok := os.LookupEnv("AM_URL")
|
||||||
|
if !ok {
|
||||||
|
t.Skip("No Alertmanager URL provided")
|
||||||
|
}
|
||||||
|
|
||||||
|
tenantID := os.Getenv("AM_TENANT_ID")
|
||||||
|
password := os.Getenv("AM_PASSWORD")
|
||||||
|
|
||||||
|
cfg := AlertmanagerConfig{
|
||||||
|
OrgID: 1,
|
||||||
|
URL: amURL,
|
||||||
|
TenantID: tenantID,
|
||||||
|
BasicAuthPassword: password,
|
||||||
|
DefaultConfig: defaultGrafanaConfig,
|
||||||
|
}
|
||||||
|
|
||||||
|
secretsService := secretsManager.SetupTestService(t, fakes.NewFakeSecretsStore())
|
||||||
|
m := metrics.NewRemoteAlertmanagerMetrics(prometheus.NewRegistry())
|
||||||
|
am, err := NewAlertmanager(cfg, nil, secretsService.Decrypt, NoopAutogenFn, m, tracing.InitializeTracerForTest())
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
// Valid template
|
||||||
|
c := apimodels.TestTemplatesConfigBodyParams{
|
||||||
|
Alerts: []*amv2.PostableAlert{
|
||||||
|
{
|
||||||
|
Annotations: amv2.LabelSet{
|
||||||
|
"annotations_label": "annotations_value",
|
||||||
|
},
|
||||||
|
Alert: amv2.Alert{
|
||||||
|
Labels: amv2.LabelSet{
|
||||||
|
"labels_label:": "labels_value",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Template: `{{ define "test" }} {{ index .Alerts 0 }} {{ end }}`,
|
||||||
|
Name: "test",
|
||||||
|
}
|
||||||
|
res, err := am.TestTemplate(context.Background(), c)
|
||||||
|
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Len(t, res.Errors, 0)
|
||||||
|
require.Len(t, res.Results, 1)
|
||||||
|
require.Equal(t, "test", res.Results[0].Name)
|
||||||
|
|
||||||
|
// Invalid template
|
||||||
|
c.Template = `{{ define "test" }} {{ index 0 .Alerts }} {{ end }}`
|
||||||
|
res, err = am.TestTemplate(context.Background(), c)
|
||||||
|
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Len(t, res.Results, 0)
|
||||||
|
require.Len(t, res.Errors, 1)
|
||||||
|
require.Equal(t, notify.ExecutionError, res.Errors[0].Kind)
|
||||||
|
}
|
||||||
|
|
||||||
func genAlert(active bool, labels map[string]string) amv2.PostableAlert {
|
func genAlert(active bool, labels map[string]string) amv2.PostableAlert {
|
||||||
endsAt := time.Now()
|
endsAt := time.Now()
|
||||||
if active {
|
if active {
|
||||||
|
@ -22,7 +22,7 @@ images = {
|
|||||||
"plugins_slack": "plugins/slack",
|
"plugins_slack": "plugins/slack",
|
||||||
"python": "python:3.8",
|
"python": "python:3.8",
|
||||||
"postgres_alpine": "postgres:12.3-alpine",
|
"postgres_alpine": "postgres:12.3-alpine",
|
||||||
"mimir": "grafana/mimir-alpine:r295-a23e559",
|
"mimir": "grafana/mimir-alpine:r304-3872ccb",
|
||||||
"mysql5": "mysql:5.7.39",
|
"mysql5": "mysql:5.7.39",
|
||||||
"mysql8": "mysql:8.0.32",
|
"mysql8": "mysql:8.0.32",
|
||||||
"redis_alpine": "redis:6.2.11-alpine",
|
"redis_alpine": "redis:6.2.11-alpine",
|
||||||
|
Loading…
Reference in New Issue
Block a user