Instrument an app with OpenTelemetry for full trace visibility and cost tracking in Orq.ai. Framework-specific guides are in the Integrations section.
Orq.ai observability captures every LLM call, agent step, and tool use as searchable traces with latency, token counts, and cost. OpenTelemetry is the standard, framework-agnostic way to instrument it.
Set the Orq.ai OTLP endpoint and authenticate with an API key
Configure the OpenTelemetry SDK in an existing application
See every LLM call, agent step, and tool use in Traces
Sign up for a free Orq.ai account and set up a workspace.
2
Set up Orq.ai
API key only
Coding agent
Open Settings > Organization > API Keys in the AI Studio. Click Create API Key, give it a name, and copy it.Then open a terminal and run the command below, replacing your-api-key-here with the copied key. The code samples in the next steps read it from this environment variable.
export ORQ_API_KEY="your-api-key-here"
$env:ORQ_API_KEY = "your-api-key-here"
Paste this prompt into the coding agent to add tracing to the app:
Install the Orq.ai CLI, run `orq setup`, and add Orq.ai tracing to my app.
Or install the CLI directly:
curl -fsSL https://cli.orq.ai/install.sh | sh
orq setup signs in, creates a project-scoped API key, and connects the coding agents already on the machine to Orq.ai, including the Orq MCP server and Orq Skills.
Initialize the tracer provider once at application startup. The exporter reads the endpoint, headers, and resource from the environment variables above:
import { NodeSDK } from '@opentelemetry/sdk-node';import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';const sdk = new NodeSDK({ traceExporter: new OTLPTraceExporter(),});sdk.start();
The exporter accepts both https://my.orq.ai/v2/otel and the full path https://my.orq.ai/v2/otel/v1/traces. Spans from any OpenTelemetry-instrumented code are exported automatically.OTLP is served over HTTP, with either http/protobuf or http/json. Traces are received at /v2/otel/v1/traces, logs at /v2/otel/v1/logs, and metrics at /v2/otel/v1/metrics.Self-hosted and on-premise deployments serve /v2/otel under their own hostname. See Base URLs.
4
Connect a framework
Using a framework? Instrument the framework with its own setup instead of manual span creation. Each page in Integrations shows the exact installation, environment variables, and instrumentation call:
LangGraph
One setup() call instruments the graph, tools, and every LLM step.
Vercel AI SDK
Python and TypeScript SDKs with experimental OpenTelemetry telemetry.
Pydantic AI
Logfire-based instrumentation for agents, tools, and streaming.
OpenAI Agents
Automatic tracing via OpenAIAgentsInstrumentor.
Agno
OpenInference instrumentation for agents and tools.
Google ADK
Trace agent workflows, tool calls, and Gemini model interactions.
Mastra
TypeScript agents and workflows with OpenTelemetry tracing.
Claude Agent SDK
Hooks-based instrumentation for agent turns and tool use.
See all frameworks
Full list of supported frameworks and setup guides.
5
View traces
Run the agent and open Traces in the AI Studio. Every request appears with model, latency, token counts, and cost. For agentic frameworks, individual tool calls and steps appear as child spans.
6
Analyze traces with MCP
If the Orq MCP server is not connected yet, install it in the editor or AI assistant, then ask the coding assistant:
Show me the 10 slowest traces from the last 24 hours and explain what might be causing the latency
The assistant queries the Orq MCP and returns an analysis like this:
Orq MCP trace analysis output
For structured failure analysis, the analyze-traces Orq Skill reads production traces, builds a failure taxonomy, and categorizes issues.
Verify the key is active under Settings > Organization > API Keys
Confirm the key is passed in the Authorization: Bearer header on the OTLP exporter, not as a query parameter
Traces not appearing in the Studio
Confirm the OTLP endpoint is set to https://my.orq.ai/v2/otel (or /v2/otel/v1/traces for exporters that require the full path)
Check that the workspace in the API key matches the AI Studio workspace being viewed
Traces can take a few seconds to appear, wait 10 seconds and refresh
Flush the tracer provider before a short script exits. The batch processor holds spans for up to 5 seconds, and a process that exits first loses them:
provider.shutdown() # flush and stop the batch processor before exit
await sdk.shutdown(); // flush and stop the batch processor before exit
Confirm the sampler is not discarding everything, for example OTEL_TRACES_SAMPLER=always_off or a ratio of 0
A 415 with unsupported content type: expected application/x-protobuf or application/json means the Content-Type header is neither application/x-protobuf nor application/json. Use an HTTP OTLP exporter, which sets the header to match the body encoding
Annotate traces
Label and review spans to build high-quality evaluation datasets from real production traffic.
Set up analytics
Track cost, latency, error rates, and token usage across models and deployments over time.
Run an experiment
Use traced data as a baseline to compare prompts, models, and configurations side by side.
Build an agent
Build and deploy a native Orq.ai agent with tools, memory, and full AI Studio management.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Orq.ai Documentation","colors":{"primary":"#027f6b","light":"#00d2b5","dark":"#027f6b"},"logo":{"light":"https://mintcdn.com/orqai/OG_14djpK9Yasgfk/images/Orq_ai_Symbol_Dark.svg?fit=max\u0026auto=format\u0026n=OG_14djpK9Yasgfk\u0026q=85\u0026s=d01651850182afdbc6309808b688d470","dark":"https://mintcdn.com/orqai/BYq_L5I_ZDBWL_Pf/images/Orq_ai_Symbol_Light.svg?fit=max\u0026auto=format\u0026n=BYq_L5I_ZDBWL_Pf\u0026q=85\u0026s=3e372f93174202f20c31d2c045af92b9","href":"/ai-gateway/get-started/introduction"},"favicon":"https://mintcdn.com/orqai/rmwcfFw4PPljHRCz/favicon.svg?fit=max\u0026auto=format\u0026n=rmwcfFw4PPljHRCz\u0026q=85\u0026s=1827beca4e1fb46e074d8bda067f3fb1","api":{"openapi":"openapi.json","examples":{"languages":["curl","typescript","python"]}},"background":{"color":{"light":"#f7f6f5","dark":"#171717"}},"navbar":{"links":[],"primary":{"type":"button","label":"Get Started","href":"https://my.orq.ai/auth/signup"}},"footer":{"socials":{"github":"https://github.com/orq-ai","x":"https://x.com/orq_ai","linkedin":"https://www.linkedin.com/company/orqai","website":"https://orq.ai"}},"seo":{"metatags":{"author":"Orq.ai","og:type":"website","og:site_name":"Orq.ai Documentation","og:locale":"en_US","twitter:card":"summary_large_image","twitter:site":"@orq_ai","twitter:creator":"@orq_ai","viewport":"width=device-width, initial-scale=1.0","robots":"index, follow","language":"English"},"organization":{"id":"https://docs.orq.ai/#organization","name":"Orq.ai","legalName":"Orq.AI Holding B.V.","url":"https://orq.ai","logo":"https://docs.orq.ai/images/Orq_ai_Symbol_Dark.svg","sameAs":["https://github.com/orq-ai","https://x.com/orq_ai","https://www.linkedin.com/company/orqai/"]},"indexing":"all"},"fonts":{"heading":{"family":"ES Klarheit Kurrent Semibold","weight":600,"source":"https://framerusercontent.com/assets/HiovZWjG27S5NQhE8dyeECDMc.woff2","format":"woff2"},"body":{"family":"Inter","source":"https://cdn.jsdelivr.net/npm/@fontsource/inter@5.0.8/files/inter-latin-400-normal.woff2","format":"woff2"}},"styling":{"codeblocks":{"theme":{"light":"github-light","dark":"github-dark"}},"latex":true},"integrations":{"posthog":{"apiKey":"phc_MKGkZTCrnrBUKVqT0XxWbfDqCwik8EF2GIob0NhCU3C","apiHost":"https://eu.i.posthog.com"}},"contextual":{"options":["copy","download-spec","chatgpt","claude","view"],"display":"header"},"interaction":{"drilldown":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"orqai","hasAudioNarration":false,"actualSubdomain":"orqai","customDomains":["docs.orq.ai"],"gitSource":{"type":"github","owner":"orq-ai","repo":"orquesta-web","deployBranch":"main","contentDirectory":"documentation/mintlify","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adfba949be6b0e9bcd593a3","collectionId":"031753a3-f345-4ab2-939e-88e0aa4709da","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adfba949be6b0e9bcd593a3"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adfba949be6b0e9bcd593a3","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API Reference","count":410},{"language":"default","tag":"Platform APIs","count":263},{"language":"default","tag":"Integrations","count":93},{"language":"default","tag":"Orq SDK","count":71},{"language":"default","tag":"AI Gateway","count":69},{"language":"default","tag":"Management APIs","count":68},{"language":"default","tag":"SDK Reference","count":68},{"language":"default","tag":"Cookbooks","count":34},{"language":"default","tag":"Model Providers","count":31},{"language":"default","tag":"Frameworks \u0026 SDKs","count":30}],"searchSettings":{"maxResults":15}},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"deflection":{"enabled":true,"email":"support@orq.ai","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":".nav-anchor img{border-radius:50%}.ig-root{scroll-margin-top:6rem}.ig-search{width:100%;padding:10px 14px 10px 38px;border-radius:8px;border:1px solid rgba(0,0,0,.15);font-size:14px;outline:0;margin-bottom:20px;background:0 0;box-sizing:border-box;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%23999' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m21 21-4.35-4.35M17 11A6 6 0 1 1 5 11a6 6 0 0 1 12 0Z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:12px center}.dark .ig-search{border-color:rgba(255,255,255,.15)}.ig-search:focus{border-color:#027f6b}.ig-tabs{display:flex;border-bottom:1px solid rgba(0,0,0,.1);margin-bottom:20px;gap:0}.dark .ig-tabs{border-bottom-color:rgba(255,255,255,.1)}.ig-tab{padding:8px 16px;background:0 0;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;font-size:14px;font-weight:500;color:#888;white-space:nowrap}.ig-tab:hover{color:#027f6b}.dark .ig-tab:hover{color:#677f78}.ig-tab-active{border-bottom-color:#027f6b!important;color:#027f6b!important}.dark .ig-tab-active{border-bottom-color:#677f78!important;color:#677f78!important}.ig-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}@media (max-width:768px){.ig-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:480px){.ig-grid{grid-template-columns:repeat(2,1fr)}}.ig-card{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid rgba(0,0,0,.1);border-radius:6px;text-decoration:none!important;color:inherit!important;font-size:14px;font-weight:500;transition:background .12s,border-color .12s}.ig-card:hover{background:rgba(2,127,107,.05);border-color:rgba(2,127,107,.25)}.dark .ig-card{border-color:rgba(255,255,255,.1)}.dark .ig-card:hover{background:rgba(103,127,120,.1);border-color:rgba(103,127,120,.3)}.ig-card-icon{width:20px;height:20px;object-fit:contain;flex-shrink:0}.ig-tab-count{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:0 5px;min-width:18px;height:18px;border-radius:9px;font-size:11px;font-weight:600;background:rgba(0,0,0,.08);color:inherit}.dark .ig-tab-count{background:rgba(255,255,255,.12)}.ig-tab-active .ig-tab-count{background:rgba(2,127,107,.15)}.dark .ig-tab-active .ig-tab-count{background:rgba(103,127,120,.25)}.ig-empty{text-align:center;padding:48px 24px;color:#999;font-size:14px;grid-column:1/-1}kbd.key,kbd.key *{color:#fff!important}kbd.key{background:#242424;border-radius:5px;padding:2px 8px;font-size:.85em;display:inline-flex;align-items:center;gap:6px;border:1px solid #3a3a3a;font-family:inherit;white-space:nowrap}#sidebar-content .flex-1:has(>svg.flex-shrink-0){flex:none!important}#sidebar-content{width:16rem!important;min-width:16rem!important}@media (min-width:1024px){.lg\\:pl-56{padding-left:16rem!important}}.topbar-right-container nav[aria-label=Main] .navbar-link a,.topbar-right-container nav[aria-label=Main] .navbar-link a:hover{background-color:transparent!important}@media (min-width:1024px){.topbar-right-container nav[aria-label=Main] ul{gap:1rem!important}.topbar-right-container nav[aria-label=Main] .navbar-link a{padding-left:0!important;padding-right:0!important}#page-title{font-size:2rem!important;line-height:1.2!important}}.nav-tabs-item:has(a[href^='/reference']){display:none!important}#navbar .nav-tabs-item[href='/ai-studio/integrations/overview']{position:relative}#navbar .nav-tabs-item[href='/ai-studio/integrations/overview']::before{content:'';position:absolute;top:50%;left:-12px;transform:translateY(-50%);height:55%;width:1px;background:rgba(0,0,0,.15)}.dark #navbar .nav-tabs-item[href='/ai-studio/integrations/overview']::before{background:rgba(255,255,255,.15)}@media (min-width:1280px){#content-container{padding-left:3rem!important;padding-right:2rem!important}#content-side-layout{max-width:20rem!important}#content-area{width:calc(100% - 20rem)!important}}"}],"page":{"pagePath":"ai-studio/observability/quickstart","slug":"/ai-studio/observability/quickstart","pageMetadata":{"title":"Quick Start","sidebarTitle":"Quickstart","description":"Instrument an app with OpenTelemetry for full trace visibility and cost tracking in Orq.ai. Framework-specific guides are in the Integrations section.","href":"/ai-studio/observability/quickstart"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Instrument an app with OpenTelemetry for full trace visibility and cost tracking in Orq.ai. Framework-specific guides are in the Integrations section.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,CodeBlock,CodeGroup,Frame,Heading,Info,OptimizedImage,Step,Steps,Tab,Tabs,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Orq.ai`}),` observability captures every LLM call, agent step, and tool use as searchable traces with latency, token counts, and cost. `,_jsx(_components.strong,{children:`OpenTelemetry`}),` is the standard, framework-agnostic way to instrument it.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Set the `,_jsx(_components.strong,{children:`Orq.ai`}),` OTLP endpoint and authenticate with an API key`]}),`\n`,_jsx(_components.li,{children:`Configure the OpenTelemetry SDK in an existing application`}),`\n`,_jsxs(_components.li,{children:[`See every LLM call, agent step, and tool use in `,_jsx(_components.strong,{children:`Traces`})]}),`\n`,_jsxs(_components.li,{children:[`For framework-specific setup, see the `,_jsx(_components.a,{href:`/ai-studio/integrations/frameworks/overview`,children:`Frameworks in Integrations`})]}),`\n`]})}),`\n`,_jsxs(Steps,{titleSize:`h3`,children:[_jsx(Step,{title:`Create an Orq.ai account`,id:`create-an-orq-ai-account`,children:_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://my.orq.ai/auth/signup`,children:`Sign up`}),` for a free `,_jsx(_components.strong,{children:`Orq.ai`}),` account and set up a workspace.`]})}),_jsx(Step,{title:`Set up Orq.ai`,id:`set-up-orq-ai`,children:_jsxs(Tabs,{children:[_jsxs(Tab,{title:`API key only`,icon:`key`,id:`api-key-only`,children:[_jsxs(_components.p,{children:[`Open `,_jsxs(_components.strong,{children:[`Settings > Organization > `,_jsx(_components.a,{href:`/ai-studio/organization/api-keys`,children:`API Keys`})]}),` in the `,_jsx(_components.a,{href:`https://my.orq.ai`,children:`AI Studio`}),`. Click `,_jsx(`kbd`,{className:`key`,children:`Create API Key`}),`, give it a name, and copy it.`]}),_jsxs(_components.p,{children:[`Then open a terminal and run the command below, replacing `,_jsx(_components.code,{children:`your-api-key-here`}),` with the copied key. The code samples in the next steps read it from this environment variable.`]}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`macOS / Linux`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`export`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` ORQ_API_KEY`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:`\"your-api-key-here\"`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Windows`,numberOfLines:`1`,language:`powershell`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`powershell`,children:_jsxs(_components.code,{language:`powershell`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`$`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:`env:`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`ORQ_API_KEY `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` \"your-api-key-here\"`})]}),`\n`]})})})]})]}),_jsxs(Tab,{title:`Coding agent`,icon:`robot`,id:`coding-agent`,children:[_jsx(_components.p,{children:`Paste this prompt into the coding agent to add tracing to the app:`}),_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:\"Install the Orq.ai CLI, run `orq setup`, and add Orq.ai tracing to my app.\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`Or install the CLI directly:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`curl`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:` -fsSL`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` https://cli.orq.ai/install.sh`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` |`}),_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:` sh`})]}),`\n`]})})}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`orq setup`}),` signs in, creates a project-scoped API key, and connects the coding agents already on the machine to `,_jsx(_components.strong,{children:`Orq.ai`}),`, including the `,_jsx(_components.strong,{children:`Orq MCP`}),` server and `,_jsx(_components.strong,{children:`Orq Skills`}),`.`]}),_jsxs(Tip,{children:[_jsxs(_components.p,{children:[`Connecting a coding assistant directly? See `,_jsx(_components.a,{href:`/ai-studio/integrations/code-assistants/orq-skills`,children:`Orq Skills`}),` and `,_jsx(_components.a,{href:`/ai-studio/integrations/code-assistants/orq-mcp`,children:`Orq MCP`}),`.`]}),_jsxs(_components.p,{children:[`Full command list: `,_jsx(_components.a,{href:`/reference/cli`,children:`CLI reference`}),`.`]})]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`orq setup`}),` writes the key to `,_jsx(_components.code,{children:`~/.orq/env`}),` as a POSIX shell export. Source it from bash or zsh so the code samples in the next steps can read it:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:`source`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` ~/.orq/env`})]}),`\n`]})})})]})]})}),_jsxs(Step,{title:`Instrument with OpenTelemetry`,id:`instrument-with-opentelemetry`,children:[_jsx(_components.p,{children:`Install the OpenTelemetry SDK and the OTLP HTTP exporter:`}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Python`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`pip`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` install`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` opentelemetry-sdk`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` opentelemetry-exporter-otlp-proto-http`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Node.js`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`npm`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` install`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` @opentelemetry/sdk-node`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` @opentelemetry/exporter-trace-otlp-http`})]}),`\n`]})})})]}),_jsxs(_components.p,{children:[`Set the environment variables that point the OpenTelemetry SDK at the `,_jsx(_components.strong,{children:`Orq.ai`}),` collector:`]}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`macOS / Linux`,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`export`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` OTEL_EXPORTER_OTLP_ENDPOINT`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:`\"https://my.orq.ai/v2/otel\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`export`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` OTEL_EXPORTER_OTLP_HEADERS`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:`\"Authorization=Bearer `}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`$ORQ_API_KEY`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`export`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` OTEL_RESOURCE_ATTRIBUTES`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:`\"service.name=my-agent,service.version=1.0.0\"`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Windows`,numberOfLines:`3`,language:`powershell`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`powershell`,children:_jsxs(_components.code,{language:`powershell`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`$`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:`env:`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`OTEL_EXPORTER_OTLP_ENDPOINT `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` \"https://my.orq.ai/v2/otel\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`$`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:`env:`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`OTEL_EXPORTER_OTLP_HEADERS `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` \"Authorization=Bearer `}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`$`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:`env:`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`ORQ_API_KEY`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`$`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:`env:`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`OTEL_RESOURCE_ATTRIBUTES `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` \"service.name=my-agent,service.version=1.0.0\"`})]}),`\n`]})})})]}),_jsx(_components.p,{children:`Initialize the tracer provider once at application startup. The exporter reads the endpoint, headers, and resource from the environment variables above:`}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Python`,numberOfLines:`8`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`from`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` opentelemetry `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`import`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` trace`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`from`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` opentelemetry.exporter.otlp.proto.http.trace_exporter `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`import`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` OTLPSpanExporter`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`from`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` opentelemetry.sdk.trace `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`import`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` TracerProvider`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`from`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` opentelemetry.sdk.trace.export `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`import`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` BatchSpanProcessor`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`provider `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` TracerProvider()`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`trace.set_tracer_provider(provider)`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`TypeScript`,numberOfLines:`7`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`import`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` { NodeSDK } `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`from`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` '@opentelemetry/sdk-node'`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`import`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` { OTLPTraceExporter } `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`from`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` '@opentelemetry/exporter-trace-otlp-http'`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`const`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:` sdk`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` =`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` new`}),_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:` NodeSDK`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` traceExporter: `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`new`}),_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:` OTLPTraceExporter`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`(),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`});`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`sdk.`}),_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`start`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`();`})]}),`\n`]})})})]}),_jsxs(Info,{children:[_jsxs(_components.p,{children:[`The exporter accepts both `,_jsx(_components.code,{children:`https://my.orq.ai/v2/otel`}),` and the full path `,_jsx(_components.code,{children:`https://my.orq.ai/v2/otel/v1/traces`}),`. Spans from any OpenTelemetry-instrumented code are exported automatically.`]}),_jsxs(_components.p,{children:[`OTLP is served over HTTP, with either `,_jsx(_components.code,{children:`http/protobuf`}),` or `,_jsx(_components.code,{children:`http/json`}),`. Traces are received at `,_jsx(_components.code,{children:`/v2/otel/v1/traces`}),`, logs at `,_jsx(_components.code,{children:`/v2/otel/v1/logs`}),`, and metrics at `,_jsx(_components.code,{children:`/v2/otel/v1/metrics`}),`.`]}),_jsxs(_components.p,{children:[`Self-hosted and on-premise deployments serve `,_jsx(_components.code,{children:`/v2/otel`}),` under their own hostname. See `,_jsx(_components.a,{href:`/reference/base-urls`,children:`Base URLs`}),`.`]})]})]}),_jsxs(Step,{title:`Connect a framework`,id:`connect-a-framework`,children:[_jsxs(_components.p,{children:[`Using a framework? Instrument the framework with its own setup instead of manual span creation. Each page in `,_jsx(_components.strong,{children:`Integrations`}),` shows the exact installation, environment variables, and instrumentation call:`]}),_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`LangGraph`,icon:`https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/langgraph.svg?fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=9c52eaf63d57fd22fb2875b4488e607b`,href:`/ai-studio/integrations/frameworks/langgraph#observability`,\"data-og-width\":`24`,width:`24`,\"data-og-height\":`24`,height:`24`,\"data-path\":`images/logos/langgraph.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/langgraph.svg?w=280\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=764b14fb6616ffeb8cac31ead36e927e 280w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/langgraph.svg?w=560\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=8d062521ed2a9439a6049729ce2ac3e2 560w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/langgraph.svg?w=840\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=11131819e23fb475716f50d631458288 840w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/langgraph.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=79e1959ba2796c1e044d68fe994aba98 1100w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/langgraph.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=909fe89796c2def383d8891c32c0eb29 1650w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/langgraph.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=d63a8aa450534aa65a7637d5f0ecb7ce 2500w`,children:_jsxs(_components.p,{children:[`One `,_jsx(_components.code,{children:`setup()`}),` call instruments the graph, tools, and every LLM step.`]})}),_jsx(Card,{title:`Vercel AI SDK`,icon:`https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/vercel-ai.svg?fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=9de0a5d831aebeabdb8aec32bf339fa2`,href:`/ai-studio/integrations/frameworks/vercel-ai#observability`,\"data-og-width\":`256`,width:`256`,\"data-og-height\":`222`,height:`222`,\"data-path\":`images/logos/vercel-ai.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/vercel-ai.svg?w=280\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=7780cd5475e258c4aeca94570d7ff317 280w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/vercel-ai.svg?w=560\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=0fa1bca859f17f8d9f260eb90c3193d8 560w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/vercel-ai.svg?w=840\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=8b2a969866547f31c0341bda10192b64 840w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/vercel-ai.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=51b54ffd2a9c33ce6e29c642e8053f26 1100w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/vercel-ai.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=f5c6cd2f6928511fdcac37c4ec5e432f 1650w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/vercel-ai.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=9b4c69436bf3bec600be77ac8307b4fe 2500w`,children:_jsx(_components.p,{children:`Python and TypeScript SDKs with experimental OpenTelemetry telemetry.`})}),_jsx(Card,{title:`Pydantic AI`,icon:`https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/pydantic-ai.svg?fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=dc6e243246e5e6656100fd7c9b92d1cd`,href:`/ai-studio/integrations/frameworks/pydantic-ai#observability`,\"data-og-width\":`16`,width:`16`,\"data-og-height\":`16`,height:`16`,\"data-path\":`images/logos/pydantic-ai.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/pydantic-ai.svg?w=280\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=99ad651cbe9ffd70e736b51813e852cf 280w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/pydantic-ai.svg?w=560\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=1c481296305bca9652c9c8de6ebb43c3 560w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/pydantic-ai.svg?w=840\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=c9f69e147156b7b7cfe0a7a46bf61185 840w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/pydantic-ai.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=21e5179be6616a8f2b8e4da63922e607 1100w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/pydantic-ai.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=a335b92b5f5bdea0754ed9c164029844 1650w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/pydantic-ai.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=c3cb8a1e79906da0ce4b9d3c9a7125df 2500w`,children:_jsx(_components.p,{children:`Logfire-based instrumentation for agents, tools, and streaming.`})}),_jsx(Card,{title:`OpenAI Agents`,icon:`https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/openai-agents.svg?fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=80c5bbfc82323c7822f52b0038f1ff83`,href:`/ai-studio/integrations/frameworks/openai-agents#observability`,\"data-og-width\":`256`,width:`256`,\"data-og-height\":`260`,height:`260`,\"data-path\":`images/logos/openai-agents.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/openai-agents.svg?w=280\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=6c6f904bfdf7f077b7ab654b96f81ff3 280w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/openai-agents.svg?w=560\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=1db9367dbf2f81e1569ee43194f999a6 560w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/openai-agents.svg?w=840\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=440bf065353321212abeac9a06f7a10a 840w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/openai-agents.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=73dd033798e0a935599c865a61f7e3da 1100w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/openai-agents.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=ef741617863f72ef7ebe777cd1634067 1650w, https://mintcdn.com/orqai/gORBxDuy-IDX4qWx/images/logos/openai-agents.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=gORBxDuy-IDX4qWx\u0026q=85\u0026s=6ed4d0c9540b12969a05fbfe07c6de0d 2500w`,children:_jsxs(_components.p,{children:[`Automatic tracing via `,_jsx(_components.code,{children:`OpenAIAgentsInstrumentor`}),`.`]})}),_jsx(Card,{title:`Agno`,icon:`https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/agno.svg?fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=0027a342fb30841f340e1cce2bf8d483`,href:`/ai-studio/integrations/frameworks/agno#observability`,\"data-og-width\":`16`,width:`16`,\"data-og-height\":`16`,height:`16`,\"data-path\":`images/logos/agno.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/agno.svg?w=280\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=c6bd112853601c9d0d865d62cb6c0822 280w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/agno.svg?w=560\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=36d949290120b0bc49530f89bfd67242 560w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/agno.svg?w=840\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=51193a858b1f422e8e24150264cd7a11 840w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/agno.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=07098c839ede18f36822f596ddcab16f 1100w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/agno.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=afdfdd9982119818a39f376d908881da 1650w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/agno.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=04d71c8d12a8b4a0d5f1a60abb3d0b76 2500w`,children:_jsx(_components.p,{children:`OpenInference instrumentation for agents and tools.`})}),_jsx(Card,{title:`Google ADK`,icon:`https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/google.svg?fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=e97a53044a01ca8a995bc2ef947c0328`,href:`/ai-studio/integrations/frameworks/google-ai#observability`,\"data-og-width\":`48`,width:`48`,\"data-og-height\":`48`,height:`48`,\"data-path\":`images/logos/google.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/google.svg?w=280\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=601f73407617e2bf28867e93b31cb1de 280w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/google.svg?w=560\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=b6f5f9a27cd204b03a7c295a835aa4d8 560w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/google.svg?w=840\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=b8b62494efa264f1107bee170f2f9a1c 840w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/google.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=810a7957d526113be5345c48a940e045 1100w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/google.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=1f0a9a30ac3d219005403c939af15830 1650w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/google.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=1ee52f57130d04f4d398af86a72f0cbb 2500w`,children:_jsx(_components.p,{children:`Trace agent workflows, tool calls, and Gemini model interactions.`})}),_jsx(Card,{title:`Mastra`,icon:`https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/mastra.svg?fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=7192669957a442ca35dd3a08aa09abc8`,href:`/ai-studio/integrations/frameworks/mastra#observability`,\"data-og-width\":`683`,width:`683`,\"data-og-height\":`683`,height:`683`,\"data-path\":`images/logos/mastra.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/mastra.svg?w=280\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=74425552428ba0ae64277c335dcaa651 280w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/mastra.svg?w=560\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=27fe374fb43b8f96c190741132fcd8f0 560w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/mastra.svg?w=840\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=52bd60914594b87030ba564c7e861f17 840w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/mastra.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=14edaca4b588e152c3fc5a97c879b38f 1100w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/mastra.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=d934ddccf18b1c6bb301fc5f74ee41cf 1650w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/mastra.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=f94378f34182a29abbb8df1355783efd 2500w`,children:_jsx(_components.p,{children:`TypeScript agents and workflows with OpenTelemetry tracing.`})}),_jsx(Card,{title:`Claude Agent SDK`,icon:`https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/anthropic.svg?fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=b443dfd330fdacba898eed9a9d3f82c4`,href:`/ai-studio/integrations/frameworks/claude-agent-sdk#observability`,\"data-og-width\":`61`,width:`61`,\"data-og-height\":`43`,height:`43`,\"data-path\":`images/logos/anthropic.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/anthropic.svg?w=280\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=9656e5819e6695ad880d05fb77cd8f34 280w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/anthropic.svg?w=560\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=cc2ae6067baa7b0f8bdb9c61e2a622ba 560w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/anthropic.svg?w=840\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=81146ad7a56c90fb6d99d83c76996188 840w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/anthropic.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=a9e4ed436f4069baae81f26f527ac2c0 1100w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/anthropic.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=8d0bb1430dc8a7119e8089b461fbbe97 1650w, https://mintcdn.com/orqai/E6QxcuOkIZbPb-u-/images/logos/anthropic.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=E6QxcuOkIZbPb-u-\u0026q=85\u0026s=1d8ab853e057a4a96a817d354cdf2ae1 2500w`,children:_jsx(_components.p,{children:`Hooks-based instrumentation for agent turns and tool use.`})}),_jsx(Card,{title:`See all frameworks`,icon:`plug`,href:`/ai-studio/integrations/frameworks/overview`,children:_jsx(_components.p,{children:`Full list of supported frameworks and setup guides.`})})]})]}),_jsx(Step,{title:`View traces`,id:`view-traces`,children:_jsxs(_components.p,{children:[`Run the agent and open `,_jsx(_components.a,{href:`https://my.orq.ai`,children:_jsx(_components.strong,{children:`Traces`})}),` in the `,_jsx(_components.strong,{children:`AI Studio`}),`. Every request appears with model, latency, token counts, and cost. For agentic frameworks, individual tool calls and steps appear as child spans.`]})}),_jsxs(Step,{title:`Analyze traces with MCP`,id:`analyze-traces-with-mcp`,children:[_jsxs(_components.p,{children:[`If the `,_jsxs(_components.a,{href:`/ai-studio/integrations/code-assistants/orq-mcp`,children:[_jsx(_components.strong,{children:`Orq MCP`}),` server`]}),` is not connected yet, install it in the editor or AI assistant, then ask the coding assistant:`]}),_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me the 10 slowest traces from the last 24 hours and explain what might be causing the latency`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[`The assistant queries the `,_jsx(_components.strong,{children:`Orq MCP`}),` and returns an analysis like this:`]}),_jsx(Frame,{caption:`Orq MCP trace analysis output`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/orqai/bhQw0kXY4gf3CTsS/images/quickstart-traces-agents.png?fit=max\u0026auto=format\u0026n=bhQw0kXY4gf3CTsS\u0026q=85\u0026s=ec432877500481fa0921aa0bd638b25e`,alt:`Orq MCP trace analysis output showing slowest traces and latency causes`,loading:`lazy`,\"data-og-width\":`1370`,width:`1370`,\"data-og-height\":`550`,height:`550`,\"data-path\":`images/quickstart-traces-agents.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/orqai/bhQw0kXY4gf3CTsS/images/quickstart-traces-agents.png?w=280\u0026fit=max\u0026auto=format\u0026n=bhQw0kXY4gf3CTsS\u0026q=85\u0026s=15bc3b553ecc1f0a06176d184ea164d2 280w, https://mintcdn.com/orqai/bhQw0kXY4gf3CTsS/images/quickstart-traces-agents.png?w=560\u0026fit=max\u0026auto=format\u0026n=bhQw0kXY4gf3CTsS\u0026q=85\u0026s=6054f85a72ef22a0ca4f3bb903b65a30 560w, https://mintcdn.com/orqai/bhQw0kXY4gf3CTsS/images/quickstart-traces-agents.png?w=840\u0026fit=max\u0026auto=format\u0026n=bhQw0kXY4gf3CTsS\u0026q=85\u0026s=5de33a3c5ecab09fa5eda218638f85e2 840w, https://mintcdn.com/orqai/bhQw0kXY4gf3CTsS/images/quickstart-traces-agents.png?w=1100\u0026fit=max\u0026auto=format\u0026n=bhQw0kXY4gf3CTsS\u0026q=85\u0026s=9d1ba75db47d0d04ee1c236da547a787 1100w, https://mintcdn.com/orqai/bhQw0kXY4gf3CTsS/images/quickstart-traces-agents.png?w=1650\u0026fit=max\u0026auto=format\u0026n=bhQw0kXY4gf3CTsS\u0026q=85\u0026s=48cf0d2095407c04372cc2476ef88370 1650w, https://mintcdn.com/orqai/bhQw0kXY4gf3CTsS/images/quickstart-traces-agents.png?w=2500\u0026fit=max\u0026auto=format\u0026n=bhQw0kXY4gf3CTsS\u0026q=85\u0026s=6955aed034492b1b669b9556c5b32578 2500w`})}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`For structured failure analysis, the `,_jsxs(_components.a,{href:`/ai-studio/integrations/code-assistants/orq-skills`,children:[_jsx(_components.strong,{children:`analyze-traces`}),` Orq Skill`]}),` reads production traces, builds a failure taxonomy, and categorizes issues.`]})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Authentication error: 401 Unauthorized`,id:`authentication-error-401-unauthorized`,children:_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Confirm the variable is set: `,_jsx(_components.code,{children:`echo $ORQ_API_KEY`})]}),`\n`,_jsxs(_components.li,{children:[`Verify the key is active under `,_jsx(_components.strong,{children:`Settings > Organization > API Keys`})]}),`\n`,_jsxs(_components.li,{children:[`Confirm the key is passed in the `,_jsx(_components.code,{children:`Authorization: Bearer`}),` header on the OTLP exporter, not as a query parameter`]}),`\n`]})}),_jsx(Accordion,{title:`Traces not appearing in the Studio`,id:`traces-not-appearing-in-the-studio`,children:_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Confirm the OTLP endpoint is set to `,_jsx(_components.code,{children:`https://my.orq.ai/v2/otel`}),` (or `,_jsx(_components.code,{children:`/v2/otel/v1/traces`}),` for exporters that require the full path)`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Check that the workspace in the API key matches the `,_jsx(_components.strong,{children:`AI Studio`}),` workspace being viewed`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Traces can take a few seconds to appear, wait 10 seconds and refresh`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Flush the tracer provider before a short script exits. The batch processor holds spans for up to 5 seconds, and a process that exits first loses them:`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Python`,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`provider.shutdown() `}),_jsx(_components.span,{style:{color:`#6A737D`,\"--shiki-dark\":`#6A737D`},children:`# flush and stop the batch processor before exit`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`TypeScript`,numberOfLines:`1`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`await`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` sdk.`}),_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`shutdown`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`(); `}),_jsx(_components.span,{style:{color:`#6A737D`,\"--shiki-dark\":`#6A737D`},children:`// flush and stop the batch processor before exit`})]}),`\n`]})})})]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Confirm the sampler is not discarding everything, for example `,_jsx(_components.code,{children:`OTEL_TRACES_SAMPLER=always_off`}),` or a ratio of `,_jsx(_components.code,{children:`0`})]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`415`}),` with `,_jsx(_components.code,{children:`unsupported content type: expected application/x-protobuf or application/json`}),` means the `,_jsx(_components.code,{children:`Content-Type`}),` header is neither `,_jsx(_components.code,{children:`application/x-protobuf`}),` nor `,_jsx(_components.code,{children:`application/json`}),`. Use an HTTP OTLP exporter, which sets the header to match the body encoding`]}),`\n`]}),`\n`]})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Annotate traces`,icon:`tags`,href:`/ai-studio/observability/annotation-queues`,children:_jsx(_components.p,{children:`Label and review spans to build high-quality evaluation datasets from real production traffic.`})}),_jsx(Card,{title:`Set up analytics`,icon:`chart-line`,href:`/ai-studio/observability/reporting-api`,children:_jsx(_components.p,{children:`Track cost, latency, error rates, and token usage across models and deployments over time.`})}),_jsx(Card,{title:`Run an experiment`,icon:`flask`,href:`/ai-studio/optimize/experiments`,children:_jsx(_components.p,{children:`Use traced data as a baseline to compare prompts, models, and configurations side by side.`})}),_jsx(Card,{title:`Build an agent`,icon:`rocket`,href:`/ai-studio/ai-engineering/quickstart`,children:_jsxs(_components.p,{children:[`Build and deploy a native `,_jsx(_components.strong,{children:`Orq.ai`}),` agent with tools, memory, and full `,_jsx(_components.strong,{children:`AI Studio`}),` management.`]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"github-light","dark":"github-dark"}},"config":{},"pageMetadata":{"title":"Quick Start","sidebarTitle":"Quickstart","description":"Instrument an app with OpenTelemetry for full trace visibility and cost tracking in Orq.ai. Framework-specific guides are in the Integrations section.","href":"/ai-studio/observability/quickstart"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Create an Orq.ai account","slug":"create-an-orq-ai-account","depth":3,"children":[]},{"title":"Set up Orq.ai","slug":"set-up-orq-ai","depth":3,"children":[]},{"title":"Instrument with OpenTelemetry","slug":"instrument-with-opentelemetry","depth":3,"children":[]},{"title":"Connect a framework","slug":"connect-a-framework","depth":3,"children":[]},{"title":"View traces","slug":"view-traces","depth":3,"children":[]},{"title":"Analyze traces with MCP","slug":"analyze-traces-with-mcp","depth":3,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/orqai/19ee3574279bbaa0/gtm.js","/_mintlify/custom/orqai/1f1a49b99957b631/commonroom-signals.js"],"subdomain":"orqai","siteName":"Orq.ai Documentation","title":"Quick Start - Orq.ai Documentation","contextualStarterQuestions":[{"_id":"6adf522e563be818d5755772","deploymentId":"68c9bcd7a1b07562da8b036b","questionText":"What is OpenTelemetry tracing?","status":"active","generatedBy":"contextual","path":"ai-studio/observability/quickstart","createdAt":"2026-10-26T13:14:22.558Z","updatedAt":"2026-10-26T13:14:22.558Z","__v":0},{"_id":"6adf522e563be818d5755773","deploymentId":"68c9bcd7a1b07562da8b036b","questionText":"How do I get my API key?","status":"active","generatedBy":"contextual","path":"ai-studio/observability/quickstart","createdAt":"2026-10-26T13:14:22.558Z","updatedAt":"2026-10-26T13:14:22.558Z","__v":0},{"_id":"6adf522e563be818d5755771","deploymentId":"68c9bcd7a1b07562da8b036b","questionText":"How do I set up Orq.ai?","status":"active","generatedBy":"contextual","path":"ai-studio/observability/quickstart","createdAt":"2026-10-26T13:14:22.558Z","updatedAt":"2026-10-26T13:14:22.558Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T13:13:50.972Z","originalFileLocation":"ai-studio/observability/quickstart.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Instrument an app with OpenTelemetry for full trace visibility and cost tracking in Orq.ai. Framework-specific guides are in the Integrations section.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Orq.ai Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/orqai/5zquLIiRlftT1q7X/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/orqai/5zquLIiRlftT1q7X/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/orqai/5zquLIiRlftT1q7X/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/orqai/5zquLIiRlftT1q7X/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/orqai/5zquLIiRlftT1q7X/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/orqai/5zquLIiRlftT1q7X/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/orqai/5zquLIiRlftT1q7X/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/orqai/5zquLIiRlftT1q7X/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/orqai/5zquLIiRlftT1q7X/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Quick Start - Orq.ai Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Instrument an app with OpenTelemetry for full trace visibility and cost tracking in Orq.ai. Framework-specific guides are in the Integrations section.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Orq.ai Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.orq.ai/ai-studio/observability/quickstart\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://orqai.mintlify.app/_mintlify/api/og/v2?division=Overview\u0026amp;title=Quick+Start\u0026amp;description=Instrument+an+app+with+OpenTelemetry+for+full+trace+visibility+and+cost+tracking+in+Orq.ai.+Framework-specific+guides+are+in+the+Integrations+section.\u0026amp;theme=0116d0baa6ba6403f431e631\u0026amp;signature=17684cddcb568e70eb56e9ca4584bd177c99364cf4a4bf2dae170f329053874c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Quick Start - Orq.ai Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Instrument an app with OpenTelemetry for full trace visibility and cost tracking in Orq.ai. Framework-specific guides are in the Integrations section.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://orqai.mintlify.app/_mintlify/api/og/v2?division=Overview\u0026amp;title=Quick+Start\u0026amp;description=Instrument+an+app+with+OpenTelemetry+for+full+trace+visibility+and+cost+tracking+in+Orq.ai.+Framework-specific+guides+are+in+the+Integrations+section.\u0026amp;theme=0116d0baa6ba6403f431e631\u0026amp;signature=17684cddcb568e70eb56e9ca4584bd177c99364cf4a4bf2dae170f329053874c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/orqai/5zquLIiRlftT1q7X/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Orq.ai Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#027f6b\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003cmeta data-mint-head name=\"author\" content=\"Orq.ai\">\u003cmeta data-mint-head name=\"twitter:creator\" content=\"@orq_ai\">\u003cmeta data-mint-head name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\u003cmeta data-mint-head name=\"language\" content=\"English\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.orq.ai/ai-studio/observability/quickstart\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ai-studio/observability/quickstart.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.orq.ai/#organization\",\"name\":\"Orq.ai\",\"legalName\":\"Orq.AI Holding B.V.\",\"url\":\"https://orq.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://docs.orq.ai/images/Orq_ai_Symbol_Dark.svg\"},\"sameAs\":[\"https://github.com/orq-ai\",\"https://x.com/orq_ai\",\"https://www.linkedin.com/company/orqai/\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.orq.ai#website\",\"name\":\"Orq.ai Documentation\",\"url\":\"https://docs.orq.ai\",\"publisher\":{\"@id\":\"https://docs.orq.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.orq.ai/ai-studio/observability/quickstart#webpage\",\"url\":\"https://docs.orq.ai/ai-studio/observability/quickstart\",\"name\":\"Quick Start\",\"description\":\"Instrument an app with OpenTelemetry for full trace visibility and cost tracking in Orq.ai. Framework-specific guides are in the Integrations section.\",\"dateModified\":\"2026-10-26T13:13:50.972Z\",\"isPartOf\":{\"@id\":\"https://docs.orq.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.orq.ai/ai-studio/observability/quickstart#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.orq.ai/ai-studio/observability/quickstart#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Orq.ai Documentation\",\"item\":\"https://docs.orq.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Quick Start\",\"item\":\"https://docs.orq.ai/ai-studio/observability/quickstart\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.orq.ai/ai-studio/observability/quickstart#article\",\"headline\":\"Quick Start\",\"name\":\"Quick Start\",\"description\":\"Instrument an app with OpenTelemetry for full trace visibility and cost tracking in Orq.ai. Framework-specific guides are in the Integrations section.\",\"url\":\"https://docs.orq.ai/ai-studio/observability/quickstart\",\"mainEntityOfPage\":{\"@id\":\"https://docs.orq.ai/ai-studio/observability/quickstart#webpage\"},\"dateModified\":\"2026-10-26T13:13:50.972Z\",\"publisher\":{\"@id\":\"https://docs.orq.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.orq.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Orq.ai Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Orq.ai Documentation","nav":{"global":null,"tabs":[{"tab":"AI Gateway","pages":[{"title":"AI Gateway","href":"/ai-gateway/get-started/introduction"}]},{"tab":"AI Observability","groups":[{"group":"Overview","icon":"rocket","pages":[{"title":"Quick Start","sidebarTitle":"Quickstart","href":"/ai-studio/observability/quickstart"},{"title":"Orq span attributes reference","sidebarTitle":"Span Attributes","description":"Complete reference for orq.* OpenTelemetry span attributes. Find every attribute emitted by Orq.ai across traces, webhook payloads, and trace exports.","href":"/ai-studio/observability/span-attributes"},{"title":"Token and cost tracking","sidebarTitle":"Token \u0026 Cost Tracking","href":"/ai-studio/observability/token-cost-tracking"}]},{"group":"Instrument your app","icon":"code","pages":[{"title":"App tracking for AI requests","sidebarTitle":"App Tracking","href":"/ai-gateway/app-tracking"},{"title":"Thread management for grouped requests","sidebarTitle":"Thread Management","href":"/ai-gateway/thread-management"},{"title":"Track usage by identity","sidebarTitle":"Identities","href":"/ai-studio/observability/identities"}]},{"group":"Explore","icon":"compass","pages":[{"title":"LLM traces for debugging","sidebarTitle":"Traces","href":"/ai-studio/observability/traces"},{"title":"Agent Graphs","href":"/ai-studio/observability/agent-graphs"},{"title":"Conversation threads in traces","sidebarTitle":"Threads","tag":"Studio","href":"/ai-studio/observability/threads"},{"title":"Application logs","sidebarTitle":"Logs","href":"/ai-studio/observability/logs"},{"title":"Trace and log selection with OQL","sidebarTitle":"OQL","href":"/ai-studio/observability/oql"},{"title":"Views API","href":"/ai-studio/observability/views-api"},{"title":"Trace evaluations","sidebarTitle":"Trace Evaluations","href":"/ai-studio/observability/trace-evaluations"},{"title":"MCP Tracing","href":"/ai-studio/observability/mcp-tracing"}]},{"group":"Monitor","icon":"chart-line","pages":[{"title":"Alerts","sidebarTitle":"Alerts","tag":"Beta","href":"/ai-studio/observability/alerts"},{"title":"Notifiers for alert destinations","sidebarTitle":"Notifiers","tag":"Beta","href":"/ai-studio/observability/notifiers"},{"title":"Monitors","sidebarTitle":"Monitors","tag":"Beta","href":"/ai-studio/observability/monitors"},{"title":"Trace Automations","sidebarTitle":"Automations","tag":"Studio","href":"/ai-studio/observability/automations"}]},{"group":"Export","icon":"arrow-up-from-bracket","pages":[{"title":"Reporting API","sidebarTitle":"Reporting API","href":"/ai-studio/observability/reporting-api"},{"title":"Telemetry API","sidebarTitle":"Telemetry API","href":"/ai-studio/observability/telemetry-api"}]},{"group":"Review","icon":"clipboard-check","pages":[{"title":"Annotations","sidebarTitle":"Annotations","href":"/ai-studio/observability/annotations"},{"title":"Annotations API","sidebarTitle":"Annotations API","href":"/ai-studio/observability/annotations-api"},{"title":"Annotation Queues","sidebarTitle":"Annotation Queues","href":"/ai-studio/observability/annotation-queues"}]},{"group":"Data privacy \u0026 security","icon":"shield-check","pages":[{"title":"Data privacy and security","sidebarTitle":"Data Privacy \u0026 Security","href":"/ai-studio/observability/data-privacy"}]}]},{"tab":"Managed agents","pages":[{"title":"Managed agents","href":"/ai-studio/ai-engineering/quickstart"}]},{"tab":"Administration","pages":[{"title":"Administration","href":"/ai-studio/organization/workspace-settings"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/ai-studio/integrations/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/reference/client-libraries"}]},{"tab":"Cookbooks","hidden":true,"pages":[{"title":"Cookbooks","href":"/ai-studio/cookbooks/cookbooks"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/release-4-17"}]}]},"title":"Quick Start - Orq.ai Documentation","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-COGkNuA6.js","DynamicMarkdown-85clUA0i.js","zoom-image-lightbox-BZxD9MAj.js","lightbox-handle-r17bVUz3.js"]}