Monitoring
Dependencies
@blipit/node 0.2 and later, and @blipit/nextjs 0.3, record each call your server makes to a database, a cache or an outside service such as an SMS, payment or email provider. The Dependencies page shows one card per service, so you see at once when Twilio starts failing or the database slows down. fetch, http, pg, mysql2 and ioredis need no setup.
1Install or update the SDK
Update to @blipit/node 0.2 or @blipit/nextjs 0.3 and initialise it before your app starts, with the secret key. In Next.js, also export register from instrumentation.ts so Blipit starts when the server boots.
npm install @blipit/node@latestexport { captureRequestError as onRequestError, register } from "@blipit/nextjs/server";2What is recorded on its own
- Outbound fetch and http or https calls. Known providers get their own name: Twilio, Vonage, MessageBird, Unifonic, Plivo, Sinch, Infobip, Stripe, PayPal, Checkout.com, Tap Payments, SendGrid, Mailgun, Postmark, Resend, Microsoft Graph, Google APIs, AWS, Supabase, Firebase, OpenAI, Anthropic, Slack, GitHub, Shopify and more. Any other host shows by its name.
- PostgreSQL through pg and its Pool, MySQL and MariaDB through mysql2, and Redis through ioredis.
- Incoming HTTP requests become transactions on the Pulse page, and every call made while handling one is linked to it in the trace.
3Other clients
postgres.js, node-redis and Prisma need one line each. trace() wraps anything else, such as an SMS SDK that does not use HTTP.
import postgres from "postgres";
import { createClient } from "redis";
import { PrismaClient } from "@prisma/client";
import * as Blipit from "@blipit/node";
const sql = Blipit.instrumentPostgres(postgres(process.env.DATABASE_URL));
const redis = Blipit.instrumentRedis(createClient());
const prisma = new PrismaClient().$extends(Blipit.prismaExtension("postgresql"));
await Blipit.trace("send OTP", () => sms.send(phone, code), { "server.address": "sms.example.ae" });4Read the page
Each card shows the calls, the median and 95th-percentile response time, the error rate and how available the service was today (UTC), with a sparkline where failed calls are red. Failing services come first. Open a card for charts of calls and response time, the latest failed calls and the slowest ones, each linked to its trace.
5Get alerted
Under Alerts, in Dependency and server alerts, pick a project and set your own limits for A dependency is failing and A dependency is slow, or switch either off. Alerts go to email, Slack, Microsoft Teams and webhooks, and a second message says when the service is back to normal.
6Other languages
Any OpenTelemetry SDK that sends spans as OTLP JSON to https://in.blipit.io/v1/traces with the X-Blipit-Key header shows up too: client spans with db.system become databases, and client spans with an HTTP URL become outside services.
Good to know
- Never sent: values in SQL (literals become ?), URL query strings and credentials, and request or response bodies. Calls to Blipit itself are skipped.
- tracesSampleRate (0.2 by default) sets the share of requests recorded; the counts on the page are scaled back up. tracing: false turns it off.
- Spans count toward the plan's monthly span allowance. Dependency data is kept as long as spans: 7 days on Free and Solo, 14 days on Team and Scale.
- Automatic recording needs Node.js 20.16 or 22.3 and later. On serverless hosts, wrap the handler so the incoming request is recorded and sent before the function pauses: wrapHandler for AWS Lambda, withBlipit for Next.js route handlers and server actions, traceRequest for other handlers that take a Request.
Stuck? Email support@blipit.io. Keys and the project id for each project are under API keys in app.blipit.io.