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.
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":""},"chroma":{"collectionId":"857b68c3-cde9-4c7a-b45f-8477fff63b5c","liveDeploymentHistoryId":"6aecd163852e46238472000d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecd163852e46238472000d"},"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":"6aed06a81189461718d0f947","clientVersion":"0.0.4071","searchFilterCounts":[{"language":"default","tag":"API Reference","count":303},{"language":"default","tag":"Client SDKs","count":244},{"language":"default","tag":"Docs","count":155},{"language":"default","tag":"Cookbook","count":64},{"language":"default","tag":"Agent SDK","count":42},{"language":"default","tag":"TypeScript SDK","count":40},{"language":"default","tag":"Go SDK","count":39},{"language":"default","tag":"Python SDK","count":39},{"language":"default","tag":"Observability","count":29},{"language":"default","tag":"Features","count":23}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":false,"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":"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":"llms-txt-v2","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":"vite-origin","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":"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}],"starterQuestions":[{"_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-bg-received{background:var(--pr-ink)}.pr-bg-capacity{background:rgb(var(--gray-400))}.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-fig .cap{fill:none;stroke:#da70d6;stroke-width:2.5}.pr-fig .real{fill:none;stroke:var(--pr-muted);stroke-width:1.5;stroke-dasharray:5 4}.pr-fig .rate{fill:#ff8042}.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-ln{display:inline-block;width:18px;height:0}.pr-ln-cap{border-top:2.5px solid #da70d6}.pr-ln-real{border-top:1.5px dashed var(--pr-muted)}.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","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T01:49:54.474Z","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-05T01:49:54.474Z\",\"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-05T01:49:54.474Z\",\"publisher\":{\"@id\":\"https://openrouter.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://openrouter.ai/docs#website\"}}]}\u003c/script>","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":"Routers","icon":"robot","pages":[{"title":"Auto Router","icon":"wand-magic-sparkles","href":"/guides/routing/routers/auto-router"},{"title":"Body Builder","icon":"hammer","href":"/guides/routing/routers/body-builder"},{"title":"Free Models Router","icon":"gift","href":"/guides/routing/routers/free-router"},{"title":"Latest Model Resolution","icon":"clock-rotate-left","href":"/guides/routing/routers/latest-resolution"},{"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":"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":"Router Metadata","icon":"circle-info","href":"/guides/features/router-metadata"}]},{"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":"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"},{"title":"Ori Eval","icon":"vial-circle-check","href":"/guides/ori/eval"},{"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_DQCMP4mismmBj3AFK7YZqNhrtLNq","deploymentId":"dpl_DQCMP4mismmBj3AFK7YZqNhrtLNq","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-CAXmh2H7.js","DynamicMarkdown-B95U9rYS.js","zoom-image-lightbox-CgttNQ9S.js","lightbox-handle-r17bVUz3.js"]}