Gorilla Mux is a popular request router and dispatcher for the Go language.
This project was deprecated in December 2022 and is no longer supported,
however, we are aware that this is a popular tool among the Go community, and
it’ll take a while for users to migrate their apps to new tool. That’s why
we’re providing support for Gorilla Mux apps, so you get valuable information
from your services until you find a suitable replacement.
The Gorilla Mux instrumentation is packaged as a router middleware, as you can see in the example below, the tracer initialization is called before anything as described in more detail in the Go Configuration section. Adding otelmux.Middleware() to your app router is all that you need to get all your requests instrumented.
func main() { cleanup := initOpenTelemetry() defer cleanup() router := mux.NewRouter().StrictSlash(true) // This middleware must be added before any middlewares or routes router.Use(otelmux.Middleware("your-app-name")) // Your routes, app's logic, and server start up // ...}
By default, the Gorilla instrumentation does not report any incoming request parameters, like query strings and JSON body contents.To report these values to AppSignal, add a middleware to your Gorilla stack as follows:
import ( "bytes" "encoding/json" "io/ioutil" "net/http" "net/url" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/trace")func recordParameters(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { span := trace.SpanFromContext(r.Context()) // Query parameters requestQueryParameters := r.URL.Query() attributeQueryParameters := make(map[string]any) for k, v := range requestQueryParameters { attributeQueryParameters[k] = v } if len(attributeQueryParameters) > 0 { serializedQueryParams, err := json.Marshal(attributeQueryParameters) if err == nil { span.SetAttributes(attribute.String("appsignal.request.query_parameters", string(serializedQueryParams))) } } // Request body payload var serializedBodyPayload string var payload map[string]interface{} requestBodyPayload, err := ioutil.ReadAll(r.Body) if err != nil { next.ServeHTTP(w, r) return } r.Body = ioutil.NopCloser(bytes.NewBuffer(requestBodyPayload)) contentType := r.Header.Get("Content-Type") if contentType == "application/json" { serializedBodyPayload = string(requestBodyPayload) } else if contentType == "application/x-www-form-urlencoded" { // Parse form-urlencoded body values, err := url.ParseQuery(string(requestBodyPayload)) if err != nil { next.ServeHTTP(w, r) return } // Convert form values to a JSON-compatible map payload = make(map[string]interface{}) for key, val := range values { if len(val) == 1 { payload[key] = val[0] } else { payload[key] = val } } json, _ := json.Marshal(payload) serializedBodyPayload = string(json) } else { next.ServeHTTP(w, r) return } if len(serializedBodyPayload) > 0 { span.SetAttributes(attribute.String("appsignal.request.payload", serializedBodyPayload)) } next.ServeHTTP(w, r) })}func main() { // Init OpenTelemetry cleanup := initOpenTelemetry() defer cleanup() router := mux.NewRouter().StrictSlash(true) router.Use(otelmux.Middleware("opentelemetry-go-gorillamux")) // After the OpenTelemetry middleware, but before your other middlewares: router.Use(recordParameters) // Other middlewares and router handlers go here...}
Was this page helpful?
⌘I
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"AppSignal Documentation","description":"AppSignal documentation: install and configure application performance monitoring, error tracking, logging, and uptime checks for Ruby, Elixir, Node.js, Python, and more.","colors":{"primary":"#1b44da","light":"#60a5fa","dark":"#14329f"},"logo":{"light":"https://mintcdn.com/appsignal-715f5a51/5M0NK0KFu-w9Cutw/logo/dark.svg?fit=max\u0026auto=format\u0026n=5M0NK0KFu-w9Cutw\u0026q=85\u0026s=08633ef0322ee629d3264aaad3d3f737","dark":"https://mintcdn.com/appsignal-715f5a51/5M0NK0KFu-w9Cutw/logo/dark.svg?fit=max\u0026auto=format\u0026n=5M0NK0KFu-w9Cutw\u0026q=85\u0026s=08633ef0322ee629d3264aaad3d3f737","href":"https://www.appsignal.com"},"favicon":"https://mintcdn.com/appsignal-715f5a51/MS9b5WO71lSfD5jG/favicon.svg?fit=max\u0026auto=format\u0026n=MS9b5WO71lSfD5jG\u0026q=85\u0026s=6cad991c579398b5c3c4d991d92fd80d","api":{"playground":{"display":"interactive"},"mdx":{"server":"https://appsignal.com"}},"appearance":{"default":"system"},"navbar":{"primary":{"type":"button","label":"Get started","href":"https://appsignal.com/users/sign_up"}},"footer":{"socials":{"x":"https://x.com/AppSignal","github":"https://github.com/appsignal","linkedin":"https://nl.linkedin.com/company/appsignal","discord":"https://discord.gg/sBWWGwYzfC"},"links":[{"header":"Resources","items":[{"label":"Plans \u0026 pricing","href":"https://www.appsignal.com/plans"},{"label":"Documentation","href":"https://docs.appsignal.com/"},{"label":"Blog","href":"https://blog.appsignal.com/"},{"label":"Customer Stories","href":"https://www.appsignal.com/customers"},{"label":"Changelog","href":"https://www.appsignal.com/changelog"},{"label":"Learning Center","href":"https://www.appsignal.com/learning-center"},{"label":"Why AppSignal","href":"https://www.appsignal.com/why"}]},{"header":"Support","items":[{"label":"Contact us","href":"https://www.appsignal.com/contact"},{"label":"Email support","href":"mailto:support@appsignal.com"},{"label":"Status","href":"https://status.appsignal.com/"},{"label":"Security","href":"https://www.appsignal.com/security"}]},{"header":"About","items":[{"label":"About AppSignal","href":"https://www.appsignal.com/about"},{"label":"Jobs","href":"https://www.appsignal.com/jobs"},{"label":"Diversity","href":"https://www.appsignal.com/diversity"},{"label":"Open Source","href":"https://www.appsignal.com/open-source"}]},{"header":"For LLMs","items":[{"label":"Full Docs for LLMs","href":"https://docs.appsignal.com/llms-full.txt"},{"label":"Docs Index for LLMs","href":"https://docs.appsignal.com/llms.txt"}]}]},"seo":{"metatags":{"og:site_name":"AppSignal Documentation","og:type":"website","twitter:card":"summary_large_image","twitter:site":"@AppSignal"},"organization":{"name":"AppSignal","url":"https://www.appsignal.com","sameAs":["https://x.com/AppSignal","https://github.com/appsignal","https://nl.linkedin.com/company/appsignal"]},"indexing":"navigable"},"errors":{"404":{"redirect":false,"title":"404: We couldn't find a trace of this page - Woops!","description":"This page has moved or doesn't exist. Search the [docs](https://docs.appsignal.com/getting-started), or [reach out to support](mailto:support@appsignal.com) and we'll point you in the right direction."}},"contextual":{"options":["copy","view","assistant","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","default":true,"href":"getting-started"},{"language":"pt-BR","href":"pt-BR/getting-started"},{"language":"fr","href":"fr/getting-started"},{"language":"de","href":"de/getting-started"},{"language":"zh-CN","href":"zh-CN/getting-started"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"appsignal-715f5a51","hasAudioNarration":false,"actualSubdomain":"appsignal-715f5a51","customDomains":["docs.appsignal.com"],"gitSource":{"type":"github","owner":"appsignal","repo":"appsignal-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4f3cfa0506101bd2d3c93","collectionId":"af1897bc-1e0d-4cd7-8418-f90eb3ca16be","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4f3cfa0506101bd2d3c93"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4f3cfa0506101bd2d3c93","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"en","tag":"AppSignal Documentation","count":509},{"language":"en","tag":"SDKs \u0026 telemetry","count":268},{"language":"en","tag":"Language SDKs","count":249},{"language":"en","tag":"Integrations","count":180},{"language":"en","tag":"Features","count":78},{"language":"en","tag":"Ruby","count":65},{"language":"en","tag":"Account \u0026 Support","count":62},{"language":"en","tag":"API","count":44},{"language":"en","tag":"Homepage","count":40},{"language":"en","tag":"Node.js","count":37}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@appsignal.com","showHelpButton":true}},"basePath":"","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":"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":"byok-sep-25","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":"billing-updated-9-15","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}],"starterQuestions":[{"_id":"6a3bff9b0577bfeda02291d4","deploymentId":"69cbc6b3085f63c685d185ec","questionText":"What's new in latest releases of AppSignal?","status":"active","generatedBy":"manual","createdAt":"2026-06-24T16:02:35.552Z","updatedAt":"2026-06-24T16:02:35.552Z","__v":0},{"_id":"6a10046ecdfc2b165df5be04","deploymentId":"69cbc6b3085f63c685d185ec","questionText":"What can I do with the AppSignal MCP server?","status":"active","generatedBy":"manual","createdAt":"2026-05-22T07:23:26.099Z","updatedAt":"2026-05-22T07:23:26.099Z","__v":0},{"_id":"6a100460cdfc2b165df5bdde","deploymentId":"69cbc6b3085f63c685d185ec","questionText":"What are the Ruby gem's configuration options?","status":"active","generatedBy":"manual","createdAt":"2026-05-22T07:23:12.282Z","updatedAt":"2026-05-22T07:23:12.282Z","__v":0}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--text-heading:#111827;--text-default:#203053;--text-secondary:#415377;--text-muted:#67789d;--text-subtle:#8896b3;--text-strong:#0a1530;--link:#3c61e7;--link-hover:#1b44da;--edge-default:#d9dde7;--edge-strong:#bfc6d6;--page-bg:#ffffff;--surface-subtle:#f5f7f9;--surface-hover:#edf0f5;--surface-active:#e8ecf3;--panel-bg:#ffffff;--iconbox-bg:#ffffff;--bar-bg:#0a1530;--bar-border:#203053;--bar-text:#d9dde7;--bar-icon:#a2adc4;--cta-bg:#1b44da;--shadow-iconbox:0 1px 2px rgb(0 0 0 / 0.05);--shadow-iconbox-hover:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--shadow-panel:0 1px 3px 0 rgba(10, 21, 48, 0.1), 0 1px 2px -1px rgba(10, 21, 48, 0.1)}.dark{--text-heading:#f5f5f5;--text-default:#e5e5e5;--text-secondary:#a3a3a3;--text-muted:#8b8b8b;--text-subtle:#787878;--text-strong:#f5f5f5;--link:#60a5fa;--link-hover:#93c5fd;--edge-default:#383838;--edge-strong:#383838;--page-bg:#141414;--surface-subtle:#1c1c1c;--surface-hover:#242424;--surface-active:#2e2e2e;--panel-bg:#1e1e1e;--iconbox-bg:#2a2a2a;--bar-bg:#1a1a1a;--bar-border:#2e2e2e;--bar-text:#c8c8c8;--bar-icon:#8b8b8b;--cta-bg:#4a6ae8;--shadow-iconbox:0 1px 2px rgb(0 0 0 / 0.4);--shadow-iconbox-hover:0 2px 6px -1px rgb(0 0 0 / 0.55), 0 1px 3px -1px rgb(0 0 0 / 0.45);--shadow-panel:0 4px 12px -2px rgb(0 0 0 / 0.6), 0 2px 6px -2px rgb(0 0 0 / 0.5)}#navbar li:has(>a[href$=\"/getting-started\"]){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}html #navbar div[class*=bg-background-light]{background-color:var(--bar-bg);backdrop-filter:none;-webkit-backdrop-filter:none}html #navbar div.border-b{border-bottom-color:var(--bar-border)}html #navbar #localization-select-trigger,html #navbar [class*=\"group/search\"],html #navbar [class*=\"group/search\"] *,html #navbar a,html #navbar button{color:var(--bar-text)}html #navbar #localization-select-trigger:hover,html #navbar .text-gray-900,html #navbar [class*=\"group/search\"]:hover,html #navbar [class*=\"group/search\"]:hover *,html #navbar a:hover,html #navbar button:hover,html #topbar-cta-button a,html #topbar-cta-button a *{color:#fff}html #navbar [class*=\"group/search\"] [class*=text-xs][class*=rounded-full],html aside a[aria-current=page],html nav a[aria-current=page],html.dark #navbar [class*=\"group/search\"] [class*=text-xs][class*=rounded-full]{background-color:transparent}html .sidebar-title,html .sidebar-title>*,html h2[data-layout-item=toc-title],html h2[data-layout-item=toc-title] button,html h2[data-layout-item=toc-title] button:hover,html h2[data-layout-item=toc-title] span{color:var(--text-muted);font-size:14px;font-weight:600;line-height:17.5px;letter-spacing:.7px;text-transform:uppercase}html h2[data-layout-item=toc-title] button svg{display:none}html .eyebrow{letter-spacing:.7px;text-transform:uppercase}html nav[aria-label=Pages] a:not([aria-current]),html nav[aria-label=Pages] button[aria-expanded]{color:var(--text-default)}html nav[aria-label=Pages] button[aria-expanded] svg{color:#707276}html.dark nav[aria-label=Pages] button[aria-expanded] svg{color:#9fa0a5}html{--as-nav-icon:1.75rem;--as-nav-step:0.5rem;--as-nav-shave:calc(0.75rem - var(--as-nav-step))}html nav[aria-label=Pages] ul.sidebar-group ul{--as-nav-depth:1}html nav[aria-label=Pages] ul.sidebar-group ul ul{--as-nav-depth:2}html nav[aria-label=Pages] ul.sidebar-group ul ul ul{--as-nav-depth:3}html nav[aria-label=Pages] li[data-group-tag]:has(>button>div:first-child>svg)>ul{--as-nav-inset:var(--as-nav-icon)}html nav[aria-label=Pages] ul.sidebar-group :is(a, button)>:first-child{margin-left:calc(var(--as-nav-inset, 0rem) - var(--as-nav-shave)*var(--as-nav-depth, 0))}html .prose{--tw-prose-body:var(--text-secondary);--tw-prose-lead:var(--text-secondary);--tw-prose-links:var(--link)}html #content-area header p,html .mdx-content li:not(.callout *),html .mdx-content p:not(.callout *){color:var(--text-secondary)}html .callout,html .code-group{border-radius:8px}html .code-block-background{border-radius:8px!important}html .code-group .code-block-background{border-radius:6px!important}html [class*=\"min-w-[156px]\"]>button:first-child{border-radius:8px 0 0 8px}html [class*=\"min-w-[156px]\"]>button:last-child{border-radius:0 8px 8px 0}html [class*=\"min-w-[156px]\"],html [class*=\"min-w-[156px]\"]>button{border-color:transparent}html [class*=\"min-w-[156px]\"]>button:first-child{box-shadow:inset 0 1px 0 0 var(--edge-strong),inset 0 -1px 0 0 var(--edge-strong),inset 1px 0 0 0 var(--edge-strong)}html [class*=\"min-w-[156px]\"]>button:last-child{box-shadow:inset 0 1px 0 0 var(--edge-strong),inset 0 -1px 0 0 var(--edge-strong),inset -1px 0 0 0 var(--edge-strong),inset 1px 0 0 0 var(--edge-strong)}html [class*=\"min-w-[156px]\"]>button,html [class*=\"min-w-[156px]\"]>button *{color:var(--text-secondary)}html [class*=\"min-w-[156px]\"]>button:hover{background-color:var(--surface-hover)}html [class*=\"min-w-[156px]\"]>button,html body{background-color:var(--page-bg)}html #navbar div:has(>nav[aria-label=Main]){gap:8px}html #navbar div:has(>nav[aria-label=Main])>.topbar-right-container,html #navbar div:has(>nav[aria-label=Main])>div:first-child{display:contents}html #navbar div:has(>nav[aria-label=Main])>div:first-child>a{order:1}html #navbar nav[aria-label=Main]{order:2;margin-right:auto;margin-left:8px;padding-left:0}html #navbar nav[aria-label=Main]::before{content:\"\";flex-shrink:0;width:1px;height:20px;margin-right:8px;background-color:var(--bar-icon);opacity:.5}html #navbar .topbar-right-container>div:has(>#search-bar-entry){order:3}html #navbar .topbar-right-container>ul{order:4}html #navbar .topbar-right-container>button{order:5}html #navbar div:has(>#localization-select-trigger){order:6}html #navbar .topbar-right-container>div:not(:has(>#search-bar-entry)){order:7}html #navbar #localization-select-trigger::before{content:\"\";flex-shrink:0;width:16px;height:16px;background-color:currentColor;-webkit-mask:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/globe.svg) center/contain no-repeat;mask:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/globe.svg) center/contain no-repeat}html #navbar #localization-select-trigger>span{font-size:0}html #navbar #localization-select-trigger>span::after{font-size:14px;content:\"EN\"}html[lang=de] #navbar #localization-select-trigger>span::after{content:\"DE\"}html[lang=fr] #navbar #localization-select-trigger>span::after{content:\"FR\"}html[lang=pt-BR] #navbar #localization-select-trigger>span::after{content:\"PT-BR\"}html[lang=zh-CN] #navbar #localization-select-trigger>span::after{content:\"ZH\"}@layer utilities{@container navbar (min-width: 1440px){html body #navbar button#search-bar-entry{width:fit-content!important;padding-left:.875rem!important;padding-right:.75rem!important;justify-content:space-between!important}html body #navbar button#search-bar-entry .truncate.min-w-0{display:block!important}html body #navbar button#search-bar-entry span.rounded-full{display:inline-flex!important}html body #navbar button#assistant-entry{width:auto!important;padding-left:.75rem!important;padding-right:.875rem!important;justify-content:space-between!important}html body #navbar button#assistant-entry span.whitespace-nowrap{display:inline!important}}}html #navbar nav[aria-label=Main] li>a>svg:first-of-type,html #navbar nav[aria-label=Main] li>button>svg:first-of-type,html #navbar nav[aria-label=Main] li>button>svg:last-of-type{display:none}html #navbar nav[aria-label=Main] li>button::after{content:\"\";flex-shrink:0;width:10px;height:13px;background-color:var(--bar-icon);-webkit-mask:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/angle-down.svg) center/contain no-repeat;mask:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/angle-down.svg) center/contain no-repeat}html #navbar #localization-select-trigger svg{color:var(--bar-icon)}html #navbar nav[aria-label=Main] li>a:focus-visible,html #navbar nav[aria-label=Main] li>button:focus-visible{outline:0}html #navbar nav[aria-label=Main] li>a,html #navbar nav[aria-label=Main] li>button{font-size:16px;font-weight:400;letter-spacing:normal;padding-left:12px;padding-right:12px}html #navbar nav[aria-label=Main] li>a:hover,html #navbar nav[aria-label=Main] li>button:hover{background-color:transparent}html #navbar .navbar-link a{border:0;background:0 0;box-shadow:none;color:var(--bar-text);padding:4px 12px;font-size:16px;font-weight:400}html #navbar .navbar-link a:hover{background:0 0;box-shadow:none;color:#fff}html #topbar-cta-button a{background:var(--cta-bg);border-radius:4px;height:34px;padding:4px 12px;font-size:16px;font-weight:400}html #navbar #assistant-entry,html #navbar #search-bar-entry{background-color:transparent;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}html #navbar #assistant-entry:hover,html #navbar #search-bar-entry:hover{background-color:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}html:not(.dark) #navbar #assistant-entry,html:not(.dark) #navbar #search-bar-entry{background-color:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}html:not(.dark) #navbar #assistant-entry:hover,html:not(.dark) #navbar #search-bar-entry:hover{background-color:rgba(255,255,255,.13);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}html #navbar #assistant-entry,html #navbar #assistant-entry *,html #navbar [data-component-name=theme-preference-menu] svg,html #navbar [data-component-name=theme-toggle] svg{color:var(--bar-text)}html #footer a[class*=\"text-gray-950/50\"],html #navbar #assistant-entry:hover,html #navbar #assistant-entry:hover *,html #navbar [data-component-name=theme-preference-menu]:hover svg,html #navbar [data-component-name=theme-toggle]:hover svg{color:#fff}html #navbar #assistant-entry [class*=text-xs][class*=rounded-full]{display:none}html .chat-assistant-floating-input,html div:has(>.chat-assistant-floating-input){display:none}html [role=menu]:has(>a.nav-dropdown-item){width:288px;max-width:none;max-height:none!important;overflow-y:visible!important;overflow-x:visible!important;padding:16px 12px;border:0;border-radius:8px;background-color:var(--panel-bg);box-shadow:var(--shadow-panel)}html [role=menu] a.nav-dropdown-item{position:relative;gap:12px;padding:4px 8px;border-radius:4px;color:var(--text-secondary)}html [role=menu] a.nav-dropdown-item:hover{background-color:transparent;color:var(--text-default)}html [role=menu] a.nav-dropdown-item span{font-size:16px;font-weight:400}html [role=menu] a.nav-dropdown-item::before{content:\"\";display:block;flex-shrink:0;width:28px;height:28px;border:1px solid var(--edge-default);border-radius:6px;background-color:var(--iconbox-bg);box-shadow:var(--shadow-iconbox);transition:box-shadow .15s}html [role=menu] a.nav-dropdown-item:hover::before{box-shadow:var(--shadow-iconbox-hover)}html [role=menu] a.nav-dropdown-item>svg:first-of-type{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:12px;height:12px;min-width:12px;min-height:12px;background-color:#1b44da}html [role=menu] a.nav-dropdown-item:focus-visible{outline:0}html [role=menu] a.nav-dropdown-item[data-highlighted]{color:var(--text-default)}html [role=menu] a.nav-dropdown-item>svg:last-of-type:not(:first-of-type){display:none}html [role=menu] a[href*=\"tour/errors\"]>svg:first-of-type{background-color:#e05729}html [role=menu] a[href*=\"appsignal.com/nodejs\"]>svg:first-of-type,html [role=menu] a[href*=\"tour/performance\"]>svg:first-of-type{background-color:#29a575}html [role=menu] a[href*=\"tour/hosts\"]>svg:first-of-type{background-color:#1e9393}html [role=menu] a[href*=\"appsignal.com/ruby\"]>svg:first-of-type,html [role=menu] a[href*=\"tour/anomaly-detection\"]>svg:first-of-type{background-color:#c8223d}html [role=menu] a[href*=\"appsignal.com/javascript\"]>svg:first-of-type,html [role=menu] a[href*=\"tour/uptime-monitoring\"]>svg:first-of-type{background-color:#ec9c24}html [role=menu] a[href*=\"appsignal.com/elixir\"]>svg:first-of-type,html [role=menu] a[href*=\"tour/automated-dashboards\"]>svg:first-of-type,html [role=menu] a[href*=\"tour/metrics\"]>svg:first-of-type{background-color:#8537ad}html [role=menu] a[href*=\"tour/log-management\"]>svg:first-of-type{background-color:#ef51c0}html [role=menu] a[href*=\"appsignal.com/python\"]>svg:first-of-type,html [role=menu] a[href*=\"tour/check-ins\"]>svg:first-of-type,html [role=menu] a[href*=\"tour/workflow\"]>svg:first-of-type{background-color:var(--link)}html [role=menu] a[href*=go-monitoring]>svg:first-of-type{background-color:#3aa2bc}html [role=menu] a[href*=java-monitoring]>svg:first-of-type{background-color:#c37b1f}html [role=menu] a[href*=php-monitoring]>svg:first-of-type{background-color:#5b62c4}html.dark [role=menu] a.nav-dropdown-item>svg:first-of-type{background-color:#60a5fa}@media (min-width:1024px){html #navbar div[class*=\"lg:flex\"][class*=h-12]{height:4.5rem}html #sidebar-content{top:calc(4.5rem + var(--banner-height, 0px))!important;height:calc(100vh - 4.5rem - var(--banner-height, 0px))!important;padding-top:var(--as-content-top)}html #content-side-layout{top:4.5rem;height:calc(100vh - 4.5rem)}html{--scroll-mt:7.5rem}}html{--as-content-font:18px;--as-content-lede:20px}html .mdx-content [data-as=p],html .mdx-content li,html .mdx-content p{font-size:var(--as-content-font)}html #content-area header [data-as=p],html #content-area header p{font-size:var(--as-content-lede);line-height:1.5}html #content-area h1,html .mdx-content h2{font-size:36px;font-weight:700;line-height:1.125;letter-spacing:-.02em;color:var(--text-heading)}html .mdx-content h2{font-size:24px;font-weight:650;line-height:1.25;letter-spacing:normal}html .mdx-content h3,html .mdx-content h4{font-size:20px;font-weight:650;line-height:1.25;color:var(--text-heading)}html .mdx-content h4{font-size:16px}@media (min-width:1024px){html{--as-sidebar-width:17.5rem;--as-content-max:53rem;--as-content-top:1rem;--as-doc-gutter:12px}html #sidebar-content{width:var(--as-sidebar-width)!important}html #sidebar-content #navigation-items>div{padding-left:var(--as-doc-gutter)}html #content-side-layout{padding-right:var(--as-doc-gutter)}html .peer.is-not-custom~#body-content #content-container{padding-top:var(--as-content-top)}html .peer.is-not-custom~#body-content{padding-left:var(--as-sidebar-width)!important}html .peer.is-not-custom~#body-content #content-area{max-width:var(--as-content-max);margin-inline:auto}html #sidebar-content{position:fixed!important;overflow:hidden!important}html #sidebar-content #navigation-items>[data-component-part=scroll-area-viewport]{overflow-y:auto!important;overscroll-behavior-y:contain}html #content-side-layout{top:min(calc(4.5rem + var(--banner-height, 0px)),calc(100vh - var(--as-toc-height, 0px) - 2rem));height:auto!important;max-height:none}html #content-side-layout,html #content-side-layout .base-ui-disable-scrollbar{overflow:visible!important}}html #footer{background-color:var(--bar-bg);position:relative;z-index:21}.dark #footer{border-top:1px solid var(--bar-border)}html #footer p.font-semibold{color:#fff;text-transform:uppercase;letter-spacing:.05em;font-weight:500;border-bottom:1px solid var(--bar-border);padding-bottom:.75rem}html #footer a[class*=\"text-gray-950/50\"]:hover{color:#fff;text-decoration:underline}html #footer a>svg[style*=mask-image]{background-color:var(--bar-icon)}html #footer a:hover>svg[style*=mask-image]{background-color:#fff}html #footer div[class*=bg-gray-100]{background-color:var(--bar-border)}html #footer a[href*=\"mintlify.com\"]{color:var(--text-subtle)}html #footer a[href*=\"mintlify.com\"]:hover{color:#bfc6d6}html .callout[data-callout-type=note]{--as-co-bg:#eff3fa;--as-co-bd:#becfea;--as-co-tx:var(--link-hover)}html .callout[data-callout-type=info]{--as-co-bg:var(--surface-subtle);--as-co-bd:var(--edge-default);--as-co-tx:var(--text-default)}html .callout[data-callout-type=check],html .callout[data-callout-type=tip]{--as-co-bg:#eef8f4;--as-co-bd:#bbe2d3;--as-co-tx:#175c41}html .callout[data-callout-type=warning]{--as-co-bg:#fdf7ed;--as-co-bd:#f9dfb9;--as-co-tx:#845714}html .callout[data-callout-type=danger]{--as-co-bg:#fbedef;--as-co-bd:#edb8c1;--as-co-tx:#701322}.dark .callout[data-callout-type=note]{--as-co-bg:#0b1b56;--as-co-bd:#102984;--as-co-tx:#60a5fa}.dark .callout[data-callout-type=check],.dark .callout[data-callout-type=tip]{--as-co-bg:#0e3828;--as-co-bd:#175c41;--as-co-tx:#4ade80}.dark .callout[data-callout-type=warning]{--as-co-bg:#50350c;--as-co-bd:#845714;--as-co-tx:#fbbf24}.dark .callout[data-callout-type=danger]{--as-co-bg:#440c15;--as-co-bd:#701322;--as-co-tx:#f87171}html .callout:is(\n [data-callout-type=\"note\"],\n [data-callout-type=\"info\"],\n [data-callout-type=\"tip\"],\n [data-callout-type=\"check\"],\n [data-callout-type=\"warning\"],\n [data-callout-type=\"danger\"]\n ){background-color:var(--as-co-bg);border-color:var(--as-co-bd);color:var(--as-co-tx)}html #sidebar-content a svg,html .callout[data-callout-type] [data-component-part=callout-content],html .callout[data-callout-type] [data-component-part=callout-icon] svg{color:inherit}html .mdx-content strong{color:var(--text-default);font-weight:500}html .mdx-content a:not(.callout *){color:var(--link)}html .mdx-content a:not(.callout *):hover{color:var(--link-hover);border-bottom-width:1px}html .mdx-content :not(pre)>code{background-color:var(--surface-subtle);color:var(--text-default);border-radius:8px}html .mdx-content table{border-collapse:collapse;font-size:.875rem}html .mdx-content table td,html .mdx-content table th{border:1px solid var(--edge-default);padding:.5rem 1.25rem}html .mdx-content table th{background-color:var(--surface-subtle);font-weight:400;color:var(--text-secondary)}html .mdx-content table td{color:var(--text-default)}@media (min-width:1024px){html #sidebar-content{background-color:var(--surface-subtle);border-right:1px solid var(--edge-default)}html #sidebar-content a{border-radius:8px}html #sidebar-content a:hover{background-color:var(--surface-hover)}html #sidebar-content a[aria-current=page]{background-color:var(--surface-active);color:var(--text-strong)}}html #content-side-layout nav a{font-size:14px;font-weight:400;color:var(--text-secondary);text-shadow:none}html #content-side-layout nav a:hover{color:var(--link)}html #content-side-layout nav a[aria-current=location]{color:var(--link);font-weight:500}html #content-side-layout nav [data-layout-item=toc-indicator],html #pagination>a svg{display:none}html #content-side-layout li.toc-item{padding-left:0}html #content-side-layout ul.toc ul{margin-left:0}html #content-side-layout nav>h2[data-layout-item=toc-title]{margin-bottom:12px}html #content-side-layout li.toc-item:not([data-depth=\"0\"])>a{border-left:1px solid var(--edge-default)}html #content-side-layout li.toc-item[data-depth=\"0\"]+li.toc-item:not([data-depth=\"0\"])>a{margin-top:6px}html #content-side-layout li.toc-item:not([data-depth=\"0\"]):has(+li.toc-item[data-depth=\"0\"])>a{margin-bottom:6px}html #pagination{display:flex;gap:0;margin-top:1.5rem;margin-bottom:1.5rem;border:1px solid var(--edge-strong);border-radius:8px;overflow:hidden}html #pagination>div:empty{display:none}html #pagination>a{flex:1 1 0;position:relative;padding:1rem;border:0;border-radius:0}html #pagination>a:first-child{padding-left:2.5rem}html #pagination>a:last-child{justify-content:flex-end;padding-right:2.5rem}html #pagination>a+a{border-left:1px solid var(--edge-strong)}html #pagination>a:hover{background-color:var(--surface-hover)}html #pagination>a>div{display:flex;flex-direction:column-reverse;gap:.25rem}html #pagination>a>div>*{margin:0}html #pagination>a>div>div:first-child{font-size:1.125rem;line-height:1.75rem;font-weight:400;color:var(--text-secondary);transition:color 300ms}html #pagination>a:hover>div>div:first-child{color:var(--link)}html #pagination>a span{font-size:.875rem;font-weight:500;letter-spacing:.025em;text-transform:uppercase;color:var(--text-subtle)}html #pagination>a::before{content:\"\";position:absolute;top:50%;width:13px;height:14px;transform:translateY(-50%);background-color:var(--text-secondary)}html #pagination>a:first-child::before{left:1rem;-webkit-mask:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/arrow-left.svg) center/contain no-repeat;mask:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/arrow-left.svg) center/contain no-repeat}html #pagination>a:last-child::before{right:1rem;-webkit-mask:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/arrow-right.svg) center/contain no-repeat;mask:url(https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/arrow-right.svg) center/contain no-repeat}@media (max-width:639px){html #pagination{flex-direction:column}html #pagination>a+a{border-left:0;border-top:1px solid var(--edge-default)}html #pagination>a:last-child{justify-content:flex-start;padding-left:2.5rem;padding-right:1rem}html #pagination>a:last-child>div>div:first-child{text-align:left}html #pagination>a:last-child>div>div:last-child{flex-direction:row}html #pagination>a:last-child::before{right:auto;left:1rem}}html .card{border-radius:8px;background-color:var(--page-bg);border-width:0;box-shadow:inset 0 0 0 1px var(--edge-strong)}html.dark .card{background-color:var(--panel-bg)}html .card:not(:has(ul)):hover{background-color:var(--surface-hover)}html .card [data-component-part=card-content-container]:not(.flex) [data-component-part=card-icon]{float:left;margin:.1875rem .625rem 0 0}html .card [data-component-part=card-content-container]:not(.flex) [data-component-part=card-title]{display:flex;align-items:center;margin-top:0}html .card [data-component-part=card-content-container]:not(.flex) [data-component-part=card-content]{margin-top:.5rem}html .accordion-group{border-radius:8px}html .accordion-group,html.dark .accordion-group{border-color:var(--edge-default)}:root{--as-tn-top:3rem}html .docs-translation-notice{position:sticky;top:var(--as-tn-top);z-index:10;display:flex;align-items:flex-start;gap:.625rem;margin:0 0 1.5rem;padding:.75rem 1rem;border:1px solid #becfea;border-radius:8px;background-color:#eff3fa;color:var(--link-hover);font-size:.875rem;line-height:1.5}html.dark .docs-translation-notice{border-color:#102984;background-color:#0b1b56;color:#60a5fa}html .docs-translation-notice__icon{flex:none;width:1.125rem;height:1.125rem;margin-top:.125rem}html .docs-translation-notice p{margin:0;color:inherit}html .docs-translation-notice a{color:inherit;text-decoration:underline;text-underline-offset:2px}html .docs-translation-notice a:hover{text-decoration:none}html .chat-assistant-send-button,html.dark .chat-assistant-send-button{background-color:var(--cta-bg)}html .chat-assistant-send-button:disabled,html.dark .chat-assistant-send-button:disabled{opacity:.3}"}],"page":{"pagePath":"go/instrumentations/gorilla-mux","slug":"/go/instrumentations/gorilla-mux","pageMetadata":{"title":"Gorilla Mux Instrumentation","sidebarTitle":"Gorilla mux","lastUpdatedDate":"2025-02-27","description":null,"href":"/go/instrumentations/gorilla-mux"},"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`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://github.com/gorilla/mux`,children:`Gorilla Mux`}),` is a popular request router and dispatcher for the Go language.`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`This project was deprecated in December 2022 and is no longer supported,\nhowever, we are aware that this is a popular tool among the Go community, and\nit’ll take a while for users to migrate their apps to new tool. That’s why\nwe’re providing support for Gorilla Mux apps, so you get valuable information\nfrom your services until you find a suitable replacement.`})}),`\n`,_jsx(Heading,{level:`2`,id:`setup`,children:`Setup`}),`\n`,_jsx(_components.p,{children:`To instrument your Gorilla Mux application, you’ll need to import the OpenTelemetry official instrumentation package:`}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Go`,numberOfLines:`1`,language:`go`,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:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})})}),`\n`,_jsxs(_components.p,{children:[`The Gorilla Mux instrumentation is packaged as a router middleware, as you can see in the example below, the tracer initialization is called before anything as described in more detail in the `,_jsx(_components.a,{href:`/go/configuration`,children:`Go Configuration`}),` section. Adding `,_jsx(_components.code,{children:`otelmux.Middleware()`}),` to your app router is all that you need to get all your requests instrumented.`]}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Go`,numberOfLines:`10`,language:`go`,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:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`func`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\tcleanup`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` initOpenTelemetry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\tdefer`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` cleanup`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\trouter`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` mux`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`NewRouter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`StrictSlash`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`\t// This middleware must be added before any middlewares or routes`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\trouter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Use`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`otelmux`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Middleware`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"your-app-name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`\t// Your routes, app's logic, and server start up`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`\t// ...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(Heading,{level:`2`,id:`reporting-request-parameters`,children:`Reporting request parameters`}),`\n`,_jsx(_components.p,{children:`By default, the Gorilla instrumentation does not report any incoming request parameters, like query strings and JSON body contents.`}),`\n`,_jsx(_components.p,{children:`To report these values to AppSignal, add a middleware to your Gorilla stack as follows:`}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Go`,numberOfLines:`82`,language:`go`,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:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`82`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\t\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`bytes`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\t\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`encoding/json`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\t\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`io/ioutil`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\t\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`net/http`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\t\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`net/url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\t\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`go.opentelemetry.io/otel/attribute`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\t\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`go.opentelemetry.io/otel/trace`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`func`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` recordParameters`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`next`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` http`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Handler`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`http`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Handler`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\treturn`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` http`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`HandlerFunc`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`func`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`w`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` http`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`ResponseWriter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`r`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` *`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`http`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tspan`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` trace`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`SpanFromContext`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`r`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`())`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`\t\t// Query parameters`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\trequestQueryParameters`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` r`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`URL`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Query`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tattributeQueryParameters`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` make`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`map`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#4EC9B0`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`any`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\t\tfor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` k`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`v`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` range`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` requestQueryParameters`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\tattributeQueryParameters`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`k`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` v`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\t\tif`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` len`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`attributeQueryParameters`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\tserializedQueryParams`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Marshal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`attributeQueryParameters`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\t\t\tif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ==`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` nil`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\t\tspan`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`SetAttributes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`attribute`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`String`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"appsignal.request.query_parameters\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#4EC9B0`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`serializedQueryParams`}),_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:`\t\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`\t\t// Request body payload`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`\t\tvar`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` serializedBodyPayload`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#4EC9B0`},children:` string`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`\t\tvar`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` payload`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` map`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#4EC9B0`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`interface`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\trequestBodyPayload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ioutil`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`ReadAll`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`r`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Body`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\t\tif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` nil`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\tnext`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`ServeHTTP`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`w`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`r`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\t\t\treturn`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\t}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tr`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Body`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ioutil`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`NopCloser`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`bytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`NewBuffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`requestBodyPayload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tcontentType`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` r`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Header`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Content-Type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\t\tif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` contentType`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ==`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"application/json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\tserializedBodyPayload`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`requestBodyPayload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\t} `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`else`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` contentType`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ==`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"application/x-www-form-urlencoded\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`\t\t\t// Parse form-urlencoded body`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\tvalues`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`ParseQuery`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#4EC9B0`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`requestBodyPayload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\t\t\tif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` nil`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\t\tnext`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`ServeHTTP`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`w`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`r`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\t\t\t\treturn`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`\t\t\t// Convert form values to a JSON-compatible map`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\tpayload`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` make`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`map`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#4EC9B0`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`interface`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{})`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\t\t\tfor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`val`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` range`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` values`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\t\t\t\tif`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` len`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`val`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`==`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\t\t\tpayload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` val`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\t\t\t} `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`else`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\t\t\tpayload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` val`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\t\t\t}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\t\t}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\tjson`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`_`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Marshal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`payload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\tserializedBodyPayload`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\t} `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`else`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\tnext`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`ServeHTTP`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`w`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`r`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\t\t\treturn`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\t}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\t\tif`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` len`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`serializedBodyPayload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\t\tspan`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`SetAttributes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`attribute`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`String`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"appsignal.request.payload\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`serializedBodyPayload`}),_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:`\t\t}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tnext`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`ServeHTTP`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`w`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`r`}),_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:`\t})`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`func`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`\t// Init OpenTelemetry`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\tcleanup`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` initOpenTelemetry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\tdefer`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` cleanup`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\trouter`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` mux`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`NewRouter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`StrictSlash`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\trouter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Use`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`otelmux`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Middleware`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"opentelemetry-go-gorillamux\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`\t// After the OpenTelemetry middleware, but before your other middlewares:`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\trouter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Use`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`recordParameters`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`\t// Other middlewares and router handlers go here...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]})}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":{"title":"Gorilla Mux Instrumentation","sidebarTitle":"Gorilla mux","lastUpdatedDate":"2025-02-27","description":null,"href":"/go/instrumentations/gorilla-mux"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Setup","slug":"setup","depth":2,"children":[]},{"title":"Reporting request parameters","slug":"reporting-request-parameters","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/appsignal-715f5a51/ad683df1f3f6cc41/auth-button.js","/_mintlify/custom/appsignal-715f5a51/97f6ba115303669a/posthog.js","/_mintlify/custom/appsignal-715f5a51/b643723f47c7b1af/pagination-labels.js","/_mintlify/custom/appsignal-715f5a51/87da33668b962870/sidebar-flow.js","/_mintlify/custom/appsignal-715f5a51/c6bd163f69476e3f/translation-notice.js","/_mintlify/custom/appsignal-715f5a51/61b48af0445cbf06/assistant-label.js","/_mintlify/custom/appsignal-715f5a51/2a90f4a4ba87667d/hubspot.js"],"subdomain":"appsignal-715f5a51","siteName":"AppSignal Documentation","title":"Gorilla Mux Instrumentation - AppSignal Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/go/instrumentations/gorilla-mux","matchLevel":0},"pt-BR":{"href":"/pt-BR/go/instrumentations/gorilla-mux","matchLevel":1,"noindex":true},"fr":{"href":"/fr/go/instrumentations/gorilla-mux","matchLevel":1,"noindex":true},"de":{"href":"/de/go/instrumentations/gorilla-mux","matchLevel":1,"noindex":true},"zh-CN":{"href":"/zh-CN/go/instrumentations/gorilla-mux","matchLevel":1,"noindex":true}}},"lastModified":"2026-10-26T11:44:38.280Z","originalFileLocation":"go/instrumentations/gorilla-mux.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"AppSignal Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/appsignal-715f5a51/ef4Z3pZiXQ79CLMp/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/appsignal-715f5a51/ef4Z3pZiXQ79CLMp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/appsignal-715f5a51/ef4Z3pZiXQ79CLMp/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/appsignal-715f5a51/ef4Z3pZiXQ79CLMp/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/appsignal-715f5a51/ef4Z3pZiXQ79CLMp/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/appsignal-715f5a51/ef4Z3pZiXQ79CLMp/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/appsignal-715f5a51/ef4Z3pZiXQ79CLMp/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/appsignal-715f5a51/ef4Z3pZiXQ79CLMp/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/appsignal-715f5a51/ef4Z3pZiXQ79CLMp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Gorilla Mux Instrumentation - AppSignal Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"AppSignal Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.appsignal.com/go/instrumentations/gorilla-mux\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://appsignal-715f5a51.mintlify.app/_mintlify/api/og/v2?division=Instrumentations\u0026amp;title=Gorilla+Mux+Instrumentation\u0026amp;theme=eba7c06073e5c7c27c639039\u0026amp;signature=522f293e6a0e2ee71fb672791d6e9d5bda21e90eacc248ad1a8674782d428978\">\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=\"Gorilla Mux Instrumentation - AppSignal Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://appsignal-715f5a51.mintlify.app/_mintlify/api/og/v2?division=Instrumentations\u0026amp;title=Gorilla+Mux+Instrumentation\u0026amp;theme=eba7c06073e5c7c27c639039\u0026amp;signature=522f293e6a0e2ee71fb672791d6e9d5bda21e90eacc248ad1a8674782d428978\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/appsignal-715f5a51/ef4Z3pZiXQ79CLMp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"AppSignal Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1b44da\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.appsignal.com/go/instrumentations/gorilla-mux\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/go/instrumentations/gorilla-mux.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.appsignal.com/#organization\",\"name\":\"AppSignal\",\"url\":\"https://www.appsignal.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/appsignal-715f5a51/5M0NK0KFu-w9Cutw/logo/dark.svg?fit=max\u0026auto=format\u0026n=5M0NK0KFu-w9Cutw\u0026q=85\u0026s=08633ef0322ee629d3264aaad3d3f737\"},\"sameAs\":[\"https://x.com/AppSignal\",\"https://github.com/appsignal\",\"https://nl.linkedin.com/company/appsignal\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.appsignal.com#website\",\"name\":\"AppSignal Documentation\",\"url\":\"https://docs.appsignal.com\",\"publisher\":{\"@id\":\"https://www.appsignal.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.appsignal.com/go/instrumentations/gorilla-mux#webpage\",\"url\":\"https://docs.appsignal.com/go/instrumentations/gorilla-mux\",\"name\":\"Gorilla Mux Instrumentation\",\"dateModified\":\"2025-02-27T00:00:00.000Z\",\"isPartOf\":{\"@id\":\"https://docs.appsignal.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.appsignal.com/go/instrumentations/gorilla-mux#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.appsignal.com/go/instrumentations/gorilla-mux#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Language SDKs\",\"item\":\"https://docs.appsignal.com/ruby\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Go\",\"item\":\"https://docs.appsignal.com/go\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Instrumentations\",\"item\":\"https://docs.appsignal.com/go/instrumentations\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Gorilla Mux Instrumentation\",\"item\":\"https://docs.appsignal.com/go/instrumentations/gorilla-mux\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.appsignal.com/go/instrumentations/gorilla-mux#article\",\"headline\":\"Gorilla Mux Instrumentation\",\"name\":\"Gorilla Mux Instrumentation\",\"url\":\"https://docs.appsignal.com/go/instrumentations/gorilla-mux\",\"mainEntityOfPage\":{\"@id\":\"https://docs.appsignal.com/go/instrumentations/gorilla-mux#webpage\"},\"dateModified\":\"2025-02-27T00:00:00.000Z\",\"publisher\":{\"@id\":\"https://www.appsignal.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.appsignal.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"AppSignal Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"AppSignal Documentation","nav":{"global":null,"languages":[{"language":"en","default":true,"tabs":[{"tab":"AppSignal Documentation","anchors":[{"anchor":"Homepage","icon":{"style":"solid","name":"rocket"},"pages":[{"title":"Homepage","href":"/getting-started"}]},{"anchor":"Features","icon":{"style":"solid","name":"star"},"pages":[{"title":"Features","href":"/features"}]},{"anchor":"SDKs \u0026 telemetry","icon":{"style":"solid","name":"cube"},"groups":[{"group":"SDKs \u0026 telemetry","pages":[{"title":"SDKs \u0026 telemetry","sidebarTitle":"Overview","icon":"compass","href":"/sdks"}]},{"group":"Language SDKs","pages":[{"group":"Ruby","icon":{"style":"solid","name":"gem"},"pages":[{"title":"AppSignal for Ruby","sidebarTitle":"Overview","href":"/ruby"},{"group":"Installation","pages":[{"title":"Installing AppSignal for Ruby","sidebarTitle":"Overview","href":"/ruby/installation"},{"title":"Upgrade from AppSignal for Ruby gem 4.x to 5.x","sidebarTitle":"Upgrading from 4 to 5","href":"/ruby/installation/upgrade-from-4-to-5"},{"title":"Upgrade from AppSignal for Ruby gem 3.x to 4.x","sidebarTitle":"Upgrading from 3 to 4","href":"/ruby/installation/upgrade-from-3-to-4"},{"title":"Upgrade from AppSignal for Ruby gem 2.x to 3.x","sidebarTitle":"Upgrading from 2 to 3","href":"/ruby/installation/upgrade-from-2-to-3"}]},{"group":"Configuration","pages":[{"title":"AppSignal Ruby configuration","sidebarTitle":"Overview","href":"/ruby/configuration"},{"title":"Ruby gem configuration options","sidebarTitle":"Options","href":"/ruby/configuration/options"},{"title":"AppSignal Ruby Collector Configuration","sidebarTitle":"Collector","tag":"BETA","href":"/ruby/configuration/collector"},{"title":"AppSignal for Ruby load order","sidebarTitle":"Load order","href":"/ruby/configuration/load-order"}]},{"group":"Integrations","pages":[{"title":"Distributed tracing for Ruby","sidebarTitle":"Distributed tracing","href":"/ruby/distributed-tracing"},{"title":"Ruby integrations","sidebarTitle":"Overview","href":"/ruby/integrations"},{"group":"Active Job","root":{"title":"Active Job","href":"/ruby/integrations/active-job"},"pages":[{"title":"GoodJob","href":"/ruby/integrations/goodjob"}]},{"title":"Action Cable","href":"/ruby/integrations/action-cable"},{"title":"Capistrano","href":"/ruby/integrations/capistrano"},{"title":"CodeOwnership","href":"/ruby/integrations/code-ownership"},{"title":"DataMapper","href":"/ruby/integrations/datamapper"},{"title":"Delayed::Job","href":"/ruby/integrations/delayed-job"},{"title":"Elasticsearch","href":"/ruby/integrations/elasticsearch"},{"title":"Excon","href":"/ruby/integrations/excon"},{"title":"Faraday","href":"/ruby/integrations/faraday"},{"title":"Garbage Collection","href":"/ruby/integrations/garbage-collection"},{"title":"Global VM Lock","href":"/ruby/integrations/global-vm-lock"},{"title":"Grape","href":"/ruby/integrations/grape"},{"title":"GraphQL","href":"/ruby/integrations/graphql"},{"title":"Hanami","href":"/ruby/integrations/hanami"},{"title":"HTTP.rb gem","href":"/ruby/integrations/http"},{"title":"MongoDB instrumentation","href":"/ruby/integrations/mongodb"},{"title":"Multiple Rack libraries","href":"/ruby/integrations/rack-libraries"},{"title":"Net::HTTP","href":"/ruby/integrations/net-http"},{"title":"Ownership","href":"/ruby/integrations/ownership"},{"title":"Padrino","href":"/ruby/integrations/padrino"},{"title":"Puma","href":"/ruby/integrations/puma"},{"title":"Que","href":"/ruby/integrations/que"},{"title":"Rack","href":"/ruby/integrations/rack"},{"title":"Rake task monitoring","href":"/ruby/integrations/rake"},{"title":"Redis gem","href":"/ruby/integrations/redis"},{"title":"Resque","href":"/ruby/integrations/resque"},{"title":"Ruby Object Mapper (ROM)","href":"/ruby/integrations/rom"},{"title":"Ruby on Rails","href":"/ruby/integrations/rails"},{"title":"Ruby VM","href":"/ruby/integrations/ruby-vm"},{"title":"Sequel","href":"/ruby/integrations/sequel"},{"title":"Shoryuken","href":"/ruby/integrations/shoryuken"},{"title":"Sidekiq","href":"/ruby/integrations/sidekiq"},{"title":"Sinatra","href":"/ruby/integrations/sinatra"},{"title":"Solid Queue","href":"/ruby/integrations/solidqueue"},{"title":"ViewComponent gem","href":"/ruby/integrations/view-component"},{"title":"Webmachine","href":"/ruby/integrations/webmachine"}]},{"group":"Custom instrumentation","pages":[{"title":"Custom instrumentation for Ruby","sidebarTitle":"Overview","href":"/ruby/instrumentation"},{"title":"Integrating AppSignal in Ruby","sidebarTitle":"Integrating AppSignal","href":"/ruby/instrumentation/integrating-appsignal"},{"title":"Custom instrumentation for Ruby","sidebarTitle":"Instrumentation","href":"/ruby/instrumentation/instrumentation"},{"title":"Exception handling","href":"/ruby/instrumentation/exception-handling"},{"title":"Breadcrumbs","href":"/ruby/instrumentation/breadcrumbs"},{"title":"Ignore instrumentation","href":"/ruby/instrumentation/ignore-instrumentation"},{"title":"Instrumentation for scripts and background jobs","sidebarTitle":"Scripts and background jobs","href":"/ruby/instrumentation/background-jobs"},{"title":"Add method instrumentation","sidebarTitle":"Method instrumentation","href":"/ruby/instrumentation/method-instrumentation"},{"title":"Event formatters","href":"/ruby/instrumentation/event-formatters"},{"title":"AppSignal for Ruby and OpenTelemetry","sidebarTitle":"OpenTelemetry","href":"/ruby/instrumentation/opentelemetry"},{"title":"Minutely probes","href":"/ruby/instrumentation/minutely-probes"},{"title":"Track request queue time","sidebarTitle":"Request queue time","href":"/ruby/instrumentation/request-queue-time"},{"title":"Custom markers","href":"/ruby/instrumentation/custom-markers"}]},{"group":"Command line tools","pages":[{"title":"AppSignal for Ruby: Command-line tools","sidebarTitle":"Overview","href":"/ruby/command-line"},{"title":"AppSignal for Ruby: Install","sidebarTitle":"Install","href":"/ruby/command-line/install"},{"title":"AppSignal for Ruby: Diagnose tool","sidebarTitle":"Diagnose","href":"/ruby/command-line/diagnose"},{"title":"AppSignal for Ruby: Demo tool","sidebarTitle":"Demo","href":"/ruby/command-line/demo"}]},{"group":"Logging","pages":[{"title":"Logging from Ruby","sidebarTitle":"Ruby","href":"/logging/integrations/ruby"}]}]},{"group":"Elixir","icon":{"style":"solid","name":"droplet"},"pages":[{"title":"AppSignal for Elixir","sidebarTitle":"Overview","href":"/elixir"},{"group":"Installation","pages":[{"title":"Installing AppSignal for Elixir","sidebarTitle":"Overview","href":"/elixir/installation"},{"title":"Installing AppSignal in an umbrella application","sidebarTitle":"Umbrella applications","href":"/elixir/installation/umbrella"}]},{"group":"Configuration","pages":[{"title":"AppSignal Elixir configuration","sidebarTitle":"Overview","href":"/elixir/configuration"},{"title":"Elixir package configuration options","sidebarTitle":"Options","href":"/elixir/configuration/options"},{"title":"AppSignal for Elixir load order","sidebarTitle":"Load order","href":"/elixir/configuration/load-order"},{"title":"Session data filtering","href":"/elixir/configuration/session-data-filtering"}]},{"group":"Integrations","pages":[{"title":"Elixir integrations","sidebarTitle":"Overview","href":"/elixir/integrations"},{"title":"Absinthe","href":"/elixir/integrations/absinthe"},{"title":"Broadway","href":"/elixir/integrations/broadway"},{"title":"Instrumenting Ecto queries","sidebarTitle":"Ecto","href":"/elixir/integrations/ecto"},{"title":"Erlang","href":"/elixir/integrations/erlang"},{"title":"Finch","href":"/elixir/integrations/finch"},{"title":"HTTPoison","href":"/elixir/integrations/httpoison"},{"title":"Oban","href":"/elixir/integrations/oban"},{"title":"Integrating AppSignal into Phoenix","sidebarTitle":"Phoenix","href":"/elixir/integrations/phoenix"},{"title":"Integrating AppSignal into Plug","sidebarTitle":"Plug","href":"/elixir/integrations/plug"},{"title":"Tesla","href":"/elixir/integrations/tesla"}]},{"group":"Custom instrumentation","pages":[{"title":"Custom instrumentation for Elixir","sidebarTitle":"Overview","href":"/elixir/instrumentation"},{"title":"Integrating AppSignal in Elixir","sidebarTitle":"Integrating AppSignal","href":"/elixir/instrumentation/integrating-appsignal"},{"title":"Custom instrumentation for Elixir","sidebarTitle":"Instrumentation","href":"/elixir/instrumentation/instrumentation"},{"title":"Exception handling","href":"/elixir/instrumentation/exception-handling"},{"title":"Minutely probes","href":"/elixir/instrumentation/minutely-probes"},{"title":"Mix tasks","href":"/elixir/instrumentation/mix_tasks"}]},{"group":"Command line tools","pages":[{"title":"AppSignal for Elixir: Command line tools","sidebarTitle":"Overview","href":"/elixir/command-line"},{"title":"AppSignal for Elixir: Install","sidebarTitle":"Install","href":"/elixir/command-line/install"},{"title":"AppSignal for Elixir: Diagnose tool","sidebarTitle":"Diagnose","href":"/elixir/command-line/diagnose"},{"title":"AppSignal for Elixir: Demonstration tool","sidebarTitle":"Demo","href":"/elixir/command-line/demo"},{"title":"AppSignal for Elixir: Check installation tool","sidebarTitle":"Check install","href":"/elixir/command-line/check-install"}]},{"title":"Elixir Releases","sidebarTitle":"Releases","href":"/elixir/releases"},{"title":"Why a NIF?","sidebarTitle":"Why a NIF?","href":"/elixir/why-nif"},{"group":"Logging","pages":[{"title":"Logging from Elixir","sidebarTitle":"Elixir","href":"/logging/integrations/elixir"}]}]},{"group":"Node.js","icon":{"style":"solid","name":"node-js"},"pages":[{"title":"AppSignal for Node.js","sidebarTitle":"Overview","href":"/nodejs/3.x"},{"title":"Migration Guide","href":"/nodejs/3.x/migration-guide"},{"title":"Installation","href":"/nodejs/3.x/installation"},{"title":"Bundling with esbuild","href":"/nodejs/3.x/bundling-with-esbuild"},{"group":"Configuration","pages":[{"title":"AppSignal for Node.js configuration","sidebarTitle":"Overview","href":"/nodejs/3.x/configuration"},{"title":"Node.js package configuration options","sidebarTitle":"Options","href":"/nodejs/3.x/configuration/options"},{"title":"AppSignal for Node.js load order","sidebarTitle":"Load order","href":"/nodejs/3.x/configuration/load-order"}]},{"group":"Custom instrumentation","pages":[{"title":"Instrumentation","sidebarTitle":"Overview","href":"/nodejs/3.x/instrumentation"},{"title":"Custom instrumentation for Node.js","sidebarTitle":"Instrumentation","href":"/nodejs/3.x/instrumentation/instrumentation"},{"title":"Additional OpenTelemetry instrumentations","sidebarTitle":"Additional instrumentations","href":"/nodejs/3.x/instrumentation/additional-instrumentations"},{"title":"Exception handling","href":"/nodejs/3.x/instrumentation/exception-handling"},{"title":"Minutely probes","href":"/nodejs/3.x/instrumentation/minutely-probes"}]},{"group":"Integrations","pages":[{"title":"Node.js Integrations","sidebarTitle":"Overview","href":"/nodejs/3.x/integrations"},{"title":"amqplib","href":"/nodejs/3.x/integrations/amqplib"},{"title":"Apollo Gateway","href":"/nodejs/3.x/integrations/apollo-gateway"},{"title":"BullMQ","href":"/nodejs/3.x/integrations/bullmq"},{"title":"Elasticsearch","href":"/nodejs/3.x/integrations/elasticsearch"},{"title":"Express","href":"/nodejs/3.x/integrations/express"},{"title":"Fastify","href":"/nodejs/3.x/integrations/fastify"},{"title":"GraphQL","href":"/nodejs/3.x/integrations/graphql"},{"title":"Knex.js","href":"/nodejs/3.x/integrations/knexjs"},{"title":"Koa.js","href":"/nodejs/3.x/integrations/koajs"},{"title":"MongoDB","href":"/nodejs/3.x/integrations/mongo"},{"title":"Mongoose","href":"/nodejs/3.x/integrations/mongoose"},{"title":"MySQL","href":"/nodejs/3.x/integrations/mysql"},{"title":"NestJS","href":"/nodejs/3.x/integrations/nestjs"},{"title":"Next.js","href":"/nodejs/3.x/integrations/nextjs"},{"title":"Node.js Core","href":"/nodejs/3.x/integrations/core"},{"title":"PostgreSQL client","href":"/nodejs/3.x/integrations/pg"},{"title":"Prisma","href":"/nodejs/3.x/integrations/prisma"},{"title":"Redis","href":"/nodejs/3.x/integrations/redis"},{"title":"Remix","href":"/nodejs/3.x/integrations/remix"},{"title":"Restify","href":"/nodejs/3.x/integrations/restify"}]},{"group":"Command line tools","pages":[{"title":"AppSignal for Node.js: Command line tools","sidebarTitle":"Overview","href":"/nodejs/3.x/command-line"},{"title":"AppSignal for Node.js: Diagnose tool","sidebarTitle":"Diagnose","href":"/nodejs/3.x/command-line/diagnose"},{"title":"AppSignal for Node.js: Demonstration tool","sidebarTitle":"Demo","href":"/nodejs/3.x/command-line/demo"}]},{"group":"Logging","pages":[{"title":"Logging from Node.js","sidebarTitle":"Node.js","href":"/logging/integrations/nodejs"}]}]},{"group":"Python","icon":{"style":"solid","name":"python"},"pages":[{"title":"AppSignal for Python","sidebarTitle":"Overview","href":"/python"},{"title":"AppSignal Python Installation","sidebarTitle":"Installation","href":"/python/installation"},{"group":"Configuration","pages":[{"title":"AppSignal Python Configuration","sidebarTitle":"Overview","href":"/python/configuration"},{"title":"Python package configuration options","sidebarTitle":"Options","href":"/python/configuration/options"},{"title":"AppSignal Python Collector Configuration","sidebarTitle":"Collector","href":"/python/configuration/collector"},{"title":"AppSignal for Python load order","sidebarTitle":"Load order","href":"/python/configuration/load-order"}]},{"group":"Custom instrumentation","pages":[{"title":"Custom instrumentation for Python","sidebarTitle":"Overview","href":"/python/instrumentation"},{"title":"Python Custom Instrumentation","sidebarTitle":"Instrumentation","href":"/python/instrumentation/instrumentation"},{"title":"Python exception handling","sidebarTitle":"Exception handling","href":"/python/instrumentation/exception-handling"},{"title":"Minutely probes","href":"/python/instrumentation/minutely-probes"}]},{"group":"Instrumentations","pages":[{"title":"Python Instrumentations","sidebarTitle":"Overview","href":"/python/instrumentations"},{"title":"Celery Instrumentation","sidebarTitle":"Celery","href":"/python/instrumentations/celery"},{"title":"Django Instrumentation","sidebarTitle":"Django","href":"/python/instrumentations/django"},{"title":"Flask Instrumentation","sidebarTitle":"Flask","href":"/python/instrumentations/flask"},{"title":"FastAPI Instrumentation","sidebarTitle":"FastAPI","href":"/python/instrumentations/fastapi"},{"title":"Jinja2 Instrumentation","sidebarTitle":"Jinja2","href":"/python/instrumentations/jinja2"},{"title":"MySQL Instrumentation","sidebarTitle":"MySQL","href":"/python/instrumentations/mysql"},{"title":"Pika","sidebarTitle":"Pika","href":"/python/instrumentations/pika"},{"title":"PostgreSQL Instrumentation","sidebarTitle":"PostgreSQL","href":"/python/instrumentations/postgresql"},{"title":"Redis Instrumentation","sidebarTitle":"Redis","href":"/python/instrumentations/redis"},{"title":"Requests Instrumentation","sidebarTitle":"Requests","href":"/python/instrumentations/requests"},{"title":"Starlette Instrumentation","sidebarTitle":"Starlette","href":"/python/instrumentations/starlette"},{"title":"SQLAlchemy Instrumentation","sidebarTitle":"SQLAlchemy","href":"/python/instrumentations/sqlalchemy"},{"title":"SQLite Instrumentation","sidebarTitle":"SQLite","href":"/python/instrumentations/sqlite"},{"title":"WSGI/ASGI Instrumentation","sidebarTitle":"WSGI/ASGI","href":"/python/instrumentations/wsgi"}]},{"group":"Command line tools","pages":[{"title":"AppSignal for Python: Command-line tools","sidebarTitle":"Overview","href":"/python/command-line"},{"title":"AppSignal for Python: Install","sidebarTitle":"Install","href":"/python/command-line/install"},{"title":"AppSignal for Python: Diagnose tool","sidebarTitle":"Diagnose","href":"/python/command-line/diagnose"},{"title":"AppSignal for Python: Demo tool","sidebarTitle":"Demo","href":"/python/command-line/demo"}]},{"group":"Logging","pages":[{"title":"Logging from Python","sidebarTitle":"Python","href":"/logging/integrations/python"}]}]},{"group":"PHP","icon":{"style":"solid","name":"php"},"pages":[{"title":"AppSignal for PHP","sidebarTitle":"Overview","href":"/php"},{"title":"AppSignal for PHP requirements","sidebarTitle":"Requirements","href":"/php/requirements"},{"title":"AppSignal for PHP installation","sidebarTitle":"PHP installation","href":"/php/installation"},{"group":"Configuration","pages":[{"title":"AppSignal for PHP configuration","sidebarTitle":"Overview","href":"/php/configuration"},{"title":"AppSignal for PHP configuration options","sidebarTitle":"Options","href":"/php/configuration/options"},{"title":"AppSignal for PHP config load order","sidebarTitle":"Load order","href":"/php/configuration/load-order"}]},{"title":"PHP custom instrumentation","sidebarTitle":"Instrumentation","href":"/php/instrumentation"},{"title":"PHP exception handling","sidebarTitle":"Exception handling","href":"/php/exception-handling"},{"title":"Custom metrics","href":"/metrics/custom"},{"group":"Logging","pages":[{"title":"Logging From PHP","sidebarTitle":"Logging from PHP","href":"/logging/integrations/php"}]},{"group":"Integrations","pages":[{"title":"PHP integrations","sidebarTitle":"Overview","href":"/php/integrations"},{"title":"Laravel","href":"/php/integrations/laravel"},{"title":"Monolog","href":"/php/integrations/monolog"},{"title":"Symfony","href":"/php/integrations/symfony"}]},{"group":"Command line tools","pages":[{"title":"AppSignal for PHP: Command-line tools","sidebarTitle":"Overview","href":"/php/command-line"},{"title":"AppSignal for PHP: Demo command","sidebarTitle":"Demo","href":"/php/command-line/demo"},{"title":"AppSignal CLI: Install","sidebarTitle":"Install","href":"/php/command-line/install"},{"title":"AppSignal for PHP CLI: Verify command","sidebarTitle":"Verify","href":"/php/command-line/verify"}]}]},{"group":"JavaScript (browser)","icon":{"style":"solid","name":"js"},"tag":"NEW","pages":[{"title":"AppSignal for Browser","sidebarTitle":"Overview","href":"/browser"},{"title":"Installing AppSignal for Browser","sidebarTitle":"Installation","href":"/browser/installation"},{"title":"AppSignal for Browser configuration options","sidebarTitle":"Configuration","href":"/browser/configuration"},{"title":"Browser error tracking","sidebarTitle":"Error tracking","href":"/browser/error-tracking"},{"title":"Browser breadcrumbs","sidebarTitle":"Breadcrumbs","href":"/browser/breadcrumbs"},{"title":"Browser web vitals","sidebarTitle":"Web vitals","href":"/browser/web-vitals"},{"title":"Distributed tracing for Browser","sidebarTitle":"Distributed tracing","href":"/browser/distributed-tracing"},{"title":"Privacy and filtering for browser data","sidebarTitle":"Privacy and filtering","href":"/browser/privacy"},{"title":"AppSignal for Browser with React","sidebarTitle":"React","href":"/browser/react"},{"title":"Migrating from AppSignal for JavaScript","sidebarTitle":"Migration guide","href":"/browser/migration"},{"title":"Troubleshooting browser monitoring","sidebarTitle":"Troubleshooting","href":"/browser/troubleshooting"}]},{"group":"JavaScript","icon":{"style":"solid","name":"js"},"pages":[{"title":"AppSignal for JavaScript","sidebarTitle":"Overview","href":"/front-end"},{"title":"Installing AppSignal for JavaScript","sidebarTitle":"Installation","href":"/front-end/installation"},{"group":"Configuration","pages":[{"title":"AppSignal for JavaScript configuration","sidebarTitle":"Overview","href":"/front-end/configuration"},{"title":"AppSignal for JavaScript configuration options","sidebarTitle":"Options","href":"/front-end/configuration/options"}]},{"title":"Frontend error catching","sidebarTitle":"Error handling","href":"/front-end/error-handling"},{"title":"Creating and Using a Span","href":"/front-end/span"},{"title":"Hooks","href":"/front-end/hooks"},{"title":"Breadcrumbs","href":"/front-end/breadcrumbs"},{"title":"Sourcemaps","href":"/front-end/sourcemaps"},{"title":"AppSignal for JavaScript with React Native and Expo","sidebarTitle":"React Native and Expo","href":"/front-end/react-native"},{"group":"Integrations","pages":[{"title":"AppSignal for JavaScript integrations","sidebarTitle":"Overview","href":"/front-end/integrations"},{"title":"@appsignal/angular","sidebarTitle":"Angular","href":"/front-end/integrations/angular"},{"title":"@appsignal/ember","sidebarTitle":"Ember","href":"/front-end/integrations/ember"},{"title":"@appsignal/preact","href":"/front-end/integrations/preact"},{"title":"@appsignal/react","sidebarTitle":"React","href":"/front-end/integrations/react"},{"title":"@appsignal/stimulus","sidebarTitle":"Stimulus","href":"/front-end/integrations/stimulus"},{"title":"@appsignal/vue","sidebarTitle":"Vue","href":"/front-end/integrations/vue"},{"title":"@appsignal/urql","sidebarTitle":"Urql","href":"/front-end/integrations/urql"}]},{"group":"Plugins","pages":[{"title":"AppSignal for JavaScript plugins","sidebarTitle":"Overview","href":"/front-end/plugins"},{"title":"plugin-breadcrumbs-console","href":"/front-end/plugins/plugin-breadcrumbs-console"},{"title":"plugin-breadcrumbs-network","href":"/front-end/plugins/plugin-breadcrumbs-network"},{"title":"plugin-window-events","href":"/front-end/plugins/plugin-window-events"},{"title":"plugin-path-decorator","href":"/front-end/plugins/plugin-path-decorator"}]},{"title":"Troubleshooting","href":"/front-end/troubleshooting"}]},{"group":"Go","icon":{"style":"solid","name":"golang"},"pages":[{"title":"AppSignal for Go","sidebarTitle":"Overview","href":"/go"},{"title":"OpenTelemetry Go Installation","href":"/go/installation"},{"group":"Configuration","pages":[{"title":"AppSignal Go Configuration","sidebarTitle":"Overview","href":"/go/configuration"},{"title":"Go configuration options","sidebarTitle":"Options","href":"/go/configuration/options"}]},{"group":"Instrumentations","pages":[{"title":"Go Instrumentations","sidebarTitle":"Overview","href":"/go/instrumentations"},{"title":"Gin-gonic Instrumentation","sidebarTitle":"Gin-gonic","description":null,"href":"/go/instrumentations/gin-gonic"},{"title":"Gorilla Mux Instrumentation","sidebarTitle":"Gorilla mux","href":"/go/instrumentations/gorilla-mux"},{"title":"MongoDB instrumentation","sidebarTitle":"Mongo","description":null,"href":"/go/instrumentations/mongo"},{"title":"Go-Redis Instrumentation","sidebarTitle":"Redis","href":"/go/instrumentations/redis"},{"title":"SQL Instrumentation","sidebarTitle":"SQL","href":"/go/instrumentations/sql"}]},{"title":"Go Custom Instrumentation","sidebarTitle":"Custom Instrumentation","href":"/go/custom-instrumentation"},{"group":"Logging","pages":[{"title":"Logging from Go","sidebarTitle":"Go","href":"/logging/integrations/go"}]}]},{"group":"Java","icon":{"style":"solid","name":"java"},"pages":[{"title":"AppSignal for Java","sidebarTitle":"Overview","href":"/java"},{"title":"OpenTelemetry Java Installation","href":"/java/installation"},{"group":"Configuration","pages":[{"title":"AppSignal Java Configuration","sidebarTitle":"Overview","href":"/java/configuration"},{"title":"Java configuration options","sidebarTitle":"Options","href":"/java/configuration/options"}]},{"group":"Instrumentations","pages":[{"title":"Java Instrumentations","sidebarTitle":"Overview","href":"/java/instrumentations"},{"title":"Elasticsearch Instrumentation","sidebarTitle":"Elasticsearch","href":"/java/instrumentations/elasticsearch"}]},{"title":"Java Custom Instrumentation","sidebarTitle":"Custom Instrumentation","href":"/java/custom-instrumentation"},{"group":"Logging","pages":[{"title":"Logging from Java","sidebarTitle":"Java","href":"/logging/integrations/java"}]}]},{"group":"OpenTelemetry","icon":{"style":"solid","name":"telescope"},"pages":[{"title":"OpenTelemetry","sidebarTitle":"Overview","href":"/opentelemetry"},{"group":"Installation","pages":[{"title":"OpenTelemetry","sidebarTitle":"Overview","href":"/opentelemetry/installation"},{"title":"OpenTelemetry Ruby Installation","sidebarTitle":"Ruby","href":"/opentelemetry/installation/ruby"},{"title":"OpenTelemetry Elixir Installation","sidebarTitle":"Elixir","href":"/opentelemetry/installation/elixir"},{"title":"OpenTelemetry Node.js Installation","sidebarTitle":"Node.js","href":"/opentelemetry/installation/nodejs"},{"title":"OpenTelemetry Python Installation","sidebarTitle":"Python","href":"/opentelemetry/installation/python"},{"title":"OpenTelemetry Java Installation","href":"/java/installation"},{"title":"OpenTelemetry Go Installation","href":"/go/installation"},{"title":"AppSignal for PHP installation","sidebarTitle":"PHP installation","href":"/php/installation"},{"title":"Traces from Vercel applications","sidebarTitle":"Vercel traces","href":"/vercel/traces"},{"title":"OpenTelemetry Generic Installation","sidebarTitle":"Other","href":"/opentelemetry/installation/generic"}]},{"group":"Configuration","pages":[{"title":"OpenTelemetry Configuration","sidebarTitle":"Overview","href":"/opentelemetry/configuration"},{"title":"OpenTelemetry config options","sidebarTitle":"Options","href":"/opentelemetry/configuration/options"}]},{"group":"Custom instrumentation","pages":[{"title":"Custom Instrumentation","sidebarTitle":"Overview","href":"/opentelemetry/custom-instrumentation"},{"title":"OpenTelemetry instrumentation attributes","href":"/opentelemetry/custom-instrumentation/attributes"}]},{"title":"OpenTelemetry Troubleshooting","sidebarTitle":"Troubleshooting","href":"/opentelemetry/troubleshooting"}]}]},{"group":"Telemetry tools","pages":[{"group":"Wrap","icon":{"style":"solid","name":"terminal"},"pages":[{"title":"AppSignal Wrap for process monitoring","sidebarTitle":"Overview","href":"/wrap"},{"title":"Wrap process monitoring","sidebarTitle":"Wrap process monitoring","href":"/logging/wrap-process-monitoring"}]},{"group":"Collector","icon":{"style":"solid","name":"filter"},"pages":[{"title":"AppSignal Collector","sidebarTitle":"Overview","href":"/collector"},{"title":"Hosted vs self-hosted collectors","sidebarTitle":"Hosted vs self-hosted","href":"/collector/hosted-vs-self-hosted"},{"group":"Installation","pages":[{"title":"AppSignal Collector installation","sidebarTitle":"Overview","href":"/collector/installation"},{"title":"Collector Linux package installation","sidebarTitle":"Linux package","href":"/collector/installation/linux-package"},{"title":"Collector Docker image installation","sidebarTitle":"Docker image","href":"/collector/installation/docker-image"},{"title":"Collector Platform as a Service Installation","sidebarTitle":"Platform as a Service","href":"/collector/installation/platform-as-a-service"}]},{"group":"Configuration","pages":[{"title":"AppSignal Collector configuration","sidebarTitle":"Overview","href":"/collector/configuration"},{"title":"Collector configuration options","sidebarTitle":"Options","href":"/collector/configuration/options"}]}]},{"group":"Standalone agent","icon":{"style":"solid","name":"server"},"pages":[{"group":"Installation","pages":[{"title":"Standalone AppSignal Agent installation","sidebarTitle":"Overview","href":"/standalone-agent/installation"},{"title":"Standalone AppSignal Agent Linux package installation","sidebarTitle":"Linux package","href":"/standalone-agent/installation/linux-package"},{"title":"Standalone AppSignal Agent Docker image","sidebarTitle":"Docker image","href":"/standalone-agent/installation/docker-image"}]},{"group":"Configuration","pages":[{"title":"AppSignal Standalone agent configuration","sidebarTitle":"Overview","href":"/standalone-agent/configuration"},{"title":"Standalone agent configuration options","sidebarTitle":"Configuration options","href":"/standalone-agent/configuration/options"},{"title":"AppSignal Standalone agent config load order","sidebarTitle":"Load order","href":"/standalone-agent/configuration/load-order"}]},{"title":"StatsD in Standalone AppSignal Agent","sidebarTitle":"StatsD Metrics","href":"/standalone-agent/statsd"}]}]}]},{"anchor":"Integrations","icon":{"style":"solid","name":"puzzle-piece"},"pages":[{"title":"Integrations","href":"/application/integrations"}]},{"anchor":"API","icon":{"style":"solid","name":"code"},"pages":[{"title":"API","href":"/api"}]},{"anchor":"AppSignal for agents","icon":{"style":"solid","name":"robot"},"pages":[{"title":"AppSignal for agents","href":"/agents"}]},{"anchor":"Tutorials","icon":{"style":"solid","name":"graduation-cap"},"pages":[{"title":"Tutorials","href":"/tutorials"}]},{"anchor":"Account \u0026 Support","icon":{"style":"solid","name":"circle-question"},"pages":[{"title":"Account \u0026 Support","href":"/account-support"}]}]},{"tab":"Resources","menu":[{"item":"Startups","icon":"rocket","href":"https://www.appsignal.com/startups"},{"item":"Blog","icon":"newspaper","href":"https://blog.appsignal.com"},{"item":"Changelog","icon":"clock-rotate-left","href":"https://www.appsignal.com/changelog"},{"item":"Support","icon":"envelope","href":"mailto:support@appsignal.com"}]}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/pt-BR/go/instrumentations/gorilla-mux"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/go/instrumentations/gorilla-mux"}]},{"language":"de","pages":[{"title":"de","href":"/de/go/instrumentations/gorilla-mux"}]},{"language":"zh-CN","pages":[{"title":"zh-CN","href":"/zh-CN/go/instrumentations/gorilla-mux"}]}]},"basePath":"","title":"Gorilla Mux Instrumentation - AppSignal Documentation","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}