import { readdir } from 'fs-extra'
-import { constants, PerformanceObserver } from 'perf_hooks'
+import { constants, NodeGCPerformanceDetail, PerformanceObserver } from 'perf_hooks'
import * as process from 'process'
-import { Meter, ObservableResult } from '@opentelemetry/api-metrics'
-import { ExplicitBucketHistogramAggregation } from '@opentelemetry/sdk-metrics-base'
-import { View } from '@opentelemetry/sdk-metrics-base/build/src/view/View'
+import { Meter, ObservableResult } from '@opentelemetry/api'
+import { ExplicitBucketHistogramAggregation } from '@opentelemetry/sdk-metrics'
+import { View } from '@opentelemetry/sdk-metrics/build/src/view/View'
import { logger } from '@server/helpers/logger'
// Thanks to https://github.com/siimon/prom-client
// Node < 16 uses entry.kind
// Node >= 16 uses entry.detail.kind
// See: https://nodejs.org/docs/latest-v16.x/api/deprecations.html#deprecations_dep0152_extension_performanceentry_properties
- const kind = (entry as any).detail
- ? kinds[(entry as any).detail.kind]
- : kinds[entry.kind]
+ const kind = entry.detail
+ ? kinds[(entry.detail as NodeGCPerformanceDetail).kind]
+ : kinds[(entry as any).kind]
// Convert duration from milliseconds to seconds
histogram.record(entry.duration / 1000, {