Backend: Error Monitoring
Backend: Logging
Go
JS
Python
Ruby
Java
Rust
Hosting Providers
Backend: Tracing
Native OpenTelemetry
Fullstack Frameworks
Overview
Self Host & Local Dev
Menu
gin
Learn how to set up highlight.io on your Go gqlgen backend.
1
Add `tracingOrigins` to your client Highlight snippet.
This backend SDK requires one of the Highlight frontend SDKs to be installed, so please make sure you've followed the fullstack mapping guide first.
H.init("<YOUR_PROJECT_ID>", {
tracingOrigins: ['localhost', 'example.myapp.com/backend'],
networkRecording: {
enabled: true,
recordHeadersAndBody: true,
},
});
2
Install the Highlight Go SDK.
Install the highlight-go
package with go get
.
go get -u github.com/highlight/highlight/sdk/highlight-go
3
Initialize the Highlight Go SDK.
highlight.Start
starts a goroutine for recording and sending backend traces and errors. Setting your project id lets Highlight record errors for background tasks and processes that aren't associated with a frontend session.
import (
"github.com/highlight/highlight/sdk/highlight-go"
)
func main() {
// ...
highlight.SetProjectID("<YOUR_PROJECT_ID>")
highlight.Start(
highlight.WithServiceName("my-app"),
highlight.WithServiceVersion("git-sha"),
)
defer highlight.Stop()
// ...
}
4
Add the Highlight middleware.
highlightGin.Middleware()
provides is a Go Gin compatible middleware.
import (
highlightGin "github.com/highlight/highlight/sdk/highlight-go/middleware/gin"
)
func main() {
// ...
r := gin.Default()
r.Use(highlightGin.Middleware())
// ...
}
5
Record custom errors. (optional)
If you want to explicitly send an error to Highlight, you can use the highlight.RecordError
method.
highlight.RecordError(ctx, err, attribute.String("key", "value"))
6
Verify your errors are being recorded.
Make a call to highlight.RecordError
to see the resulting error in Highlight.
func TestErrorHandler(w http.ResponseWriter, r *http.Request) {
highlight.RecordError(r.Context(), errors.New("a test error is being thrown!"))
}
7
Set up logging.
Start sending logs to Highlight! Follow the logging setup guide to get started.