diff --git a/src/server/Master.ts b/src/server/Master.ts index 17b2791c8..89c14f2b8 100644 --- a/src/server/Master.ts +++ b/src/server/Master.ts @@ -11,7 +11,6 @@ import { generateID } from "../core/Util"; import { gatekeeper, LimiterType } from "./Gatekeeper"; import { logger } from "./Logger"; import { MapPlaylist } from "./MapPlaylist"; -import { setupMasterMetrics } from "./MasterMetrics"; const config = getServerConfigFromServer(); const playlist = new MapPlaylist(); @@ -22,11 +21,6 @@ const server = http.createServer(app); const log = logger.child({ comp: "m" }); -if (config.otelEnabled()) { - console.log("setting up master metrics"); - setupMasterMetrics(); -} - const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); app.use(express.json()); diff --git a/src/server/MasterMetrics.ts b/src/server/MasterMetrics.ts deleted file mode 100644 index d0dc77057..000000000 --- a/src/server/MasterMetrics.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http"; -import { HostMetrics } from "@opentelemetry/host-metrics"; -import { - MeterProvider, - PeriodicExportingMetricReader, -} from "@opentelemetry/sdk-metrics"; -import * as dotenv from "dotenv"; -import { getServerConfigFromServer } from "../core/configuration/ConfigLoader"; -import { getOtelResource } from "./OtelResource"; - -dotenv.config(); - -// Get server configuration -const config = getServerConfigFromServer(); - -// Create resource with master information -const resource = getOtelResource(); - -// Configure headers for basic auth if provided -const getAuthHeaders = () => { - const headers = {}; - if (config.otelEnabled()) { - headers["Authorization"] = - "Basic " + - Buffer.from(`${config.otelUsername()}:${config.otelPassword()}`).toString( - "base64", - ); - } - return headers; -}; - -// Create metrics exporter -const metricExporter = new OTLPMetricExporter({ - // Dummy endpoint if OTEL is not enabled to avoid parsing errors - url: `${config.otelEndpoint() || "https://dummy_endpoint.com"}/v1/metrics`, - headers: getAuthHeaders(), -}); - -// Configure the metric reader -const metricReader = new PeriodicExportingMetricReader({ - exporter: metricExporter, - exportIntervalMillis: 15000, // Export metrics every 15 seconds -}); - -// Create a meter provider -const meterProvider = new MeterProvider({ - resource, - readers: [metricReader], -}); - -// Setup host metrics -const hostMetrics = new HostMetrics({ meterProvider }); - -// Get meter for creating custom metrics -const meter = meterProvider.getMeter("master-metrics"); - -// Export the metrics for use in the master -export const setupMasterMetrics = () => { - console.log("Starting host metrics collection for master..."); - - // Start collecting host metrics - hostMetrics.start(); - - // Return the meter provider and meter for potential additional metrics - return { - meterProvider, - meter, - }; -};