Frameworks
JavaScript
tRPC

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.

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.

Slack integration button

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.

Slack message

Log in IUDEX

Go in-depth 👉

Check out more in-depth guides on how to get the most out of IUDEX for your stack.