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:
|
||||
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
||||
environment: {}
|
||||
image: grafana/mimir-alpine:r295-a23e559
|
||||
image: grafana/mimir-alpine:r304-3872ccb
|
||||
name: mimir_backend
|
||||
- environment: {}
|
||||
image: redis:6.2.11-alpine
|
||||
@ -1402,7 +1402,7 @@ services:
|
||||
- commands:
|
||||
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
||||
environment: {}
|
||||
image: grafana/mimir-alpine:r295-a23e559
|
||||
image: grafana/mimir-alpine:r304-3872ccb
|
||||
name: mimir_backend
|
||||
- environment: {}
|
||||
image: redis:6.2.11-alpine
|
||||
@ -2480,7 +2480,7 @@ services:
|
||||
- commands:
|
||||
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
||||
environment: {}
|
||||
image: grafana/mimir-alpine:r295-a23e559
|
||||
image: grafana/mimir-alpine:r304-3872ccb
|
||||
name: mimir_backend
|
||||
- environment: {}
|
||||
image: redis:6.2.11-alpine
|
||||
@ -3112,7 +3112,7 @@ services:
|
||||
- commands:
|
||||
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
||||
environment: {}
|
||||
image: grafana/mimir-alpine:r295-a23e559
|
||||
image: grafana/mimir-alpine:r304-3872ccb
|
||||
name: mimir_backend
|
||||
- environment: {}
|
||||
image: redis:6.2.11-alpine
|
||||
@ -5271,7 +5271,7 @@ services:
|
||||
- commands:
|
||||
- /bin/mimir -target=backend -alertmanager.grafana-alertmanager-compatibility-enabled
|
||||
environment: {}
|
||||
image: grafana/mimir-alpine:r295-a23e559
|
||||
image: grafana/mimir-alpine:r304-3872ccb
|
||||
name: mimir_backend
|
||||
- environment: {}
|
||||
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 python:3.8
|
||||
- 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:8.0.32
|
||||
- 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 python:3.8
|
||||
- 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:8.0.32
|
||||
- trivy --exit-code 1 --severity HIGH,CRITICAL redis:6.2.11-alpine
|
||||
@ -6074,6 +6074,6 @@ kind: secret
|
||||
name: gcr_credentials
|
||||
---
|
||||
kind: signature
|
||||
hmac: d35eadf9a166f68973ffd6df85f165bbda468d422d5debe416ec6a5af6ead84a
|
||||
hmac: 39565be86e2be3f42728062ce9c4e4b28d5f386e5f48cf3c765fd443c44d9e0e
|
||||
|
||||
...
|
||||
|
@ -1,5 +1,5 @@
|
||||
mimir_backend:
|
||||
image: grafana/mimir-alpine:r295-a23e559
|
||||
image: grafana/mimir-alpine:r304-3872ccb
|
||||
container_name: mimir_backend
|
||||
command:
|
||||
- -target=backend
|
||||
@ -14,4 +14,4 @@
|
||||
- 8080:8080
|
||||
volumes:
|
||||
- "./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"
|
||||
alertingModels "github.com/grafana/alerting/models"
|
||||
"github.com/grafana/alerting/notify"
|
||||
"github.com/grafana/grafana/pkg/infra/db"
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||
@ -739,6 +740,66 @@ func TestIntegrationRemoteAlertmanagerReceivers(t *testing.T) {
|
||||
}, 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 {
|
||||
endsAt := time.Now()
|
||||
if active {
|
||||
|
@ -22,7 +22,7 @@ images = {
|
||||
"plugins_slack": "plugins/slack",
|
||||
"python": "python:3.8",
|
||||
"postgres_alpine": "postgres:12.3-alpine",
|
||||
"mimir": "grafana/mimir-alpine:r295-a23e559",
|
||||
"mimir": "grafana/mimir-alpine:r304-3872ccb",
|
||||
"mysql5": "mysql:5.7.39",
|
||||
"mysql8": "mysql:8.0.32",
|
||||
"redis_alpine": "redis:6.2.11-alpine",
|
||||
|
Loading…
Reference in New Issue
Block a user