Guides
Learn how to use Autoblocks tracing in JavaScript/TypeScript applications
npm install @autoblocks/client
// instrumentation.ts import { initAutoTracer } from '@autoblocks/client'; import { OpenAIInstrumentation } from '@traceloop/instrumentation-openai'; initAutoTracer({ apiKey: process.env.AUTOBLOCKS_V2_API_KEY, instrumentations: [new OpenAIInstrumentation()], isBatchDisabled: true, }); // app.ts import './instrumentation'; import { traceApp } from '@autoblocks/client'; const app = async () => { // Your application code here } const main = async () => { await traceApp('doctor-gpt', 'test', app); }; main();
import { trace } from '@opentelemetry/api'; import { SpanKind } from '@opentelemetry/api'; const tracer = trace.getTracer('my-tracer'); async function myFunction() { const span = tracer.startSpan('my_operation', { kind: SpanKind.INTERNAL, attributes: { custom_attribute: 'value' } }); try { // Your code here span.setAttribute('result', 'success'); } catch (error) { span.recordException(error); span.setStatus({ code: SpanStatusCode.ERROR }); throw error; } finally { span.end(); } }
try { // Your code here } catch (error) { span.recordException(error); span.setStatus({ code: SpanStatusCode.ERROR }); throw error; }
span.setAttribute('model', 'gpt-4'); span.setAttribute('temperature', 0.7); span.setAttribute('max_tokens', 100);
async function complexOperation() { const parentSpan = tracer.startSpan('parent_operation'); parentSpan.setAttribute('parent_data', 'value'); try { const childSpan = tracer.startSpan('child_operation', { parent: parentSpan }); childSpan.setAttribute('child_data', 'value'); try { // Child operation code } finally { childSpan.end(); } } finally { parentSpan.end(); } }