Finished exporter #1
13
src/main.ts
13
src/main.ts
@ -1,7 +1,8 @@
|
|||||||
import compression from 'compression';
|
import compression from 'compression';
|
||||||
|
import cors from 'cors';
|
||||||
import express from 'express';
|
import express from 'express';
|
||||||
import http from 'node:http';
|
import http from 'node:http';
|
||||||
import * as process from 'node:process';
|
import process from 'node:process';
|
||||||
import {environment} from './environment';
|
import {environment} from './environment';
|
||||||
import {errorHandler, errorMiddleware} from './error.middleware';
|
import {errorHandler, errorMiddleware} from './error.middleware';
|
||||||
import {loggerMiddleware} from './logger.middleware';
|
import {loggerMiddleware} from './logger.middleware';
|
||||||
@ -11,6 +12,7 @@ if(!environment.tickers.length) throw new Error('Please provide a CSV list of ti
|
|||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
const httpServer: http.Server = http.createServer(app);
|
const httpServer: http.Server = http.createServer(app);
|
||||||
|
app.use(cors({origin: '*'}))
|
||||||
app.use(compression());
|
app.use(compression());
|
||||||
app.use(loggerMiddleware);
|
app.use(loggerMiddleware);
|
||||||
|
|
||||||
@ -21,7 +23,7 @@ let shuttingDown = false;
|
|||||||
if(shuttingDown) return; // Already shutting down
|
if(shuttingDown) return; // Already shutting down
|
||||||
shuttingDown = true;
|
shuttingDown = true;
|
||||||
console.warn(`${signal} Received, shutting down...`);
|
console.warn(`${signal} Received, shutting down...`);
|
||||||
httpServer.close(() => setTimeout(() => process.exit(128 + value), 1000));
|
httpServer.close(() => process.exit(128 + value));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -30,11 +32,8 @@ app.get('/', errorHandler(async (req, res) => {
|
|||||||
fetch(`https://finnhub.io/api/v1/quote?symbol=${ticker}&token=${environment.token}`)
|
fetch(`https://finnhub.io/api/v1/quote?symbol=${ticker}&token=${environment.token}`)
|
||||||
.then(resp => resp.json())));
|
.then(resp => resp.json())));
|
||||||
|
|
||||||
// const metrics = results.map(r => `# HELP stock_price_${result.symbol} Stock price for ${result.symbol}
|
let metrics = '# HELP stock_price Current stock price\n# TYPE stock_price gauge\n';
|
||||||
// # TYPE stock_price_${result.symbol} gauge
|
metrics += results.map((r, i) => `stock_price{ticker="${environment.tickers[i]}"} ${r.c}`).join('\n');
|
||||||
// stock_price_${result.symbol} ${result.c}`).join('\n');
|
|
||||||
const metrics = JSON.stringify(results);
|
|
||||||
|
|
||||||
res.contentType('text/plain').send(metrics);
|
res.contentType('text/plain').send(metrics);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user