KLA Digital Logo
KLA Digital
SDK e API

Guida all'SDK Node.js

Configura l'auto-strumentazione e i controlli di runtime per le tue applicazioni di agent Node.js.

1 min di lettura266 parole

Il KLA Node.js Telemetry SDK (@kla-digital/otel-node) offre un'auto-strumentazione OpenTelemetry pronta all'uso per i workflow Node.js. Si aggancia direttamente ai più diffusi strumenti di esecuzione, maschera le chiavi sensibili e comunica i metadati al KLA Control Plane.


Installazione

Installa il pacchetto di telemetria con il package manager del tuo workspace:

pnpm add @kla-digital/otel-node

Inizializzazione di base

Per abilitare l'auto-strumentazione, devi caricare il modulo dell'SDK all'inizio assoluto del ciclo di vita dell'applicazione, prima di importare qualsiasi client del modello (come OpenAI o LangChain).

Crea un file chiamato instrumentation.ts:

// instrumentation.ts
import { KLAInstrumentation } from '@kla-digital/otel-node';

const kla = new KLAInstrumentation({
  tenantId: process.env.KLA_TENANT_ID || 'default-tenant',
  apiKey: process.env.KLA_API_KEY,
  collectorUrl: process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'https://api.kla.digital/collector',
  maskPii: true,
});

kla.start();
console.log('KLA Telemetry initialized.');

Carica questo modulo di strumentazione all'avvio del server:

node -r ts-node/register --import ./instrumentation.ts src/index.ts

Span manuali e checkpoint delle azioni

Mentre l'auto-strumentazione cattura le richieste API standard, puoi definire gate espliciti sulle funzioni ad alto rischio utilizzando span di transazione personalizzati:

import { KLAClient } from '@kla-digital/otel-node';

const client = new KLAClient({ agentId: 'agt_9f81a7' });

async function processPayment(userId: string, amount: number) {
  // Crea un checkpoint di audit per l'azione di pagamento
  const checkpoint = await client.checkpoint('process_payment', {
    userId,
    amount,
  });

  if (checkpoint.approved) {
    try {
      const receipt = await gateway.charge(userId, amount);
      // Ancora la telemetria di successo
      await checkpoint.success({ receiptId: receipt.id });
      return receipt;
    } catch (error) {
      await checkpoint.fail(error as Error);
      throw error;
    }
  } else {
    // Escalation per la revisione
    throw new Error(`Transaction rejected by KLA policy: ${checkpoint.rejectionReason}`);
  }
}
Guida all'SDK Node.js | Developer Docs | KLA Control Plane