Migrate to Stabilized OpenTelemetry HTTP Semantic Conventions
Update your instrumentation to the stable OpenTelemetry HTTP semantic conventions to avoid breaking changes introduced when conventions were stabilized in 2023.
If you are affected by the OpenTelemetry HTTP semantic convention stabilization breaking changes, this guide will help you migrate your application from the old semantics to the new, stable semantics.To identify whether you are affected, visit OpenTelemetry HTTP Semantic Conventions Compatibility.
As a part of the stabilization breaking changes, 17 attributes in the HTTP semantic conventions were renamed, such as http.status_code changing to http.request.status_code.
These changes are likely to impact several areas within Honeycomb.We recommend to review the complete list of attribute changes in OpenTelemetry’s Summary of Changes.With these attribute changes in mind, we also recommend to review your Honeycomb:
SLOs
Triggers
Calculated Fields
Boards and saved queries
Refinery rule conditions and field lists
OpenTelemetry Collector configurations
If any of these elements depend on attributes with HTTP semantic conventions, then you will be impacted by these breaking changes.
OpenTelemetry defines a special environment variable, OTEL_SEMCONV_STABILITY_OPT_IN, that should be added to language instrumentation to help users migrate.We recommend the following migration steps:
Set the OTEL_SEMCONV_STABILITY_OPT_IN environment variable to http/dup so that the instrumentation library will be able to create data using both the old and stable HTTP semantic conventions.
Update to an instrumentation library version that supports OTEL_SEMCONV_STABILITY_OPT_IN.
Change your SLOs, Triggers, Calculated Fields, Boards, Refinery Rules, and OpenTelemetry Collector Configurations to use the new, stable HTTP semantic conventions.
Then, set OTEL_SEMCONV_STABILITY_OPT_IN to http so that the instrumentation library only emit the new, stable HTTP semantic conventions.
Test that everything works as expected.
When possible, upgrade to an instrumentation library version that only supports the new, stable HTTP semantic conventions.
Refer to our language compatibility matrix to determine important library instrumentation versions and whether the library supports http/dup.
Producing both sets of HTTP semantic conventions at the same time is the best way to ensure a seamless transition between the old and the new HTTP semantic conventions.
Setting the OTEL_SEMCONV_STABILITY_OPT_IN environment variable to http/dup enables this dual semantic convention ability for you.If this is not an option, such as using a language that does not yet support the stable HTTP semantic conventions in OTel, complete these steps (as applicable) to ensure your setup can handle the transition period:
The OpenTelemetry Collector allows for coalescing of data before it reaches Refinery (if applicable) or Honeycomb’s endpoint.
We highly recommend that you use an OpenTelemetry Collector to transform and forward your data, especially when dealing with this change.
If your collector includes the alpha schema processor, you can use it instead of writing the OTTL coalescing statements in this guide.
The schema processor reads each signal’s schema_url, fetches the corresponding schema file, and applies schema-defined renames automatically.
It also supports a migration mode that emits both old and new attribute names during the transition.
The OTTL approach in this guide works for collectors without the schema processor and for environments where alpha components aren’t acceptable.
Use the following OTel Collector configuration to ensure that both new and old span attributes are always present in your data before it gets sent to Refinery or Honeycomb.Using the configuration below prevents data breakage and allows for incremental updates for other things, like SLOs and Triggers, without risking data loss:
transform/http_semconv_spans: error_mode: ignore trace_statements: - context: span statements: # All client and server spans # rename http.method -> http.request.method - set(attributes["http.request.method"], attributes["http.method"]) where attributes["http.method"] != nil and attributes["http.request.method"] == nil # rename http.request.method -> http.method - set(attributes["http.method"], attributes["http.request.method"]) where attributes["http.method"] == nil and attributes["http.request.method"] != nil # rename http.status_code -> http.response.status_code - set(attributes["http.response.status_code"], attributes["http.status_code"]) where attributes["http.status_code"] != nil and attributes["http.response.status_code"] == nil # rename http.response.status_code -> http.status_code - set(attributes["http.status_code"], attributes["http.response.status_code"]) where attributes["http.status_code"] == nil and attributes["http.response.status_code"] != nil # rename browser.user_agent -> user_agent.original - set(attributes["user_agent.original"], attributes["http.user_agent"]) where attributes["browser.user_agent"] != nil and attributes["user_agent.original"] == nil # rename user_agent.original -> browser.user_agent - set(attributes["http.user_agent"], attributes["user_agent.original"]) where attributes["user_agent.original"] != nil and attributes["http.user_agent"] == nil # rename network.protocol.name -> net.protocol.name - set(attributes["net.protocol.name"], attributes["network.protocol.name"]) where attributes["network.protocol.name"] != nil and attributes["net.protocol.name"] == nil # rename net.protocol.name -> network.protocol.name - set(attributes["network.protocol.name"], attributes["net.protocol.name"]) where attributes["network.protocol.name"] == nil and attributes["net.protocol.name"] != nil # rename http.flavor -> network.protocol.version - set(attributes["network.protocol.version"], attributes["http.flavor"]) where attributes["http.flavor"] != nil and attributes["network.protocol.version"] == nil # rename network.protocol.version -> net.protocol.version - set(attributes["net.protocol.version"], attributes["network.protocol.version"]) where attributes["net.protocol.version"] == nil and attributes["network.protocol.version"] != nil # rename network.protocol.version -> http.flavor - set(attributes["http.flavor"], attributes["network.protocol.version"]) where attributes["http.flavor"] == nil and attributes["network.protocol.version"] != nil # rename net.protocol.name -> http.flavor - set(attributes["http.flavor"], attributes["net.protocol.name"]) where attributes["net.protocol.name"] != nil and attributes["http.flavor"] == nil # rename net.protocol.version -> network.protocol.version - set(attributes["network.protocol.version"], attributes["net.protocol.version"]) where attributes["net.protocol.version"] != nil and attributes["network.protocol.version"] == nil # rename net.sock.peer.addr -> network.peer.address - set(attributes["network.peer.address"], attributes["net.sock.peer.addr"]) where attributes["net.sock.peer.addr"] != nil and attributes["network.peer.address"] == nil # rename network.peer.address -> net.sock.peer.addr - set(attributes["net.sock.peer.addr"], attributes["network.peer.address"]) where attributes["net.sock.peer.addr"] == nil and attributes["network.peer.address"] != nil # rename net.sock.peer.port -> network.peer.port - set(attributes["network.peer.port"], attributes["net.sock.peer.port"]) where attributes["net.sock.peer.port"] != nil and attributes["network.peer.port"] == nil # rename network.peer.port -> net.sock.peer.port - set(attributes["net.sock.peer.port"], attributes["network.peer.port"]) where attributes["net.sock.peer.port"] == nil and attributes["network.peer.port"] != nil # All client spans # rename http.url -> url.full - set(attributes["url.full"], attributes["http.url"]) where attributes["http.url"] != nil and attributes["url.full"] == nil and kind == SPAN_KIND_CLIENT # rename url.full -> http.url - set(attributes["http.url"], attributes["url.full"]) where attributes["http.url"] == nil and attributes["url.full"] != nil and kind == SPAN_KIND_CLIENT # rename http.resend_count -> http.request.resend_count - set(attributes["http.request.resend_count"], attributes["http.resend_count"]) where attributes["http.resend_count"] != nil and attributes["http.request.resend_count"] == nil and kind == SPAN_KIND_CLIENT # rename http.request.resend_count -> http.resend_count - set(attributes["http.resend_count"], attributes["http.request.resend_count"]) where attributes["http.resend_count"] == nil and attributes["http.request.resend_count"] != nil and kind == SPAN_KIND_CLIENT # rename net.peer.name -> server.address - set(attributes["server.address"], attributes["net.peer.name"]) where attributes["net.peer.name"] != nil and attributes["server.address"] == nil and kind == SPAN_KIND_CLIENT # rename server.address -> net.peer.name - set(attributes["net.peer.name"], attributes["server.address"]) where attributes["net.peer.name"] == nil and attributes["server.address"] != nil and kind == SPAN_KIND_CLIENT # rename net.peer.port -> server.port - set(attributes["server.port"], attributes["net.peer.port"]) where attributes["net.peer.port"] != nil and attributes["server.port"] == nil and kind == SPAN_KIND_CLIENT # rename server.port -> net.peer.port - set(attributes["net.peer.port"], attributes["server.port"]) where attributes["net.peer.port"] == nil and attributes["server.port"] != nil and kind == SPAN_KIND_CLIENT # All server spans # rename http.target -> url.path and url.query - set(cache["temp"], Split(attributes["http.target"], "?")) where attributes["http.target"] != nil and kind == SPAN_KIND_SERVER - set(attributes["url.path"], cache["temp"][0]) where attributes["url.path"] == nil and cache["temp"] != nil and Len(cache["temp"]) >= 1 and kind == SPAN_KIND_SERVER - set(attributes["url.query"], cache["temp"][1]) where attributes["url.query"] == nil and cache["temp"] != nil and Len(cache["temp"]) >= 2 and kind == SPAN_KIND_SERVER # rename url.path and url.query -> http.target - set(attributes["http.target"], Concat([attributes["url.path"], attributes["url.query"]], "?")) where attributes["http.target"] == nil and attributes["url.path"] != nil and attributes["url.query"] != nil and kind == SPAN_KIND_SERVER # rename http.scheme -> url.scheme - set(attributes["url.scheme"], attributes["http.scheme"]) where attributes["http.scheme"] != nil and attributes["url.scheme"] == nil and kind == SPAN_KIND_SERVER # rename url.scheme -> http.scheme - set(attributes["http.scheme"], attributes["url.scheme"]) where attributes["http.scheme"] == nil and attributes["url.scheme"] != nil and kind == SPAN_KIND_SERVER # rename http.client_ip -> client.address - set(attributes["client.address"], attributes["http.client_ip"]) where attributes["http.client_ip"] != nil and attributes["client.address"] == nil and kind == SPAN_KIND_SERVER # rename client.address -> http.client_ip - set(attributes["http.client_ip"], attributes["client.address"]) where attributes["http.client_ip"] == nil and attributes["client.address"] != nil and kind == SPAN_KIND_SERVER # rename net.host.name -> server.address - set(attributes["server.address"], attributes["net.host.name"]) where attributes["net.host.name"] != nil and attributes["server.address"] == nil and kind == SPAN_KIND_SERVER # rename server.address -> net.host.name - set(attributes["net.host.name"], attributes["server.address"]) where attributes["net.host.name"] == nil and attributes["server.address"] != nil and kind == SPAN_KIND_SERVER # rename net.host.port -> server.port - set(attributes["server.port"], attributes["net.host.port"]) where attributes["net.host.port"] != nil and attributes["server.port"] == nil and kind == SPAN_KIND_SERVER # rename server.port -> net.host.port - set(attributes["net.host.port"], attributes["server.port"]) where attributes["net.host.port"] == nil and attributes["server.port"] != nil and kind == SPAN_KIND_SERVER
Coalescing the metrics changes is more complicated, but still possible.
If you use metrics, determine whether you want the metrics to appear in Honeycomb with the old values or the new values.
Based on your decision, use one of the two examples below to modify your OTel Collector configuration for metrics.The following OTel Collector configuration renames old metric values to new metric values:
transform/http_semconv_metrics_new: error_mode: ignore metric_statements: - context: datapoint statements: # rename http.method -> http.request.method - set(attributes["http.request.method"], attributes["http.method"]) where attributes["http.method"] != nil and attributes["http.request.method"] == nil and (metric.name == "http.client.duration" or metric.name == "http.server.duration") and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename http.status_code -> http.response.status_code - set(attributes["http.response.status_code"], attributes["http.status_code"]) where attributes["http.status_code"] != nil and attributes["http.response.status_code"] == nil and (metric.name == "http.client.duration" or metric.name == "http.server.duration") and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename net.peer.name -> server.address - set(attributes["server.address"], attributes["net.peer.name"]) where attributes["net.peer.name"] != nil and attributes["server.address"] == nil and metric.name == "http.client.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename net.peer.port -> server.port - set(attributes["server.port"], attributes["net.peer.port"]) where attributes["net.peer.port"] != nil and attributes["server.port"] == nil and metric.name == "http.client.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename net.protocol.name -> network.protocol.name - set(attributes["network.protocol.name"], attributes["net.protocol.name"]) where attributes["net.protocol.name"] != nil and attributes["network.protocol.name"] == nil and (metric.name == "http.client.duration" or metric.name == "http.server.duration") and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename net.protocol.version -> network.protocol.version - set(attributes["network.protocol.version"], attributes["net.protocol.version"]) where attributes["net.protocol.version"] != nil and attributes["network.protocol.version"] == nil and (metric.name == "http.client.duration" or metric.name == "http.server.duration") and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename http.flavor -> network.protocol.version - set(attributes["network.protocol.version"], attributes["http.flavor"]) where attributes["http.flavor"] != nil and attributes["network.protocol.version"] == nil and (metric.name == "http.client.duration" or metric.name == "http.server.duration") and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename http.scheme -> url.scheme - set(attributes["url.scheme"], attributes["http.scheme"]) where attributes["http.scheme"] != nil and attributes["url.scheme"] == nil and metric.name == "http.server.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename net.host.name -> server.address - set(attributes["server.address"], attributes["net.host.name"]) where attributes["net.host.name"] != nil and attributes["server.address"] == nil and metric.name == "http.server.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename net.host.port -> server.port - set(attributes["server.port"], attributes["net.host.port"]) where attributes["net.host.port"] != nil and attributes["server.port"] == nil and metric.name == "http.server.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename metric, unit and re-aggregate - scale_metric(0.001, "s") where (metric.name == "http.client.duration" or metric.name == "http.server.duration") and metric.unit == "ms" and metric.type == METRIC_DATA_TYPE_HISTOGRAM - set(metric.name, "http.client.request.duration") where metric.name == "http.client.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM - set(metric.name, "http.server.request.duration") where metric.name == "http.server.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM
The following OTel Collector configuration renames new metric values to old metric values:
transform/http_semconv_metrics_old: error_mode: ignore metric_statements: - context: datapoint statements: # rename http.request.method -> http.method - set(attributes["http.method"], attributes["http.request.method"]) where attributes["http.method"] == nil and attributes["http.request.method"] != nil and (metric.name == "http.client.request.duration" or metric.name == "http.server.request.duration") and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename http.response.status_code -> http.status_code - set(attributes["http.status_code"], attributes["http.response.status_code"]) where attributes["http.status_code"] == nil and attributes["http.response.status_code"] != nil and (metric.name == "http.client.request.duration" or metric.name == "http.server.request.duration") and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename server.address -> net.peer.name - set(attributes["net.peer.name"], attributes["server.address"]) where attributes["net.peer.name"] == nil and attributes["server.address"] != nil and metric.name == "http.client.request.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename server.port -> net.peer.port - set(attributes["net.peer.port"], attributes["server.port"]) where attributes["net.peer.port"] == nil and attributes["server.port"] != nil and metric.name == "http.client.request.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename network.protocol.name -> net.protocol.name - set(attributes["net.protocol.name"], attributes["network.protocol.name"]) where attributes["net.protocol.name"] == nil and attributes["network.protocol.name"] != nil and (metric.name == "http.client.request.duration" or metric.name == "http.server.request.duration") and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename network.protocol.version -> net.protocol.version - set(attributes["net.protocol.version"], attributes["network.protocol.version"]) where attributes["net.protocol.version"] == nil and attributes["network.protocol.version"] != nil and (metric.name == "http.client.request.duration" or metric.name == "http.server.request.duration") and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename network.protocol.version -> http.flavor - set(attributes["http.flavor"], attributes["network.protocol.version"]) where attributes["http.flavor"] == nil and attributes["network.protocol.version"] != nil and (metric.name == "http.client.request.duration" or metric.name == "http.server.request.duration") and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename url.scheme -> http.scheme - set(attributes["http.scheme"], attributes["url.scheme"]) where attributes["http.scheme"] == nil and attributes["url.scheme"] != nil and metric.name == "http.server.request.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename server.address -> net.host.name - set(attributes["net.host.name"], attributes["server.address"]) where attributes["net.host.name"] == nil and attributes["server.address"] != nil and metric.name == "http.server.request.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename server.port -> net.host.port - set(attributes["net.host.port"], attributes["server.port"]) where attributes["net.host.port"] == nil and attributes["server.port"] != nil and metric.name == "http.server.request.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM # rename metric, unit and re-aggregate - scale_metric(1000, "ms") where (metric.name == "http.client.request.duration" or metric.name == "http.server.request.duration") and metric.unit == "s" and metric.type == METRIC_DATA_TYPE_HISTOGRAM - set(metric.name, "http.client.duration") where metric.name == "http.client.request.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM - set(metric.name, "http.server.duration") where metric.name == "http.server.request.duration" and metric.type == METRIC_DATA_TYPE_HISTOGRAM
Refinery, as of version 2.3, can use multiple fields in a condition, which ensures that the same sampling decisions can be made on differently-shaped data.
While not a true coalescing since the data is not modified, this feature will help to manage tail sampling when the traces contain spans with both the old and new HTTP semantic conventions.If you use Refinery, we highly recommend updating Refinery to the latest version and use this capability.
Fields is used here instead of Field.
This configuration ensures that the rule evaluates successfully, regardless of whether data uses http.status_code or http.response.status_code as an field.
If the OTel Collector is not an option, you can create Calculated Fields using the COALESCE function.
Use COALESCE to make a new field name that represents two values at once.
It works by taking the value of whichever field it sees first.
To avoid name conflicts in the future, we recommend to name these Calculated Fields with a dc. prefix.Using the status_code in an SLI requires embedding the COALESCE function anywhere the status code is tested or returned, so it can get verbose.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Honeycomb Docs","colors":{"primary":"#0298ec","light":"#0298ec","dark":"#0160a4"},"logo":{"light":"https://mintcdn.com/honeycomb/TYbxiKcJ1fL3Sm5n/_assets/logos/light.svg?fit=max\u0026auto=format\u0026n=TYbxiKcJ1fL3Sm5n\u0026q=85\u0026s=27a1eaed720bce94471b9408761a57a5","dark":"https://mintcdn.com/honeycomb/TYbxiKcJ1fL3Sm5n/_assets/logos/dark.svg?fit=max\u0026auto=format\u0026n=TYbxiKcJ1fL3Sm5n\u0026q=85\u0026s=37c10aab54c3f49068831ba2b3f72519"},"favicon":"https://mintcdn.com/honeycomb/FS58DPvSVOqwGF9Q/favicon.ico?fit=max\u0026auto=format\u0026n=FS58DPvSVOqwGF9Q\u0026q=85\u0026s=f2dcbbe978265dbef9b3e5c895466dfc","navbar":{"links":[{"href":"https://status.honeycomb.io/","label":"Status"},{"href":"https://support.honeycomb.io/","label":"Support"}],"primary":{"type":"button","label":"Log in to Honeycomb","href":"https://ui.honeycomb.io/"}},"footer":{"socials":{"bluesky":"https://bsky.app/profile/honeycomb.io","github":"https://github.com/honeycombio","linkedin":"https://linkedin.com/company/honeycomb.io","youtube":"https://www.youtube.com/channel/UCty8KGQ3oAP0MQQmLIv7k0Q"}},"fonts":{"heading":{"family":"Roboto","weight":600},"body":{"family":"Roboto","weight":400}},"styling":{"eyebrows":"breadcrumbs","codeblocks":{},"latex":true},"integrations":{"amplitude":{"apiKey":"3b49e4f1b31c8cc751801eb555172ee7"},"ga4":{"measurementId":"G-6GB1G2KSLD"},"plausible":{"domain":"docs.honeycomb.io","server":"stats.honeycomb.io"},"telemetry":{"enabled":true},"cookies":{"key":"honeycomb_docs_consent","value":"yes"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Docs Home","icon":"home","href":"/"},{"anchor":"Blog","icon":"bullhorn","href":"https://www.honeycomb.io/blog"},{"anchor":"Honeycomb Academy","icon":"book","href":"https://academy.honeycomb.io/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"honeycomb","hasAudioNarration":false,"actualSubdomain":"honeycomb","customDomains":["docs.honeycomb.io"],"gitSource":{"type":"github","owner":"honeycombio","repo":"docs","deployBranch":"main","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae8c03abed22c024835b42b","collectionId":"2372729a-83ec-4f5f-8176-57173edcd64b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae8c03abed22c024835b42b"},"feedback":{"thumbs":true,"contextualFeedback":{"allowEmail":false}},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED","enabled":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED","enabled":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aea192898ee2cfbfea96ac8","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Send Data","count":234},{"language":"default","tag":"Manage Pipelines","count":148},{"language":"default","tag":"Honeycomb Telemetry Pipeline","count":145},{"language":"default","tag":"Pipeline Manager","count":142},{"language":"default","tag":"API Reference","count":108},{"language":"default","tag":"Sources","count":93},{"language":"default","tag":"API Endpoints","count":90},{"language":"default","tag":"Investigate","count":71},{"language":"default","tag":"Get Started","count":62},{"language":"default","tag":"Processors","count":41}],"searchSettings":{"maxResults":15}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"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}],"googleFontsInlined":true},"customCss":[{"filePath":"_assets/stylesheets/badges.css","content":"[class*=hny-badge-]{background-color:var(--hny-badge-bg)!important;color:var(--hny-badge-text)!important;border-color:var(--hny-badge-bg)!important;min-width:4rem!important;height:1.75rem!important;justify-content:center!important;align-items:center!important}[class*=hny-badge-].border,html.dark [class*=hny-badge-].border{background-color:transparent!important;border-color:var(--hny-badge-text)!important}html.dark [class*=hny-badge-]{background-color:var(--hny-badge-bg-dark)!important;color:var(--hny-badge-text-dark)!important;border-color:var(--hny-badge-bg-dark)!important}html.dark [class*=hny-badge-].border{border-color:var(--hny-badge-text-dark)!important;color:var(--hny-badge-text-dark)!important}@media (prefers-color-scheme:dark){html:not(.light) [class*=hny-badge-]{background-color:var(--hny-badge-bg-dark)!important;color:var(--hny-badge-text-dark)!important;border-color:var(--hny-badge-bg-dark)!important}html:not(.light) [class*=hny-badge-].border{background-color:transparent!important;border-color:var(--hny-badge-text-dark)!important;color:var(--hny-badge-text-dark)!important}}.hny-badge-enterprise,.hny-badge-enterprise-addon{--hny-badge-bg:#EAE6F1;--hny-badge-text:#302054;--hny-badge-bg-dark:#60606F;--hny-badge-text-dark:#FFFFFF}.hny-badge-pro{--hny-badge-bg:#E0F2FC;--hny-badge-text:#015B8D;--hny-badge-bg-dark:#163144;--hny-badge-text-dark:#1BA2ED}.hny-badge-beta,.hny-badge-early-access{--hny-badge-bg:#FEEDE2;--hny-badge-text:#954209;--hny-badge-bg-dark:#3B2A23;--hny-badge-text-dark:#F97C27}"},{"filePath":"_assets/stylesheets/icons.css","content":".hny-icon{background-color:var(--hny-icon-color)}"},{"filePath":"_assets/stylesheets/images.css","content":".dark img[src^=http]:not(.nav-logo){background-color:transparent;border-radius:0;padding:0}[data-rmiz-content] img,[data-rmiz-modal-img]{background-color:transparent;box-sizing:border-box;border-radius:.4rem}a.card{border-radius:0!important}a.card img[data-component-part=card-image]{object-fit:contain!important}.dark .integration-logo-invert{filter:invert(1)}.integration-logo-grayscale{filter:grayscale(1)}.dark .integration-logo-grayscale.integration-logo-invert{filter:grayscale(1) invert(1)}"},{"filePath":"_assets/stylesheets/kapa.css","content":"#kapa-ask-ai-btn{display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0;height:2.25rem;padding:0 1rem;margin-left:.5rem;border-radius:.75rem;border:0;background:0 0;box-shadow:0 0 0 1px rgba(156,163,175,.3);color:#6b7280;font-size:.875rem;cursor:pointer;white-space:nowrap;transition:box-shadow .15s ease}#kapa-ask-ai-btn:hover,.dark #kapa-ask-ai-btn{box-shadow:0 0 0 1px rgba(75,85,99,.3)}.kapa-btn-icon svg{width:16px;height:16px}.kapa-btn-icon svg path{fill:#6b7280}.dark .kapa-btn-icon svg path{fill:rgba(255,255,255,.5)}.dark #kapa-ask-ai-btn{color:rgba(255,255,255,.5)}.dark #kapa-ask-ai-btn:hover{box-shadow:0 0 0 1px rgba(107,114,128,.3)}.dark #kapa-ask-ai-btn img{filter:invert(1) opacity(.5)}"},{"filePath":"_assets/stylesheets/links.css","content":".prose a[href^=http]:not(.card):not(:has(img))::after{content:\"↗\";font-size:.75em;vertical-align:baseline;margin-left:2px}"},{"filePath":"_assets/stylesheets/style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vq_SeW4Ep0.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vq_QOW4Ep0.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vq_R-W4Ep0.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vq_S-W4Ep0.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vq_SuW4Ep0.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vq_ROW4.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n.nav-logo{height:2.5rem!important}.prose,.prose-gray{--tw-prose-body:var(--lat-color-foreground-primary-default);--tw-prose-headings:var(--lat-color-foreground-primary-default);--tw-prose-lead:var(--lat-color-foreground-secondary-default);--tw-prose-links:var(--lat-color-foreground-link-default);--tw-prose-bold:var(--lat-color-foreground-primary-default);--tw-prose-invert-body:var(--lat-color-foreground-inverse-default);--tw-prose-invert-headings:var(--lat-color-foreground-inverse-default);--tw-prose-invert-lead:var(--lat-color-foreground-inverse-secondary);--tw-prose-invert-links:var(--lat-color-foreground-inverse-link-default);--tw-prose-invert-bold:var(--lat-color-foreground-inverse-default)}.prose{color:var(--lat-color-foreground-primary-default)!important;line-height:var(--lat-ref-font-line-height-5)!important}#page-title,.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--lat-color-foreground-primary-default)!important;font-weight:var(--lat-ref-font-weight-500)!important;font-size:var(--lat-ref-font-size-700)!important;line-height:var(--lat-ref-font-line-height-8)!important}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--lat-color-foreground-primary-default)!important;font-weight:var(--lat-ref-font-weight-600)!important;font-size:var(--lat-ref-font-size-600)!important;line-height:var(--lat-ref-font-line-height-6)!important}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--lat-color-foreground-primary-default)!important;font-weight:var(--lat-ref-font-weight-600)!important;font-size:var(--lat-ref-font-size-500)!important;line-height:var(--lat-ref-font-line-height-5)!important}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:var(--lat-ref-font-weight-400)!important;line-height:var(--lat-ref-font-line-height-4)!important}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--lat-color-foreground-primary-default)!important;font-weight:600!important}th{color:var(--lat-color-foreground-primary-default)!important}.prose a.link{border-color:var(--lat-color-foreground-link-default)}.font-mono,code,kbd,pre,samp{font-family:var(--lat-ref-font-family-roboto-mono)}code,kbd,pre,samp{font-feature-settings:normal;font-variation-settings:normal;font-size:1em}.sidebar-group{margin-top:.05rem}a.card{border-radius:var(--lat-border-radius-xsmall)!important}"},{"filePath":"_assets/stylesheets/tables.css","content":".schema-table table{font-family:var(--hny-font-mono);font-size:var(--hny-font-mono-size);width:fit-content;min-width:unset}.permissions-table table,.permissions-table td,.permissions-table th{border:0}.flex-style-table table,.permissions-table table{width:100%}.permissions-table tbody tr:nth-child(even),.permissions-table thead tr:nth-child(odd){background-color:var(--hny-table-stripe)}.permissions-table th{padding:var(--hny-permissions-header-padding-v, 10px) .75rem;text-align:center}.permissions-table th:first-child{text-align:left}.permissions-table td{text-align:center;padding-top:var(--hny-permissions-cell-padding-v, 5px);padding-bottom:var(--hny-permissions-cell-padding-v, 5px);padding-left:.75rem;padding-right:.75rem}.permissions-table td:first-child{width:var(--hny-permissions-col1-width, 50%);text-align:left}"},{"filePath":"_assets/stylesheets/tokens.css","content":":root{--hny-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco,\n Consolas, \"Liberation Mono\", \"Courier New\",\n monospace;--hny-font-mono-size:0.8rem;--hny-permissions-col1-width:50%;--hny-permissions-cell-padding-v:5px;--hny-permissions-header-padding-v:10px}html.light{--hny-table-stripe:rgba(107, 114, 128, 0.1);--hny-icon-color:#33383F}html.dark{--hny-table-stripe:#1e2128;--hny-icon-color:#C9CDD2}@media (prefers-color-scheme:dark){html.dark{--hny-table-stripe:#1e2128;--hny-icon-color:#C9CDD2}}"},{"filePath":"_assets/stylesheets/mermaid.css","content":".mermaid .label{font-size:.875rem!important;padding:1rem .25rem!important}foreignObject>div>span>p{font-size:.75rem!important;padding:.25rem!important;text-align:justified!important}"},{"filePath":"_assets/stylesheets/sidebar.css","content":"ul.list-none{padding-bottom:1rem;border-bottom:1px solid rgb(107 114 128/.4)}.nav-anchor{margin-bottom:.25rem}#navigation-items>ul.sidebar-group{border-top:.5px solid var(--border-color);padding-top:1rem}div.sidebar-group-header{margin-top:-.5rem;margin-bottom:.1rem;text-transform:uppercase;letter-spacing:.01rem}div.sidebar-group{margin-bottom:1rem;font-size:.9rem}#sidebar-content li>a,#sidebar-content li>button,#sidebar-content li[data-active]>button{padding-top:.1rem;padding-bottom:.1rem;font-size:.9rem}#navigation-items>ul.sidebar-group:last-of-type{margin-top:0!important;padding-top:0!important}#navigation-items>ul.sidebar-group:nth-last-of-type(2){border-top:1px solid var(--border-color);padding-top:1rem;margin-top:1rem!important}.nav-tag-pill{min-width:2rem;text-align:center}.flex-1.flex.min-w-0.flex-wrap{flex-wrap:nowrap}.nav-tag-pill-text{text-transform:uppercase;background:0 0;padding:0;border-left:1px solid currentColor;border-radius:0;padding-left:.25rem}#sidebar-content a[href^=\"https://docs.honeycomb.io\"]::after,#sidebar-content a[href^=\"https://docs.honeycomb.io/\"] svg{display:none}"},{"filePath":"_assets/stylesheets/tabs.css","content":".hny-client-tabs>.tabs.tab-container>ul[data-component-part=tabs-list]{border-bottom:none;flex-wrap:wrap;gap:8px;margin-bottom:.375rem!important}.hny-client-tabs>.tabs.tab-container>ul[data-component-part=tabs-list]>li{list-style:none}.hny-client-tabs>.tabs.tab-container>ul[data-component-part=tabs-list]>li [data-component-part=tab-button]{border:1px solid #b9c2cc;border-radius:6px;padding:6px 14px!important;margin-bottom:0!important;color:#25303e;font-weight:500}.hny-client-tabs>.tabs.tab-container>ul[data-component-part=tabs-list]>li [data-component-part=tab-button][data-active=true]{background:#0160a4;border-color:#0160a4;color:#fff}.dark .hny-client-tabs>.tabs.tab-container>ul[data-component-part=tabs-list]>li [data-component-part=tab-button]{border-color:#4b5563;color:#e5e7eb}.hny-client-tabs>.tabs.tab-container>div>[data-component-part=tab-content]{border:1px solid #cbd5e1;border-radius:12px;padding:1.25rem 1.5rem;margin-top:.75rem}.dark .hny-client-tabs>.tabs.tab-container>div>[data-component-part=tab-content]{border-color:#475569!important}.hny-client-tabs [data-component-part=tab-button]:focus-visible{outline:2px solid #0298ec;outline-offset:2px}"},{"filePath":"_assets/stylesheets/_tokens.css","content":":root{--lat-ref-border-radius-0:0px;--lat-ref-border-radius-50:2px;--lat-ref-border-radius-75:3px;--lat-ref-border-radius-100:4px;--lat-ref-border-radius-200:8px;--lat-ref-border-radius-300:12px;--lat-ref-border-radius-400:16px;--lat-ref-border-radius-2000:80px;--lat-ref-border-width-0:0px;--lat-ref-border-width-25:1px;--lat-ref-border-width-50:2px;--lat-ref-color-blue-500:#225dbe;--lat-ref-color-blue-600:#1c4c9c;--lat-ref-color-blue-700:#0f3880;--lat-ref-color-blue-800:#002566;--lat-ref-color-blue-900:#00173e;--lat-ref-color-gold-100:#ffeab2;--lat-ref-color-gold-1000:#a94a04;--lat-ref-color-gold-1100:#7a3302;--lat-ref-color-gold-200:#ffdd81;--lat-ref-color-gold-300:#ffd14d;--lat-ref-color-gold-400:#ffc626;--lat-ref-color-gold-50:#fffae1;--lat-ref-color-gold-500:#ffbc04;--lat-ref-color-gold-600:#ffb000;--lat-ref-color-gold-700:#ff9b03;--lat-ref-color-gold-800:#fe8a04;--lat-ref-color-gold-900:#f26905;--lat-ref-color-gray-100:#ebeff4;--lat-ref-color-gray-1000:#1e2023;--lat-ref-color-gray-1050:#1b1d20;--lat-ref-color-gray-1100:#191a1b;--lat-ref-color-gray-200:#dee3ec;--lat-ref-color-gray-300:#c9d1df;--lat-ref-color-gray-400:#b0baca;--lat-ref-color-gray-50:#f5f7fa;--lat-ref-color-gray-500:#8f94a9;--lat-ref-color-gray-600:#717a89;--lat-ref-color-gray-700:#59606d;--lat-ref-color-gray-800:#444a53;--lat-ref-color-gray-850:#3c4149;--lat-ref-color-gray-900:#33383f;--lat-ref-color-gray-950:#272b30;--lat-ref-color-green-100:#d8efc0;--lat-ref-color-green-1000:#005700;--lat-ref-color-green-200:#bde596;--lat-ref-color-green-300:#a1db6a;--lat-ref-color-green-400:#8ad243;--lat-ref-color-green-50:#eff9e6;--lat-ref-color-green-500:#73ca0d;--lat-ref-color-green-600:#64ba00;--lat-ref-color-green-700:#4ca600;--lat-ref-color-green-800:#329200;--lat-ref-color-green-900:#007000;--lat-ref-color-indigo-100:#d3cdf0;--lat-ref-color-indigo-1000:#100e38;--lat-ref-color-indigo-200:#b4ace6;--lat-ref-color-indigo-300:#9186d9;--lat-ref-color-indigo-400:#7165cc;--lat-ref-color-indigo-50:#edeaf8;--lat-ref-color-indigo-500:#5549be;--lat-ref-color-indigo-600:#4538a8;--lat-ref-color-indigo-700:#362c8f;--lat-ref-color-indigo-800:#282275;--lat-ref-color-indigo-900:#1b185a;--lat-ref-color-miscellaneous-charcoal:#191a1b;--lat-ref-color-miscellaneous-white:#ffffff;--lat-ref-color-pink-100:#fad4e9;--lat-ref-color-pink-1000:#3e0827;--lat-ref-color-pink-200:#f5b0d5;--lat-ref-color-pink-300:#ee84bb;--lat-ref-color-pink-400:#e563a5;--lat-ref-color-pink-50:#fdeef6;--lat-ref-color-pink-500:#dc4d90;--lat-ref-color-pink-600:#c23a7c;--lat-ref-color-pink-700:#a22868;--lat-ref-color-pink-800:#821a53;--lat-ref-color-pink-900:#61103d;--lat-ref-color-purple-100:#dfd3eb;--lat-ref-color-purple-1000:#2e1260;--lat-ref-color-purple-200:#cbb8df;--lat-ref-color-purple-300:#b89bce;--lat-ref-color-purple-400:#ac8dc7;--lat-ref-color-purple-50:#f7f3fb;--lat-ref-color-purple-500:#9b77c2;--lat-ref-color-purple-600:#8659b4;--lat-ref-color-purple-700:#6a37a1;--lat-ref-color-purple-800:#54298f;--lat-ref-color-purple-900:#431e80;--lat-ref-color-red-100:#f7d2d7;--lat-ref-color-red-1000:#85322e;--lat-ref-color-red-200:#e4a3a5;--lat-ref-color-red-300:#d78184;--lat-ref-color-red-400:#e16767;--lat-ref-color-red-50:#fbedf0;--lat-ref-color-red-500:#e65b53;--lat-ref-color-red-600:#d75450;--lat-ref-color-red-700:#c54b49;--lat-ref-color-red-800:#b74643;--lat-ref-color-red-900:#a63f3a;--lat-ref-color-sky-100:#b9def8;--lat-ref-color-sky-1000:#002f7a;--lat-ref-color-sky-200:#8dcaf5;--lat-ref-color-sky-300:#60b5f0;--lat-ref-color-sky-400:#3aa5ee;--lat-ref-color-sky-50:#e3f2fc;--lat-ref-color-sky-500:#0296ec;--lat-ref-color-sky-600:#0088df;--lat-ref-color-sky-700:#0077cc;--lat-ref-color-sky-800:#0066ba;--lat-ref-color-sky-900:#00489c;--lat-ref-color-teal-100:#cce8f0;--lat-ref-color-teal-1000:#023040;--lat-ref-color-teal-200:#aad8e6;--lat-ref-color-teal-300:#7ec3d8;--lat-ref-color-teal-400:#50adc8;--lat-ref-color-teal-50:#eaf6f7;--lat-ref-color-teal-500:#2297b6;--lat-ref-color-teal-600:#0d83a0;--lat-ref-color-teal-700:#0a6d87;--lat-ref-color-teal-800:#085870;--lat-ref-color-teal-900:#054558;--lat-ref-size-0:0px;--lat-ref-size-100:4px;--lat-ref-size-200:8px;--lat-ref-size-300:12px;--lat-ref-size-400:16px;--lat-ref-size-500:20px;--lat-ref-size-600:24px;--lat-ref-size-700:28px;--lat-ref-size-800:32px;--lat-ref-size-900:36px;--lat-ref-size-1000:40px;--lat-ref-size-1100:44px;--lat-ref-size-1200:48px;--lat-ref-size-1300:52px;--lat-ref-size-1400:56px;--lat-ref-size-1500:60px;--lat-ref-size-1600:64px;--lat-ref-size-2000:80px;--lat-ref-space-0:0px;--lat-ref-space-1:2px;--lat-ref-space-2:4px;--lat-ref-space-3:8px;--lat-ref-space-4:12px;--lat-ref-space-5:16px;--lat-ref-space-6:20px;--lat-ref-space-7:24px;--lat-ref-space-8:28px;--lat-ref-space-9:32px;--lat-ref-space-10:36px;--lat-ref-space-11:40px;--lat-ref-space-12:44px;--lat-ref-space-13:48px;--lat-ref-font-line-height-0:0rem;--lat-ref-font-line-height-1:1rem;--lat-ref-font-line-height-2:1.125rem;--lat-ref-font-line-height-3:1.25rem;--lat-ref-font-line-height-4:1.375rem;--lat-ref-font-line-height-5:1.5rem;--lat-ref-font-line-height-6:1.875rem;--lat-ref-font-line-height-7:2.25rem;--lat-ref-font-line-height-8:2.5rem;--lat-ref-font-size-100:0.625rem;--lat-ref-font-size-200:0.75rem;--lat-ref-font-size-300:0.875rem;--lat-ref-font-size-400:1rem;--lat-ref-font-size-500:1.25rem;--lat-ref-font-size-600:1.5rem;--lat-ref-font-size-700:2rem;--lat-ref-font-weight-400:400;--lat-ref-font-weight-500:500;--lat-ref-font-weight-600:600;--lat-ref-font-weight-700:700;--lat-ref-font-family-poppins:'Poppins', Arial, Helvetica, sans-serif;--lat-ref-font-family-roboto:'Roboto', Arial, Helvetica, sans-serif;--lat-ref-font-family-roboto-mono:'Roboto Mono', monospace}.light,:root{--lat-border-radius-zero:0px;--lat-border-radius-xsmall:2px;--lat-border-radius-small:4px;--lat-border-radius-medium:8px;--lat-border-radius-primary-default:8px;--lat-border-radius-secondary-default:12px;--lat-border-radius-container:8px;--lat-border-radius-control-small:4px;--lat-border-radius-circle:80px;--lat-border-width-zero:0px;--lat-border-width-primary-default:1px;--lat-border-width-secondary-default:2px;--lat-color-background-critical-bold:var(--lat-ref-color-red-700);--lat-color-background-critical-bolder:var(--lat-ref-color-red-800);--lat-color-background-critical-boldest:var(--lat-ref-color-red-900);--lat-color-background-critical-default:var(--lat-ref-color-red-100);--lat-color-background-critical-hover:var(--lat-ref-color-red-200);--lat-color-background-critical-subtle:var(--lat-ref-color-red-300);--lat-color-background-informational-default:var(--lat-ref-color-sky-100);--lat-color-background-informational-hover:var(--lat-ref-color-sky-200);--lat-color-background-informational-subtle:var(--lat-ref-color-sky-300);--lat-color-background-interactive-active:var(--lat-ref-color-sky-900);--lat-color-background-interactive-default:var(--lat-ref-color-sky-700);--lat-color-background-interactive-disabled:var(--lat-ref-color-gray-100);--lat-color-background-interactive-hover:var(--lat-ref-color-sky-800);--lat-color-background-inverse-active:var(--lat-ref-color-gray-700);--lat-color-background-inverse-default:var(--lat-ref-color-gray-950);--lat-color-background-inverse-disabled:var(--lat-ref-color-gray-1050);--lat-color-background-inverse-hover:var(--lat-ref-color-gray-900);--lat-color-background-neutral-active:var(--lat-ref-color-sky-50);--lat-color-background-neutral-bold:var(--lat-ref-color-gray-400);--lat-color-background-neutral-bolder:var(--lat-ref-color-gray-600);--lat-color-background-neutral-boldest:var(--lat-ref-color-gray-800);--lat-color-background-neutral-default:var(--lat-ref-color-gray-100);--lat-color-background-neutral-disabled:var(--lat-ref-color-gray-200);--lat-color-background-neutral-hover:var(--lat-ref-color-gray-300);--lat-color-background-neutral-subtle:var(--lat-ref-color-gray-300);--lat-color-background-pink-default:var(--lat-ref-color-pink-100);--lat-color-background-primary-active:var(--lat-ref-color-sky-50);--lat-color-background-primary-default:var(--lat-ref-color-miscellaneous-white);--lat-color-background-primary-disabled:var(--lat-ref-color-gray-100);--lat-color-background-primary-hover:var(--lat-ref-color-gray-50);--lat-color-background-primary-selected:var(--lat-ref-color-gray-200);--lat-color-background-purple-default:var(--lat-ref-color-purple-100);--lat-color-background-secondary-default:var(--lat-ref-color-gray-50);--lat-color-background-secondary-hover:var(--lat-ref-color-gray-200);--lat-color-background-secondary-selected:var(--lat-ref-color-sky-700);--lat-color-background-success-bold:var(--lat-ref-color-green-400);--lat-color-background-success-bolder:var(--lat-ref-color-green-600);--lat-color-background-success-default:var(--lat-ref-color-green-100);--lat-color-background-success-hover:var(--lat-ref-color-green-200);--lat-color-background-success-subtle:var(--lat-ref-color-green-300);--lat-color-background-teal-default:var(--lat-ref-color-teal-100);--lat-color-background-warning-default:var(--lat-ref-color-gold-100);--lat-color-background-warning-hover:var(--lat-ref-color-gold-200);--lat-color-background-warning-subtle:var(--lat-ref-color-gold-300);--lat-color-border-contrast:var(--lat-ref-color-miscellaneous-white);--lat-color-border-contrast-focus:var(--lat-ref-color-miscellaneous-white);--lat-color-border-critical-default:var(--lat-ref-color-red-1000);--lat-color-border-critical-subtle:var(--lat-ref-color-red-1000);--lat-color-border-focus:var(--lat-ref-color-sky-700);--lat-color-border-informational-default:var(--lat-ref-color-sky-800);--lat-color-border-informational-subtle:var(--lat-ref-color-sky-900);--lat-color-border-inverse-active:var(--lat-ref-color-gray-600);--lat-color-border-inverse-default:var(--lat-ref-color-gray-400);--lat-color-border-inverse-disabled:var(--lat-ref-color-gray-700);--lat-color-border-inverse-focus:var(--lat-ref-color-sky-400);--lat-color-border-inverse-hover:var(--lat-ref-color-gray-500);--lat-color-border-neutral-subtle:var(--lat-ref-color-gray-900);--lat-color-border-neutral-subtlest:var(--lat-ref-color-gray-100);--lat-color-border-primary-active:var(--lat-ref-color-gray-700);--lat-color-border-primary-default:var(--lat-ref-color-gray-300);--lat-color-border-primary-disabled:var(--lat-ref-color-gray-200);--lat-color-border-primary-hover:var(--lat-ref-color-gray-700);--lat-color-border-secondary-default:var(--lat-ref-color-gray-600);--lat-color-border-success-default:var(--lat-ref-color-green-900);--lat-color-border-success-subtle:var(--lat-ref-color-green-1000);--lat-color-border-transparent:#ffffff00;--lat-color-border-warning-default:var(--lat-ref-color-gold-1000);--lat-color-border-warning-subtle:var(--lat-ref-color-gold-1100);--lat-color-foreground-critical-default:var(--lat-ref-color-red-1000);--lat-color-foreground-critical-hover:var(--lat-ref-color-red-900);--lat-color-foreground-critical-subtle:var(--lat-ref-color-red-1000);--lat-color-foreground-informational-default:var(--lat-ref-color-sky-900);--lat-color-foreground-informational-subtle:var(--lat-ref-color-sky-900);--lat-color-foreground-inverse-critical-default:var(--lat-ref-color-red-300);--lat-color-foreground-inverse-default:var(--lat-ref-color-miscellaneous-white);--lat-color-foreground-inverse-disabled:var(--lat-ref-color-gray-700);--lat-color-foreground-inverse-link-active:var(--lat-ref-color-sky-300);--lat-color-foreground-inverse-link-default:var(--lat-ref-color-sky-200);--lat-color-foreground-inverse-link-hover:var(--lat-ref-color-sky-300);--lat-color-foreground-inverse-link-visited:var(--lat-ref-color-purple-300);--lat-color-foreground-inverse-secondary:var(--lat-ref-color-gray-300);--lat-color-foreground-inverse-success-default:var(--lat-ref-color-green-500);--lat-color-foreground-inverse-warning-default:var(--lat-ref-color-gold-500);--lat-color-foreground-link-active:var(--lat-ref-color-blue-700);--lat-color-foreground-link-default:var(--lat-ref-color-sky-900);--lat-color-foreground-link-hover:var(--lat-ref-color-blue-700);--lat-color-foreground-link-visited:var(--lat-ref-color-purple-700);--lat-color-foreground-neutral-default:var(--lat-ref-color-gray-700);--lat-color-foreground-neutral-subtle:var(--lat-ref-color-gray-900);--lat-color-foreground-pink-boldest:var(--lat-ref-color-pink-1000);--lat-color-foreground-primary-default:var(--lat-ref-color-gray-900);--lat-color-foreground-primary-disabled:var(--lat-ref-color-gray-600);--lat-color-foreground-purple-boldest:var(--lat-ref-color-purple-1000);--lat-color-foreground-secondary-default:var(--lat-ref-color-gray-700);--lat-color-foreground-secondary-disabled:var(--lat-ref-color-gray-600);--lat-color-foreground-success-boldest:var(--lat-ref-color-green-1000);--lat-color-foreground-success-default:var(--lat-ref-color-green-900);--lat-color-foreground-teal-boldest:var(--lat-ref-color-teal-1000);--lat-color-foreground-warning-boldest:var(--lat-ref-color-gold-1100);--lat-color-foreground-warning-default:var(--lat-ref-color-gold-1000);--lat-color-page-primary:var(--lat-ref-color-miscellaneous-white);--lat-color-page-secondary:var(--lat-ref-color-gray-50);--lat-gradient-rainbow:linear-gradient(90deg, #F96E10, #FFC305, #FFE84F, #78E898, #3EDFFF, #0298EC);--lat-motion-duration-instant:100ms;--lat-motion-duration-fast:150ms;--lat-motion-duration-moderate:200ms;--lat-motion-duration-slow:300ms;--lat-motion-duration-deliberate:500ms;--lat-motion-ease-standard:cubic-bezier(0.4, 0, 0.2, 1);--lat-motion-ease-entrance:cubic-bezier(0.16, 1, 0.3, 1);--lat-motion-ease-exit:cubic-bezier(0.4, 0, 1, 1);--lat-motion-spin-fast:1s;--lat-motion-spin-slow:2.5s;--lat-motion-pulse-slow:1.4s;--lat-motion-type-chart:35ms;--lat-motion-type-erase:20ms;--lat-motion-type-pause:1200ms;--lat-shadow-popover:0 1px 2px rgba(25, 26, 27, 0.06), 0 2px 6px rgba(25, 26, 27, 0.08);--lat-shadow-focus:0 4px 4px rgba(0, 0, 0, 0.12);--lat-shadow-tooltip:0 1px 2px rgba(25, 26, 27, 0.06), 0 2px 6px rgba(25, 26, 27, 0.08);--lat-shadow-small:0 1px 2px rgba(25, 26, 27, 0.06), 0 2px 6px rgba(25, 26, 27, 0.08);--lat-shadow-medium:0 2px 4px rgba(25, 26, 27, 0.06), 0 6px 16px rgba(25, 26, 27, 0.10);--lat-shadow-large:0 4px 8px rgba(25, 26, 27, 0.08), 0 12px 28px rgba(25, 26, 27, 0.14);--lat-shadow-overflow-left:-4px 0 8px rgba(25, 26, 27, 0.08);--lat-shadow-overflow-right:4px 0 8px rgba(25, 26, 27, 0.08);--lat-shadow-overflow-bottom:0 4px 8px rgba(25, 26, 27, 0.08);--lat-size-x0:0px;--lat-size-x1:4px;--lat-size-x2:8px;--lat-size-x3:12px;--lat-size-x4:16px;--lat-size-x5:20px;--lat-size-x6:24px;--lat-size-x7:28px;--lat-size-x8:32px;--lat-size-x9:36px;--lat-size-x10:40px;--lat-size-x11:44px;--lat-size-x12:48px;--lat-size-x13:52px;--lat-size-x14:56px;--lat-size-x15:60px;--lat-size-x16:64px;--lat-size-x20:80px;--lat-space-inline-text:4px;--lat-space-text-to-separator-padding:4px;--lat-space-trigger-to-anchor:4px;--lat-space-gutter-s:8px;--lat-space-text-to-text-s:8px;--lat-space-trigger-s:8px;--lat-space-card-padding:12px;--lat-space-form-s:12px;--lat-space-gutter-m:12px;--lat-space-text-to-component-s:12px;--lat-space-text-to-text-m:12px;--lat-space-trigger-m:12px;--lat-space-form-m:16px;--lat-space-section-s:16px;--lat-space-text-to-component-m:16px;--lat-space-section-m:20px;--lat-space-modal-padding:24px;--lat-space-page-padding:24px;--lat-space-pane:24px;--lat-space-x0:0px;--lat-space-x1:4px;--lat-space-x2:8px;--lat-space-x3:12px;--lat-space-x4:16px;--lat-space-x5:20px;--lat-space-x6:24px;--lat-space-x7:28px;--lat-space-x8:32px;--lat-space-x9:36px;--lat-space-x10:40px;--lat-space-x11:44px;--lat-space-x12:48px;--lat-text-body-default:400 0.875rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-body-default-italic:italic 400 0.875rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-body-default-medium:500 0.875rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-body-small:400 0.75rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-body-small-medium:500 0.75rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-body-large:400 1rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-body-large-italic:italic 400 1rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-body-large-medium:500 1rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-code-small:400 0.75rem 'Roboto Mono', monospace;--lat-text-code-medium:400 0.875rem 'Roboto Mono', monospace;--lat-text-heading-1:600 2rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-heading-2:600 1.5rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-heading-3:600 1.25rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-heading-4:600 1rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-heading-5:600 0.875rem 'Roboto', Arial, Helvetica, sans-serif;--lat-text-heading-6:600 0.75rem 'Roboto', Arial, Helvetica, sans-serif;--lat-z-base:0;--lat-z-sticky:50;--lat-z-chrome:100;--lat-z-overlay:500;--lat-z-modal:600;--lat-z-popover:1000;--lat-z-toast:1500;--lat-z-tooltip:2000;--lat-comp-badge-background-critical-bold:var(--lat-color-background-critical-bold);--lat-comp-badge-background-critical-default:#d781844d;--lat-comp-badge-background-informational-default:#60b5f04d;--lat-comp-badge-background-neutral-default:#c9d1df4d;--lat-comp-badge-background-success-default:#a1db6a4d;--lat-comp-badge-background-warning-default:#ffd14d4d;--lat-comp-badge-border-contrast-default:var(--lat-color-border-contrast);--lat-comp-badge-foreground-critical-default:var(--lat-color-foreground-critical-subtle);--lat-comp-badge-foreground-informational-default:var(--lat-color-foreground-informational-subtle);--lat-comp-badge-foreground-inverse-default:var(--lat-color-foreground-inverse-default);--lat-comp-badge-foreground-neutral-default:var(--lat-color-foreground-neutral-subtle);--lat-comp-badge-foreground-success-default:var(--lat-color-foreground-success-boldest);--lat-comp-badge-foreground-warning-default:var(--lat-color-foreground-warning-boldest);--lat-comp-banner-background-critical-default:#d781844d;--lat-comp-banner-background-critical-hover:var(--lat-color-background-critical-hover);--lat-comp-banner-background-informational-default:#60b5f04d;--lat-comp-banner-background-informational-hover:var(--lat-color-background-informational-hover);--lat-comp-banner-background-neutral-default:#c9d1df4d;--lat-comp-banner-background-neutral-hover:var(--lat-color-background-neutral-hover);--lat-comp-banner-background-success-default:#a1db6a4d;--lat-comp-banner-background-success-hover:var(--lat-color-background-success-hover);--lat-comp-banner-background-warning-default:#ffd14d4d;--lat-comp-banner-background-warning-hover:var(--lat-color-background-warning-hover);--lat-comp-banner-border-critical-default:var(--lat-color-border-critical-subtle);--lat-comp-banner-border-informational-default:var(--lat-color-border-informational-subtle);--lat-comp-banner-border-neutral-default:var(--lat-color-border-neutral-subtle);--lat-comp-banner-border-success-default:var(--lat-color-border-success-subtle);--lat-comp-banner-border-warning-default:var(--lat-color-border-warning-subtle);--lat-comp-banner-foreground-critical-default:var(--lat-color-foreground-critical-subtle);--lat-comp-banner-foreground-informational-default:var(--lat-color-foreground-informational-subtle);--lat-comp-banner-foreground-neutral-default:var(--lat-color-foreground-neutral-subtle);--lat-comp-banner-foreground-success-default:var(--lat-color-foreground-success-boldest);--lat-comp-banner-foreground-warning-default:var(--lat-color-foreground-warning-boldest);--lat-comp-toast-background-primary-default:var(--lat-color-background-inverse-default);--lat-comp-toast-background-primary-hover:var(--lat-color-background-inverse-hover);--lat-comp-toast-foreground-critical-default:var(--lat-color-foreground-inverse-critical-default);--lat-comp-toast-foreground-link-active:var(--lat-color-foreground-inverse-link-active);--lat-comp-toast-foreground-link-default:var(--lat-color-foreground-inverse-link-default);--lat-comp-toast-foreground-link-hover:var(--lat-color-foreground-inverse-link-hover);--lat-comp-toast-foreground-link-visited:var(--lat-color-foreground-inverse-link-visited);--lat-comp-toast-foreground-primary-default:var(--lat-color-foreground-inverse-default);--lat-comp-toast-foreground-success-default:var(--lat-color-foreground-inverse-success-default);--lat-comp-tooltip-background-primary-default:var(--lat-color-background-inverse-default);--lat-comp-tooltip-foreground-primary-default:var(--lat-color-foreground-inverse-default)}.dark{--lat-color-background-critical-bold:var(--lat-ref-color-red-400);--lat-color-background-critical-bolder:var(--lat-ref-color-red-300);--lat-color-background-critical-boldest:var(--lat-ref-color-red-200);--lat-color-background-critical-default:var(--lat-ref-color-red-1000);--lat-color-background-critical-hover:var(--lat-ref-color-red-300);--lat-color-background-critical-subtle:var(--lat-ref-color-red-500);--lat-color-background-informational-default:var(--lat-ref-color-sky-900);--lat-color-background-informational-hover:var(--lat-ref-color-blue-700);--lat-color-background-informational-subtle:var(--lat-ref-color-sky-500);--lat-color-background-interactive-active:var(--lat-ref-color-sky-200);--lat-color-background-interactive-default:var(--lat-ref-color-sky-400);--lat-color-background-interactive-disabled:var(--lat-ref-color-gray-900);--lat-color-background-interactive-hover:var(--lat-ref-color-sky-300);--lat-color-background-inverse-active:var(--lat-ref-color-sky-50);--lat-color-background-inverse-default:var(--lat-ref-color-miscellaneous-white);--lat-color-background-inverse-disabled:var(--lat-ref-color-gray-100);--lat-color-background-inverse-hover:var(--lat-ref-color-gray-50);--lat-color-background-neutral-active:var(--lat-ref-color-gray-700);--lat-color-background-neutral-bold:var(--lat-ref-color-gray-800);--lat-color-background-neutral-bolder:var(--lat-ref-color-gray-600);--lat-color-background-neutral-boldest:var(--lat-ref-color-gray-400);--lat-color-background-neutral-default:var(--lat-ref-color-gray-900);--lat-color-background-neutral-disabled:var(--lat-ref-color-gray-1000);--lat-color-background-neutral-hover:var(--lat-ref-color-gray-800);--lat-color-background-neutral-subtle:var(--lat-ref-color-gray-500);--lat-color-background-pink-default:var(--lat-ref-color-pink-900);--lat-color-background-primary-active:var(--lat-ref-color-gray-700);--lat-color-background-primary-default:var(--lat-ref-color-gray-1000);--lat-color-background-primary-disabled:var(--lat-ref-color-gray-1050);--lat-color-background-primary-hover:var(--lat-ref-color-gray-900);--lat-color-background-primary-selected:var(--lat-ref-color-gray-800);--lat-color-background-purple-default:var(--lat-ref-color-purple-900);--lat-color-background-secondary-default:var(--lat-ref-color-gray-950);--lat-color-background-secondary-hover:var(--lat-ref-color-gray-800);--lat-color-background-secondary-selected:var(--lat-ref-color-sky-700);--lat-color-background-success-bold:var(--lat-ref-color-green-700);--lat-color-background-success-bolder:var(--lat-ref-color-green-400);--lat-color-background-success-default:var(--lat-ref-color-green-1000);--lat-color-background-success-hover:var(--lat-ref-color-green-900);--lat-color-background-success-subtle:var(--lat-ref-color-green-500);--lat-color-background-teal-default:var(--lat-ref-color-teal-900);--lat-color-background-warning-default:var(--lat-ref-color-gold-1000);--lat-color-background-warning-hover:var(--lat-ref-color-gold-1100);--lat-color-background-warning-subtle:var(--lat-ref-color-gold-500);--lat-color-border-contrast:var(--lat-ref-color-miscellaneous-charcoal);--lat-color-border-contrast-focus:var(--lat-ref-color-miscellaneous-white);--lat-color-border-critical-default:var(--lat-ref-color-red-500);--lat-color-border-critical-subtle:var(--lat-ref-color-red-400);--lat-color-border-focus:var(--lat-ref-color-sky-400);--lat-color-border-informational-default:var(--lat-ref-color-sky-500);--lat-color-border-informational-subtle:var(--lat-ref-color-sky-400);--lat-color-border-inverse-active:var(--lat-ref-color-gray-700);--lat-color-border-inverse-default:var(--lat-ref-color-gray-300);--lat-color-border-inverse-disabled:var(--lat-ref-color-gray-200);--lat-color-border-inverse-focus:var(--lat-ref-color-sky-700);--lat-color-border-inverse-hover:var(--lat-ref-color-gray-700);--lat-color-border-neutral-subtle:var(--lat-ref-color-gray-400);--lat-color-border-neutral-subtlest:var(--lat-ref-color-gray-900);--lat-color-border-primary-active:var(--lat-ref-color-gray-500);--lat-color-border-primary-default:var(--lat-ref-color-gray-900);--lat-color-border-primary-disabled:var(--lat-ref-color-gray-700);--lat-color-border-primary-hover:var(--lat-ref-color-gray-500);--lat-color-border-secondary-default:var(--lat-ref-color-gray-600);--lat-color-border-success-default:var(--lat-ref-color-green-400);--lat-color-border-success-subtle:var(--lat-ref-color-green-400);--lat-color-border-transparent:#ffffff00;--lat-color-border-warning-default:var(--lat-ref-color-gold-600);--lat-color-border-warning-subtle:var(--lat-ref-color-gold-400);--lat-color-foreground-critical-default:var(--lat-ref-color-red-300);--lat-color-foreground-critical-hover:var(--lat-ref-color-red-200);--lat-color-foreground-critical-subtle:var(--lat-ref-color-red-100);--lat-color-foreground-informational-default:var(--lat-ref-color-sky-500);--lat-color-foreground-informational-subtle:var(--lat-ref-color-sky-100);--lat-color-foreground-inverse-critical-default:var(--lat-ref-color-red-1000);--lat-color-foreground-inverse-default:var(--lat-ref-color-gray-1050);--lat-color-foreground-inverse-disabled:var(--lat-ref-color-gray-500);--lat-color-foreground-inverse-link-active:var(--lat-ref-color-blue-700);--lat-color-foreground-inverse-link-default:var(--lat-ref-color-sky-900);--lat-color-foreground-inverse-link-hover:var(--lat-ref-color-blue-700);--lat-color-foreground-inverse-link-visited:var(--lat-ref-color-purple-700);--lat-color-foreground-inverse-secondary:var(--lat-ref-color-gray-700);--lat-color-foreground-inverse-success-default:var(--lat-ref-color-green-900);--lat-color-foreground-inverse-warning-default:var(--lat-ref-color-gold-1000);--lat-color-foreground-link-active:var(--lat-ref-color-sky-300);--lat-color-foreground-link-default:var(--lat-ref-color-sky-200);--lat-color-foreground-link-hover:var(--lat-ref-color-sky-300);--lat-color-foreground-link-visited:var(--lat-ref-color-purple-300);--lat-color-foreground-neutral-default:var(--lat-ref-color-gray-100);--lat-color-foreground-neutral-subtle:var(--lat-ref-color-gray-100);--lat-color-foreground-pink-boldest:var(--lat-ref-color-pink-100);--lat-color-foreground-primary-default:var(--lat-ref-color-gray-50);--lat-color-foreground-primary-disabled:var(--lat-ref-color-gray-700);--lat-color-foreground-purple-boldest:var(--lat-ref-color-purple-100);--lat-color-foreground-secondary-default:var(--lat-ref-color-gray-300);--lat-color-foreground-secondary-disabled:var(--lat-ref-color-gray-600);--lat-color-foreground-success-boldest:var(--lat-ref-color-green-100);--lat-color-foreground-success-default:var(--lat-ref-color-green-500);--lat-color-foreground-teal-boldest:var(--lat-ref-color-teal-100);--lat-color-foreground-warning-boldest:var(--lat-ref-color-gold-100);--lat-color-foreground-warning-default:var(--lat-ref-color-gold-500);--lat-color-page-primary:var(--lat-ref-color-gray-1050);--lat-color-page-secondary:var(--lat-ref-color-gray-1100);--lat-gradient-rainbow:linear-gradient(90deg, #F96E10, #FFC305, #FFE84F, #78E898, #3EDFFF, #0298EC);--lat-shadow-popover:0 0 0 1px rgba(255, 255, 255, 0.06), 0 2px 6px rgba(0, 0, 0, 0.35);--lat-shadow-focus:0 4px 8px rgba(0, 0, 0, 0.20);--lat-shadow-tooltip:0 0 0 1px rgba(255, 255, 255, 0.06), 0 2px 6px rgba(0, 0, 0, 0.35);--lat-shadow-small:0 0 0 1px rgba(255, 255, 255, 0.06), 0 2px 6px rgba(0, 0, 0, 0.35);--lat-shadow-medium:0 0 0 1px rgba(255, 255, 255, 0.06), 0 6px 16px rgba(0, 0, 0, 0.40);--lat-shadow-large:0 0 0 1px rgba(255, 255, 255, 0.05), 0 12px 28px rgba(0, 0, 0, 0.45);--lat-shadow-overflow-left:-4px 0 8px rgba(0, 0, 0, 0.35);--lat-shadow-overflow-right:4px 0 8px rgba(0, 0, 0, 0.35);--lat-shadow-overflow-bottom:0 4px 8px rgba(0, 0, 0, 0.35);--lat-comp-badge-background-critical-bold:var(--lat-color-background-critical-bold);--lat-comp-badge-background-critical-default:#e65b534d;--lat-comp-badge-background-informational-default:#0296ec4d;--lat-comp-badge-background-neutral-default:#8f94a94d;--lat-comp-badge-background-success-default:#73ca0d4d;--lat-comp-badge-background-warning-default:#ffbc044d;--lat-comp-badge-border-contrast-default:var(--lat-color-border-contrast);--lat-comp-badge-foreground-critical-default:var(--lat-color-foreground-critical-subtle);--lat-comp-badge-foreground-informational-default:var(--lat-color-foreground-informational-subtle);--lat-comp-badge-foreground-inverse-default:var(--lat-color-foreground-inverse-default);--lat-comp-badge-foreground-neutral-default:var(--lat-color-foreground-neutral-subtle);--lat-comp-badge-foreground-success-default:var(--lat-color-foreground-success-boldest);--lat-comp-badge-foreground-warning-default:var(--lat-color-foreground-warning-boldest);--lat-comp-banner-background-critical-default:#e65b534d;--lat-comp-banner-background-critical-hover:var(--lat-color-background-critical-hover);--lat-comp-banner-background-informational-default:#0296ec4d;--lat-comp-banner-background-informational-hover:var(--lat-color-background-informational-hover);--lat-comp-banner-background-neutral-default:#8f94a94d;--lat-comp-banner-background-neutral-hover:var(--lat-color-background-neutral-hover);--lat-comp-banner-background-success-default:#73ca0d4d;--lat-comp-banner-background-success-hover:var(--lat-color-background-success-hover);--lat-comp-banner-background-warning-default:#ffbc044d;--lat-comp-banner-background-warning-hover:var(--lat-color-background-warning-hover);--lat-comp-banner-border-critical-default:var(--lat-color-border-critical-subtle);--lat-comp-banner-border-informational-default:var(--lat-color-border-informational-subtle);--lat-comp-banner-border-neutral-default:var(--lat-color-border-neutral-subtle);--lat-comp-banner-border-success-default:var(--lat-color-border-success-subtle);--lat-comp-banner-border-warning-default:var(--lat-color-border-warning-subtle);--lat-comp-banner-foreground-critical-default:var(--lat-color-foreground-critical-subtle);--lat-comp-banner-foreground-informational-default:var(--lat-color-foreground-informational-subtle);--lat-comp-banner-foreground-neutral-default:var(--lat-color-foreground-neutral-subtle);--lat-comp-banner-foreground-success-default:var(--lat-color-foreground-success-boldest);--lat-comp-banner-foreground-warning-default:var(--lat-color-foreground-warning-boldest);--lat-comp-toast-background-primary-default:var(--lat-color-background-neutral-default);--lat-comp-toast-background-primary-hover:var(--lat-color-background-neutral-hover);--lat-comp-toast-foreground-critical-default:var(--lat-color-foreground-critical-default);--lat-comp-toast-foreground-link-active:var(--lat-color-foreground-link-active);--lat-comp-toast-foreground-link-default:var(--lat-color-foreground-link-default);--lat-comp-toast-foreground-link-hover:var(--lat-color-foreground-link-hover);--lat-comp-toast-foreground-link-visited:var(--lat-color-foreground-link-visited);--lat-comp-toast-foreground-primary-default:var(--lat-color-foreground-primary-default);--lat-comp-toast-foreground-success-default:var(--lat-color-foreground-success-default);--lat-comp-tooltip-background-primary-default:var(--lat-color-background-neutral-default);--lat-comp-tooltip-foreground-primary-default:var(--lat-color-foreground-primary-default)}#navbar-transition{background-color:var(--lat-color-background-secondary-default)}"}],"page":{"pagePath":"troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions","slug":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions","pageMetadata":{"title":"Migrate to Stabilized OpenTelemetry HTTP Semantic Conventions","description":"Update your instrumentation to the stable OpenTelemetry HTTP semantic conventions to avoid breaking changes introduced when conventions were stabilized in 2023.","sidebarTitle":"Migrate to Stabilized OpenTelemetry Semantic Conventions","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Update your instrumentation to the stable OpenTelemetry HTTP semantic conventions to avoid breaking changes introduced when conventions were stabilized in 2023.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Note,OptimizedImage,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`If you are affected by the OpenTelemetry HTTP semantic convention stabilization breaking changes, this guide will help you migrate your application from the old semantics to the new, stable semantics.`}),`\n`,_jsxs(_components.p,{children:[`To identify whether you are affected, visit `,_jsx(_components.a,{href:`/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions/compatibility/`,children:`OpenTelemetry HTTP Semantic Conventions Compatibility`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`understand-the-impact`,children:`Understand the Impact`}),`\n`,_jsxs(_components.p,{children:[`As a part of the stabilization breaking changes, 17 attributes in the HTTP semantic conventions were renamed, such as `,_jsx(_components.code,{children:`http.status_code`}),` changing to `,_jsx(_components.code,{children:`http.request.status_code`}),`.\nThese changes are likely to impact several areas within Honeycomb.`]}),`\n`,_jsxs(_components.p,{children:[`We recommend to review the complete list of attribute changes in OpenTelemetry’s `,_jsx(_components.a,{href:`https://github.com/open-telemetry/semantic-conventions/blob/main/docs/non-normative/http-migration.md#summary-of-changes`,children:`Summary of Changes`}),`.`]}),`\n`,_jsx(_components.p,{children:`With these attribute changes in mind, we also recommend to review your Honeycomb:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`SLOs`}),`\n`,_jsx(_components.li,{children:`Triggers`}),`\n`,_jsx(_components.li,{children:`Calculated Fields`}),`\n`,_jsx(_components.li,{children:`Boards and saved queries`}),`\n`,_jsx(_components.li,{children:`Refinery rule conditions and field lists`}),`\n`,_jsx(_components.li,{children:`OpenTelemetry Collector configurations`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`If any of these elements depend on attributes with HTTP semantic conventions, then you will be impacted by these breaking changes.`})}),`\n`,_jsx(Heading,{level:`2`,id:`migration-strategy`,children:`Migration Strategy`}),`\n`,_jsxs(_components.p,{children:[`OpenTelemetry defines a special environment variable, `,_jsx(_components.code,{children:`OTEL_SEMCONV_STABILITY_OPT_IN`}),`, that should be added to language instrumentation to help users migrate.`]}),`\n`,_jsx(_components.p,{children:`We recommend the following migration steps:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Set the `,_jsx(_components.code,{children:`OTEL_SEMCONV_STABILITY_OPT_IN`}),` environment variable to `,_jsx(_components.code,{children:`http/dup`}),` so that the instrumentation library will be able to create data using both the old and stable HTTP semantic conventions.`]}),`\n`,_jsxs(_components.li,{children:[`Update to an instrumentation library version that supports `,_jsx(_components.code,{children:`OTEL_SEMCONV_STABILITY_OPT_IN`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`#coalesce-your-data`,children:`Coalesce your data to include the new, stable HTTP semantic conventions`}),`.`]}),`\n`,_jsx(_components.li,{children:`Change your SLOs, Triggers, Calculated Fields, Boards, Refinery Rules, and OpenTelemetry Collector Configurations to use the new, stable HTTP semantic conventions.`}),`\n`,_jsxs(_components.li,{children:[`Then, set `,_jsx(_components.code,{children:`OTEL_SEMCONV_STABILITY_OPT_IN`}),` to `,_jsx(_components.code,{children:`http`}),` so that the instrumentation library only emit the new, stable HTTP semantic conventions.`]}),`\n`,_jsx(_components.li,{children:`Test that everything works as expected.`}),`\n`,_jsx(_components.li,{children:`When possible, upgrade to an instrumentation library version that only supports the new, stable HTTP semantic conventions.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Refer to `,_jsx(_components.a,{href:`/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions/compatibility/`,children:`our language compatibility matrix`}),` to determine important library instrumentation versions and whether the library supports `,_jsx(_components.code,{children:`http/dup`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`coalesce-your-data`,children:`Coalesce Your Data`}),`\n`,_jsxs(_components.p,{children:[`Producing both sets of HTTP semantic conventions at the same time is the best way to ensure a seamless transition between the old and the new HTTP semantic conventions.\nSetting the `,_jsx(_components.code,{children:`OTEL_SEMCONV_STABILITY_OPT_IN`}),` environment variable to `,_jsx(_components.code,{children:`http/dup`}),` enables this dual semantic convention ability for you.`]}),`\n`,_jsx(_components.p,{children:`If this is not an option, such as using a language that does not yet support the stable HTTP semantic conventions in OTel, complete these steps (as applicable) to ensure your setup can handle the transition period:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`#use-the-opentelemetry-collector`,children:`Use the OpenTelemetry Collector`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`#update-refinery-rules`,children:`Update Refinery Rules`})}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`#coalesce-using-calculated-fields`,children:`Coalesce using Calculated Fields`}),`, a non-OTel Collector option`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`use-the-opentelemetry-collector`,children:`Use the OpenTelemetry Collector`}),`\n`,_jsxs(_components.p,{children:[`The OpenTelemetry Collector allows for coalescing of data before it reaches Refinery (if applicable) or Honeycomb’s endpoint.\nWe `,_jsx(_components.strong,{children:`highly`}),` recommend that you use an OpenTelemetry Collector to transform and forward your data, especially when dealing with this change.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`If your collector includes the alpha `,_jsx(_components.a,{href:`/send-data/opentelemetry/collector/migrate-telemetry-schemas`,children:`schema processor`}),`, you can use it instead of writing the OTTL coalescing statements in this guide.\nThe schema processor reads each signal’s `,_jsx(_components.code,{children:`schema_url`}),`, fetches the corresponding schema file, and applies schema-defined renames automatically.\nIt also supports a migration mode that emits both old and new attribute names during the transition.\nThe OTTL approach in this guide works for collectors without the schema processor and for environments where alpha components aren’t acceptable.`]})}),`\n`,_jsx(Heading,{level:`4`,id:`coalescing-span-attributes`,children:`Coalescing Span Attributes`}),`\n`,_jsx(_components.p,{children:`Use the following OTel Collector configuration to ensure that both new and old span attributes are always present in your data before it gets sent to Refinery or Honeycomb.`}),`\n`,_jsx(_components.p,{children:`Using the configuration below prevents data breakage and allows for incremental updates for other things, like SLOs and Triggers, without risking data loss:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`114`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`114`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`transform/http_semconv_spans`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` error_mode`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ignore`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` trace_statements`}),_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:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`span`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` statements`}),_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:` # All client and server spans`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.method -> http.request.method`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.request.method\"], attributes[\"http.method\"]) where attributes[\"http.method\"] != nil and attributes[\"http.request.method\"] == nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.request.method -> http.method`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.method\"], attributes[\"http.request.method\"]) where attributes[\"http.method\"] == nil and attributes[\"http.request.method\"] != nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.status_code -> http.response.status_code`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.response.status_code\"], attributes[\"http.status_code\"]) where attributes[\"http.status_code\"] != nil and attributes[\"http.response.status_code\"] == nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.response.status_code -> http.status_code`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.status_code\"], attributes[\"http.response.status_code\"]) where attributes[\"http.status_code\"] == nil and attributes[\"http.response.status_code\"] != nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename browser.user_agent -> user_agent.original`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"user_agent.original\"], attributes[\"http.user_agent\"]) where attributes[\"browser.user_agent\"] != nil and attributes[\"user_agent.original\"] == nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename user_agent.original -> browser.user_agent`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.user_agent\"], attributes[\"user_agent.original\"]) where attributes[\"user_agent.original\"] != nil and attributes[\"http.user_agent\"] == nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename network.protocol.name -> net.protocol.name`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.protocol.name\"], attributes[\"network.protocol.name\"]) where attributes[\"network.protocol.name\"] != nil and attributes[\"net.protocol.name\"] == nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.protocol.name -> network.protocol.name`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"network.protocol.name\"], attributes[\"net.protocol.name\"]) where attributes[\"network.protocol.name\"] == nil and attributes[\"net.protocol.name\"] != nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.flavor -> network.protocol.version`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"network.protocol.version\"], attributes[\"http.flavor\"]) where attributes[\"http.flavor\"] != nil and attributes[\"network.protocol.version\"] == nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename network.protocol.version -> net.protocol.version`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.protocol.version\"], attributes[\"network.protocol.version\"]) where attributes[\"net.protocol.version\"] == nil and attributes[\"network.protocol.version\"] != nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename network.protocol.version -> http.flavor`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.flavor\"], attributes[\"network.protocol.version\"]) where attributes[\"http.flavor\"] == nil and attributes[\"network.protocol.version\"] != nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.protocol.name -> http.flavor`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.flavor\"], attributes[\"net.protocol.name\"]) where attributes[\"net.protocol.name\"] != nil and attributes[\"http.flavor\"] == nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.protocol.version -> network.protocol.version`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"network.protocol.version\"], attributes[\"net.protocol.version\"]) where attributes[\"net.protocol.version\"] != nil and attributes[\"network.protocol.version\"] == nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.sock.peer.addr -> network.peer.address`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"network.peer.address\"], attributes[\"net.sock.peer.addr\"]) where attributes[\"net.sock.peer.addr\"] != nil and attributes[\"network.peer.address\"] == nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename network.peer.address -> net.sock.peer.addr`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.sock.peer.addr\"], attributes[\"network.peer.address\"]) where attributes[\"net.sock.peer.addr\"] == nil and attributes[\"network.peer.address\"] != nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.sock.peer.port -> network.peer.port`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"network.peer.port\"], attributes[\"net.sock.peer.port\"]) where attributes[\"net.sock.peer.port\"] != nil and attributes[\"network.peer.port\"] == nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename network.peer.port -> net.sock.peer.port`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.sock.peer.port\"], attributes[\"network.peer.port\"]) where attributes[\"net.sock.peer.port\"] == nil and attributes[\"network.peer.port\"] != nil`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # All client spans`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.url -> url.full`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"url.full\"], attributes[\"http.url\"]) where attributes[\"http.url\"] != nil and attributes[\"url.full\"] == nil and kind == SPAN_KIND_CLIENT`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename url.full -> http.url`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.url\"], attributes[\"url.full\"]) where attributes[\"http.url\"] == nil and attributes[\"url.full\"] != nil and kind == SPAN_KIND_CLIENT`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.resend_count -> http.request.resend_count`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.request.resend_count\"], attributes[\"http.resend_count\"]) where attributes[\"http.resend_count\"] != nil and attributes[\"http.request.resend_count\"] == nil and kind == SPAN_KIND_CLIENT`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.request.resend_count -> http.resend_count`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.resend_count\"], attributes[\"http.request.resend_count\"]) where attributes[\"http.resend_count\"] == nil and attributes[\"http.request.resend_count\"] != nil and kind == SPAN_KIND_CLIENT`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.peer.name -> server.address`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"server.address\"], attributes[\"net.peer.name\"]) where attributes[\"net.peer.name\"] != nil and attributes[\"server.address\"] == nil and kind == SPAN_KIND_CLIENT`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename server.address -> net.peer.name`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.peer.name\"], attributes[\"server.address\"]) where attributes[\"net.peer.name\"] == nil and attributes[\"server.address\"] != nil and kind == SPAN_KIND_CLIENT`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.peer.port -> server.port`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"server.port\"], attributes[\"net.peer.port\"]) where attributes[\"net.peer.port\"] != nil and attributes[\"server.port\"] == nil and kind == SPAN_KIND_CLIENT`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename server.port -> net.peer.port`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.peer.port\"], attributes[\"server.port\"]) where attributes[\"net.peer.port\"] == nil and attributes[\"server.port\"] != nil and kind == SPAN_KIND_CLIENT`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # All server spans`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.target -> url.path and url.query`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(cache[\"temp\"], Split(attributes[\"http.target\"], \"?\")) where attributes[\"http.target\"] != nil and kind == SPAN_KIND_SERVER`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"url.path\"], cache[\"temp\"][0]) where attributes[\"url.path\"] == nil and cache[\"temp\"] != nil and Len(cache[\"temp\"]) >= 1 and kind == SPAN_KIND_SERVER`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"url.query\"], cache[\"temp\"][1]) where attributes[\"url.query\"] == nil and cache[\"temp\"] != nil and Len(cache[\"temp\"]) >= 2 and kind == SPAN_KIND_SERVER`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename url.path and url.query -> http.target`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.target\"], Concat([attributes[\"url.path\"], attributes[\"url.query\"]], \"?\")) where attributes[\"http.target\"] == nil and attributes[\"url.path\"] != nil and attributes[\"url.query\"] != nil and kind == SPAN_KIND_SERVER`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.scheme -> url.scheme`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"url.scheme\"], attributes[\"http.scheme\"]) where attributes[\"http.scheme\"] != nil and attributes[\"url.scheme\"] == nil and kind == SPAN_KIND_SERVER`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename url.scheme -> http.scheme`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.scheme\"], attributes[\"url.scheme\"]) where attributes[\"http.scheme\"] == nil and attributes[\"url.scheme\"] != nil and kind == SPAN_KIND_SERVER`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.client_ip -> client.address`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"client.address\"], attributes[\"http.client_ip\"]) where attributes[\"http.client_ip\"] != nil and attributes[\"client.address\"] == nil and kind == SPAN_KIND_SERVER`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename client.address -> http.client_ip`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.client_ip\"], attributes[\"client.address\"]) where attributes[\"http.client_ip\"] == nil and attributes[\"client.address\"] != nil and kind == SPAN_KIND_SERVER`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.host.name -> server.address`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"server.address\"], attributes[\"net.host.name\"]) where attributes[\"net.host.name\"] != nil and attributes[\"server.address\"] == nil and kind == SPAN_KIND_SERVER`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename server.address -> net.host.name`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.host.name\"], attributes[\"server.address\"]) where attributes[\"net.host.name\"] == nil and attributes[\"server.address\"] != nil and kind == SPAN_KIND_SERVER`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.host.port -> server.port`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"server.port\"], attributes[\"net.host.port\"]) where attributes[\"net.host.port\"] != nil and attributes[\"server.port\"] == nil and kind == SPAN_KIND_SERVER`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename server.port -> net.host.port`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.host.port\"], attributes[\"server.port\"]) where attributes[\"net.host.port\"] == nil and attributes[\"server.port\"] != nil and kind == SPAN_KIND_SERVER`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`4`,id:`coalescing-metrics`,children:`Coalescing Metrics`}),`\n`,_jsx(_components.p,{children:`Coalescing the metrics changes is more complicated, but still possible.`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`If you use metrics, determine whether you want the metrics to appear in Honeycomb with the old values or the new values.`})}),`\n`,_jsx(_components.p,{children:`Based on your decision, use one of the two examples below to modify your OTel Collector configuration for metrics.`}),`\n`,_jsx(_components.p,{children:`The following OTel Collector configuration renames old metric values to new metric values:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`39`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`39`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`transform/http_semconv_metrics_new`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` error_mode`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ignore`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` metric_statements`}),_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:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`datapoint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` statements`}),_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:` # rename http.method -> http.request.method`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.request.method\"], attributes[\"http.method\"]) where attributes[\"http.method\"] != nil and attributes[\"http.request.method\"] == nil and (metric.name == \"http.client.duration\" or metric.name == \"http.server.duration\") and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.status_code -> http.response.status_code`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.response.status_code\"], attributes[\"http.status_code\"]) where attributes[\"http.status_code\"] != nil and attributes[\"http.response.status_code\"] == nil and (metric.name == \"http.client.duration\" or metric.name == \"http.server.duration\") and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.peer.name -> server.address`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"server.address\"], attributes[\"net.peer.name\"]) where attributes[\"net.peer.name\"] != nil and attributes[\"server.address\"] == nil and metric.name == \"http.client.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.peer.port -> server.port`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"server.port\"], attributes[\"net.peer.port\"]) where attributes[\"net.peer.port\"] != nil and attributes[\"server.port\"] == nil and metric.name == \"http.client.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.protocol.name -> network.protocol.name`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"network.protocol.name\"], attributes[\"net.protocol.name\"]) where attributes[\"net.protocol.name\"] != nil and attributes[\"network.protocol.name\"] == nil and (metric.name == \"http.client.duration\" or metric.name == \"http.server.duration\") and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.protocol.version -> network.protocol.version`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"network.protocol.version\"], attributes[\"net.protocol.version\"]) where attributes[\"net.protocol.version\"] != nil and attributes[\"network.protocol.version\"] == nil and (metric.name == \"http.client.duration\" or metric.name == \"http.server.duration\") and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.flavor -> network.protocol.version`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"network.protocol.version\"], attributes[\"http.flavor\"]) where attributes[\"http.flavor\"] != nil and attributes[\"network.protocol.version\"] == nil and (metric.name == \"http.client.duration\" or metric.name == \"http.server.duration\") and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.scheme -> url.scheme`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"url.scheme\"], attributes[\"http.scheme\"]) where attributes[\"http.scheme\"] != nil and attributes[\"url.scheme\"] == nil and metric.name == \"http.server.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.host.name -> server.address`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"server.address\"], attributes[\"net.host.name\"]) where attributes[\"net.host.name\"] != nil and attributes[\"server.address\"] == nil and metric.name == \"http.server.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename net.host.port -> server.port`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"server.port\"], attributes[\"net.host.port\"]) where attributes[\"net.host.port\"] != nil and attributes[\"server.port\"] == nil and metric.name == \"http.server.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename metric, unit and re-aggregate`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`scale_metric(0.001, \"s\") where (metric.name == \"http.client.duration\" or metric.name == \"http.server.duration\") and metric.unit == \"ms\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(metric.name, \"http.client.request.duration\") where metric.name == \"http.client.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(metric.name, \"http.server.request.duration\") where metric.name == \"http.server.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`The following OTel Collector configuration renames new metric values to old metric values:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`39`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`39`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`transform/http_semconv_metrics_old`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` error_mode`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ignore`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` metric_statements`}),_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:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`datapoint`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` statements`}),_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:` # rename http.request.method -> http.method`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.method\"], attributes[\"http.request.method\"]) where attributes[\"http.method\"] == nil and attributes[\"http.request.method\"] != nil and (metric.name == \"http.client.request.duration\" or metric.name == \"http.server.request.duration\") and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename http.response.status_code -> http.status_code`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.status_code\"], attributes[\"http.response.status_code\"]) where attributes[\"http.status_code\"] == nil and attributes[\"http.response.status_code\"] != nil and (metric.name == \"http.client.request.duration\" or metric.name == \"http.server.request.duration\") and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename server.address -> net.peer.name`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.peer.name\"], attributes[\"server.address\"]) where attributes[\"net.peer.name\"] == nil and attributes[\"server.address\"] != nil and metric.name == \"http.client.request.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename server.port -> net.peer.port`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.peer.port\"], attributes[\"server.port\"]) where attributes[\"net.peer.port\"] == nil and attributes[\"server.port\"] != nil and metric.name == \"http.client.request.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename network.protocol.name -> net.protocol.name`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.protocol.name\"], attributes[\"network.protocol.name\"]) where attributes[\"net.protocol.name\"] == nil and attributes[\"network.protocol.name\"] != nil and (metric.name == \"http.client.request.duration\" or metric.name == \"http.server.request.duration\") and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename network.protocol.version -> net.protocol.version`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.protocol.version\"], attributes[\"network.protocol.version\"]) where attributes[\"net.protocol.version\"] == nil and attributes[\"network.protocol.version\"] != nil and (metric.name == \"http.client.request.duration\" or metric.name == \"http.server.request.duration\") and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename network.protocol.version -> http.flavor`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.flavor\"], attributes[\"network.protocol.version\"]) where attributes[\"http.flavor\"] == nil and attributes[\"network.protocol.version\"] != nil and (metric.name == \"http.client.request.duration\" or metric.name == \"http.server.request.duration\") and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename url.scheme -> http.scheme`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"http.scheme\"], attributes[\"url.scheme\"]) where attributes[\"http.scheme\"] == nil and attributes[\"url.scheme\"] != nil and metric.name == \"http.server.request.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename server.address -> net.host.name`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.host.name\"], attributes[\"server.address\"]) where attributes[\"net.host.name\"] == nil and attributes[\"server.address\"] != nil and metric.name == \"http.server.request.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename server.port -> net.host.port`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(attributes[\"net.host.port\"], attributes[\"server.port\"]) where attributes[\"net.host.port\"] == nil and attributes[\"server.port\"] != nil and metric.name == \"http.server.request.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # rename metric, unit and re-aggregate`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`scale_metric(1000, \"ms\") where (metric.name == \"http.client.request.duration\" or metric.name == \"http.server.request.duration\") and metric.unit == \"s\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(metric.name, \"http.client.duration\") where metric.name == \"http.client.request.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`set(metric.name, \"http.server.duration\") where metric.name == \"http.server.request.duration\" and metric.type == METRIC_DATA_TYPE_HISTOGRAM`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`update-refinery-rules`,children:`Update Refinery Rules`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/manage-data-volume/sample/honeycomb-refinery/`,children:`Refinery`}),`, as of `,_jsx(_components.a,{href:`https://github.com/honeycombio/refinery/releases/tag/v2.3.0`,children:`version 2.3`}),`, can use multiple fields in a condition, which ensures that the same sampling decisions can be made on differently-shaped data.\nWhile not a true coalescing since the data `,_jsx(_components.strong,{children:`is not`}),` modified, this feature will help to manage tail sampling when the traces contain spans with both the old and new HTTP semantic conventions.`]}),`\n`,_jsx(_components.p,{children:`If you use Refinery, we highly recommend updating Refinery to the latest version and use this capability.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`- `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`dynamically sample 200 responses across semantic conventions`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` Conditions`}),_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:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Fields`}),_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:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`http.status_code`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`http.response.status_code`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` Operator`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`=`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` Value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`200`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` Datatype`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`int`})]}),`\n`]})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Fields`}),` is used here instead of `,_jsx(_components.code,{children:`Field`}),`.\nThis configuration ensures that the rule evaluates successfully, regardless of whether data uses `,_jsx(_components.code,{children:`http.status_code`}),` or `,_jsx(_components.code,{children:`http.response.status_code`}),` as an field.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`coalesce-using-calculated-fields`,children:`Coalesce using Calculated Fields`}),`\n`,_jsxs(_components.p,{children:[`If the OTel Collector is not an option, you can create `,_jsx(_components.a,{href:`/configure/environments/calculated-fields/`,children:`Calculated Fields`}),` using the `,_jsx(_components.code,{children:`COALESCE`}),` function.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/honeycomb/izYM_pgEskzvL08S/_assets/images/migrations/opentelemetry-semantic-conventions/coalesce.png?fit=max\u0026auto=format\u0026n=izYM_pgEskzvL08S\u0026q=85\u0026s=a009ea2c5b62894aee7bce06098423f1`,alt:`Screenshot of a calculated field using coalesce`,\"data-og-width\":`1424`,width:`1424`,\"data-og-height\":`1324`,height:`1324`,\"data-path\":`_assets/images/migrations/opentelemetry-semantic-conventions/coalesce.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/honeycomb/izYM_pgEskzvL08S/_assets/images/migrations/opentelemetry-semantic-conventions/coalesce.png?w=280\u0026fit=max\u0026auto=format\u0026n=izYM_pgEskzvL08S\u0026q=85\u0026s=1e8ef0311ba74c9c5fc5bb85317c9e19 280w, https://mintcdn.com/honeycomb/izYM_pgEskzvL08S/_assets/images/migrations/opentelemetry-semantic-conventions/coalesce.png?w=560\u0026fit=max\u0026auto=format\u0026n=izYM_pgEskzvL08S\u0026q=85\u0026s=24d8d2430980d8c2327957323aa1a1f8 560w, https://mintcdn.com/honeycomb/izYM_pgEskzvL08S/_assets/images/migrations/opentelemetry-semantic-conventions/coalesce.png?w=840\u0026fit=max\u0026auto=format\u0026n=izYM_pgEskzvL08S\u0026q=85\u0026s=22d701d8d554e1c6ab2f09f5ceeb1a26 840w, https://mintcdn.com/honeycomb/izYM_pgEskzvL08S/_assets/images/migrations/opentelemetry-semantic-conventions/coalesce.png?w=1100\u0026fit=max\u0026auto=format\u0026n=izYM_pgEskzvL08S\u0026q=85\u0026s=8acb39c90bb8f1c348484525a41b8332 1100w, https://mintcdn.com/honeycomb/izYM_pgEskzvL08S/_assets/images/migrations/opentelemetry-semantic-conventions/coalesce.png?w=1650\u0026fit=max\u0026auto=format\u0026n=izYM_pgEskzvL08S\u0026q=85\u0026s=4f7721c2f5c1fd5be1f38f4ccabbb051 1650w, https://mintcdn.com/honeycomb/izYM_pgEskzvL08S/_assets/images/migrations/opentelemetry-semantic-conventions/coalesce.png?w=2500\u0026fit=max\u0026auto=format\u0026n=izYM_pgEskzvL08S\u0026q=85\u0026s=1a2b01e1e61ee4ad3b9bd8112921af99 2500w`})}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`COALESCE`}),` to make a new field name that represents two values at once.\nIt works by taking the value of whichever field it sees first.\nTo avoid name conflicts in the future, we recommend to name these Calculated Fields with a `,_jsx(_components.code,{children:`dc.`}),` prefix.`]}),`\n`,_jsxs(_components.p,{children:[`Using the `,_jsx(_components.code,{children:`status_code`}),` in an SLI requires embedding the `,_jsx(_components.code,{children:`COALESCE`}),` function anywhere the status code is tested or returned, so it can get verbose.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{},"config":{},"pageMetadata":{"title":"Migrate to Stabilized OpenTelemetry HTTP Semantic Conventions","description":"Update your instrumentation to the stable OpenTelemetry HTTP semantic conventions to avoid breaking changes introduced when conventions were stabilized in 2023.","sidebarTitle":"Migrate to Stabilized OpenTelemetry Semantic Conventions","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Understand the Impact","slug":"understand-the-impact","depth":2,"children":[]},{"title":"Migration Strategy","slug":"migration-strategy","depth":2,"children":[]},{"title":"Coalesce Your Data","slug":"coalesce-your-data","depth":2,"children":[{"title":"Use the OpenTelemetry Collector","slug":"use-the-opentelemetry-collector","depth":3,"children":[]},{"title":"Coalescing Span Attributes","slug":"coalescing-span-attributes","depth":4,"children":[]},{"title":"Coalescing Metrics","slug":"coalescing-metrics","depth":4,"children":[]},{"title":"Update Refinery Rules","slug":"update-refinery-rules","depth":3,"children":[]},{"title":"Coalesce using Calculated Fields","slug":"coalesce-using-calculated-fields","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/honeycomb/b94dfbf0ae869e30/_assets/scripts/kapa.js","/_mintlify/custom/honeycomb/0eb253641253d1ce/main.js","/_mintlify/custom/honeycomb/a0f1d373bf4aece9/tracing.js"],"subdomain":"honeycomb","siteName":"Honeycomb Docs","title":"Migrate to Stabilized OpenTelemetry HTTP Semantic Conventions - Honeycomb Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-28T04:50:55.141Z","originalFileLocation":"troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Update your instrumentation to the stable OpenTelemetry HTTP semantic conventions to avoid breaking changes introduced when conventions were stabilized in 2023.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Honeycomb Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/honeycomb/7YUY9epdPvOVWjv6/_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/honeycomb/7YUY9epdPvOVWjv6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/honeycomb/7YUY9epdPvOVWjv6/_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/honeycomb/7YUY9epdPvOVWjv6/_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/honeycomb/7YUY9epdPvOVWjv6/_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/honeycomb/7YUY9epdPvOVWjv6/_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/honeycomb/7YUY9epdPvOVWjv6/_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/honeycomb/7YUY9epdPvOVWjv6/_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/honeycomb/7YUY9epdPvOVWjv6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Migrate to Stabilized OpenTelemetry HTTP Semantic Conventions - Honeycomb Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Update your instrumentation to the stable OpenTelemetry HTTP semantic conventions to avoid breaking changes introduced when conventions were stabilized in 2023.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Honeycomb Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.honeycomb.io/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://honeycomb.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Migrate+to+Stabilized+OpenTelemetry+HTTP+Semantic+Conventions\u0026amp;description=Update+your+instrumentation+to+the+stable+OpenTelemetry+HTTP+semantic+conventions+to+avoid+breaking+changes+introduced+when+conventions+were+stabilized+in+2023.\u0026amp;theme=93661a4477bec396dfc2bcd6\u0026amp;signature=ceb892e4cd2373aec46ffa00009808c8d14857d1a2e81f374f0109f87d9b8b90\">\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=\"Migrate to Stabilized OpenTelemetry HTTP Semantic Conventions - Honeycomb Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Update your instrumentation to the stable OpenTelemetry HTTP semantic conventions to avoid breaking changes introduced when conventions were stabilized in 2023.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://honeycomb.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Migrate+to+Stabilized+OpenTelemetry+HTTP+Semantic+Conventions\u0026amp;description=Update+your+instrumentation+to+the+stable+OpenTelemetry+HTTP+semantic+conventions+to+avoid+breaking+changes+introduced+when+conventions+were+stabilized+in+2023.\u0026amp;theme=93661a4477bec396dfc2bcd6\u0026amp;signature=ceb892e4cd2373aec46ffa00009808c8d14857d1a2e81f374f0109f87d9b8b90\">\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/honeycomb/7YUY9epdPvOVWjv6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Honeycomb Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0298ec\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.honeycomb.io/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.honeycomb.io/#organization\",\"name\":\"Honeycomb Docs\",\"url\":\"https://docs.honeycomb.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/honeycomb/TYbxiKcJ1fL3Sm5n/_assets/logos/light.svg?fit=max\u0026auto=format\u0026n=TYbxiKcJ1fL3Sm5n\u0026q=85\u0026s=27a1eaed720bce94471b9408761a57a5\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.honeycomb.io#website\",\"name\":\"Honeycomb Docs\",\"url\":\"https://docs.honeycomb.io\",\"publisher\":{\"@id\":\"https://docs.honeycomb.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.honeycomb.io/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions#webpage\",\"url\":\"https://docs.honeycomb.io/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions\",\"name\":\"Migrate to Stabilized OpenTelemetry HTTP Semantic Conventions\",\"description\":\"Update your instrumentation to the stable OpenTelemetry HTTP semantic conventions to avoid breaking changes introduced when conventions were stabilized in 2023.\",\"dateModified\":\"2026-05-28T04:50:55.141Z\",\"isPartOf\":{\"@id\":\"https://docs.honeycomb.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.honeycomb.io/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.honeycomb.io/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Honeycomb Product Lifecycle\",\"item\":\"https://docs.honeycomb.io/troubleshoot/product-lifecycle/release-stages\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recommended Migrations\",\"item\":\"https://docs.honeycomb.io/troubleshoot/product-lifecycle/recommended-migrations\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Migrate to Stabilized OpenTelemetry HTTP Semantic Conventions\",\"item\":\"https://docs.honeycomb.io/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.honeycomb.io/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions#article\",\"headline\":\"Migrate to Stabilized OpenTelemetry HTTP Semantic Conventions\",\"name\":\"Migrate to Stabilized OpenTelemetry HTTP Semantic Conventions\",\"description\":\"Update your instrumentation to the stable OpenTelemetry HTTP semantic conventions to avoid breaking changes introduced when conventions were stabilized in 2023.\",\"url\":\"https://docs.honeycomb.io/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions\",\"mainEntityOfPage\":{\"@id\":\"https://docs.honeycomb.io/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions#webpage\"},\"dateModified\":\"2026-05-28T04:50:55.141Z\",\"publisher\":{\"@id\":\"https://docs.honeycomb.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.honeycomb.io#website\"}}]}\u003c/script>","siteName":"Honeycomb Docs","nav":{"global":{"anchors":[{"anchor":"Docs Home","icon":"home","href":"/"},{"anchor":"Blog","icon":"bullhorn","href":"https://www.honeycomb.io/blog"},{"anchor":"Honeycomb Academy","icon":"book","href":"https://academy.honeycomb.io/"}]},"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":"/get-started"}]},{"tab":"Send Data","pages":[{"title":"Send Data","href":"/send-data"}]},{"tab":"Investigate","pages":[{"title":"Investigate","href":"/investigate"}]},{"tab":"Notify \u0026 Alert","pages":[{"title":"Notify \u0026 Alert","href":"/notify"}]},{"tab":"Configure","pages":[{"title":"Configure","href":"/configure"}]},{"tab":"Troubleshoot","pages":[{"title":"Troubleshoot: Overview","sidebarTitle":"Overview","icon":"location-pin","mode":"wide","href":"/troubleshoot"},{"group":"Get Support","public":true,"expanded":true,"pages":[{"title":"Customer Support","sidebarTitle":"Customer Support","href":"/troubleshoot/customer-support"},{"title":"Honeycomb Community","sidebarTitle":"Honeycomb Community","href":"/troubleshoot/community"}]},{"group":"Common Issues","public":true,"expanded":true,"pages":[{"title":"Common Issues with Sending Data to Honeycomb","sidebarTitle":"Sending Data","href":"/troubleshoot/common-issues/sending-data"},{"title":"Common Issues with Data in Honeycomb","sidebarTitle":"Data in Honeycomb","href":"/troubleshoot/common-issues/data-in-honeycomb"},{"title":"Common Issues with Queries","sidebarTitle":"Queries","href":"/troubleshoot/common-issues/queries"},{"title":"Common Issues when Investigating","sidebarTitle":"Investigating","href":"/troubleshoot/common-issues/investigating"},{"title":"Common Issues with Visualization","sidebarTitle":"Visualization","href":"/troubleshoot/common-issues/visualization"},{"title":"Common Issues with Honeycomb Alerts","sidebarTitle":"Alerts","href":"/troubleshoot/common-issues/alerts"},{"title":"Common Issues with Configuring Honeycomb","sidebarTitle":"Configuring Honeycomb","href":"/troubleshoot/common-issues/configuring-honeycomb"},{"title":"Common Issues with Honeycomb Refinery","sidebarTitle":"Refinery","href":"/troubleshoot/common-issues/refinery"},{"title":"Common Issues with Integrations","sidebarTitle":"Integrations","href":"/troubleshoot/common-issues/integrations"}]},{"group":"Honeycomb Product Lifecycle","public":true,"expanded":true,"pages":[{"title":"Release Stages","sidebarTitle":"Release Stages","href":"/troubleshoot/product-lifecycle/release-stages"},{"title":"Supported Product Versions","sidebarTitle":"Supported Product Versions","href":"/troubleshoot/product-lifecycle/supported-versions"},{"title":"Early Access \u0026 Beta Experiences","sidebarTitle":"Early Access \u0026 Beta Experiences","href":"/troubleshoot/product-lifecycle/experimental-features"},{"title":"Migration Process","sidebarTitle":"Migration Process","href":"/troubleshoot/product-lifecycle/migration-process"},{"group":"Recommended Migrations","root":{"title":"Recommended Migrations","sidebarTitle":"Recommended Migrations","href":"/troubleshoot/product-lifecycle/recommended-migrations"},"pages":[{"title":"Migrating to Time Series Metrics FAQ","sidebarTitle":"Migrate to Time Series Metrics FAQ","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-time-series-metrics-faq"},{"title":"Environments \u0026 Services Migration FAQ","sidebarTitle":"E\u0026S Migration FAQ","href":"/troubleshoot/product-lifecycle/recommended-migrations/environments-and-services-in-place"},{"title":"Upgrading Refinery","sidebarTitle":"Upgrade Refinery","href":"/troubleshoot/product-lifecycle/recommended-migrations/upgrade-refinery"},{"title":"Migrate to Flexible Boards","sidebarTitle":"Migrate to Flexible Boards","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-flexible-boards"},{"group":"Migrate from Honeycomb OpenTelemetry Distribution to OpenTelemetry","root":{"title":"Migrate from Honeycomb OTel Distributions to OpenTelemetry","sidebarTitle":"Migrate from Honeycomb OTel Distributions to OpenTelemetry","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-honeycomb-distributions"},"pages":[{"title":"Send Data with the Honeycomb Distribution for Go","sidebarTitle":"Honeycomb Distribution for Go","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-honeycomb-distributions/go/honeycomb-distribution"},{"title":"Send Data with Honeycomb Distribution for Node.js","sidebarTitle":"Honeycomb Distribution for Node.js","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-honeycomb-distributions/javascript-nodejs/honeycomb-distribution"},{"title":"Send Data with the Honeycomb Distribution for Python","sidebarTitle":"Honeycomb Distribution for Python","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-honeycomb-distributions/python/honeycomb-distribution"},{"title":"Send Data with the Honeycomb Distribution for Java","sidebarTitle":"Honeycomb Distribution for Java","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-honeycomb-distributions/java/honeycomb-distribution"},{"title":"Send Data with the Honeycomb Distribution for .NET","description":"Reference documentation for the Honeycomb Distribution for .NET, a deprecated wrapper for the OpenTelemetry .NET SDK. Migrate to the OpenTelemetry .NET SDK instead.","sidebarTitle":"Honeycomb Distribution for .NET","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-honeycomb-distributions/dotnet/honeycomb-distribution"}]},{"group":"Migrate to Stabilized OpenTelemetry Semantic Conventions","root":{"title":"Migrate to Stabilized OpenTelemetry HTTP Semantic Conventions","sidebarTitle":"Migrate to Stabilized OpenTelemetry Semantic Conventions","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions"},"pages":[{"title":"OpenTelemetry HTTP Semantic Conventions Compatibility","description":"Check whether your OpenTelemetry instrumentation packages use the stable HTTP semantic conventions or the old semantics that require migration.","sidebarTitle":"Opentelemetry Semantic Conventions Compatibility","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-to-opentelemetry-semantic-conventions/compatibility"}]},{"group":"Migrate from Honeycomb Kubernetes Agent","pages":[{"title":"Honeycomb Kubernetes Agent Reference","sidebarTitle":"Honeycomb Kubernetes Agent Reference","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-honeycomb-kubernetes-agent/honeycomb-kubernetes-agent"}]},{"group":"Migrate from Beelines to OpenTelemetry","root":{"title":"Migrate from Beelines to OpenTelemetry","sidebarTitle":"Migrate from Beelines to OpenTelemetry","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-beelines"},"pages":[{"title":"Beeline for Go Reference","sidebarTitle":"Beeline for Go","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-beelines/go"},{"title":"Beeline for Python Reference","sidebarTitle":"Beeline for Python","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-beelines/python"},{"title":"Beeline for Ruby Reference","sidebarTitle":"Beeline for Ruby","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-beelines/ruby"},{"title":"Beeline for Node.js Reference","sidebarTitle":"Beeline for Node.js","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-beelines/nodejs"},{"title":"Beeline for Java Reference","sidebarTitle":"Beeline for Java","href":"/troubleshoot/product-lifecycle/recommended-migrations/migrate-from-beelines/java"}]}]}]},{"title":"UI Changelog","url":"https://changelog.honeycomb.io/","icon":"clock","href":"/ui-changelog"},{"title":"API Changelog","url":"https://api-changelog.honeycomb.io/","icon":"code","href":"/api-changelog"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api/introduction"}]}]},"basePath":"","title":"Migrate to Stabilized OpenTelemetry HTTP Semantic Conventions - Honeycomb Docs","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DW6UFrUy.js","DynamicMarkdown-B62XqCSI.js","zoom-image-lightbox-eHyQ0tlO.js","lightbox-handle-r17bVUz3.js"]}