Communitygithub.com

YepAPI/compétences

Journalisation structurée, suivi des erreurs Sentry, intégration Axiom/Datadog, niveaux de logs, alertes.

Qu'est-ce que compétences ?

Cette compétence fournit des règles et des modèles pour une journalisation et une surveillance robustes dans les applications Node.js. Elle exige une journalisation structurée au format JSON avec des champs obligatoires comme `timestamp`, `level`, `message`, `requestId` et `userId`, et définit des niveaux de logs clairs : `error` (panne), `warn` (dégradé), `info` (événements métier) et `debug` (développement uniquement). La compétence spécifie l'utilisation de Pino pour la journalisation (rapide, structuré, JSON par défaut) et de Sentry pour le suivi des erreurs, avec une initialisation précoce, la capture des exceptions non gérées et l'ajout de contexte utilisateur et de breadcrumbs. Elle insiste sur la corrélation des logs via des identifiants de requête (UUID par requête), l'interdiction formelle de journaliser des secrets ou données sensibles, et la mise en place d'alertes basées sur des seuils de taux d'erreur (ex. >5 % en 5 min) plutôt que sur des erreurs individuelles. De plus, elle couvre l'envoi des logs vers Axiom/Datadog via OTLP ou SDK natif, la mise en place d'un endpoint de santé `GET /health`, et la surveillance des temps de réponse aux percentiles p50, p95 et p99 avec alerte en cas de dégradation du p95.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/YepAPI/skills/tree/HEAD/skills/logging-monitoring

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Journalisation et Surveillance

Règles

  • Journalisation structurée : format JSON avec les champs timestamp, level, message, requestId, userId
  • Niveaux de logs : error (panne), warn (dégradé), info (événements métier), debug (développement uniquement)
  • Utiliser Pino pour la journalisation Node.js — rapide, structuré, JSON par défaut
  • Sentry pour le suivi des erreurs : initialiser tôt, capturer les exceptions non gérées, ajouter le contexte utilisateur et des breadcrumbs
  • Corréler les logs avec les identifiants de requête — générer un UUID par requête, le transmettre à travers tous les appels de service
  • Ne jamais journaliser de secrets, mots de passe, jetons ou numéros de carte de crédit complets — masquer les champs sensibles
  • Alerter sur les pics de taux d'erreur, pas sur les erreurs individuelles — utiliser des seuils (ex. >5% de taux d'erreur en 5 min)
  • Axiom/Datadog : envoyer les logs via OTLP ou SDK natif, ajouter des métriques personnalisées pour les KPI métier
  • Endpoint de santé : GET /health retournant { status: "ok" } avec une vérification de connectivité à la base de données
  • Surveiller les temps de réponse aux percentiles p50, p95, p99 — alerter en cas de dégradation du p95

Modèles

// Journalisation structurée avec Pino
import pino from "pino";
const logger = pino({ level: process.env.LOG_LEVEL || "info" });

logger.info({ userId, action: "checkout", orderId }, "Commande passée");
logger.error({ err, requestId }, "Échec du traitement du paiement");
// Initialisation Sentry (Next.js)
import * as Sentry from "@sentry/nextjs";
Sentry.init({ dsn: process.env.SENTRY_DSN, tracesSampleRate: 0.1 });

Éviter

  • console.log en production — utiliser un journaliseur structuré
  • Journaliser chaque corps de requête — journaliser des résumés, pas les charges utiles
  • Ignorer les rejets de promesses non gérés — toujours les capturer
  • Fatigue des alertes due à des alertes trop nombreuses — ajuster les seuils, regrouper les erreurs similaires

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

YepAPI/skills

WCAG 2.1 AA — semantic HTML, keyboard navigation, screen readers.

YepAPI/skills

Experiment setup, variant splitting, statistical significance, and feature flag integration.

YepAPI/skills

CRUD generators, data tables, user management, role-based access, and bulk operations.

YepAPI/skills

Monitor what ChatGPT and Gemini say about your brand using YepAPI.

YepAPI/skills

Queue workers with BullMQ/Inngest/Trigger.dev, job retries, dead letter queues, concurrency.

YepAPI/skills

Commander.js, interactive prompts with Clack, spinners, colors, config files, exit codes, and npm publishing.

YepAPI/skills

cmdk integration, Cmd+K trigger, fuzzy search, grouped actions, keyboard navigation, and dynamic action registration.

YepAPI/skills

Content planning with trend and sentiment data from YepAPI.

YepAPI/skills

Content calendar, keyword-driven planning, and content briefs.

YepAPI/skills

Theme switching with CSS variables, system preference detection, next-themes, and persistence.

YepAPI/skills

Threaded comments, @mentions, reactions, moderation queue, optimistic UI, and cursor pagination.

YepAPI/skills

Competitive analysis between domains using YepAPI.

YepAPI/skills

Layout grids, KPI cards, data tables with sorting/filtering, sidebar navigation, and responsive breakpoints.

YepAPI/skills

Data encryption — TLS everywhere, AES-256-GCM for PII, bcrypt passwords, encrypted backups.

YepAPI/skills

Chart patterns with Recharts/Nivo/D3, responsive containers, color scales, and accessibility.

YepAPI/skills

Drizzle schema definition, push vs migrate, type-safe queries, relations, transactions, and prepared statements.

YepAPI/skills

Upload handling, resize/compress, CDN delivery, blur placeholders, and next/image patterns.

YepAPI/skills

Local business and Google Maps research using YepAPI.

YepAPI/skills

Cursor-based pagination, IntersectionObserver, virtualized lists with @tanstack/react-virtual, and scroll position restoration.

YepAPI/skills

Chat UI components, streaming responses with AI SDK, context window management, and RAG patterns.

Skills associés