Documentation Index
Fetch the complete documentation index at: https://docs.keywordsai.co/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The initialize() method sets up the tracing client and establishes connection to Keywords AI. This must be called before using any tracing methods.
Signature
async initialize(): Promise<void>
Basic Usage
import { KeywordsAITelemetry } from '@keywordsai/tracing';
const keywordsAi = new KeywordsAITelemetry({
apiKey: process.env.KEYWORDSAI_API_KEY,
appName: 'my-app'
});
// Initialize before using any tracing methods
await keywordsAi.initialize();
// Now ready to use
await keywordsAi.withWorkflow(
{ name: 'my_workflow' },
async () => {
return 'ready';
}
);
Constructor Options
const keywordsAi = new KeywordsAITelemetry({
apiKey: string; // Required: Your Keywords AI API key
baseURL?: string; // Optional: API base URL (default: https://api.keywordsai.co)
appName?: string; // Optional: Application name for identification
instrumentModules?: { // Optional: Modules to auto-instrument
openAI?: typeof OpenAI;
anthropic?: typeof Anthropic;
};
disableBatch?: boolean; // Optional: Send spans immediately (default: false)
logLevel?: string; // Optional: 'debug' | 'info' | 'warn' | 'error' (default: 'warn')
});
Complete Example
import { KeywordsAITelemetry } from '@keywordsai/tracing';
import OpenAI from 'openai';
const keywordsAi = new KeywordsAITelemetry({
apiKey: process.env.KEYWORDSAI_API_KEY,
baseURL: 'https://api.keywordsai.co',
appName: 'production-app',
instrumentModules: {
openAI: OpenAI, // Auto-instrument OpenAI
},
disableBatch: false,
logLevel: 'info'
});
// Initialize the client
await keywordsAi.initialize();
console.log('Keywords AI Tracing initialized successfully');
// Use tracing
await keywordsAi.withWorkflow(
{ name: 'user_request' },
async () => {
// Your code here
}
);
// Shutdown gracefully when done
await keywordsAi.shutdown();
Environment Variables
You can also configure using environment variables:
KEYWORDSAI_API_KEY=your-api-key
KEYWORDSAI_BASE_URL=https://api.keywordsai.co
const keywordsAi = new KeywordsAITelemetry({
apiKey: process.env.KEYWORDSAI_API_KEY,
baseURL: process.env.KEYWORDSAI_BASE_URL,
appName: 'my-app'
});
await keywordsAi.initialize();
Configuration Options
Your Keywords AI API key from the dashboard
baseURL
string
default:"https://api.keywordsai.co"
Keywords AI API base URL
Application name for identifying traces in the dashboard
Modules to automatically instrument:
openAI: OpenAI SDK class
anthropic: Anthropic SDK class
If true, sends spans immediately instead of batching them
Logging verbosity: "debug", "info", "warn", "error"
Best Practices
- Always call
initialize() before using any tracing methods
- Initialize once at application startup
- Use environment variables for sensitive configuration
- Call
shutdown() before application exit to flush pending spans
- Enable auto-instrumentation for supported SDKs