MCPcopy Index your code
hub / github.com/cortexproject/cortex / CreateSilence

Method CreateSilence

integration/e2ecortex/client.go:1131–1164  ·  view source on GitHub ↗

CreateSilence creates a new silence and returns the unique identifier of the silence.

(ctx context.Context, silence types.Silence)

Source from the content-addressed store, hash-verified

1129
1130// CreateSilence creates a new silence and returns the unique identifier of the silence.
1131func (c *Client) CreateSilence(ctx context.Context, silence types.Silence) (string, error) {
1132 u := c.alertmanagerClient.URL("api/prom/api/v2/silences", nil)
1133
1134 data, err := json.Marshal(silence)
1135 if err != nil {
1136 return "", fmt.Errorf("error marshaling the silence: %s", err)
1137 }
1138
1139 req, err := http.NewRequest(http.MethodPost, u.String(), bytes.NewReader(data))
1140 if err != nil {
1141 return "", fmt.Errorf("error creating request: %v", err)
1142 }
1143
1144 req.Header.Set("Content-Type", "application/json")
1145
1146 resp, body, err := c.alertmanagerClient.Do(ctx, req)
1147 if err != nil {
1148 return "", err
1149 }
1150
1151 if resp.StatusCode != http.StatusOK {
1152 return "", fmt.Errorf("creating the silence failed with status %d and error %v", resp.StatusCode, string(body))
1153 }
1154
1155 type response struct {
1156 SilenceID string `json:"silenceID"`
1157 }
1158
1159 decoded := &response{}
1160 if err := json.Unmarshal(body, decoded); err != nil {
1161 return "", err
1162 }
1163 return decoded.SilenceID, nil
1164}
1165
1166func (c *Client) GetSilencesV2(ctx context.Context) ([]types.Silence, error) {
1167 u := c.alertmanagerClient.URL("api/prom/api/v2/silences", nil)

Callers 3

TestAlertmanagerShardingFunction · 0.95
Test_Alertmanager_UTF8Function · 0.95

Calls 5

StringMethod · 0.65
SetMethod · 0.65
DoMethod · 0.65
MarshalMethod · 0.45
UnmarshalMethod · 0.45

Tested by 3

TestAlertmanagerShardingFunction · 0.76
Test_Alertmanager_UTF8Function · 0.76