@@ -32,6 +32,64 @@ const simpleAlertmanagerConfig = `route:
3232receivers:
3333 - name: dummy`
3434
35+ const utf8AlertmanagerConfig = `route:
36+ receiver: dummy
37+ group_by: [group.test.🙂]
38+ receivers:
39+ - name: dummy`
40+
41+ func TestAlertmanager_UTF8 (t * testing.T ) {
42+ s , err := e2e .NewScenario (networkName )
43+ require .NoError (t , err )
44+ defer s .Close ()
45+
46+ flags := mergeFlags (AlertmanagerFlags (), AlertmanagerS3Flags ())
47+
48+ minio := e2edb .NewMinio (9000 , alertsBucketName )
49+ require .NoError (t , s .StartAndWaitReady (minio ))
50+
51+ alertmanager := e2ecortex .NewAlertmanager (
52+ "alertmanager" ,
53+ flags ,
54+ "" ,
55+ )
56+
57+ require .NoError (t , s .StartAndWaitReady (alertmanager ))
58+
59+ c , err := e2ecortex .NewClient ("" , "" , alertmanager .HTTPEndpoint (), "" , "user-1" )
60+ require .NoError (t , err )
61+
62+ ctx := context .Background ()
63+
64+ err = c .SetAlertmanagerConfig (ctx , utf8AlertmanagerConfig , map [string ]string {})
65+ require .NoError (t , err )
66+
67+ require .NoError (t , alertmanager .WaitSumMetricsWithOptions (e2e .Equals (1 ), []string {"cortex_alertmanager_config_last_reload_successful" }, e2e .WaitMissingMetrics ))
68+ require .NoError (t , alertmanager .WaitSumMetricsWithOptions (e2e .Greater (0 ), []string {"cortex_alertmanager_config_hash" }, e2e .WaitMissingMetrics ))
69+
70+ silenceId , err := c .CreateSilence (ctx , types.Silence {
71+ Matchers : amlabels.Matchers {
72+ {Name : "silences.name.🙂" , Value : "silences.value.🙂" },
73+ },
74+ Comment : "test silences" ,
75+ StartsAt : time .Now (),
76+ EndsAt : time .Now ().Add (time .Minute ),
77+ })
78+ require .NoError (t , err )
79+ require .NotEmpty (t , silenceId )
80+ require .NoError (t , alertmanager .WaitSumMetrics (e2e .Equals (1 ), "cortex_alertmanager_silences" ))
81+
82+ err = c .SendAlertToAlermanager (ctx , & model.Alert {
83+ Labels : model.LabelSet {
84+ "alert.name.🙂" : "alert.value.🙂" ,
85+ },
86+ StartsAt : time .Now (),
87+ EndsAt : time .Now ().Add (time .Minute ),
88+ })
89+ require .NoError (t , err )
90+ require .NoError (t , alertmanager .WaitSumMetrics (e2e .Equals (1 ), "cortex_alertmanager_alerts_received_total" ))
91+ }
92+
3593func TestAlertmanager (t * testing.T ) {
3694 s , err := e2e .NewScenario (networkName )
3795 require .NoError (t , err )
0 commit comments