I don't know, but you could look at the source code of projects like https://github.com/prymitive/karma and alerta.io to see how they interface with the API.
Also: https://stackoverflow.com/questions/75283114/prometheus-alertmanager-api-to-manage-silences On Thursday, 16 January 2025 at 11:50:53 UTC Saar Zur wrote: > Thanks for your response. > > Another question - there is a way to delete expired silences via the api ? > > ב-יום שני, 13 בינואר 2025 בשעה 18:16:36 UTC+2, Brian Candler כתב/ה: > >> > from a look in the AlertManager UI no silence was created, and i got >> resolved notification after 5 minutes since the fired notification. >> ... >> > I wonder why the silence wasn't able to create? (not the first time it >> happens) >> > Maybe it's some kind of a race condition? we can't silence alerts which >> are not in fired state right? >> >> That's not true - you can certainly create silences which don't match any >> active alerts. This allows you, for example, to create silences before >> maintenance starts, to suppress the alerts you expect. >> >> If the silences aren't being created (i.e. not visible in the GUI), then >> you need to look deeper into the code which creates them, and perhaps >> tcpdump the API to alertmanager to see if you're passing valid parameters. >> >> On Monday, 13 January 2025 at 15:22:54 UTC Saar Zur wrote: >> >>> Hi, >>> >>> i am using the amtool client in a Job inside my cluster. >>> >>> An alert was fired and we got notification in our slack channel, i used >>> the cli (in code that runs inside docker image from the Job) to create a >>> silence according to `alertname` matcher and there was no failure. >>> >>> from a look in the AlertManager UI no silence was created, and i got >>> resolved notification after 5 minutes since the fired notification. >>> >>> After ~10 minutes the alert was fired and resolved again (5 minutes >>> difference). >>> >>> I wonder why the silence wasn't able to create? (not the first time it >>> happens) >>> Maybe it's some kind of a race condition? we can't silence alerts which >>> are not in fired state right? (although the alert was in fired state while >>> i tried to create the silence) >>> >>> The Alert rule: >>> name: Orchestrator GRPC Failures for ExternalProcessor Service >>> <http://localhost:9090/graph?g0.expr=ALERTS%7Balertname%3D%22Orchestrator%20GRPC%20Failures%20for%20ExternalProcessor%20Service%22%7D&g0.tab=1&g0.display_mode=lines&g0.show_exemplars=0.g0.range_input=1h.> >>> expr: >>> sum(increase(grpc_server_handled_total{grpc_code!~"OK|Canceled",grpc_service="envoy.service.ext_proc.v3.ExternalProcessor"}[5m])) >>> >>> > 0 >>> <http://localhost:9090/graph?g0.expr=sum(increase(grpc_server_handled_total%7Bgrpc_code!~%22OK%7CCanceled%22%2Cgrpc_service%3D%22envoy.service.ext_proc.v3.ExternalProcessor%22%7D%5B5m%5D))%20%3E%200&g0.tab=1&g0.display_mode=lines&g0.show_exemplars=0.g0.range_input=1h.> >>> for: 5m >>> labels: >>> severity: WARNING >>> annotations: >>> dashboard_url: p-R7Hw1Iz >>> runbook_url: extension-orchestrator-dashboard >>> summary: Failed gRPC calls detected in the Envoy External Processor >>> within the last 5 minutes. <!subteam^S06E0CPPC5S> >>> >>> The code for creating the silence: >>> func postSilence(amCli amclient.Client, matchers []*models.Matcher) >>> error { >>> startsAt := strfmt.DateTime(silenceStart) >>> endsAt := strfmt.DateTime(silenceStart.Add(silenceDuration)) >>> createdBy := creatorType >>> comment := silenceComment >>> silenceParams := silence.NewPostSilencesParams().WithSilence( >>> &models.PostableSilence{ >>> Silence: models.Silence{ >>> Matchers: matchers, >>> StartsAt: &startsAt, >>> EndsAt: &endsAt, >>> CreatedBy: &createdBy, >>> Comment: &comment, >>> }, >>> }, >>> ) >>> >>> err := amCli.PostSilence(silenceParams) >>> if err != nil { >>> return fmt.Errorf("failed on post silence: %w", err) >>> } >>> log.Print("Silence posted successfully") >>> >>> return nil >>> } >>> >>> Thank in advance, >>> Saar Zur SAP Labs >>> >> -- You received this message because you are subscribed to the Google Groups "Prometheus Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/prometheus-users/80fa5075-356d-435c-8185-3eadbd84cf8bn%40googlegroups.com.

