prometheus-alertmanager - alertmanager amtool 在查询静默时导致分段违规
问题描述
我amtool
第一次使用 prometheus alertmanager cli 工具,它正在崩溃。我正在关注我在这里找到的文档:https ://github.com/prometheus/alertmanager/blob/master/README.md
所以我像这样拉下 docker 容器:
red@Reds-MBP ~ % docker run --name alertmanager -d -p \
127.0.0.1:9093:9093 quay.io/prometheus/alertmanager
然后我尝试像这样查询我的沉默:
red@Reds-MBP ~ % docker exec -it alertmanager amtool \
> --alertmanager.url https://alertmanager-xxxx.example.net \
> silence query alertname=DeadMansSwitch
但是产生的输出是这样的:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x8da822]
goroutine 1 [running]:
github.com/prometheus/alertmanager/cli/format.labelsMatcher(...)
/app/cli/format/format.go:56
github.com/prometheus/alertmanager/cli/format.simpleFormatMatcher(0x0, 0xc0005586a6, 0xc00006bd90, 0xc00006bda0, 0xc00011d380, 0x28)
/app/cli/format/format_simple.go:98 +0x102
github.com/prometheus/alertmanager/cli/format.simpleFormatMatchers(0xc0005a8a40, 0x3, 0x4, 0x1, 0x1)
/app/cli/format/format_simple.go:92 +0x98
github.com/prometheus/alertmanager/cli/format.(*SimpleFormatter).FormatSilences(0xc000319130, 0xc00050f360, 0x1, 0x1, 0xc000326408, 0x134bc01)
/app/cli/format/format_simple.go:48 +0x1de
github.com/prometheus/alertmanager/cli.(*silenceQueryCmd).query(0xc000406f60, 0xeb7de8, 0xc00031c4e0, 0xc0005d61b0, 0xc00031c4e0, 0xc0005a6c90)
/app/cli/silence_query.go:143 +0x7fa
github.com/prometheus/alertmanager/cli.execWithTimeout.func1(0xc0005d61b0, 0x0, 0x0)
/app/cli/utils.go:154 +0xa4
gopkg.in/alecthomas/kingpin%2ev2.(*actionMixin).applyActions(0xc0005e2618, 0xc0005d61b0, 0x0, 0x0)
/go/pkg/mod/gopkg.in/alecthomas/kingpin.v2@v2.2.6/actions.go:28 +0x6d
gopkg.in/alecthomas/kingpin%2ev2.(*Application).applyActions(0xc0005d20f0, 0xc0005d61b0, 0x0, 0x0)
/go/pkg/mod/gopkg.in/alecthomas/kingpin.v2@v2.2.6/app.go:557 +0xdf
gopkg.in/alecthomas/kingpin%2ev2.(*Application).execute(0xc0005d20f0, 0xc0005d61b0, 0xc0000a65e0, 0x2, 0x2, 0x0, 0x0, 0x0, 0x0)
/go/pkg/mod/gopkg.in/alecthomas/kingpin.v2@v2.2.6/app.go:390 +0x95
gopkg.in/alecthomas/kingpin%2ev2.(*Application).Parse(0xc0005d20f0, 0xc0000301f0, 0x5, 0x5, 0x5, 0x0, 0x0, 0x10)
/go/pkg/mod/gopkg.in/alecthomas/kingpin.v2@v2.2.6/app.go:222 +0x228
github.com/prometheus/alertmanager/cli.Execute()
/app/cli/root.go:122 +0x925
main.main()
/app/cmd/amtool/main.go:19 +0x25
:(
解决方案
推荐阅读
- google-app-engine - 如何在谷歌应用引擎和 gitlab CI 中传递 env 秘密变量
- javascript - SignalR 根本没有做任何事情。单击提交时没有任何内容发送给客户端
- python - 无法从scrapy获得输出
- com - MinGW g++ 是否可以理解 COM 服务器的类型库?
- java - org.apache.catalina.core.StandardWrapperValve.invoke 为 servlet [Jersey REST 服务] java.lang.NullPointerExceptio 分配异常
- python - 重新初始化时 tkinter 移动画布
- node.js - I am using Op.not in sequilize and i want to use or in between same fields
- linux - 如何使用 Linux 命令跳过字符串开头和结尾的表达式
- python - 转换 numpy 数组的 dtype 会更改其内容/值
- python - 从 csv url 列表下载大量 pdf 文件