Grafana Cloud is a fully-managed observability platform that includes Grafana Tempo for distributed tracing. OpenRouter sends traces via the standard OTLP HTTP/JSON endpoint.
Step 1: Get your Grafana Cloud credentials
You’ll need three values from your Grafana Cloud portal:
Base URL: Your Grafana Cloud OTLP endpoint (e.g., https://otlp-gateway-prod-us-west-0.grafana.net)
Instance ID: Your numeric Grafana Cloud instance ID (e.g., 123456)
Check the time range: Grafana’s time picker might not include your trace timestamp. Try expanding to “Last 1 hour” or “Last 24 hours”.
Verify the endpoint: Make sure you’re using the OTLP gateway URL (https://otlp-gateway-prod-{region}.grafana.net), not your main Grafana URL.
Check authentication: Ensure your Instance ID is numeric and your API key has write permissions.
Wait a moment: There can be a 1-2 minute delay before traces appear in Grafana.
Wrong data source
If you don’t see any traces, make sure you’ve selected the correct Tempo data source in the Explore view. It’s typically named grafanacloud-{stack}-traces.
When Privacy Mode is enabled for this destination, prompt and completion content and provider error text are excluded from traces. All other trace data — token usage, costs, timing, model information, and custom metadata — is still sent normally. See Privacy Mode for details.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OpenRouter | Documentation","colors":{"primary":"#7624F4","light":"#7624F4","dark":"#C8FF00"},"logo":{"light":"https://mintcdn.com/openrouter-d02e98a0/ksNSeB_K7gD-BUDh/assets/logo-v2-light.svg?fit=max\u0026auto=format\u0026n=ksNSeB_K7gD-BUDh\u0026q=85\u0026s=690e45873843519efe02bcbe45795dac","dark":"https://mintcdn.com/openrouter-d02e98a0/ksNSeB_K7gD-BUDh/assets/logo-v2-dark.svg?fit=max\u0026auto=format\u0026n=ksNSeB_K7gD-BUDh\u0026q=85\u0026s=8ba2f49b11cd9839c37dd03c62537ebd","href":"https://openrouter.ai"},"favicon":"https://mintcdn.com/openrouter-d02e98a0/n3IgkjAMQY8SgOLX/assets/favicon-v2.svg?fit=max\u0026auto=format\u0026n=n3IgkjAMQY8SgOLX\u0026q=85\u0026s=f49800815fcadee8a07dcc093051c2de","appearance":{"default":"dark"},"background":{"color":{"light":"#FCFCFE","dark":"#03080A"}},"navbar":{"links":[{"href":"https://openrouter.ai/models","label":"Models"},{"href":"https://openrouter.ai/benchmarks","label":"Benchmarks"},{"href":"https://openrouter.ai/chat","label":"Chat"},{"href":"https://openrouter.ai/rankings","label":"Rankings"},{"href":"https://openrouter.ai/apps","label":"Apps"},{"href":"https://openrouter.ai/ori","label":"Ori"},{"href":"https://openrouter.ai/pricing","label":"Pricing"}],"primary":{"type":"button","label":"Sign In","href":"https://openrouter.ai/sign-in"}},"seo":{"metatags":{"canonical":"https://openrouter.ai/docs"}},"fonts":{"family":"Plus Jakarta Sans","weight":400},"integrations":{"ga4":{"measurementId":"G-R8YZRJS2XN"},"posthog":{"apiKey":"phc_7ToS2jDeWBlMu4n2JoNzoA1FnArdKwFMFoHVnAqQ6O1","apiHost":"https://us.i.posthog.com"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"openrouter-d02e98a0","hasAudioNarration":false,"actualSubdomain":"openrouter-d02e98a0","customDomains":["openrouter.ai"],"gitSource":{"_id":"6ad7fa92692c7c940ff17a31","type":"github","owner":"openrouterteam","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"contextualFeedback":{"allowEmail":true},"agentFeedback":true,"issues":false,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af6eb8ec374640f8e244ec5","clientVersion":"0.0.4128","searchFilterCounts":[{"language":"default","tag":"API Reference","count":353},{"language":"default","tag":"Client SDKs","count":248},{"language":"default","tag":"Docs","count":157},{"language":"default","tag":"Cookbook","count":64},{"language":"default","tag":"Agent SDK","count":42},{"language":"default","tag":"TypeScript SDK","count":41},{"language":"default","tag":"Python SDK","count":40},{"language":"default","tag":"Go SDK","count":39},{"language":"default","tag":"Observability","count":30},{"language":"default","tag":"Features","count":24}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"6af272c0af52927e0c2cd6a8","deploymentId":"6a349898c5627d470e2c2ff7","questionText":"How do I use the best free models in OpenRouter?","status":"active","generatedBy":"manual","createdAt":"2026-11-10T01:26:24.136Z","updatedAt":"2026-11-10T01:26:24.136Z","__v":0},{"_id":"6ad8ee98f69c2f90c2a8cc12","deploymentId":"6a349898c5627d470e2c2ff7","questionText":"How do I get started using decision models like Jev?","status":"active","generatedBy":"manual","createdAt":"2026-10-21T16:55:52.120Z","updatedAt":"2026-10-21T16:55:52.120Z","__v":0}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--inverse: 3 8 10;--inverse-foreground: 252 252 254;--tooltip-background: var(--inverse);--tooltip-foreground: var(--inverse-foreground)}code,pre,pre code,.code-block code,[class*=\"code\"] code{font-family:'Geist Mono', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace}::selection{background:rgb(118 36 244 / 0.25)}.dark ::selection,html.dark ::selection{background:rgb(200 255 0 / 0.25);color:inherit}.dark,[data-theme=\"dark\"],html.dark{--primary: 200 255 0;--primary-light: 200 255 0;--primary-dark: 200 255 0;--light-primary: 200 255 0;--primary-foreground: 3 8 10;--inverse: 252 252 254;--inverse-foreground: 3 8 10;--default-border-color: rgb(252 252 254 / 0.14)}#navbar{border-radius:0}#sidebar a[aria-current=\"page\"],nav[aria-label=\"Pages\"] a[aria-current=\"page\"]{border-radius:8px}[data-component-part=\"code-block-root\"]{border-radius:8px}a:not([class]){text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:rgb(0 0 0 / 0.4)}a:not([class]):hover{text-decoration-color:currentColor}.dark a:not([class]),html.dark a:not([class]){text-decoration-color:rgb(255 255 255 / 0.4)}.dark a:not([class]):hover,html.dark a:not([class]):hover{text-decoration-color:currentColor}.nav-tag-pill-text{background:transparent!important;color:rgb(0 0 0 / 0.5)!important;border:1px solid rgb(0 0 0 / 0.2)!important}.dark .nav-tag-pill-text,html.dark .nav-tag-pill-text{background:transparent!important;color:rgb(252 252 254 / 0.5)!important;border:1px solid rgb(252 252 254 / 0.2)!important}.nav-logo{height:1.5rem}.dark nav[aria-label=\"Pages\"] button[aria-expanded] svg.transition-transform,html.dark nav[aria-label=\"Pages\"] button[aria-expanded] svg.transition-transform{color:rgb(252 252 254 / 0.627)}.dark nav[aria-label=\"Pages\"] button[aria-expanded]:hover svg.transition-transform,html.dark nav[aria-label=\"Pages\"] button[aria-expanded]:hover svg.transition-transform{color:rgb(252 252 254)}nav[aria-label=\"Pages\"] button[aria-expanded] svg.transition-transform{width:0.625rem;height:0.625rem}[role=\"tooltip\"][data-side],[data-radix-popper-content-wrapper]>div[data-state=\"delayed-open\"],[data-radix-popper-content-wrapper]>div[data-state=\"instant-open\"]{background-color:rgb(var(--tooltip-background))!important;color:rgb(var(--tooltip-foreground))!important}.callout [data-component-part=\"callout-content\"]>.code-block:first-child{margin-top:0}.callout [data-component-part=\"callout-content\"]>.code-block:last-child{margin-bottom:0}[data-floating-buttons] button{background-color:rgb(241 239 245)}.dark [data-floating-buttons] button,html.dark [data-floating-buttons] button{background-color:rgb(40 38 44)}[data-component-part=\"update-tag\"]{border:1px solid rgb(0 0 0 / 0.2);border-radius:9999px;padding:0.125rem 0.625rem;font-size:0.75rem;line-height:1.25rem;color:rgb(0 0 0 / 0.6)}.dark [data-component-part=\"update-tag\"],html.dark [data-component-part=\"update-tag\"]{border-color:rgb(252 252 254 / 0.2);color:rgb(252 252 254 / 0.6)}#topbar-cta-button svg{display:none}#topbar-cta-button a{padding-right:0.75rem}#topbar-cta-button .bg-primary-dark{background-color:rgb(var(--primary))}.dark #topbar-cta-button .text-white,html.dark #topbar-cta-button .text-white{color:rgb(3 8 10)}.dark #changelog-filters-content button.bg-primary,html.dark #changelog-filters-content button.bg-primary{color:rgb(3 8 10 / 0.9)!important}.changelog-status-badge{margin-left:0.5rem}.changelog-status-badge[data-color=\"gray\"]{border:1px solid rgb(3 8 10 / 0.3)!important}.dark .changelog-status-badge[data-color=\"gray\"],html.dark .changelog-status-badge[data-color=\"gray\"]{border-color:rgb(252 252 254 / 0.4)!important}.mermaid>svg{margin-inline:auto}.support-matrix table{font-size:0.8125rem}.support-matrix td,.support-matrix th{min-width:0;padding-right:0.5rem;white-space:nowrap}.support-matrix th code{padding-left:0.25rem;padding-right:0.25rem;font-size:0.6875rem}.pr-fig,.pr-mini{--pr-ink: #03080a;--pr-muted: rgb(3 8 10 / 0.69);--pr-rule: rgb(3 8 10 / 0.12);--pr-surface: #ffffff;--pr-positive-text: #007544;--pr-negative-text: #bf0024}.dark .pr-fig,.dark .pr-mini{--pr-ink: #fcfcfe;--pr-muted: rgb(252 252 254 / 0.627);--pr-rule: rgb(252 252 254 / 0.14);--pr-surface: #080d0f;--pr-positive-text: #34dfaa;--pr-negative-text: #ff2d55}.pr-fig{margin:1.5rem 0;padding:1rem;overflow-x:auto;container-type:inline-size;border:1px solid var(--pr-rule);border-radius:8px;background:var(--pr-surface)}.pr-fig svg{display:block;width:100%;height:auto}.pr-mini{margin:1rem 0 1.25rem}.pr-mini svg{display:block;max-width:100%;height:auto;margin-inline:auto}.pr-fig svg text,.pr-mini svg text{font-family:inherit;font-size:12px;fill:var(--pr-muted)}.pr-sw{display:inline-block;flex:none;width:12px;height:12px;border-radius:2px}.pr-bg-price{background:#0088fe}.pr-bg-ttft{background:#ffbb28}.pr-bg-speed{background:#7b68ee}.pr-bg-rel{background:#ff2d55}.pr-bg-429{background:#ff8042}.pr-fill-ttft{fill:#ffbb28}.pr-fill-speed{fill:#7b68ee}.pr-fill-rel{fill:#ff2d55}.pr-fill-429{fill:#ff8042}.pr-fig .lbl{font-size:13px;fill:var(--pr-ink)}.pr-fig .num{fill:var(--pr-muted);font-variant-numeric:tabular-nums}.pr-fig .strong{fill:var(--pr-ink);font-weight:600}.pr-fig .halo{paint-order:stroke;stroke:var(--pr-surface);stroke-width:4px;stroke-linejoin:round}.pr-fig .axis{stroke:var(--pr-rule);stroke-width:1}.pr-fig .zone{fill:rgb(0 191 111 / 0.12)}.pr-fig .zone-lbl{font-weight:600;fill:var(--pr-positive-text)}.pr-fig .zone-lbl.muted{fill:var(--pr-muted)}.pr-fig .edge{stroke:#00bf6f;stroke-width:1.5;stroke-dasharray:4 3}.pr-fig .edge-curve{fill:none;stroke:#00bf6f;stroke-width:2;stroke-dasharray:5 3}.pr-fig .curve{fill:none;stroke:var(--pr-ink);stroke-width:2.5}.pr-fig .curve-fill{fill:var(--pr-ink);opacity:0.04}.pr-fig .dot{fill:var(--pr-muted);fill-opacity:0.8;stroke:var(--pr-surface);stroke-width:1.5}.pr-fig .dot-in{fill:#00bf6f;stroke:var(--pr-surface);stroke-width:1.5}.pr-fig .got{fill:none;stroke:var(--pr-ink);stroke-width:2}.pr-fig .got-fill{fill:var(--pr-ink);opacity:0.06}.pr-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:0.375rem 1rem;margin-top:0.75rem;font-size:12px;color:var(--pr-muted)}.pr-legend span{display:inline-flex;align-items:center;gap:0.375rem}.pr-table{margin-top:0.875rem;border-top:1px solid var(--pr-rule);font-size:12px}.pr-row{display:grid;grid-template-columns:76px minmax(0, 1fr) 84px;gap:0.5rem;align-items:center;padding:0.375rem 0;border-bottom:1px solid var(--pr-rule)}.pr-head{color:var(--pr-muted);white-space:nowrap}.pr-sub::before{content:\", \"}.pr-name{font-weight:600;color:var(--pr-ink)}.pr-bar{display:flex;height:10px}.pr-bar i{display:block;height:100%}.pr-share{display:flex;align-items:center;gap:0.375rem}.pr-share i{display:block;height:10px;max-width:54px;border-radius:2px;background:var(--pr-muted);opacity:0.5}.pr-share b{font-weight:600;font-variant-numeric:tabular-nums;color:var(--pr-muted)}@media (max-width: 560px){.pr-row{grid-template-columns:76px minmax(0, 1fr) 32px}.pr-share i{display:none}.pr-head{white-space:normal}.pr-sub{display:block}.pr-sub::before{content:none}}@container (max-width: 480px){.pr-fig svg text{font-size:15px}.pr-fig svg .lbl{font-size:16px}}@container (max-width: 400px){.pr-fig svg text{font-size:17px}.pr-fig svg .lbl{font-size:18px}}.pr-mini-row{display:flex;justify-content:center;align-items:center;gap:0.75rem 1.5rem}.pr-mini-row svg{flex:0 1 auto;min-width:0;margin-inline:0}@media (max-width: 640px){.pr-mini-row{flex-wrap:wrap}}.pr-mini .strong-lbl{fill:var(--pr-ink);font-weight:600}.pr-mini .amt{text-anchor:end;font-variant-numeric:tabular-nums}.pr-mini .op{font-size:20px}.pr-mini .paper{fill:var(--pr-surface);stroke:var(--pr-rule);stroke-width:1}.pr-mini .usual{stroke:var(--pr-muted);stroke-width:1;stroke-dasharray:3 3}.pr-mini .sum-line{stroke:var(--pr-ink);stroke-width:1}.pr-mini .price-pill{fill:#0088fe;opacity:0.12}.pr-mini .pill-text{fill:var(--pr-ink);font-weight:600;font-variant-numeric:tabular-nums}.pr-mini .neg-pill{fill:#ff2d55;opacity:0.12}.pr-mini .neg-text{font-size:13px;fill:var(--pr-negative-text);font-weight:600;font-variant-numeric:tabular-nums}.pr-mini .span-stream{fill:var(--pr-muted);opacity:0.3}.pr-mini .span-total{fill:var(--pr-rule)}.pr-mini .extra{opacity:0.45}.pr-mini .bad{fill:none;stroke:#ff2d55;stroke-width:1.5}.pr-mini .tree{fill:none;stroke:var(--pr-muted);stroke-width:1}.pr-mini .brace{fill:none;stroke:var(--pr-muted);stroke-width:1.25}.pr-mini .big-arrow{fill:none;stroke:var(--pr-ink);stroke-width:3}.pr-mini .big-arrow-head,.pr-mini .user-dot{fill:var(--pr-ink)}.pr-factors ul{list-style:none;padding-left:0}.pr-factors li{padding-left:0!important}.pr-factors li::before{display:none}.pr-factors .pr-sw,h3 .pr-sw{margin-right:0.625rem;transform:translateY(1px)}h3 .pr-sw{width:13px;height:13px;transform:translateY(-2px)}.pr-cols{display:grid;grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));gap:0 1.75rem}"}],"page":{"pagePath":"guides/features/broadcast/grafana","slug":"/guides/features/broadcast/grafana","pageMetadata":{"publish":true,"title":"Grafana Cloud","description":"Send traces to Grafana Cloud","seoTitle":"Broadcast to Grafana Cloud | OpenRouter Observability","og:site_name":"OpenRouter Documentation","og:title":"Broadcast to Grafana Cloud - Send Traces to Grafana Tempo","og:description":"Connect Grafana Cloud to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Grafana Cloud integration.","og:image":"https://openrouter.ai/dynamic-og?title=Grafana%20Cloud%20Broadcast\u0026description=Send%20traces%20to%20Grafana%20Cloud","og:image:width":1200,"og:image:height":630,"twitter:card":"summary_large_image","twitter:site":"@OpenRouter","noindex":false,"nofollow":false,"icon":"puzzle-piece","href":"/guides/features/broadcast/grafana"},"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: \"Send traces to Grafana Cloud\"\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`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,OptimizedImage,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://grafana.com/products/cloud/`,children:`Grafana Cloud`}),` is a fully-managed observability platform that includes Grafana Tempo for distributed tracing. OpenRouter sends traces via the standard OTLP HTTP/JSON endpoint.`]}),`\n`,_jsx(Heading,{level:`2`,id:`step-1-get-your-grafana-cloud-credentials`,children:`Step 1: Get your Grafana Cloud credentials`}),`\n`,_jsx(_components.p,{children:`You’ll need three values from your Grafana Cloud portal:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Base URL`}),`: Your Grafana Cloud `,_jsx(_components.a,{href:`https://grafana.com/docs/grafana-cloud/send-data/otlp/send-data-otlp/`,children:`OTLP endpoint`}),` (e.g., `,_jsx(_components.code,{children:`https://otlp-gateway-prod-us-west-0.grafana.net`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Instance ID`}),`: Your numeric Grafana Cloud instance ID (e.g., `,_jsx(_components.code,{children:`123456`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`API Key`}),`: A Grafana Cloud `,_jsx(_components.a,{href:`https://grafana.com/docs/grafana-cloud/security-and-account-management/authentication-and-permissions/access-policies/create-access-policies/`,children:`API token with write permissions`}),` (starts with `,_jsx(_components.code,{children:`glc_...`}),`)`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`finding-your-otlp-endpoint`,children:`Finding your OTLP endpoint`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Log in to your Grafana Cloud portal`}),`\n`,_jsxs(_components.li,{children:[`Navigate to `,_jsx(_components.strong,{children:`Connections`}),` > `,_jsx(_components.strong,{children:`Add new connection`})]}),`\n`,_jsxs(_components.li,{children:[`Search for `,_jsx(_components.strong,{children:`OpenTelemetry (OTLP)`}),` and select it`]}),`\n`,_jsxs(_components.li,{children:[`On the configuration page, you’ll find your `,_jsx(_components.strong,{children:`OTLP endpoint URL`})]}),`\n`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`The base URL should be the OTLP gateway endpoint, not your main Grafana dashboard URL. The format is `,_jsx(_components.code,{children:`https://otlp-gateway-prod-{region}.grafana.net`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`finding-your-instance-id`,children:`Finding your Instance ID`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to your Grafana Cloud account at `,_jsx(_components.code,{children:`https://grafana.com/orgs/{your-org}/stacks`})]}),`\n`,_jsx(_components.li,{children:`Select your stack`}),`\n`,_jsxs(_components.li,{children:[`Your `,_jsx(_components.strong,{children:`Instance ID`}),` is the numeric value shown in the URL or on the stack details page`]}),`\n`]}),`\n`,_jsxs(Heading,{level:`3`,id:`creating-an-api-token`,children:[`Creating `,_jsx(_components.a,{href:`https://grafana.com/docs/grafana-cloud/security-and-account-management/authentication-and-permissions/access-policies/create-access-policies/`,children:`an API token`})]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In Grafana Cloud, go to `,_jsx(_components.strong,{children:`My Account`}),` > `,_jsx(_components.strong,{children:`Access Policies`})]}),`\n`,_jsxs(_components.li,{children:[`Create a new access policy with `,_jsx(_components.code,{children:`traces:write`}),` scope`]}),`\n`,_jsx(_components.li,{children:`Generate a token from this policy`}),`\n`,_jsxs(_components.li,{children:[`Copy the token (starts with `,_jsx(_components.code,{children:`glc_...`}),`)`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`step-2-enable-broadcast-in-openrouter`,children:`Step 2: Enable Broadcast in OpenRouter`}),`\n`,_jsxs(_components.p,{children:[`Go to `,_jsx(_components.a,{href:`https://openrouter.ai/settings/observability`,children:`Settings > Observability`}),` and toggle `,_jsx(_components.strong,{children:`Enable Broadcast`}),`.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/arize/broadcast-enable.png?fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=a48ecd5df85b4e6f3982c8402671f631`,alt:`Enable Broadcast`,\"data-og-width\":`2692`,width:`2692`,\"data-og-height\":`1296`,height:`1296`,\"data-path\":`assets/guides/features/broadcast/arize/broadcast-enable.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/arize/broadcast-enable.png?w=280\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=7efe86077718b23548daa1952206a30d 280w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/arize/broadcast-enable.png?w=560\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=60ea4966ad97d858304fde7f0c843018 560w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/arize/broadcast-enable.png?w=840\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=a802e2b7da4a5f47539dfacd6d20b057 840w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/arize/broadcast-enable.png?w=1100\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=bd500570ddc62cba3b9f07984149f165 1100w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/arize/broadcast-enable.png?w=1650\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=07809f6831bd7b1dbe024b330b447da1 1650w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/arize/broadcast-enable.png?w=2500\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=cb6703f79619ec7323ef7beff912be05 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`step-3-configure-grafana-cloud`,children:`Step 3: Configure Grafana Cloud`}),`\n`,_jsxs(_components.p,{children:[`Click the edit icon next to `,_jsx(_components.strong,{children:`Grafana Cloud`}),` and enter:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Base URL`}),`: Your Grafana Cloud OTLP endpoint (e.g., `,_jsx(_components.code,{children:`https://otlp-gateway-prod-us-west-0.grafana.net`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Instance ID`}),`: Your numeric Grafana Cloud instance ID`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`API Key`}),`: Your Grafana Cloud API token with write permissions`]}),`\n`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-config.png?fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=950e62f6502ce724922c066e296cace6`,alt:`Grafana Cloud Configuration`,\"data-og-width\":`2034`,width:`2034`,\"data-og-height\":`1856`,height:`1856`,\"data-path\":`assets/guides/features/broadcast/grafana/broadcast-grafana-config.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-config.png?w=280\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=ea64626109254b2019d58b94f4f0ddf7 280w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-config.png?w=560\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=fc0c4e778745f1ec7d7f764b3957ec88 560w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-config.png?w=840\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=9e337eac05e6f1c4456e81e169df9da5 840w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-config.png?w=1100\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=7a20b0673c71462a21b9d18c4461cd17 1100w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-config.png?w=1650\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=88621e559ad96866d5c8346f02837e59 1650w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-config.png?w=2500\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=2a0cd37a2a9924bcbf7dc407cfe99840 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`step-4-test-and-save`,children:`Step 4: Test and save`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Test Connection`}),` to verify the setup. The configuration only saves if the test passes.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-configured.png?fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=c3aa7c8fba3a8a92a52a1f4ad93d53e7`,alt:`Grafana Cloud Configured`,\"data-og-width\":`1572`,width:`1572`,\"data-og-height\":`682`,height:`682`,\"data-path\":`assets/guides/features/broadcast/grafana/broadcast-grafana-configured.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-configured.png?w=280\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=a3eb83efce502f9954fb2ca8b17341dc 280w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-configured.png?w=560\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=04e6ffdc5be536f0bfd2736f0bf4667e 560w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-configured.png?w=840\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=fa21910e7fd1e31acad8523abaa9367e 840w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-configured.png?w=1100\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=193afa3253c508288526ec053e8bae0d 1100w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-configured.png?w=1650\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=85d8c3e8bb8a0612be3ab9e616231a6b 1650w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-configured.png?w=2500\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=c3200ed0e493d03d57361cb3367ef530 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`step-5-send-a-test-trace`,children:`Step 5: Send a test trace`}),`\n`,_jsx(_components.p,{children:`Make an API request through OpenRouter and view the trace in Grafana Cloud.`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-trace.png?fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=13c0de4b7d2be5813d57d298690d7894`,alt:`Grafana Cloud Trace`,\"data-og-width\":`3192`,width:`3192`,\"data-og-height\":`1820`,height:`1820`,\"data-path\":`assets/guides/features/broadcast/grafana/broadcast-grafana-trace.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-trace.png?w=280\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=7bef70acb570cb16f107db9a10195197 280w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-trace.png?w=560\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=ee956486b9c3b7422c8e66f7023070ff 560w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-trace.png?w=840\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=56e1d59fdbdcc0e13513a526bcd56327 840w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-trace.png?w=1100\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=ce73efd582a855184f11ac1332f7c813 1100w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-trace.png?w=1650\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=e78f3d99f92490a714eb3ad330c4239f 1650w, https://mintcdn.com/openrouter-d02e98a0/PSwwwiCqAD_BNeni/assets/guides/features/broadcast/grafana/broadcast-grafana-trace.png?w=2500\u0026fit=max\u0026auto=format\u0026n=PSwwwiCqAD_BNeni\u0026q=85\u0026s=faf1c136b82f59edfb8cfd218ff90dd6 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`viewing-your-traces`,children:`Viewing your traces`}),`\n`,_jsx(_components.p,{children:`Once configured, you can view traces in Grafana Cloud in two ways:`}),`\n`,_jsx(Heading,{level:`3`,id:`option-1-explore-with-traceql`,children:`Option 1: Explore with TraceQL`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to your Grafana Cloud instance (e.g., `,_jsx(_components.code,{children:`https://your-stack.grafana.net`}),`)`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Explore`}),` in the left sidebar`]}),`\n`,_jsxs(_components.li,{children:[`Select your Tempo data source (e.g., `,_jsx(_components.code,{children:`grafanacloud-*-traces`}),`)`]}),`\n`,_jsxs(_components.li,{children:[`Switch to the `,_jsx(_components.strong,{children:`TraceQL`}),` tab`]}),`\n`,_jsx(_components.li,{children:`Run this query to see all OpenRouter traces:`}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,lines:`true`,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{ resource.service.name = \"openrouter\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`You can also filter by specific attributes:`}),`\n`,_jsx(CodeBlock,{filename:``,lines:`true`,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{ resource.service.name = \"openrouter\" \u0026\u0026 span.gen_ai.request.model = \"openai/gpt-4-turbo\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`option-2-drilldown->-traces`,children:`Option 2: Drilldown > Traces`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Go to your Grafana Cloud instance`}),`\n`,_jsxs(_components.li,{children:[`Navigate to `,_jsx(_components.strong,{children:`Drilldown`}),` > `,_jsx(_components.strong,{children:`Traces`}),` in the left sidebar`]}),`\n`,_jsx(_components.li,{children:`Use the filters to find traces by service name, duration, or other attributes`}),`\n`,_jsx(_components.li,{children:`Click on any trace to see the full span breakdown`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`trace-attributes`,children:`Trace attributes`}),`\n`,_jsx(_components.p,{children:`OpenRouter traces include the following key attributes:`}),`\n`,_jsx(Heading,{level:`3`,id:`resource-attributes`,children:`Resource attributes`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`service.name`}),`: Always `,_jsx(_components.code,{children:`openrouter`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`service.version`}),`: `,_jsx(_components.code,{children:`1.0.0`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`openrouter.trace.id`}),`: The OpenRouter trace ID`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`span-attributes`,children:`Span attributes`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`gen_ai.operation.name`}),`: The operation type (e.g., `,_jsx(_components.code,{children:`chat`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`gen_ai.system`}),`: The AI provider (e.g., `,_jsx(_components.code,{children:`openai`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`gen_ai.request.model`}),`: The requested model`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`gen_ai.response.model`}),`: The actual model used`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`gen_ai.usage.input_tokens`}),`: Number of input tokens`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`gen_ai.usage.output_tokens`}),`: Number of output tokens`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`gen_ai.usage.total_tokens`}),`: Total tokens used`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`gen_ai.response.finish_reason`}),`: Why the generation ended (e.g., `,_jsx(_components.code,{children:`stop`}),`)`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`custom-metadata`,children:`Custom metadata`}),`\n`,_jsxs(_components.p,{children:[`Any metadata you attach to your OpenRouter requests will appear under the `,_jsx(_components.code,{children:`trace.metadata.*`}),` namespace. See `,_jsx(_components.a,{href:`#custom-metadata`,children:`Custom Metadata`}),` below for details.`]}),`\n`,_jsx(Heading,{level:`2`,id:`custom-metadata-2`,children:`Custom Metadata`}),`\n`,_jsxs(_components.p,{children:[`Grafana Cloud receives traces via the OTLP protocol. Custom metadata from the `,_jsx(_components.code,{children:`trace`}),` field is sent as span attributes and can be queried using TraceQL.`]}),`\n`,_jsx(Heading,{level:`3`,id:`supported-metadata-keys`,children:`Supported Metadata Keys`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Key`}),_jsx(_components.th,{children:`Grafana Mapping`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`trace_id`})}),_jsx(_components.td,{children:`Trace ID`}),_jsx(_components.td,{children:`Group multiple requests into a single trace`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`trace_name`})}),_jsx(_components.td,{children:`Span Name`}),_jsx(_components.td,{children:`Custom name for the root span`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`span_name`})}),_jsx(_components.td,{children:`Span Name`}),_jsx(_components.td,{children:`Name for intermediate spans in the hierarchy`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`generation_name`})}),_jsx(_components.td,{children:`Span Name`}),_jsx(_components.td,{children:`Name for the LLM generation span`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`parent_span_id`})}),_jsx(_components.td,{children:`Parent Span ID`}),_jsx(_components.td,{children:`Link to an existing span in your trace hierarchy`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`example`,children:`Example`}),`\n`,_jsx(CodeBlock,{filename:``,lines:`true`,numberOfLines:`13`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"model\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"openai/gpt-4o\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"messages\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Analyze this metric...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"user\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user_12345\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"session_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"session_abc\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"trace\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"trace_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"monitoring_pipeline_001\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"trace_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Metric Analysis Pipeline\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"generation_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Anomaly Detection\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"environment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"production\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"alert_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"alert_789\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`querying-custom-metadata-with-traceql`,children:`Querying Custom Metadata with TraceQL`}),`\n`,_jsxs(_components.p,{children:[`Custom metadata keys are available as span attributes under `,_jsx(_components.code,{children:`trace.metadata.*`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,lines:`true`,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{ resource.service.name = \"openrouter\" \u0026\u0026 span.trace.metadata.environment = \"production\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(CodeBlock,{filename:``,lines:`true`,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{ resource.service.name = \"openrouter\" \u0026\u0026 span.trace.metadata.alert_id = \"alert_789\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`additional-context`,children:`Additional Context`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`user`}),` field maps to `,_jsx(_components.code,{children:`user.id`}),` in span attributes`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`session_id`}),` field maps to `,_jsx(_components.code,{children:`session.id`}),` in span attributes`]}),`\n`,_jsxs(_components.li,{children:[`Custom metadata keys from `,_jsx(_components.code,{children:`trace`}),` appear under the `,_jsx(_components.code,{children:`trace.metadata.*`}),` namespace in span attributes`]}),`\n`,_jsx(_components.li,{children:`You can create Grafana dashboards and alerts based on custom metadata attributes`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`example-traceql-queries`,children:`Example TraceQL queries`}),`\n`,_jsx(Heading,{level:`3`,id:`find-slow-requests->-5-seconds`,children:`Find slow requests (> 5 seconds)`}),`\n`,_jsx(CodeBlock,{filename:``,lines:`true`,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{ resource.service.name = \"openrouter\" \u0026\u0026 duration > 5s }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`find-requests-by-user`,children:`Find requests by user`}),`\n`,_jsx(CodeBlock,{filename:``,lines:`true`,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{ resource.service.name = \"openrouter\" \u0026\u0026 span.user.id = \"user_abc123\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`find-errors`,children:`Find errors`}),`\n`,_jsx(CodeBlock,{filename:``,lines:`true`,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{ resource.service.name = \"openrouter\" \u0026\u0026 status = error }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`find-requests-by-model`,children:`Find requests by model`}),`\n`,_jsx(CodeBlock,{filename:``,lines:`true`,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{ resource.service.name = \"openrouter\" \u0026\u0026 span.gen_ai.request.model =~ \".*gpt-4.*\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsx(Heading,{level:`3`,id:`traces-not-appearing`,children:`Traces not appearing`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Check the time range`}),`: Grafana’s time picker might not include your trace timestamp. Try expanding to “Last 1 hour” or “Last 24 hours”.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Verify the endpoint`}),`: Make sure you’re using the OTLP gateway URL (`,_jsx(_components.code,{children:`https://otlp-gateway-prod-{region}.grafana.net`}),`), not your main Grafana URL.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Check authentication`}),`: Ensure your Instance ID is numeric and your API key has write permissions.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Wait a moment`}),`: There can be a 1-2 minute delay before traces appear in Grafana.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`wrong-data-source`,children:`Wrong data source`}),`\n`,_jsxs(_components.p,{children:[`If you don’t see any traces, make sure you’ve selected the correct Tempo data source in the Explore view. It’s typically named `,_jsx(_components.code,{children:`grafanacloud-{stack}-traces`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`additional-resources`,children:`Additional resources`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://grafana.com/docs/grafana-cloud/send-data/otlp/`,children:`Grafana Cloud OTLP Documentation`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://grafana.com/docs/tempo/latest/traceql/`,children:`TraceQL Query Language`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://grafana.com/docs/tempo/latest/`,children:`Grafana Tempo Documentation`})}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`privacy-mode`,children:`Privacy Mode`}),`\n`,_jsxs(_components.p,{children:[`When `,_jsx(_components.a,{href:`/guides/features/broadcast#privacy-mode`,children:`Privacy Mode`}),` is enabled for this destination, prompt and completion content and provider error text are excluded from traces. All other trace data — token usage, costs, timing, model information, and custom metadata — is still sent normally. See `,_jsx(_components.a,{href:`/guides/features/broadcast#privacy-mode`,children:`Privacy Mode`}),` for details.`]})]})}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":{"config":{},"pageMetadata":{"publish":true,"title":"Grafana Cloud","description":"Send traces to Grafana Cloud","seoTitle":"Broadcast to Grafana Cloud | OpenRouter Observability","og:site_name":"OpenRouter Documentation","og:title":"Broadcast to Grafana Cloud - Send Traces to Grafana Tempo","og:description":"Connect Grafana Cloud to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Grafana Cloud integration.","og:image":"https://openrouter.ai/dynamic-og?title=Grafana%20Cloud%20Broadcast\u0026description=Send%20traces%20to%20Grafana%20Cloud","og:image:width":1200,"og:image:height":630,"twitter:card":"summary_large_image","twitter:site":"@OpenRouter","noindex":false,"nofollow":false,"icon":"puzzle-piece","href":"/guides/features/broadcast/grafana"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Step 1: Get your Grafana Cloud credentials","slug":"step-1-get-your-grafana-cloud-credentials","depth":2,"children":[{"title":"Finding your OTLP endpoint","slug":"finding-your-otlp-endpoint","depth":3,"children":[]},{"title":"Finding your Instance ID","slug":"finding-your-instance-id","depth":3,"children":[]},{"title":"Creating an API token","slug":"creating-an-api-token","depth":3,"children":[]}]},{"title":"Step 2: Enable Broadcast in OpenRouter","slug":"step-2-enable-broadcast-in-openrouter","depth":2,"children":[]},{"title":"Step 3: Configure Grafana Cloud","slug":"step-3-configure-grafana-cloud","depth":2,"children":[]},{"title":"Step 4: Test and save","slug":"step-4-test-and-save","depth":2,"children":[]},{"title":"Step 5: Send a test trace","slug":"step-5-send-a-test-trace","depth":2,"children":[]},{"title":"Viewing your traces","slug":"viewing-your-traces","depth":2,"children":[{"title":"Option 1: Explore with TraceQL","slug":"option-1-explore-with-traceql","depth":3,"children":[]},{"title":"Option 2: Drilldown > Traces","slug":"option-2-drilldown->-traces","depth":3,"children":[]}]},{"title":"Trace attributes","slug":"trace-attributes","depth":2,"children":[{"title":"Resource attributes","slug":"resource-attributes","depth":3,"children":[]},{"title":"Span attributes","slug":"span-attributes","depth":3,"children":[]},{"title":"Custom metadata","slug":"custom-metadata","depth":3,"children":[]}]},{"title":"Custom Metadata","slug":"custom-metadata-2","depth":2,"children":[{"title":"Supported Metadata Keys","slug":"supported-metadata-keys","depth":3,"children":[]},{"title":"Example","slug":"example","depth":3,"children":[]},{"title":"Querying Custom Metadata with TraceQL","slug":"querying-custom-metadata-with-traceql","depth":3,"children":[]},{"title":"Additional Context","slug":"additional-context","depth":3,"children":[]}]},{"title":"Example TraceQL queries","slug":"example-traceql-queries","depth":2,"children":[{"title":"Find slow requests (> 5 seconds)","slug":"find-slow-requests->-5-seconds","depth":3,"children":[]},{"title":"Find requests by user","slug":"find-requests-by-user","depth":3,"children":[]},{"title":"Find errors","slug":"find-errors","depth":3,"children":[]},{"title":"Find requests by model","slug":"find-requests-by-model","depth":3,"children":[]}]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[{"title":"Traces not appearing","slug":"traces-not-appearing","depth":3,"children":[]},{"title":"Wrong data source","slug":"wrong-data-source","depth":3,"children":[]}]},{"title":"Additional resources","slug":"additional-resources","depth":2,"children":[]},{"title":"Privacy Mode","slug":"privacy-mode","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/openrouter-d02e98a0/c1fa764d8c861cbd/anchor-scroll-fix.js","/docs/_mintlify/custom/openrouter-d02e98a0/c43dc2bfe5fa3c92/auth-cta.js"],"subdomain":"openrouter-d02e98a0","siteName":"OpenRouter | Documentation","title":"Broadcast to Grafana Cloud - Send Traces to Grafana Tempo","contextualStarterQuestions":[],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T22:08:38.222Z","originalFileLocation":"guides/features/broadcast/grafana.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=\"dark\"}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=\"Send traces to Grafana Cloud\">\u003cmeta data-mint-head name=\"application-name\" content=\"OpenRouter | Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_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=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Broadcast to Grafana Cloud - Send Traces to Grafana Tempo\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect Grafana Cloud to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Grafana Cloud integration.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OpenRouter Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://openrouter.ai/docs/guides/features/broadcast/grafana\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://openrouter.ai/dynamic-og?title=Grafana%20Cloud%20Broadcast\u0026amp;description=Send%20traces%20to%20Grafana%20Cloud\">\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=\"Broadcast to Grafana Cloud - Send Traces to Grafana Tempo\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect Grafana Cloud to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Grafana Cloud integration.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://openrouter.ai/dynamic-og?title=Grafana%20Cloud%20Broadcast\u0026amp;description=Send%20traces%20to%20Grafana%20Cloud\">\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=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OpenRouter | Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7624F4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://openrouter.ai/docs/guides/features/broadcast/grafana\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/guides/features/broadcast/grafana.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://openrouter.ai/#organization\",\"name\":\"OpenRouter | Documentation\",\"url\":\"https://openrouter.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/openrouter-d02e98a0/ksNSeB_K7gD-BUDh/assets/logo-v2-light.svg?fit=max\u0026auto=format\u0026n=ksNSeB_K7gD-BUDh\u0026q=85\u0026s=690e45873843519efe02bcbe45795dac\"}},{\"@type\":\"WebSite\",\"@id\":\"https://openrouter.ai/docs#website\",\"name\":\"OpenRouter | Documentation\",\"url\":\"https://openrouter.ai/docs\",\"publisher\":{\"@id\":\"https://openrouter.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://openrouter.ai/docs/guides/features/broadcast/grafana#webpage\",\"url\":\"https://openrouter.ai/docs/guides/features/broadcast/grafana\",\"name\":\"Grafana Cloud\",\"description\":\"Send traces to Grafana Cloud\",\"dateModified\":\"2026-11-11T22:08:38.222Z\",\"isPartOf\":{\"@id\":\"https://openrouter.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://openrouter.ai/docs/guides/features/broadcast/grafana#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://openrouter.ai/docs/guides/features/broadcast/grafana#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Observability\",\"item\":\"https://openrouter.ai/docs/guides/features/logs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Broadcast\",\"item\":\"https://openrouter.ai/docs/guides/features/broadcast\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Grafana Cloud\",\"item\":\"https://openrouter.ai/docs/guides/features/broadcast/grafana\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://openrouter.ai/docs/guides/features/broadcast/grafana#article\",\"headline\":\"Grafana Cloud\",\"name\":\"Grafana Cloud\",\"description\":\"Send traces to Grafana Cloud\",\"url\":\"https://openrouter.ai/docs/guides/features/broadcast/grafana\",\"mainEntityOfPage\":{\"@id\":\"https://openrouter.ai/docs/guides/features/broadcast/grafana#webpage\"},\"image\":\"https://openrouter.ai/dynamic-og?title=Grafana%20Cloud%20Broadcast\u0026description=Send%20traces%20to%20Grafana%20Cloud\",\"dateModified\":\"2026-11-11T22:08:38.222Z\",\"publisher\":{\"@id\":\"https://openrouter.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://openrouter.ai/docs#website\"}}]}\u003c/script>","agentPointerHref":"/docs/guides/features/broadcast/grafana.md","siteName":"OpenRouter | Documentation","nav":{"global":null,"tabs":[{"tab":"Docs","icon":"book","groups":[{"group":"Overview","icon":"compass","pages":[{"title":"Quickstart","icon":"rocket","href":"/quickstart"},{"title":"Principles","icon":"book","href":"/guides/overview/principles"},{"title":"Models","icon":"cube","href":"/guides/overview/models"},{"group":"Multimodal","icon":"layer-group","pages":[{"title":"Multimodal Capabilities","icon":"compass","sidebarTitle":"Overview","href":"/guides/overview/multimodal/overview"},{"title":"Image Generation","icon":"wand-magic-sparkles","href":"/guides/overview/multimodal/image-generation"},{"title":"Video Generation","icon":"film","href":"/guides/overview/multimodal/video-generation"},{"title":"Text-to-Speech","icon":"microphone","href":"/guides/overview/multimodal/tts"},{"title":"Speech-to-Text","icon":"headset","href":"/guides/overview/multimodal/stt"},{"title":"Audio","icon":"volume-high","href":"/guides/overview/multimodal/audio"},{"title":"PDF Inputs","icon":"file-pdf","sidebarTitle":"PDFs","href":"/guides/overview/multimodal/pdfs"},{"title":"Image Inputs","icon":"image","sidebarTitle":"Image Understanding","href":"/guides/overview/multimodal/image-understanding"},{"title":"Video Inputs","icon":"video","sidebarTitle":"Video Understanding","href":"/guides/overview/multimodal/videos"}]},{"title":"Frequently Asked Questions","icon":"question","sidebarTitle":"FAQ","href":"/faq"},{"title":"Report Feedback","icon":"bug","href":"/guides/overview/report-feedback"}]},{"group":"Models \u0026 Routing","icon":"route","pages":[{"title":"Model Fallbacks","icon":"arrows-rotate","href":"/guides/routing/model-fallbacks"},{"title":"Provider Routing","icon":"network-wired","sidebarTitle":"Provider Selection","href":"/guides/routing/provider-selection"},{"title":"How OpenRouter Routes Traffic Between Providers","icon":"route","sidebarTitle":"Traffic Routing","href":"/guides/providers/traffic-routing"},{"title":"Private Endpoints","icon":"lock","href":"/guides/routing/private-endpoints"},{"group":"Model Variants","icon":"gem","pages":[{"title":"Model Variants","icon":"layer-group","sidebarTitle":"Overview","href":"/guides/routing/model-variants/overview"},{"title":"Free Variant","icon":"circle-dollar","sidebarTitle":"Free","href":"/guides/routing/model-variants/free"},{"title":"Extended Variant","icon":"arrows-left-right","sidebarTitle":"Extended","href":"/guides/routing/model-variants/extended"},{"title":"Exacto Variant","icon":"gem","sidebarTitle":"Exacto","href":"/guides/routing/model-variants/exacto"},{"title":"Thinking Variant","icon":"brain","sidebarTitle":"Thinking","href":"/guides/routing/model-variants/thinking"},{"title":"Online Variant","icon":"globe-pointer","sidebarTitle":"Online","href":"/guides/routing/model-variants/online"},{"title":"Nitro Variant","icon":"bolt","sidebarTitle":"Nitro","href":"/guides/routing/model-variants/nitro"},{"title":"Floor Variant","icon":"arrow-down-to-line","sidebarTitle":"Floor","href":"/guides/routing/model-variants/floor"}]},{"group":"Model Routing","icon":"robot","pages":[{"title":"Model Routing","icon":"compass","sidebarTitle":"Overview","href":"/guides/routing/routers/overview"},{"title":"Auto Router","icon":"wand-magic-sparkles","href":"/guides/routing/routers/auto-router"},{"title":"Auto Code","icon":"code","href":"/guides/routing/routers/auto-code"},{"title":"Free Models Router","icon":"gift","href":"/guides/routing/routers/free-router"},{"title":"Pareto Router","icon":"chart-line","href":"/guides/routing/routers/pareto-router"},{"title":"Fusion Router","icon":"circle-nodes","href":"/guides/routing/routers/fusion-router"},{"title":"Jev Router","icon":"route","href":"/guides/routing/routers/jev-router"},{"title":"Switchyard","icon":"train-track","href":"/guides/routing/routers/switchyard-router"},{"title":"Router Metadata","icon":"circle-info","href":"/guides/routing/routers/router-metadata"}]},{"title":"Auto Exacto","icon":"crosshairs","href":"/guides/routing/auto-exacto"}]},{"group":"Tool Calling","icon":"toolbox","pages":[{"title":"Client Tools","icon":"laptop-code","sidebarTitle":"Client Tools","href":"/guides/features/tool-calling"},{"group":"Server Tools","icon":"server","pages":[{"title":"Server Tools","icon":"compass","sidebarTitle":"Overview","tag":"Beta","href":"/guides/features/server-tools"},{"title":"Web Search","icon":"globe","tag":"Beta","href":"/guides/features/server-tools/web-search"},{"title":"Web Fetch","icon":"link","tag":"Beta","href":"/guides/features/server-tools/web-fetch"},{"title":"Datetime","icon":"clock","tag":"Beta","href":"/guides/features/server-tools/datetime"},{"title":"Image Generation","icon":"image","tag":"Beta","href":"/guides/features/server-tools/image-generation"},{"title":"Apply Patch","icon":"file-code","tag":"Beta","href":"/guides/features/server-tools/apply-patch"},{"title":"Shell","icon":"terminal","tag":"Beta","href":"/guides/features/server-tools/shell"},{"title":"Bash","icon":"terminal","tag":"Beta","href":"/guides/features/server-tools/bash"},{"title":"Files","hidden":true,"icon":"folder-open","tag":"Beta","href":"/guides/features/server-tools/files"},{"title":"Search Models","icon":"magnifying-glass","tag":"Beta","href":"/guides/features/server-tools/search-models"},{"title":"Tool Search","icon":"magnifying-glass","tag":"Beta","href":"/guides/features/server-tools/tool-search"},{"title":"Fusion","icon":"circle-nodes","tag":"Beta","href":"/guides/features/server-tools/fusion"},{"title":"Advisor","icon":"lightbulb","tag":"Beta","href":"/guides/features/server-tools/advisor"},{"title":"Subagent","icon":"sitemap","tag":"Beta","href":"/guides/features/server-tools/subagent"}]},{"group":"Plugins","icon":"plug","pages":[{"title":"Plugins","icon":"compass","sidebarTitle":"Overview","href":"/guides/features/plugins"},{"title":"Web Search","icon":"globe","href":"/guides/features/plugins/web-search"},{"title":"Response Healing","icon":"bandage","href":"/guides/features/plugins/response-healing"},{"title":"Alignment","icon":"shield-check","tag":"Beta","href":"/guides/features/plugins/alignment"},{"title":"Armor","icon":"shield-halved","tag":"Beta","href":"/guides/features/plugins/armor"}]}]},{"group":"Features","icon":"stars","pages":[{"group":"Workspaces","icon":"folder-tree","pages":[{"title":"Workspaces","sidebarTitle":"Overview","icon":"grid-2","href":"/guides/features/workspaces"},{"title":"Workspace Budgets","icon":"wallet","href":"/guides/features/workspaces/workspace-budgets"},{"title":"Switching Workspaces","icon":"repeat","href":"/guides/features/workspaces/switching"}]},{"title":"Notifications","icon":"bell","href":"/guides/features/notifications"},{"title":"Files API","sidebarTitle":"Files","icon":"folder-open","tag":"Beta","href":"/guides/features/files-api"},{"title":"Containers","icon":"box","tag":"Beta","href":"/guides/features/containers"},{"title":"Presets","icon":"sliders","href":"/guides/features/presets"},{"title":"Custom Classifiers","icon":"tag","href":"/guides/features/classifiers"},{"title":"Response Caching","icon":"box-archive","href":"/guides/features/response-caching"},{"title":"Structured Outputs","icon":"code","href":"/guides/features/structured-outputs"},{"title":"Message Transforms","icon":"arrows-rotate","href":"/guides/features/message-transforms"},{"title":"Zero Completion Insurance","icon":"shield","href":"/guides/features/zero-completion-insurance"},{"title":"App Attribution","icon":"chart-line","href":"/app-attribution"},{"group":"Batch API","icon":"boxes-stacked","pages":[{"title":"Batch API","sidebarTitle":"Overview","icon":"boxes-stacked","href":"/guides/features/batch-api"},{"title":"Batch API Quickstart","sidebarTitle":"Quickstart","icon":"rocket","href":"/batch-quickstart"}]},{"group":"Guardrails","icon":"shield-check","pages":[{"title":"Guardrails","icon":"book-open","sidebarTitle":"Overview","href":"/guides/features/guardrails"},{"title":"Guardrail Policies","icon":"shield","sidebarTitle":"Guardrail Policies","href":"/guides/features/guardrails/policies"},{"title":"Migrating to Guardrail Policies","icon":"arrow-right-arrow-left","sidebarTitle":"Migrating to policies","href":"/guides/features/guardrails/policies-migration"},{"group":"Prompt Injection Detection","icon":"syringe","root":{"title":"Prompt Injection Detection","icon":"syringe","href":"/guides/features/guardrails/prompt-injection"},"pages":[{"title":"Allowlist","icon":"list-check","href":"/guides/features/guardrails/prompt-injection/allowlist"}]},{"title":"Sensitive Info Guardrail","icon":"eye-slash","sidebarTitle":"Sensitive Info","href":"/guides/features/guardrails/sensitive-info"},{"title":"Detected Secret Formats","icon":"key","sidebarTitle":"Secret Formats","href":"/guides/features/guardrails/secret-formats"}]},{"title":"Service Tiers","icon":"layer-group","href":"/guides/features/service-tiers"},{"title":"Body Builder","icon":"hammer","href":"/guides/features/body-builder"},{"title":"Latest Model Resolution","icon":"clock-rotate-left","href":"/guides/features/latest-resolution"}]},{"group":"Observability","icon":"eye","pages":[{"title":"Logs","icon":"list","href":"/guides/features/logs"},{"title":"Activity","icon":"chart-line","href":"/guides/features/activity"},{"title":"Input \u0026 Output Logging","icon":"file-lines","sidebarTitle":"Input \u0026 Output Logging","href":"/guides/features/input-output-logging"},{"group":"Broadcast","icon":"broadcast-tower","root":{"title":"Broadcast","icon":"compass","sidebarTitle":"Overview","href":"/guides/features/broadcast"},"pages":[{"title":"Arize AX","icon":"puzzle-piece","href":"/guides/features/broadcast/arize"},{"title":"Braintrust","icon":"puzzle-piece","href":"/guides/features/broadcast/braintrust"},{"title":"ClickHouse","icon":"puzzle-piece","href":"/guides/features/broadcast/clickhouse"},{"title":"Comet Opik","icon":"puzzle-piece","href":"/guides/features/broadcast/opik"},{"title":"Datadog","icon":"puzzle-piece","href":"/guides/features/broadcast/datadog"},{"title":"Elastic Observability","icon":"puzzle-piece","href":"/guides/features/broadcast/elastic"},{"title":"Google BigQuery","description":"Send traces to Google BigQuery","icon":"puzzle-piece","href":"/guides/features/broadcast/bigquery"},{"title":"Grafana Cloud","icon":"puzzle-piece","href":"/guides/features/broadcast/grafana"},{"title":"Hugging Face Storage Buckets","description":"Send traces to Hugging Face Storage Buckets","icon":"puzzle-piece","href":"/guides/features/broadcast/hugging-face"},{"title":"Langfuse","icon":"puzzle-piece","href":"/guides/features/broadcast/langfuse"},{"title":"LangSmith","icon":"puzzle-piece","href":"/guides/features/broadcast/langsmith"},{"title":"New Relic","icon":"puzzle-piece","href":"/guides/features/broadcast/newrelic"},{"title":"OpenTelemetry Collector","icon":"puzzle-piece","href":"/guides/features/broadcast/otel-collector"},{"title":"PostHog","icon":"puzzle-piece","href":"/guides/features/broadcast/posthog"},{"title":"Raindrop","icon":"puzzle-piece","href":"/guides/features/broadcast/raindrop"},{"title":"Ramp","icon":"puzzle-piece","href":"/guides/features/broadcast/ramp"},{"title":"S3 / S3-Compatible","icon":"puzzle-piece","href":"/guides/features/broadcast/s3"},{"title":"Sentry","icon":"puzzle-piece","href":"/guides/features/broadcast/sentry"},{"title":"Snowflake","icon":"puzzle-piece","href":"/guides/features/broadcast/snowflake"},{"title":"Vantage","icon":"puzzle-piece","href":"/guides/features/broadcast/vantage"},{"title":"W\u0026B Weave","icon":"puzzle-piece","href":"/guides/features/broadcast/weave"},{"title":"Webhook","icon":"puzzle-piece","href":"/guides/features/broadcast/webhook"}]}]},{"group":"Authentication","icon":"shield-check","pages":[{"title":"OAuth PKCE","icon":"shield-check","sidebarTitle":"OAuth","href":"/guides/overview/auth/oauth"},{"title":"Workload Identity Federation","icon":"fingerprint","sidebarTitle":"Workload Identity","href":"/guides/overview/auth/workload-identity-federation"},{"title":"Management API Keys","icon":"key","href":"/guides/overview/auth/management-api-keys"},{"title":"Security settings","icon":"lock","href":"/guides/overview/auth/security-settings"},{"title":"BYOK","icon":"key","href":"/guides/overview/auth/byok"},{"title":"Single Sign-On (SSO)","icon":"shield-halved","href":"/guides/features/sso"},{"title":"SCIM Group Mappings","icon":"users-gear","href":"/guides/features/scim-mappings"}]},{"group":"Ori","icon":"terminal","pages":[{"title":"Ori","icon":"terminal","href":"/guides/ori/overview"},{"group":"Ori Harness","icon":"plug","pages":[{"title":"Ori Harness","sidebarTitle":"Overview","icon":"plug","href":"/guides/ori/harness"},{"title":"Ori Codex","sidebarTitle":"Codex","icon":"terminal","href":"/guides/ori/codex"},{"title":"Ori Cursor","sidebarTitle":"Cursor","icon":"terminal","href":"/guides/ori/cursor"}]},{"title":"File Writing","icon":"folder","href":"/guides/ori/files"},{"title":"Ori Configuration","icon":"sliders","href":"/guides/ori/configuration"},{"title":"Vault Secrets for Interns","icon":"vault","href":"/guides/ori/vault"},{"title":"Changelog","icon":"clock-rotate-left","href":"/guides/ori/changelog"}]},{"group":"Developer Tools","icon":"wrench","pages":[{"title":"MCP","icon":"plug","href":"/guides/overview/mcp-server"},{"title":"Terraform Provider","icon":"cubes","href":"/guides/overview/terraform"},{"title":"Stripe Projects","icon":"stripe","href":"/guides/overview/stripe-projects"}]},{"group":"Privacy","icon":"shield","expanded":false,"pages":[{"title":"Data Collection","icon":"database","href":"/guides/privacy/data-collection"},{"title":"Provider Logging","icon":"file-lines","href":"/guides/privacy/provider-logging"},{"title":"Zero Data Retention","icon":"shield-halved","sidebarTitle":"ZDR","href":"/guides/features/zdr"},{"title":"In-Region Routing","icon":"map-location-dot","href":"/guides/features/in-region-routing"},{"title":"Sovereign AI","icon":"globe","href":"/guides/features/sovereign-ai"}]},{"group":"Best Practices","icon":"lightbulb","expanded":false,"pages":[{"title":"Latency and Performance","icon":"gauge-high","href":"/guides/best-practices/latency-and-performance"},{"title":"Prompt Caching","icon":"database","href":"/guides/best-practices/prompt-caching"},{"title":"Spend Controls","icon":"wallet","href":"/guides/best-practices/spend-controls"},{"title":"Capping Shared Agent Keys","icon":"robot","href":"/guides/best-practices/capping-shared-agent-keys"},{"title":"Uptime Optimization","icon":"chart-line","href":"/guides/best-practices/uptime-optimization"},{"title":"Reasoning Tokens","icon":"lightbulb","href":"/guides/best-practices/reasoning-tokens"}]},{"group":"Providers","icon":"server","expanded":false,"pages":[{"title":"Provider Integration","icon":"cloud","sidebarTitle":"Integration","href":"/guides/providers/integration"},{"title":"How OpenRouter Routes Traffic Between Providers","icon":"route","sidebarTitle":"Traffic Routing","href":"/guides/providers/traffic-routing"}]},{"group":"Community","icon":"users","expanded":false,"pages":[{"title":"Frameworks and Integrations Overview","icon":"puzzle-piece","href":"/guides/community/frameworks-and-integrations-overview"},{"title":"Awesome OpenRouter","icon":"star","href":"/guides/community/awesome-openrouter"},{"title":"Effect AI SDK","icon":"puzzle-piece","href":"/guides/community/effect-ai-sdk"},{"title":"Arize AX","icon":"puzzle-piece","href":"/guides/community/arize"},{"title":"LangChain","icon":"puzzle-piece","href":"/guides/community/langchain"},{"title":"LiveKit","icon":"puzzle-piece","href":"/guides/community/livekit"},{"title":"Langfuse","icon":"puzzle-piece","href":"/guides/community/langfuse"},{"title":"Mastra","icon":"puzzle-piece","href":"/guides/community/mastra"},{"title":"OpenAI SDK","icon":"puzzle-piece","href":"/guides/community/openai-sdk"},{"title":"Anthropic Agent SDK","icon":"puzzle-piece","href":"/guides/community/anthropic-agent-sdk"},{"title":"PydanticAI","icon":"puzzle-piece","href":"/guides/community/pydantic-ai"},{"title":"Render","icon":"puzzle-piece","href":"/guides/community/render"},{"title":"Replit","icon":"puzzle-piece","href":"/guides/community/replit"},{"title":"TanStack AI","icon":"puzzle-piece","href":"/guides/community/tanstack-ai"},{"title":"Jev Documentation: Using the TypeSafe Decision Model on OpenRouter","sidebarTitle":"Jev (TypeSafe)","icon":"scale-balanced","href":"/guides/community/jev"},{"title":"Jev Tutorial: Make Your First Decision Call on OpenRouter","sidebarTitle":"Jev Tutorial","icon":"bolt","href":"/guides/community/jev-tutorial"},{"title":"Multimodal Decisions: Images, Audio, and Video in the Decisions API","sidebarTitle":"Multimodal Decisions","icon":"image","href":"/guides/community/multimodal-decisions"},{"title":"Extractions API: Typed Fields from Text, Images, and PDFs","sidebarTitle":"Extractions API","icon":"table-list","href":"/guides/community/extractions"},{"title":"Jev SDK for TypeScript and Python (TypeSafe SDK)","sidebarTitle":"TypeSafe SDK (Jev)","icon":"puzzle-piece","href":"/guides/community/typesafe-sdk"},{"title":"Vercel AI SDK","icon":"puzzle-piece","href":"/guides/community/vercel-ai-sdk"},{"title":"Xcode","icon":"puzzle-piece","href":"/guides/community/xcode"},{"title":"Zapier","icon":"puzzle-piece","href":"/guides/community/zapier"},{"title":"Infisical","icon":"puzzle-piece","href":"/guides/community/infisical"}]}]},{"tab":"API Reference","icon":"code","pages":[{"title":"API Reference","href":"/api_reference/overview"}]},{"tab":"Client SDKs","icon":"cube","pages":[{"title":"Client SDKs","href":"/client-sdks/overview"}]},{"tab":"Agent SDK","icon":"cube","pages":[{"title":"Agent SDK","href":"/agent-sdk/overview"}]},{"tab":"Cookbook","icon":"book-open","pages":[{"title":"Cookbook","href":"/cookbook/get-started/quickstart"}]}]},"basePath":"","title":"Broadcast to Grafana Cloud - Send Traces to Grafana Tempo","buildId":"dpl_4UDxC3erAcBDHX8QT9FjyxxnLZSQ","deploymentId":"dpl_4UDxC3erAcBDHX8QT9FjyxxnLZSQ","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-B97cnG_I.js","DynamicMarkdown-B7gJlzwx.js","zoom-image-lightbox-Dg9C7AQr.js","lightbox-handle-r17bVUz3.js"]}