tRPC
tRPC
is autoinstrumented when used with pino
.
Otherwise, all you need to do is add custom middleware to your procedure factory.
Install the IUDEX package
npm i iudex
Create a write-only API key 🔑
Click settings in the top left corner of the IUDEX dashboard and create a write-only API key.
Add IUDEX to your code 🚀
At the top of your app’s entry point file, add the following code snippet:
import { instrument } from 'iudex';
instrument({
serviceName: 'YOUR_SERVICE_NAME', // Highly encouraged
publicWriteOnlyIudexApiKey: 'YOUR_PUBLIC_WRITE_ONLY_KEY', // Only ever commit your WRITE ONLY key
githubUrl: 'GITHUB_URL_TO_YOUR_REPO', // Optional, this sets up code linking
env: 'production', // Optional, development, local, etc
});
// ^ place this as high as possible in your code
If you are not using pino
, add this custom middleware to your procedure factory.
const loggedProcedure = publicProcedure.use(withTracing((opts) => {
trackAttribute('path', opts.path);
trackAttribute('type', opts.type);
return opts.next();
}));
This will log the path and type of the procedure when called.
Set up Slack alerts 📣
Click the Slack logo in the top right of the dashboard and follow the prompts.
Note: you must have admin permissions to add apps to your workspace.
Create a log 🪵
Add code to emit a log like this example test
route.
import { publicProcedure, router } from './trpc';
const appRouter = router({
test: publicProcedure
.query(async () => {
// Add this
console.log('Hello IUDEX!', { ctx: { 'iudex.slack_channel_id': 'YOUR_SLACK_CHANNEL_ID' } });
return;
}),
});
Then run and hit your tRPC
endpoint to emit the log.
Verify 🧐
You should see the log in Slack and in your IUDEX dashboard log view.
Go in-depth 👉
Check out more in-depth guides on how to get the most out of IUDEX for your stack.