From 82e03978b89938219958032efb1448cc76baa181 Mon Sep 17 00:00:00 2001 From: Saumit Date: Sat, 27 Sep 2025 02:14:26 +0530 Subject: Initial snapshot - OpenTelemetry demo 2.1.3 -f --- src/quote/public/index.php | 94 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 src/quote/public/index.php (limited to 'src/quote/public/index.php') diff --git a/src/quote/public/index.php b/src/quote/public/index.php new file mode 100644 index 0000000..fd02e5b --- /dev/null +++ b/src/quote/public/index.php @@ -0,0 +1,94 @@ +build(); + +// Instantiate the app +AppFactory::setContainer($container); +$app = Bridge::create($container); + +// Register middleware +$app->addRoutingMiddleware(); + +// Register routes +$routes = require __DIR__ . '/../app/routes.php'; +$routes($app); + +// Add Body Parsing Middleware +$app->addBodyParsingMiddleware(); + +// Add Error Middleware +$errorMiddleware = $app->addErrorMiddleware(true, true, true); +Loop::get()->addSignal(SIGTERM, function() { + exit; +}); + +/* workaround for non-async batch processors */ +if (($tracerProvider = Globals::tracerProvider()) instanceof TracerProviderInterface) { + Loop::addPeriodicTimer(Configuration::getInt(Variables::OTEL_BSP_SCHEDULE_DELAY)/1000, function() use ($tracerProvider) { + $tracerProvider->forceFlush(); + }); +} +if (($loggerProvider = Globals::loggerProvider()) instanceof LoggerProviderInterface) { + Loop::addPeriodicTimer(Configuration::getInt(Variables::OTEL_BLRP_SCHEDULE_DELAY)/1000, function() use ($loggerProvider) { + $loggerProvider->forceFlush(); + }); +} +if (($meterProvider = Globals::meterProvider()) instanceof MeterProviderInterface) { + Loop::addPeriodicTimer(Configuration::getInt(Variables::OTEL_METRIC_EXPORT_INTERVAL)/1000, function() use ($meterProvider) { + $meterProvider->forceFlush(); + }); +} + +$server = new HttpServer(function (ServerRequestInterface $request) use ($app) { + $response = $app->handle($request); + echo sprintf('[%s] "%s %s HTTP/%s" %d %d %s', + date('Y-m-d H:i:sP'), + $request->getMethod(), + $request->getUri()->getPath(), + $request->getProtocolVersion(), + $response->getStatusCode(), + $response->getBody()->getSize(), + PHP_EOL, + ); + + return $response; +}); +$address = '0.0.0.0:' . getenv('QUOTE_PORT'); +$socket = new SocketServer($address); +$server->listen($socket); + +echo "Listening on: {$address}" . PHP_EOL; -- cgit v1.2.3