首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PromQL模块缺失

PromQL模块缺失
EN

Stack Overflow用户
提问于 2022-02-28 00:21:24
回答 1查看 130关注 0票数 2

我正在尝试使用promql包这里

代码语言:javascript
复制
package main

import (
    "fmt"    
    "github.com/prometheus/prometheus/promql/parser"
)

func main() {
    fmt.Println("Hello")
    parser.ParseExpr("foobar")    
}

在进口上有困难。这是一个错误:

没有必需的模块提供包github.com/prometheus/prometheus/promql/parser;来添加它: go获取github.com/prometheus/prometheus/promql/parser (编译)

我试着按建议运行go get github.com/prometheus/prometheus/promql/parser,但失败了。

go get: Modgithub.com/prometheus/prometheus@upgrade (v2.5.0+incompatible),但不包含包v2.5.0+incompatible

以下是我目前的go.mod

代码语言:javascript
复制
module foo.com/bar/parser

go 1.17

require github.com/prometheus/prometheus v2.5.0+incompatible // indirect
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-28 01:08:24

使用go get github.com/prometheus/prometheus@83032011a5d3e6102624fe58241a374a7201fee8 (提交是目前最新的版本,v2.33.4)

这是需要是这样吗?的原因

这是Go模块的一个已知问题。Prometheus版本的语义版本是Prometheus作为服务器的行为,而不是作为库的代码。通过将模块路径更改为v2,我们建议Prometheus遵循Go模块作为库的契约,但它没有,也就是说,即使是在一个小版本中,也会发生许多破坏性的更改。

普罗米修斯不打算用作图书馆。现在这种情况已经改变了,即使我们不接受所有一般用途的捐款,它也打算作为这样的用途来使用。

您所看到的错误是因为go get默认抓取了一个旧版本的v2.5.0,该版本早在2018年就发布了,不包括parser包。这是因为Prometheus使用的版本控制方案与Go假设的版本控制方案不一致。

有关其他信息,请参见本期

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71289498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档