34 lines
994 B
TypeScript
34 lines
994 B
TypeScript
import { env } from "./env/server"
|
|
|
|
export async function register() {
|
|
if (
|
|
process.env.NEXT_RUNTIME === "nodejs" &&
|
|
env.APPLICATION_INSIGHTS_CONNECTION_STRING
|
|
) {
|
|
const { AzureMonitorTraceExporter, AzureMonitorMetricExporter } =
|
|
await import("@azure/monitor-opentelemetry-exporter")
|
|
const { registerOTel } = await import("@vercel/otel")
|
|
const { PeriodicExportingMetricReader } = await import(
|
|
"@opentelemetry/sdk-metrics"
|
|
)
|
|
|
|
const connectionString: string = env.APPLICATION_INSIGHTS_CONNECTION_STRING
|
|
|
|
const traceExporter = new AzureMonitorTraceExporter({ connectionString })
|
|
|
|
const azureMetricExporter = new AzureMonitorMetricExporter({
|
|
connectionString,
|
|
})
|
|
const azureMetricReader = new PeriodicExportingMetricReader({
|
|
exporter: azureMetricExporter,
|
|
exportIntervalMillis: 10000,
|
|
})
|
|
|
|
registerOTel({
|
|
serviceName: "scandic-web",
|
|
traceExporter,
|
|
metricReader: azureMetricReader,
|
|
})
|
|
}
|
|
}
|