gpt4 book ai didi

go - Mattermost + New Relic APM

转载 作者:数据小太阳 更新时间:2023-10-29 03:26:32 28 4
gpt4 key购买 nike

我想在最重要的应用程序中使用新的遗留 APM。为了监控应用程序的性能,我在 api/post.go 文件中的 createpost api 请求处理程序上方添加了代码(如 new relic 中所述)。

func createPost(c *Context, w http.ResponseWriter, r *http.Request) {
config := newrelic.NewConfig("mylocalstarfp", "####12337")
app, err1 := newrelic.NewApplication(config)
fmt.Println("config")
fmt.Println(config)
if nil != err1 {
fmt.Println(err1)
// os.Exit(1)
}
txn := app.StartTransaction("mylocalstar",w, r)
defer txn.End()
post := model.PostFromJson(r.Body)
.....
.......
}

应用程序显示在新遗迹仪表板上,并显示 CPU 和内存等属性。但没有显示响应时间和吞吐量属性。

根据新的遗留文档 (https://github.com/newrelic/go-agent),必须将此代码添加到 main/init block 中,或者仅在我们需要监控性能的函数开始时添加。

但由于未显示响应时间和吞吐量属性,我无法进行监控。可能是我在错误的地方添加了代码。我还尝试在 mattermost.go 文件中的 main() 函数的开头添加代码。但没有成功。请建议我必须在哪里添加代码。

其次,他们还提到:

If you are using the standard HTTP library package, you can create transactions by wrapping HTTP requests, as an alternative to instrumenting a function's code.
Here is a before-and-after example of an HTTP handler being wrapped:

Before:

http.HandleFunc("/users", usersHandler)

After:

http.HandleFunc(newrelic.WrapHandleFunc(app, "/users", usersHandler))

This automatically starts and ends a transaction with the request and response writer.

按照这个,我应该在 Mattermost 的什么地方添加代码?

最佳答案

您可以尝试使用支持短期进程的最新版本 (1.3),然后添加下面的代码部分

newrelic.NewConfig("mylocalstarfp", "####12337")
app, err1 := newrelic.NewApplication(config)`

mattermost.go,并将 app 变量传递到您想要监控交易的任何地方。

但这并不能保证。只是一个没有任何测试支持的想法。

关于go - Mattermost + New Relic APM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39890703/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com