草庐IT

评估指标

全部标签

go - 使用自定义 http 处理程序的 goRelic 代理捕获 HTTP 指标

我试图捕获http处理程序、延迟等使用的系统资源。因为没有用于golang的newrelic代理。所以,我找到了这个goRelic代理人。这表示使用以下方式我可以捕获http指标:agent.CollectHTTPStat=truehttp.HandleFunc("/",agent.WrapHTTPHandlerFunc(handler))但问题是我正在使用link中给出的自定义http处理程序如下:typeappHandlerstruct{*appContextHfunc(*appContext,http.ResponseWriter,*http.Request)(int,error

go - Prometheus 指标未使用 Prometheus Go 客户端显示

我正在使用prometheusgolang客户端。代码片段如下。同样的构建工作正常。问题是只显示go指标。xyz_*指标缺失。我将initMetrics()作为main()函数中的第一件事。//Declaringprometheusmetriccountersvar(metric_prefix="xyz_"xyzAPICallsCounter=prometheus.NewCounterVec(prometheus.CounterOpts{Name:metric_prefix+"api_calls_total",Help:"Numberofcallstoxyzendpoint",},[]

go - 立即评估延迟调用的参数

在ATourofGo写成:Thedeferredcall'sargumentsareevaluatedimmediately,butthefunctioncallisnotexecuteduntilthesurroundingfunctionreturns.我很难理解引文的第一部分。什么叫立马?funcdef(sstring)func(){fmt.Println("tierup")fmt.Println(s)returnfunc(){fmt.Println("cleanup")}}funcmain(){deferdef("deferedline")()fmt.Println("main

go - 在 golang 中收集 Kubernetes 指标

我正在使用GKE平台来实现Kubernetes调度程序。我正在使用PrometheusGrafana来监控应用程序。为了在golang中实现调度程序,我需要获取指标作为调度程序的输入。请给我一些建议。另外请建议适当的文档,以便我可以轻松理解这些内容。我是新手,所以我什么都不知道。我们将不胜感激。 最佳答案 首先,我鼓励您阅读一些有关Kubernetes监控的相关文档architecture其中解释了很多关于Kubernetes指标主要概念的有用信息。由于您使用了Prometheus作为主要的监控集群代理,您可能会使用Kubernet

go - 即时在普罗米修斯中添加指标标签

我在普罗米修斯中有一个计数器指标。我想动态地向它添加标签,例如,如果我的请求来自http://abc123.com/{p1},我希望我的custom_metric_name存储{statuscode=200,p1=p1Value,host="abc123"}如果有请求http://def123.com/{p2}。我希望custom_metric_name存储{statuscode=200,p2=p2Value,host="def123"}但custom_metric_name将由两者共享指标。我试了还是得不到答案 最佳答案 您可以使

go - Stackdriver 上未显示自定义 OpenCensus 指标

我正在尝试使用OpenCensus从我的Go应用程序向Stackdriver发送自定义指标。我关注了guide,因此设置了View和导出器:import("context""contrib.go.opencensus.io/exporter/stackdriver""github.com/pkg/errors""go.opencensus.io/stats""go.opencensus.io/stats/view""time")var(apiRequestDurationMs=stats.Int64("api_request_duration","APIrequestdurationi

go - 如何评估外部go源代码 "dynamically"?

我需要解析Go源代码文件,找到特定类型(按名称)并在我的程序中使用它。我已经设法使用go/ast找到了我需要的类型包,但我不知道如何将它“加载”到我的程序中以便我可以使用它。问题:从外部源代码文件中提取和使用类型并在运行时使用它的最佳方法是什么?除了一个丑陋的方法,我想不出任何东西来基本上复制文件,通过注入(inject)一个“主”函数和我的编码东西来修改它,将结果发送到stdOut,执行它,从stdout收集编码数据,删除修改后的文件。用例:分析go源代码并以特定格式(例如json模式)对类型进行编码编辑:这是一些代码。问题是如何编码typeallTypes(零值)然后打印它。pac

templates - 如何使用文本/模板包评估字段?走

我有一个模板,我想使用text/template评估各个字段包裹。我很难弄清楚评估应该如何工作,因为下面的代码似乎失败了。模板包是否足够强大以处理此类评估?typesomethingstruct{Brandstring}tpl:=`{{if.Brand=="Coke"}}It'sacoke{{else}}It'ssomethingelse{{end}}` 最佳答案 模板包中有一个名为eq的全局函数,您可以调用它。不知道为什么会这样,但这是代码typesomethingstruct{Brandstring}tpl:=`{{ifeq.B

go - Prometheus - 将指标列表发送到 Gauge

我有一个要发送到prometheus的json格式的指标列表。我如何使用client_golang中的Guage指标类型将这些指标一次全部发送到prometheus?现在我有下面的代码var(dockerVer=prometheus.NewGauge(prometheus.GaugeOpts{Name:"docker_version_latency",Help:"Latencyofdockerversioncommand.",}))funcinit(){//Metricshavetoberegisteredtobeexposed:prometheus.MustRegister(dock

go - 已评估但未使用

我不确定这里发生了什么。我正在研究ProjectEuler#8,并提出了以下函数来处理获取5位数的乘积:funcfiveDigitProduct(nint)int{localMax:=n+5product:=1forn;n但是,我不断收到警告“nevaluatedbutnotused”。我不知道为什么会这样。 最佳答案 ForStatement的InitStmt(初始化语句)实际上并没有进行任何初始化。您要求编译器评估n但不对其执行任何操作,这正是编译器所提示的。由于您不需要为循环初始化n,只需执行以下操作:for;n