# Introducing integrated observability in SvelteKit

DevFeed: [Introducing integrated observability in SvelteKit](<https://devfeed.tech/articles/introducing-integrated-observability-in-sveltekit-3050.md>)

Original publisher: [Read original article](<https://svelte.dev/blog/sveltekit-integrated-observability>)

Author: Elliott Johnson

Published: 2025-08-18T00:00:00Z

Content type: article

Language: en

Sources: [Svelte blog](<https://devfeed.tech/sources/svelte-blog.md>)

Topics: [Svelte](<https://devfeed.tech/topics/svelte.md>), [observability](<https://devfeed.tech/topics/observability.md>), [OpenTelemetry](<https://devfeed.tech/topics/opentelemetry.md>), [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>), [tracing](<https://devfeed.tech/topics/tracing.md>), [telemetry](<https://devfeed.tech/topics/telemetry.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Vercel](<https://devfeed.tech/topics/vercel.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [observability](<https://devfeed.tech/tags/observability.md>), [opentelemetry](<https://devfeed.tech/tags/opentelemetry.md>), [summit](<https://devfeed.tech/tags/summit.md>), [svelte](<https://devfeed.tech/tags/svelte.md>), [traces](<https://devfeed.tech/tags/traces.md>), [tracing](<https://devfeed.tech/tags/tracing.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [vercel](<https://devfeed.tech/tags/vercel.md>)

## AI overview

SvelteKit introduces integrated observability with first-party OpenTelemetry tracing and a dedicated server instrumentation file. The article explains the supported trace sources, span attributes, configuration, and deployment considerations for Node and Vercel.

## Source excerpt

Understanding how your SvelteKit application behaves in production -- from request flows to performance bottlenecks -- is crucial for building reliable user experiences. SvelteKit now has first-class support for observability: built-in OpenTelemetry tracing, and a dedicated instrumentation setup file that ensures your monitoring tools work seamlessly. To opt in, upgrade SvelteKit and your adapter and add the following to your svelte.config.js: svelte.config export default { kit: { experimental: { tracing: { server: boolean; }; instrumentation: { server: boolean; }; }; }kit: { experimental: { tracing: { server: boolean; }; instrumentation: { server: boolean; }; }experimental: { tracing: { server: boolean; }tracing: { server: booleanserver: true }, instrumentation: { server: boolean; }instrumentation: { server: booleanserver: true } } } }; First-party OpenTelemetry traces SvelteKit can now emit OpenTelemetry traces for the following: handle hook (handle functions running in a sequence will show up as children of each other and the root handle hook) load functions (includes universal load functions when they run on the server) Form actions Remote functions The emitted spans include attributes describing the current request, such as http.route, and surrounding context, such as the +page or +layout file associated with a load function. If there are additional attributes you think might be useful, please file an issue on the SvelteKit GitHub issue tracker. A convenient home for all of your instrumentation Emitting traces alone is not enough: You also need to collect them and send them somewhere. Under normal circumstances, this can be a bit challenging. Because of the nature of observability instrumentation, it needs to be loaded prior to loading any of the code from your app. To aid in this, SvelteKit now supports a src/instrumentation.server.ts file which, assuming your adapter supports it, is guaranteed to be loaded prior to your application code. In Node, your instrumen