Dipendenze

@blipit/node 0.2 e successivi, e @blipit/nextjs 0.3, registrano ogni chiamata del tuo server a un database, una cache o un servizio esterno come un fornitore di SMS, pagamenti o email. La pagina Dipendenze mostra una scheda per servizio, così vedi subito quando Twilio inizia a fallire o il database rallenta. fetch, http, pg, mysql2 e ioredis non richiedono configurazione.

1Installa o aggiorna l'SDK

Aggiorna a @blipit/node 0.2 o @blipit/nextjs 0.3 e inizializzalo prima dell'avvio dell'app, con la chiave segreta. In Next.js esporta anche register da instrumentation.ts, così Blipit parte all'avvio del server.

sh
npm install @blipit/node@latest
instrumentation.ts
export { captureRequestError as onRequestError, register } from "@blipit/nextjs/server";

2Cosa viene registrato da solo

  • Chiamate fetch e http o https in uscita. I fornitori noti hanno il loro nome: 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 e altri. Ogni altro host appare con il suo nome.
  • PostgreSQL tramite pg e il suo Pool, MySQL e MariaDB tramite mysql2, e Redis tramite ioredis.
  • Le richieste HTTP in entrata diventano transazioni nella pagina Pulse, e ogni chiamata fatta mentre le gestisce è collegata nella traccia.

3Altri client

postgres.js, node-redis e Prisma richiedono una riga ciascuno. trace() avvolge tutto il resto, come un SDK per SMS che non usa HTTP.

js
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" });

4Leggi la pagina

Ogni scheda mostra le chiamate, il tempo di risposta mediano e al 95° percentile, il tasso di errore e la disponibilità del servizio oggi (UTC), con un mini grafico in cui le chiamate fallite sono in rosso. I servizi in errore vengono prima. Apri una scheda per i grafici di chiamate e tempi di risposta, le ultime chiamate fallite e le più lente, ognuna collegata alla sua traccia.

5Ricevi avvisi

In Avvisi, nella sezione Avvisi per dipendenze e server, scegli un progetto e imposta i tuoi limiti per Una dipendenza non risponde e Una dipendenza è lenta, oppure disattivali. Gli avvisi arrivano via email, Slack, Microsoft Teams e webhook, e un secondo messaggio ti dice quando il servizio è tornato normale.

6Altri linguaggi

Anche qualsiasi SDK OpenTelemetry che invia span come OTLP JSON a https://in.blipit.io/v1/traces con l'header X-Blipit-Key appare: gli span client con db.system diventano database, e gli span client con un URL HTTP diventano servizi esterni.

Buono a sapersi

  • Mai inviati: i valori nell'SQL (i letterali diventano ?), le query string e le credenziali negli URL, e il corpo di richieste o risposte. Le chiamate a Blipit stesso vengono saltate.
  • tracesSampleRate (0.2 di default) imposta la quota di richieste registrate; i conteggi nella pagina vengono riportati in scala. tracing: false lo disattiva.
  • Gli span contano nella quota mensile di span del piano. I dati delle dipendenze sono conservati quanto gli span: 7 giorni su Free e Solo, 14 giorni su Team e Scale.
  • La registrazione automatica richiede Node.js 20.16 o 22.3 e successivi. Sugli host serverless, avvolgi l'handler perché la richiesta in arrivo sia registrata e inviata prima che la funzione si sospenda: wrapHandler per AWS Lambda, withBlipit per route handler e server action di Next.js, traceRequest per gli altri handler che ricevono una Request.

Bloccato? Scrivi a support@blipit.io. Le chiavi e l'id di ogni progetto sono sotto Chiavi API in app.blipit.io.