[Alertnameager] Prometheus Alertmanager API golang

简介: Alertmanager API接口查询告警
  • Golang 查询
package main

import (
        "fmt"
        "github.com/go-openapi/strfmt"
        "github.com/prometheus/alertmanager/api/v2/client"
        "github.com/prometheus/alertmanager/api/v2/client/alert"
)

func main() {
        transport := client.DefaultTransportConfig()
        transport.Host = "alertmanager:9093"
        fmt.Println(*transport)
        formats := strfmt.NewFormats()
        alertmanagerClient := client.NewHTTPClientWithConfig(formats, transport)
        fmt.Println(*alertmanagerClient)
        alertParams := alert.NewGetAlertsParams()
        var receiver string
        receiver = "Team-A"
        var filter = []string{"alertname=KubeNodeNotReady"}
        alertParams.WithReceiver(&receiver)
        alertParams.WithFilter(filter)

        a, _ := alertmanagerClient.Alert.GetAlerts(alertParams)
        for _, n := range (*a).GetPayload() {
                fmt.Println(*n)
                body,_ := n.MarshalJSON()
                fmt.Println(string(body))
        }
}

1.查询告警信息

curl http://alertmanager.com:9093/api/v2/alerts

2.添加告警

3.查看静默告警信息

# 查看所有静默的告警列表
curl http://alertmanager.com:9093/api/v2/silences

# 查看某条静默的告警
curl http://alertmanager.com:9093/api/v2/silence/{silenceID}

4.添加静默

curl -XPOST  http://alertmanager.com:9093/api/v2/silences \
>  --header 'Content-Type: application/json' \
>  --data '{"comment": "test", "status": {"state": "active"}, "endsAt": "2022-05-26T01:51:01.143796Z", "matchers": [{"isRegex": false, "name": "alertname", "value": "YellowFrameworkBuildJobCheck"}, {"isRegex": false, "name": "severity", "value": "critical"}], "createdBy": "userName", "startsAt": "2022-05-25T15:51:01.143796Z", "id": ""}'

5.删除静默

# 删除指定silenceID的告警
curl -X DELETE http://alertmanager.com:9093/api/v2/silence/{silenceID}
相关文章
|
2月前
|
Kubernetes API Python
通过 API 快速创建 AlertManager silence
通过 API 快速创建 AlertManager silence
|
9月前
|
Kubernetes 监控 安全
如何访问kubernetes API?
如何访问kubernetes API?
197 0
|
分布式计算 资源调度 Hadoop
|
5月前
|
JSON 中间件 API
|
7月前
|
Kubernetes JavaScript API
使用 Kubernetes API
使用 Kubernetes API
46 0
|
Kubernetes Go API
在代码中使用SDK操作Istio资源一(Golang)
如何在代码中使用SDK操作Istio资源
|
Prometheus Kubernetes Cloud Native
使用golang编写自定义prometheus metrics
使用golang编写自定义prometheus metrics
|
运维 Kubernetes Cloud Native
上了 istio 的贼船之 API Gateway
通过将传统微服务架构的这些控制面功能解耦到 istio,可以让微服务应用本身专注于业务开发,是一个比较简的单体 springboot 应用。再结合 k8s 的高扩展性,研发整体的迭代速度和运维效率还是比较高的,缺点是无论是 k8s 还是 istio ,学习成本偏高,需要团队至少 2 人具有专业知识,对于招聘成本、系统升级都有风险。
上了 istio 的贼船之 API Gateway
|
JSON Kubernetes API
Kubernetes API
Kubernetes API
140 0

热门文章

最新文章