Mattermost + New Relic APM
Mattermost + New Relic APM
我想在最重要的应用程序中使用新的遗留 APM。为了监控应用程序的性能,我在 api/post.go file.
中的 createpost api 请求处理程序上方添加了代码(如新遗物中所述)
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 和内存等属性 displayed.But 没有显示响应时间和吞吐量属性。
根据新的 relic 文档 (https://github.com/newrelic/go-agent),必须将此代码添加到 main /init 块中或仅在我们需要监视性能的函数开始处添加。
但由于未显示响应时间和吞吐量属性,我无法进行监控。
可能是我在错误的地方添加了代码。
我还尝试在 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
变量传递到您想要监控交易的任何地方。
然而,这并不能保证。只是一个没有任何测试支持的想法。
解决了,发帖给大家参考。
在 mattermost 中解决了通过此代码跟踪每个请求的问题:
BaseRoutes.NeedTeam.Handle(newrelic.WrapHandle(app, "/users", ApiAppHandler(usersHandler))).Methods("POST")
我想在最重要的应用程序中使用新的遗留 APM。为了监控应用程序的性能,我在 api/post.go file.
中的 createpost api 请求处理程序上方添加了代码(如新遗物中所述)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 和内存等属性 displayed.But 没有显示响应时间和吞吐量属性。
根据新的 relic 文档 (https://github.com/newrelic/go-agent),必须将此代码添加到 main /init 块中或仅在我们需要监视性能的函数开始处添加。
但由于未显示响应时间和吞吐量属性,我无法进行监控。 可能是我在错误的地方添加了代码。 我还尝试在 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
变量传递到您想要监控交易的任何地方。
然而,这并不能保证。只是一个没有任何测试支持的想法。
解决了,发帖给大家参考。 在 mattermost 中解决了通过此代码跟踪每个请求的问题:
BaseRoutes.NeedTeam.Handle(newrelic.WrapHandle(app, "/users", ApiAppHandler(usersHandler))).Methods("POST")