From d6d3359ddb866adda6b6aae2072802bf988ee7e9 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 17 Nov 2025 16:23:52 +0100 Subject: [PATCH] feat(experimental): support OpenTelemetry traces (#8994) --- docs/.vitepress/components/Version.vue | 9 +- docs/.vitepress/config.ts | 8 + docs/config/experimental.md | 71 + docs/guide/open-telemetry.md | 91 ++ docs/public/otel-jaeger.png | Bin 0 -> 267362 bytes packages/browser/src/client/tester/runner.ts | 4 + packages/runner/src/collect.ts | 157 +-- packages/runner/src/run.ts | 87 +- packages/runner/src/types/runner.ts | 5 + packages/vitest/package.json | 5 + packages/vitest/rollup.config.js | 1 + .../vitest/src/integrations/env/loader.ts | 17 +- packages/vitest/src/node/cli/cli-config.ts | 1 + .../vitest/src/node/config/resolveConfig.ts | 10 + packages/vitest/src/node/core.ts | 323 +++-- .../src/node/environments/fetchModule.ts | 74 +- packages/vitest/src/node/pools/pool.ts | 15 +- packages/vitest/src/node/pools/poolRunner.ts | 105 +- packages/vitest/src/node/pools/rpc.ts | 15 +- packages/vitest/src/node/pools/types.ts | 33 +- packages/vitest/src/node/project.ts | 64 +- packages/vitest/src/node/types/config.ts | 11 + .../runtime/moduleRunner/moduleEvaluator.ts | 40 +- .../src/runtime/moduleRunner/moduleMocker.ts | 174 ++- .../src/runtime/moduleRunner/moduleRunner.ts | 25 +- .../runtime/moduleRunner/startModuleRunner.ts | 7 + packages/vitest/src/runtime/runBaseTests.ts | 62 +- packages/vitest/src/runtime/runVmTests.ts | 63 +- packages/vitest/src/runtime/runners/index.ts | 6 + packages/vitest/src/runtime/runners/test.ts | 37 +- packages/vitest/src/runtime/worker.ts | 13 +- packages/vitest/src/runtime/workers/base.ts | 49 +- .../vitest/src/runtime/workers/init-forks.ts | 11 +- .../src/runtime/workers/init-threads.ts | 7 +- packages/vitest/src/runtime/workers/init.ts | 86 +- packages/vitest/src/runtime/workers/types.ts | 5 +- packages/vitest/src/runtime/workers/vm.ts | 23 +- packages/vitest/src/types/rpc.ts | 9 +- packages/vitest/src/types/worker.ts | 2 + packages/vitest/src/utils/traces.ts | 255 ++++ pnpm-lock.yaml | 1150 +++++++++++++---- test/cli/fixtures/otel-tests/basic.test.ts | 5 + test/cli/fixtures/otel-tests/otel.sdk.js | 9 + test/cli/fixtures/otel-tests/vitest.config.ts | 10 + test/cli/package.json | 1 + test/cli/test/open-telemetry.test.ts | 52 + test/test-utils/index.ts | 3 + 47 files changed, 2465 insertions(+), 745 deletions(-) create mode 100644 docs/config/experimental.md create mode 100644 docs/guide/open-telemetry.md create mode 100644 docs/public/otel-jaeger.png create mode 100644 packages/vitest/src/utils/traces.ts create mode 100644 test/cli/fixtures/otel-tests/basic.test.ts create mode 100644 test/cli/fixtures/otel-tests/otel.sdk.js create mode 100644 test/cli/fixtures/otel-tests/vitest.config.ts create mode 100644 test/cli/test/open-telemetry.test.ts diff --git a/docs/.vitepress/components/Version.vue b/docs/.vitepress/components/Version.vue index a0742ce99..da9c803e9 100644 --- a/docs/.vitepress/components/Version.vue +++ b/docs/.vitepress/components/Version.vue @@ -1,9 +1,16 @@ diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index c5cb8e094..10e7648b7 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -511,6 +511,10 @@ export default ({ mode }: { mode: string }) => { text: 'disableConsoleIntercept', link: '/config/disableconsoleintercept', }, + { + text: 'experimental', + link: '/config/experimental', + }, ], }, { @@ -846,6 +850,10 @@ export default ({ mode }: { mode: string }) => { }, ], }, + { + text: 'OpenTelemetry', + link: '/guide/open-telemetry', + }, ], }, { diff --git a/docs/config/experimental.md b/docs/config/experimental.md new file mode 100644 index 000000000..179b462bf --- /dev/null +++ b/docs/config/experimental.md @@ -0,0 +1,71 @@ +--- +title: experimental | Config +outline: deep +--- + +# experimental + +## openTelemetry 4.0.10 + +- **Type:** + +```ts +interface OpenTelemetryOptions { + enabled: boolean + /** + * A path to a file that exposes an OpenTelemetry SDK. + */ + sdkPath?: string +} +``` + +- **Default:** `{ enabled: false }` + +This option controls [OpenTelemetry](https://opentelemetry.io/) support. Vitest imports the SDK file in the main thread and before every test file, if `enabled` is set to `true`. + +::: danger PERFORMANCE CONCERNS +OpenTelemetry may significantly impact Vitest performance; enable it only for local debugging. +::: + +You can use a [custom service](/guide/open-telemetry) together with Vitest to pinpoint which tests or files are slowing down your test suite. + +::: warning BROWSER SUPPORT +At the moment, Vitest does not start any spans when running in [the browser](/guide/browser/). +::: + +An `sdkPath` is resolved relative to the [`root`](/config/root) of the project and should point to a module that exposes a started SDK instance as a default export. For example: + +::: code-group +```js [otel.js] +import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node' +import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto' +import { NodeSDK } from '@opentelemetry/sdk-node' + +const sdk = new NodeSDK({ + serviceName: 'vitest', + traceExporter: new OTLPTraceExporter(), + instrumentations: [getNodeAutoInstrumentations()], +}) + +sdk.start() +export default sdk +``` +```js [vitest.config.js] +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + experimental: { + openTelemetry: { + enabled: true, + sdkPath: './otel.js', + }, + }, + }, +}) +``` +::: + +::: warning +It's important that Node can process `sdkPath` content because it is not transformed by Vitest. See [the guide](/guide/open-telemetry) on how to work with OpenTelemetry inside of Vitest. +::: diff --git a/docs/guide/open-telemetry.md b/docs/guide/open-telemetry.md new file mode 100644 index 000000000..f9c555650 --- /dev/null +++ b/docs/guide/open-telemetry.md @@ -0,0 +1,91 @@ +# Open Telemetry Support {#open-telemetry-support} + +[OpenTelemetry](https://opentelemetry.io/) traces can be a useful tool to debug the performance and behavior of your application inside tests. + +If enabled, Vitest integration generates spans that are scoped to your test's worker. + +::: warning +OpenTelemetry initialization increases the startup time of every test unless Vitest runs without [isolation](/config/isolate). You can see it as the `vitest.runtime.traces` span inside `vitest.worker.start`. +::: + +To start using OpenTelemetry in Vitest, specify an SDK module path via [`experimental.openTelemetry.sdkPath`](/config/experimental#opentelemetry) and set `experimental.openTelemetry.enabled` to `true`. Vitest will automatically instrument the whole process and each individual test worker. + +Make sure to export the SDK as a default export, so that Vitest can flush the network requests before the process is closed. Note that Vitest doesn't automatically call `start`. + +## Quickstart + +Before previewing your application traces, install required packages and specify the path to your instrumentation file in the config. + +```shell +npm i @opentelemetry/sdk-node @opentelemetry/auto-instrumentations-node @opentelemetry/exporter-trace-otlp-proto +``` + +::: code-group +```js{12} [otel.js] +import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node' +import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto' +import { NodeSDK } from '@opentelemetry/sdk-node' + +const sdk = new NodeSDK({ + serviceName: 'vitest', + traceExporter: new OTLPTraceExporter(), + instrumentations: [getNodeAutoInstrumentations()], +}) + +sdk.start() +export default sdk +``` +```js [vitest.config.js] +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + experimental: { + openTelemetry: { + enabled: true, + sdkPath: './otel.js', + }, + }, + }, +}) +``` +::: + +::: danger FAKE TIMERS +If you are using fake timers, it is important to reset them before the test ends, otherwise traces might not be tracked properly. +::: + +Vitest doesn't process the `sdkPath` module, so it is important that the SDK can be imported within your Node.js environment. It is ideal to use the `.js` extension for this file. Using another extension will slow down your tests and may require providing additional Node.js arguments. + +If you want to provide a TypeScript file, make sure to familiarize yourself with [TypeScript](https://nodejs.org/api/typescript.html#type-stripping) page in the Node.js documentation. + +## Custom Traces + +You can use the OpenTelemetry API yourself to track certain operations in your code. Custom traces automatically inherit the Vitest OpenTelemetry context: + +```ts +import { trace } from '@opentelemetry/api' +import { test } from 'vitest' +import { db } from './src/db' + +const tracer = trace.getTracer('vitest') + +test('db connects properly', async () => { + // this is shown inside `vitest.test.runner.test.callback` span + await tracer.startActiveSpan('db.connect', () => db.connect()) +}) +``` + +## View Traces + +To generate traces, run Vitest as usual. You can run Vitest in either watch mode or run mode. Vitest will call `sdk.shutdown()` manually after everything is finished to make sure traces are handled properly. + +You can view traces using any of the open source or commercial products that support OpenTelemetry API. If you did not use OpenTelemetry before, we recommend starting with [Jaeger](https://www.jaegertracing.io/docs/2.11/getting-started/#all-in-one) because it is really easy to setup. + + + +## `@opentelemetry/api` + +Vitest declares `@opentelemetry/api` as an optional peer dependency, which it uses internally to generate spans. When trace collection is not enabled, Vitest will not attempt to use this dependency. + +When configuring Vitest to use OpenTelemetry, you will typically install `@opentelemetry/sdk-node`, which includes `@opentelemetry/api` as a transitive dependency, thereby satisfying Vitest's peer dependency requirement. If you encounter an error indicating that `@opentelemetry/api` cannot be found, this typically means trace collection has not been enabled. If the error persists after proper configuration, you may need to install `@opentelemetry/api` explicitly. diff --git a/docs/public/otel-jaeger.png b/docs/public/otel-jaeger.png new file mode 100644 index 0000000000000000000000000000000000000000..2ad90d5753bf7f95ccc8366a8af2690b92180f22 GIT binary patch literal 267362 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