# LangSmithExporter Sends Tracing data to LangSmith for observability. ## Constructor ```typescript new LangSmithExporter(config: LangSmithExporterConfig) ``` ## LangSmithExporterConfig ```typescript interface LangSmithExporterConfig extends ClientConfig, BaseExporterConfig { client?: Client; projectName?: string; } ``` Extends both `ClientConfig` (from LangSmith SDK) and `BaseExporterConfig`: - From `BaseExporterConfig`: `logger?: IMastraLogger`, `logLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error'` - From `ClientConfig`: `apiKey`, `apiUrl`, `callerOptions`, `hideInputs`, `hideOutputs`, etc. ## Methods ### exportTracingEvent ```typescript async exportTracingEvent(event: TracingEvent): Promise ``` Exports a tracing event to LangSmith. ### flush ```typescript async flush(): Promise ``` Force flushes any pending spans to LangSmith without shutting down the exporter. Useful in serverless environments where you need to ensure spans are exported before the runtime terminates. ### shutdown ```typescript async shutdown(): Promise ``` Ends all active spans and clears the trace map. ## Usage ```typescript import { LangSmithExporter } from "@mastra/langsmith"; const exporter = new LangSmithExporter({ apiKey: process.env.LANGSMITH_API_KEY, projectName: "my-project", // Optional: specify which project to send traces to apiUrl: "https://api.smith.langchain.com", logLevel: "info", }); ``` ## Environment Variables | Variable | Description | | -------------------- | --------------------------------------------------------------------- | | `LANGSMITH_API_KEY` | Your LangSmith API key | | `LANGCHAIN_PROJECT` | Default project name for traces (used if `projectName` not specified) | | `LANGSMITH_BASE_URL` | API URL for self-hosted instances | ## Span Type Mapping | Span Type | LangSmith Type | | ------------------ | -------------- | | `MODEL_GENERATION` | `llm` | | `MODEL_CHUNK` | `llm` | | `TOOL_CALL` | `tool` | | `MCP_TOOL_CALL` | `tool` | | All others | `chain` |