import {
instrument,
uninstrument,
createConsoleEmitter,
createBatchEmitter,
createHttpTransport,
createMultiEmitter,
} from "aden";
import OpenAI from "openai";
async function main() {
// Set up multiple emitters
const emitter = createMultiEmitter([
// Log to console in development
createConsoleEmitter({ pretty: true }),
// Batch and send to backend
createBatchEmitter({
handler: createHttpTransport({
url: "https://your-backend.com/metrics",
headers: { "X-API-Key": process.env.METRICS_API_KEY! },
}),
batchSize: 50,
flushIntervalMs: 5000,
}),
]);
await instrument({
emitMetric: emitter,
sdks: { OpenAI },
trackCallRelationships: true,
trackToolCalls: true,
});
const openai = new OpenAI();
// Make API calls...
const response = await openai.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "Hello, world!" }],
});
console.log(response.choices[0].message.content);
// Clean up
await uninstrument();
}
main().catch(console.error);