Dependências

O @blipit/node 0.2 e posteriores, e o @blipit/nextjs 0.3, registam cada chamada do seu servidor a uma base de dados, uma cache ou um serviço externo, como um fornecedor de SMS, pagamentos ou email. A página Dependências mostra um cartão por serviço, para ver logo quando o Twilio começa a falhar ou a base de dados fica lenta. fetch, http, pg, mysql2 e ioredis não precisam de configuração.

1Instale ou atualize o SDK

Atualize para o @blipit/node 0.2 ou @blipit/nextjs 0.3 e inicialize-o antes de a app arrancar, com a chave secreta. No Next.js, exporte também register a partir de instrumentation.ts para o Blipit arrancar com o servidor.

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

2O que é registado sozinho

  • Chamadas de saída com fetch e http ou https. Os fornecedores conhecidos aparecem pelo 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 mais. Qualquer outro host aparece pelo seu nome.
  • PostgreSQL através do pg e do seu Pool, MySQL e MariaDB através do mysql2, e Redis através do ioredis.
  • Os pedidos HTTP recebidos tornam-se transações na página Pulse, e cada chamada feita ao tratá-los fica ligada na trace.

3Outros clientes

postgres.js, node-redis e Prisma precisam de uma linha cada. trace() envolve tudo o resto, como um SDK de SMS que não 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" });

4Ler a página

Cada cartão mostra as chamadas, o tempo de resposta mediano e no percentil 95, a taxa de erros e a disponibilidade do serviço hoje (UTC), com um mini gráfico onde as chamadas falhadas aparecem a vermelho. Os serviços a falhar aparecem primeiro. Abra um cartão para ver gráficos de chamadas e tempo de resposta, as últimas chamadas falhadas e as mais lentas, cada uma ligada à sua trace.

5Receber alertas

Em Alertas, na secção Alertas de dependências e servidores, escolha um projeto e defina os seus próprios limites para Uma dependência está a falhar e Uma dependência está lenta, ou desligue qualquer um deles. Os alertas vão para email, Slack, Microsoft Teams e webhooks, e uma segunda mensagem avisa quando o serviço volta ao normal.

6Outras linguagens

Qualquer SDK do OpenTelemetry que envie spans como OTLP JSON para https://in.blipit.io/v1/traces com o cabeçalho X-Blipit-Key também aparece: spans de cliente com db.system tornam-se bases de dados, e spans de cliente com um URL HTTP tornam-se serviços externos.

Bom saber

  • Nunca enviado: os valores no SQL (os literais passam a ?), as query strings e credenciais nos URLs, e o corpo de pedidos ou respostas. As chamadas ao próprio Blipit são ignoradas.
  • tracesSampleRate (0.2 por omissão) define a proporção de pedidos registados; as contagens na página são reescaladas. tracing: false desliga.
  • Os spans contam para a quota mensal de spans do plano. Os dados de dependências são guardados tanto tempo como os spans: 7 dias no Free e Solo, 14 dias no Team e Scale.
  • O registo automático precisa do Node.js 20.16 ou 22.3 e posteriores. Em hosts serverless, envolva o handler para que o pedido recebido seja registado e enviado antes de a função pausar: wrapHandler para AWS Lambda, withBlipit para route handlers e server actions do Next.js, traceRequest para outros handlers que recebam um Request.

Travou? Envie um e-mail para support@blipit.io. As chaves e o id de cada projeto ficam em Chaves de API no app.blipit.io.