2016-10-06 10 views
0

중요한 유적지에 새로운 유물 APM을 사용하고 싶습니다. 성능을 모니터링하기 위해 api/post.go 파일의 createpost API 요청 처리기 바로 위에 코드를 추가했습니다 (새 유적에서 언급 한대로).Mattermost + New Relic APM

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되지 않고 처리량 속성이 표시됩니다 같은 속성이 있습니다.

새로운 유물 문서 (https://github.com/newrelic/go-agent)에 따라이 코드는 main/init 블록에 추가되거나 성능 모니터링이 필요한 기능 시작 시점에 추가되어야합니다.

그러나 응답 시간과 처리량 속성이 표시되지 않고 있습니다. 코드를 잘못된 위치에 추가 할 수 있습니다. 또한 mattermost.go 파일에서 main() 함수의 시작 부분에 코드를 추가하려고했습니다. 그러나 성공하지 못했습니다. 코드를 추가해야하는 위치를 제안하십시오. 당신은 표준 HTTP 라이브러리 패키지를 사용하는 경우

, 당신은 함수의 코드를 인스트루먼트에 대한 대안으로, HTTP 요청을 포장하여 거래를 만들 수 있습니다

둘째, 그들은 또한 언급했다.

전에 :

http.HandleFunc("/users", usersHandler)

후 :

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

이 자동으로 시작 및 단부
여기 는 래핑되는 HTTP 처리기의 전후 예제 요청 및 응답 작성자와의 트랜잭션.

여기에 따라 코드를 어디에서 추가해야합니까?

답변

0

해결책을 얻었으므로 다른 사람들이 참조 할 수 있도록 게시하십시오. 이 코드의 각 요청을 문제없이 처리하기 위해 문제를 해결했습니다.

BaseRoutes.NeedTeam.Handle(newrelic.WrapHandle(app, "/users", ApiAppHandler(usersHandler))).Methods("POST") 
0

당신 수도 수명이 짧은 프로세스에 대한 지원이 최신 버전 (1.3)을 사용하여 다음 mattermost.go

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

아래의 코드 섹션을 추가하고 모니터링 할 어디에 app 변수를 전달 시도 업무.

그러나 보증은 아닙니다. 어떤 생각에 의해서도 백업되지 않은 생각.