我想在最重要的应用程序中使用 new relic 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)
.....
.......
}
应用程序显示在新的 Relic 仪表板上,并显示 CPU 和内存等属性。但没有显示响应时间和吞吐量属性。
根据新的 relic 文档(https://github.com/newrelic/go-agent),此代码必须添加到 main /init 块中,或者只是在我们需要监控性能的函数开始处添加。
但我无法监控响应时间和吞吐量属性未显示。可能是我在错误的地方添加代码。我还尝试在mattermost.go 文件的main() 函数开头添加代码。但没有成功。请建议我必须在哪里添加代码。
其次,他们还提到:
如果您使用的是标准 HTTP 库包,则可以通过包装 HTTP 请求来创建事务,作为检测函数代码的替代方法。
这是包装 HTTP 处理程序的前后示例:前:
http.HandleFunc("/users", usersHandler)
后:
http.HandleFunc(newrelic.WrapHandleFunc(app, "/users", usersHandler))
这会自动启动和结束与请求和响应编写器的事务。
根据这个,我应该在 Mattermost 中的哪里添加代码?