What You’ll Learn
By completing this quick start, you’ll:- Set up monitoring for a LangChain V1 (
langchain.agents.create_agent) application - Send your first traces to Fiddler
- Verify data collection in the Fiddler dashboard
- Understand basic conversation tracking
Prerequisites
Prerequisites
Before you begin, ensure you have:
- Python 3.10 or higher (up to Python 3.14)
- Valid Fiddler account with access to your instance
- A LangChain V1 application built with
langchain.agents.create_agent - Network connectivity to your Fiddler instance
Version Compatibility
Version Compatibility
Supported Python Versions:
- Python 3.10-3.14
- LangChain V1:
langchain >= 1.0(thecreate_agent/ middleware API)
opentelemetry-apiopentelemetry-sdkopentelemetry-instrumentationopentelemetry-exporter-otlp-proto-httpfiddler-otel(transitive — providesFiddlerClient)
Set Up Your Fiddler Application
-
Create your application in Fiddler
Log in to your Fiddler instance and navigate to GenAI Applications, then click Add Application and follow the onboarding wizard to create your application.

-
Copy your Application ID
After creating your application, copy the Application ID from the GenAI Applications page using the copy icon next to the ID. This must be a valid UUID4 format (for example,
550e8400-e29b-41d4-a716-446655440000). You’ll need this for Step 3.
-
Get Your Access Token
Go to Settings > Credentials and copy your access token. You’ll need this for Step 3. Refer to the documentation for more details.

Install the Fiddler LangChain SDKFor the stable release, install the Fiddler LangChain SDK using pip:
Instrument Your ApplicationAdd the Fiddler LangChain SDK to your application with just a few lines of code. The instrumentor patches Add Context and Conversation TrackingThe main goal of context setting is to enrich the telemetry data sent to Fiddler:
langchain.agents.create_agent so every agent created afterwards is traced automatically — no per-agent middleware configuration is required.Manual middleware alternative. If you prefer not to use the auto-instrumentor, pass
middleware=[FiddlerAgentMiddleware(client=client, agent_name="my_agent")] directly to each create_agent() call. See the FiddlerAgentMiddleware reference for details.Run a Complete ExampleHere’s a complete working example to verify your setup:
This example requires an OpenAI API key. You can create or find your key on the API keys page of your OpenAI account.
Short-lived scripts: The SDK batches spans in memory and exports them on a schedule. If your script exits before the batch is sent, call
fdl_client.shutdown() (or use with FiddlerClient(...) as client:) to flush pending spans. Long-running servers handle this automatically via atexit.Verify Monitoring is Working

- Run your application using the example above or your own instrumented code
- Check the Fiddler dashboard: Navigate to GenAI Applications in your Fiddler instance
-
Confirm active status: If Fiddler successfully receives telemetry, your application will show as Active

- Application status changed to Active in the Fiddler dashboard
- Trace data appearing within 1-2 minutes of running your example
- Context labels match what you set in your code
- Conversation ID visible in the trace details
create_agent:

Grant Team Access (optional)
Provide access to other users by assigning teams and users to the project that contains your applications. Managing permissions through Teams is recommended as a best practice. For more access control details, refer to the Teams and Users Guide and the Role-based Access Guide.- Open the Settings page and select the Access tab
- For both Users and Teams, select the “Edit” option to the right of the name
- Add appropriate team members with the required permission levels
Configuration Options
Basic Configuration
Advanced Configuration
Customize Limits for High-Volume Applications
Set limits for your events, spans, and associated attributes. This is helpful for tuning reporting data to manageable numbers for highly attributed and/or high-volume applications.Sampling Traffic
Set a specific sampling percentage for incoming data.Environment Variables for Batch Processing
Adjust the following environment variables that the FiddlerClient will use when processing the OpenTelemetry traffic.Compression Options
The SDK supports data compression to help reduce the overall data volume transmitted over the network. This can help improve network latency.Environment Variables Reference
Configure OpenTelemetry batch processor behavior through environment variables:| Variable | Default | Description |
|---|---|---|
OTEL_BSP_MAX_QUEUE_SIZE | 100 | Maximum spans in queue before export |
OTEL_BSP_SCHEDULE_DELAY_MILLIS | 1000 | Delay between batch exports (milliseconds) |
OTEL_BSP_MAX_EXPORT_BATCH_SIZE | 10 | Maximum spans exported per batch |
OTEL_BSP_EXPORT_TIMEOUT | 5000 | Export timeout (milliseconds) |
FIDDLER_API_KEY | - | Your Fiddler API key (recommended for production) |
FIDDLER_APPLICATION_ID | - | Your application UUID4 (recommended for production) |
FIDDLER_URL | - | Your Fiddler instance URL (recommended for production) |
Adding Custom Attributes
fiddler-langchain exposes two helpers for tagging traces with business metadata:
| Helper | Scope | Span attribute format |
|---|---|---|
add_session_attributes(key, value) | All spans in the invocation | fiddler.session.user.{key} |
add_span_attributes(node, **kwargs) | Spans for that model / tool / retriever | fiddler.span.user.{key} |
Async Agents
The instrumentation fully supports async agents. Useagent.ainvoke() instead of agent.invoke() — no additional configuration is needed:
Troubleshooting
Common Installation Issues
Problem:ModuleNotFoundError: No module named 'fiddler_langchain'
- Solution: Install the package:
pip install fiddler-langchain
- Solution: Use a virtual environment or update conflicting packages
Common Configuration Issues
Problem:ValueError: application_id must be a valid UUID4
- Solution: Ensure your Application ID is a valid UUID4 format (e.g.,
550e8400-e29b-41d4-a716-446655440000)
ValueError: URL must have a valid scheme and netloc
- Solution: Ensure your URL includes the protocol (e.g.,
https://your-instance.fiddler.ai)
- Solution: Confirm
instrumentor.instrument()is called beforelangchain.agents.create_agent(). The instrumentor patches the module attribute, so agents created prior to instrumentation are not traced. If you usefrom langchain.agents import create_agent, the local name binds to the unpatched function — either callinstrument()before that import, or invoke the function aslangchain.agents.create_agent(...).
-
Solution: Enable console tracer for local debugging:
console_tracer=True is additive — span data is printed to stdout and continues to be exported to Fiddler via OTLP. Setting this to True does not disable or suppress the OTLP export to Fiddler.Verification Issues
Problem: Application not showing as “Active” in Fiddler- Solution: Check the following:
- Ensure your application executes instrumented code (the agent must be invoked)
- Verify that your Fiddler access token and application ID are correct
- Check network connectivity to your Fiddler instance
- Enable
console_tracer=Trueto see if spans are being generated locally
Next Steps
Now that your application is instrumented:- Explore the data: Check your Fiddler dashboard for traces, metrics, and performance insights
- Review the SDK reference: Check the Fiddler LangChain SDK Reference for complete documentation
- Optimize for production: Review configuration options for high-volume applications