2016-10-06 2 views
0

Ich möchte neue Reliquie APM in der mattresten Anwendung verwenden. Um die Leistung der Anwendung zu überwachen, habe ich den Code (wie im neuen Relikt erwähnt) direkt über dem createpost API-Request-Handler in der Datei api/post.go hinzugefügt.Matlternd + 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) 
    ..... 
    ....... 
} 

Die Anwendung auf neue Reliquie Armaturenbrett angezeigt wird und Attribute wie CPU und Speicher sind displayed.But keine Antwortzeit und Durchsatz Attribute angezeigt werden.

Laut neuer Dokumentation des Relikts (https://github.com/newrelic/go-agent) muss dieser Code im Hauptblock/init hinzugefügt werden oder nur zu Beginn der Funktion, wo wir die Leistung überwachen müssen.

Aber ich bin nicht in der Lage zu überwachen, da die Antwortzeit und Durchsatz-Attribute nicht angezeigt werden. Möglicherweise füge ich den Code an falscher Stelle hinzu. Ich habe auch versucht, den Code am Anfang der Funktion main() in der Datei mattrestnest.go hinzuzufügen. Aber kein Erfolg. Bitte geben Sie an, wo ich den Code hinzufügen muss.

Zweitens haben sie auch erwähnt, dass:

Wenn Sie das Standard-HTTP-Bibliothekspaket verwenden, können Sie Transaktionen durch Umwickeln HTTP-Anfragen, als Alternative zu instrumentieren eine Funktion Code erstellen können.
Hier ist ein vor-und-nach Beispiel eines HTTP-Handler eingewickelt werden:

Vorher:

http.HandleFunc("/users", usersHandler)

Nach:

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

Dieser startet automatisch und endet eine Transaktion mit dem Request und Response Writer.

Wo soll ich den Code in Matternmest hinzufügen?

Antwort

0

Haben Sie die Lösung, daher Posting für andere zu verweisen. Das Problem wurde behoben, um jede Anfrage mit diesem Code in matternstem zu verfolgen:

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

Sie könnten versuchen, die neueste Version (1.3) mit der Unterstützung für kurzlebige Prozesse hat und dann den Codeabschnitt unter

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

zum mattermost.go, und Leiten des app Variable überall Sie überwachen mögen Transaktionen.

Das ist jedoch keine Garantie. Nur ein Gedanke, der nicht durch irgendwelche Tests unterstützt wurde.

Verwandte Themen