Star us on GitHub
Star
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, }, });
Copy
2
Install the Highlight Go SDK.

Install the highlight-go package with go get.

go get -u github.com/highlight/highlight/sdk/highlight-go
Copy
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() // ... }
Copy
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()) // ... }
Copy
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"))
Copy
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!")) }
Copy
7
Set up logging.

Start sending logs to Highlight! Follow the logging setup guide to get started.