Backend: Error Monitoring
Go
JS
Python
Backend: Logging
Fullstack Frameworks
Next.JS
Self Host & Local Dev
Menu
Apollo Server
Learn how to set up highlight.io on your Apollo Server backend.
1
Set up your frontend 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 JS SDK.
Install the @highlight-run/node package with your package manager.
# with yarn
yarn add @highlight-run/node
# with pnpm
pnpm add @highlight-run/node
# with npm
npm install @highlight-run/node
3
Initialize the Highlight JS SDK.
Initialize the Highlight JS SDK with your project ID.
import { H } from '@highlight-run/node'
H.init({projectID: 'YOUR_PROJECT_ID'})
4
Add the Apollo Server integration.
ApolloServerHighlightPlugin
is an Apollo Server plugin to capture errors in your graphql handlers.
import { ApolloServer } from '@apollo/server'
import { ApolloServerHighlightPlugin } from '@highlight-run/node'
// ...
const server = new ApolloServer({
typeDefs,
resolvers,
plugins: [ApolloServerHighlightPlugin({ projectID: 'YOUR_PROJECT_ID' })],
})
5
Optionally, report manual errors in your app.
If you need to report exceptions outside of a handler, use the Highlight SDK.
const parsed = H.parseHeaders(request.headers)
H.consumeError(error, parsed?.secureSessionId, parsed?.requestId)
6
Verify that your SDK is reporting errors.
You'll want to throw an exception in one of your apollo handlers. Access the API handler and make sure the error shows up in Highlight.
const server = new ApolloServer({
typeDefs,
resolvers: {
Query: {
books: () => {
throw new Error('a sample error!');
},
},
},
});
7
Verify your backend logs are being recorded.
With the JS SDKs, your logs are reported automatically from console methods. Visit the highlight logs portal and check that backend logs are coming in.