Intégration du transport Pino
Envoyez des logs structurés depuis vos applications Node.js directement vers Radianz
Aperçu
Qu'est-ce que le transport Pino ?
Le package @pgms/radianz-pino-transport est un transport Pino qui envoie les logs structurés directement vers la plateforme Radianz par HTTP. Il utilise le même endpoint d'ingestion que le sink Serilog, donc vos logs Node.js apparaissent aux côtés de vos logs .NET dans le même tableau de bord — aucun collecteur intermédiaire requis.
Comment ça fonctionne
Installation
Installez le package npm depuis npmjs.com
Étape 1 — Installer le package
Installez le transport et Pino depuis npm. Node.js 18 ou plus récent est requis :
npm install @pgms/radianz-pino-transport pinoConfiguration
Configurez le transport avec vos identifiants Radianz
Utilisation de base
Créez un logger Pino avec le transport Radianz. Remplacez l'endpoint, clientId et apiKey par vos identifiants réels :
import pino from "pino";
import { radianzTransport } from "@pgms/radianz-pino-transport";
const logger = pino(
{ level: "info" },
radianzTransport({
endpoint: "https://your-radianz-instance/api/v1/logs/batch",
clientId: "YOUR_CLIENT_ID",
apiKey: "YOUR_API_KEY",
serviceName: "my-node-service",
})
);
logger.info({ userId: "user-42" }, "User signed in");
logger.error(new Error("Something broke"), "Unhandled error");clientId est le Client ID de l'application et votre apiKey est le jeton API.Console + Radianz (multistream)
Pour envoyer les logs à la fois vers la console et vers Radianz simultanément, utilisez le multistream intégré de Pino :
import pino from "pino";
import { multistream } from "pino";
import { radianzTransport } from "@pgms/radianz-pino-transport";
const radianz = radianzTransport({
endpoint: process.env.RADIANZ_ENDPOINT,
clientId: process.env.RADIANZ_CLIENT_ID,
apiKey: process.env.RADIANZ_API_KEY,
serviceName: "my-service",
});
const logger = pino(
{ level: "trace" },
multistream([
{ stream: process.stdout, level: "trace" },
{ stream: radianz, level: "trace" },
])
);Options de configuration
| Option | Type | Par défaut | Description |
|---|---|---|---|
endpoint | string | — | URL du endpoint batch Radianz (requis) |
clientId | string | — | Client ID pour l'authentification (requis) |
apiKey | string | — | Clé API pour l'authentification (requis) |
serviceName | string | "" | Nom du service ajouté à chaque entrée de log |
batchSize | number | 50 | Nombre de logs par lot avant l'envoi |
flushIntervalMs | number | 5000 | Temps maximum (ms) avant de vider le lot |
maxRetries | number | 3 | Nombre maximum de tentatives en cas d'échec |
maxQueueSize | number | 10000 | Taille maximale de la file — les logs les plus anciens sont supprimés quand elle est pleine |
Projet d'exemple
Essayez-le localement avec la démo incluse
Un projet d'exemple exécutable est inclus dans le dépôt. Il envoie des logs de test à tous les niveaux (trace à fatal) avec des données structurées, des erreurs et des chaînes de causes :
cd sdk/js/radianz-pino-transport
# 1. Copy and fill in your credentials
cp sample/.env.example sample/.env
# Edit sample/.env with your endpoint, clientId, apiKey
# 2. Run the demo
npm run sample