import {
createMultiEmitter,
createFilteredEmitter,
createBatchEmitter,
createTransformEmitter,
createConsoleEmitter,
createHttpTransport,
} from "aden";
const emitter = createMultiEmitter([
// Always log to console in development
process.env.NODE_ENV === "development" && createConsoleEmitter({ pretty: true }),
// Send all events to primary backend
createBatchEmitter({
handler: createHttpTransport({ url: "https://primary.com/metrics" }),
batchSize: 100,
}),
// Send only errors to monitoring
createFilteredEmitter({
emitter: createHttpTransport({ url: "https://monitoring.com/errors" }),
filter: (event) => !!event.error,
}),
// Send anonymized data to analytics
createTransformEmitter({
emitter: createHttpTransport({ url: "https://analytics.com/events" }),
transform: (event) => ({
model: event.model,
provider: event.provider,
tokens: event.total_tokens,
// Remove identifiable information
trace_id: undefined,
metadata: undefined,
}),
}),
].filter(Boolean));