< Summary

Information
Class: server.ts
Assembly: app.otel
File(s): /home/runner/work/ClutterStock/ClutterStock/frontend/app/otel/server.ts
Tag: 58_25416222083
Line coverage
0%
Covered lines: 0
Uncovered lines: 7
Coverable lines: 7
Total lines: 43
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

/home/runner/work/ClutterStock/ClutterStock/frontend/app/otel/server.ts

#LineLine coverage
 1import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
 2import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
 3import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
 4import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
 5import { NodeSDK } from "@opentelemetry/sdk-node";
 6import { BatchLogRecordProcessor } from "@opentelemetry/sdk-logs";
 7import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
 8
 09let started = false;
 10
 11/**
 12 * Node SDK reads standard OTEL_* env vars at process runtime (not Vite `import.meta`).
 13 * Set e.g. OTEL_EXPORTER_OTLP_ENDPOINT or OTEL_EXPORTER_OTLP_TRACES_ENDPOINT in K8s/Docker.
 14 * Browser traces use URLs injected from the root loader (see root.tsx); those may differ
 15 * from the in-cluster collector URL the Node exporter uses.
 16 */
 017export function startNodeOpenTelemetry(): void {
 018  if (started) return;
 019  if (process.env.OTEL_SDK_DISABLED === "true") return;
 20
 021  started = true;
 22
 023  const sdk = new NodeSDK({
 24    serviceName:
 25      process.env.OTEL_SERVICE_NAME ?? "clutterstock-frontend-ssr",
 26    traceExporter: new OTLPTraceExporter(),
 27    metricReaders: [
 28      new PeriodicExportingMetricReader({
 29        exporter: new OTLPMetricExporter(),
 30      }),
 31    ],
 32    logRecordProcessors: [
 33      new BatchLogRecordProcessor(new OTLPLogExporter()),
 34    ],
 35    instrumentations: [
 36      getNodeAutoInstrumentations({
 37        "@opentelemetry/instrumentation-fs": { enabled: false },
 38      }),
 39    ],
 40  });
 41
 042  sdk.start();
 43}

Methods/Properties

startNodeOpenTelemetry()V