Avatar for the prisma user
prisma
prisma
BlogDocs

perf(client): Stop bundling @opentelemetry packages

#19039Merged
Comparing
integration/no-bundled-otel
(
da48634
) with
main
(
fdc8732
)
CodSpeed Performance Gauge
-23%
Improvements
1
Regressions
1
Untouched
1
New
0
Dropped
0
Ignored
0

Benchmarks

Failed

client generation 100 models with relationsRegression
packages/client/src/__tests__/benchmarks/lots-of-relations/lots-of-relations.bench.ts::typescript::client generation 100 models with relations
CodSpeed Performance Gauge
-23%
8.1 s
10.6 s

Improved

typescript compilation ~50 Models
packages/client/src/__tests__/benchmarks/huge-schema/huge-schema.bench.ts::typescript::typescript compilation ~50 Models
CodSpeed Performance Gauge
+27%
14.5 ms
11.5 ms

Passed

client generation ~50 Models
packages/client/src/__tests__/benchmarks/huge-schema/huge-schema.bench.ts::typescript::client generation ~50 Models
CodSpeed Performance Gauge
-4%
1.2 s
1.3 s

Commits

Click on a commit to change the comparison range
Base
main
fdc8732
+33%
perf(client): Stop bundling @opentelemetry packages Removes all @opentelemetry packages from client bundle. Client would now interact with OTEL throgh type-only `TracingHelper` dependency. Actual implementation is provided by `@prisma/instrumentation` package. Technically it works like this: - `@prisma/internals` package contains type definition for `TracingHelper` interface. This interface describes all OTEL functions client might need. `runInChildSpan`, `getTraceParent` and `createSpan` functions moved there. - `@prisma/client` contains no-op `TracingHelper` implementation. It will be used if tracing is not active (either through disabled preview feature or through absence of instrumentation package). - `@prisma/instrumentation` contains active implementation of `TracingHelper`. It is set on a global `PRISMA_INSTRUMENTATION` instead of the config. When active, client will use that implementation instead of no-op one. Close prisma/client-planning#340
da130d7
2 years ago
by SevInf
-122%
perf(client): Stop bundling @opentelemetry packages Removes all @opentelemetry packages from client bundle. Client would now interact with OTEL throgh type-only `TracingHelper` dependency. Actual implementation is provided by `@prisma/instrumentation` package. Technically it works like this: - `@prisma/internals` package contains type definition for `TracingHelper` interface. This interface describes all OTEL functions client might need. `runInChildSpan`, `getTraceParent` and `createSpan` functions moved there. - `@prisma/client` contains no-op `TracingHelper` implementation. It will be used if tracing is not active (either through disabled preview feature or through absence of instrumentation package). - `@prisma/instrumentation` contains active implementation of `TracingHelper`. It is set on a global `PRISMA_INSTRUMENTATION` instead of the config. When active, client will use that implementation instead of no-op one. Close prisma/client-planning#340
0a0bab5
2 years ago
by SevInf
+89%
perf(client): Stop bundling @opentelemetry packages Removes all @opentelemetry packages from client bundle. Client would now interact with OTEL throgh type-only `TracingHelper` dependency. Actual implementation is provided by `@prisma/instrumentation` package. Technically it works like this: - `@prisma/internals` package contains type definition for `TracingHelper` interface. This interface describes all OTEL functions client might need. `runInChildSpan`, `getTraceParent` and `createSpan` functions moved there. - `@prisma/client` contains no-op `TracingHelper` implementation. It will be used if tracing is not active (either through disabled preview feature or through absence of instrumentation package). - `@prisma/instrumentation` contains active implementation of `TracingHelper`. It is set on a global `PRISMA_INSTRUMENTATION` instead of the config. When active, client will use that implementation instead of no-op one. Close prisma/client-planning#340
83b6cf8
2 years ago
by SevInf
-24%
Adress review comments
da48634
2 years ago
by SevInf
Home Terms PrivacyDocs