Fix code formatting and add missing imports

This commit is contained in:
Simon Larsen
2024-02-02 12:59:23 +00:00
parent 5f735a316f
commit 0233919f3b
6 changed files with 53 additions and 77 deletions

View File

@@ -8,6 +8,14 @@ import moment from 'moment-timezone';
export const Moment: typeof moment = moment;
export default class OneUptimeDate {
public static getCurrentDateAsUnixNano(): number {
return this.toUnixNano(this.getCurrentDate());
}
public static toUnixNano(date: Date): number {
return date.getTime() * 1000000;
}
public static moveDateToTheDayOfWeek(
date: Date,
moveToWeek: Date,

View File

@@ -99,6 +99,7 @@ const setDefaultHeaders: RequestHandler = (
if (typeof req.body === Typeof.String) {
req.body = JSONFunctions.parse(req.body);
}
res.header('Access-Control-Allow-Credentials', 'true');
res.header('Access-Control-Allow-Origin', req.headers['origin']);
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');

View File

@@ -19,6 +19,9 @@
headers {"x-oneuptime-service-token":"72f87070-c1c0-11ee-938d-f587493d9c6f"}
content_type application/json
json_array true
<format>
@type json
</format>

View File

@@ -1,19 +1,19 @@
import { ProductType } from "Model/Models/UsageBilling";
import { ProductType } from 'Model/Models/UsageBilling';
import Express, {
ExpressRequest,
ExpressResponse,
ExpressRouter,
NextFunction,
} from 'CommonServer/Utils/Express';
import { TelemetryRequest } from "../Middleware/TelemetryIngest";
import Response from "CommonServer/Utils/Response";
import logger from "CommonServer/Utils/Logger";
// import { JSONArray, JSONObject } from "Common/Types/JSON";
// import Log from "Model/AnalyticsModels/Log";
// import OTelIngestService from "../Service/OTelIngest";
// import LogService from "CommonServer/Services/LogService";
// import OneUptimeDate from "Common/Types/Date";
import TelemetryIngest, {
TelemetryRequest,
} from '../Middleware/TelemetryIngest';
import Response from 'CommonServer/Utils/Response';
import logger from 'CommonServer/Utils/Logger';
import { JSONObject } from 'Common/Types/JSON';
import Log from 'Model/AnalyticsModels/Log';
import LogService from 'CommonServer/Services/LogService';
import OneUptimeDate from 'Common/Types/Date';
export class FluentRequestMiddleware {
public static async getProductType(
@@ -23,6 +23,7 @@ export class FluentRequestMiddleware {
): Promise<void> {
try {
(req as TelemetryRequest).productType = ProductType.Logs;
return next();
} catch (err) {
return next(err);
}
@@ -33,8 +34,8 @@ const router: ExpressRouter = Express.getRouter();
router.post(
'/fluentd/v1/logs',
// FluentRequestMiddleware.getProductType,
// TelemetryIngest.isAuthorizedServiceMiddleware,
FluentRequestMiddleware.getProductType,
TelemetryIngest.isAuthorizedServiceMiddleware,
async (
req: ExpressRequest,
res: ExpressResponse,
@@ -43,77 +44,40 @@ router.post(
try {
logger.info('Fluent Ingestor API called');
logger.info('Request body: ');
logger.info(req.body);
const dbLogs: Array<Log> = [];
// const resourceLogs: JSONArray = req.body[
// 'resourceLogs'
// ] as JSONArray;
const logItems: Array<JSONObject | string> = req.body as Array<
JSONObject | string
>;
// const dbLogs: Array<Log> = [];
for (let logItem of logItems) {
const dbLog: Log = new Log();
// for (const resourceLog of resourceLogs) {
// const scopeLogs: JSONArray = resourceLog[
// 'scopeLogs'
// ] as JSONArray;
dbLog.projectId = (req as TelemetryRequest).projectId;
dbLog.serviceId = (req as TelemetryRequest).serviceId;
dbLog.severityNumber = '0';
const currentTimeAndDate: Date = OneUptimeDate.getCurrentDate();
dbLog.timeUnixNano =
OneUptimeDate.toUnixNano(currentTimeAndDate);
dbLog.time = currentTimeAndDate;
// for (const scopeLog of scopeLogs) {
// const logRecords: JSONArray = scopeLog[
// 'logRecords'
// ] as JSONArray;
dbLog.severityText = 'Information';
// for (const log of logRecords) {
// const dbLog: Log = new Log();
if (typeof logItem !== 'string') {
logItem = JSON.stringify(logItem);
}
// /*
// Example:
dbLog.body = logItem as string;
// {
// "timeUnixNano":"1698069643739368000",
// "severityNumber":"SEVERITY_NUMBER_INFO",
// "severityText":"Information",
// "body":{
// "stringValue":"Application is shutting down..."
// },
// "traceId":"",
// "spanId":"",
// "observedTimeUnixNano":"1698069643739368000"
// }
// */
dbLogs.push(dbLog);
}
// dbLog.projectId = (req as TelemetryRequest).projectId;
// dbLog.serviceId = (req as TelemetryRequest).serviceId;
// dbLog.timeUnixNano = log['timeUnixNano'] as number;
// dbLog.time = OneUptimeDate.fromUnixNano(
// log['timeUnixNano'] as number
// );
// dbLog.severityNumber = log['severityNumber'] as string;
// dbLog.severityText = log['severityText'] as string;
// const logBody: JSONObject = log['body'] as JSONObject;
// dbLog.body = logBody['stringValue'] as string;
// dbLog.traceId = log['traceId'] as string;
// dbLog.spanId = log['spanId'] as string;
// // We need to convert this to date.
// dbLog.attributes = OTelIngestService.getKeyValues(
// log['attributes'] as JSONArray
// );
// dbLogs.push(dbLog);
// }
// }
// }
// await LogService.createMany({
// items: dbLogs,
// props: {
// isRoot: true,
// },
// });
await LogService.createMany({
items: dbLogs,
props: {
isRoot: true,
},
});
return Response.sendEmptyResponse(req, res);
} catch (err) {
@@ -122,4 +86,4 @@ router.post(
}
);
export default router;
export default router;

View File

@@ -77,6 +77,7 @@ class OpenTelemetryRequestMiddleware {
}
(req as TelemetryRequest).productType = productType;
next();
} catch (err) {
return next(err);
}

View File

@@ -32,7 +32,6 @@ const init: () => Promise<void> = async (): Promise<void> => {
// init the app
await App(APP_NAME);
// connect to the database.
await PostgresAppInstance.connect(
PostgresAppInstance.getDatasourceOptions()