mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
feat: refactor table names in analytics models to use AnalyticsTableName enum
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { generateAllFieldsSelect } from "../Utils/SelectFieldGenerator";
|
||||
import AnalyticsTableName from "Common/Types/AnalyticsDatabase/AnalyticsTableName";
|
||||
import { JSONObject } from "Common/Types/JSON";
|
||||
|
||||
describe("SelectFieldGenerator", () => {
|
||||
@@ -47,10 +48,9 @@ describe("SelectFieldGenerator", () => {
|
||||
});
|
||||
|
||||
describe("analytics models", () => {
|
||||
it("should return default select for known analytics model (LogItem)", () => {
|
||||
// The Log analytics model has tableName "LogItem"
|
||||
it("should return default select for known analytics model (Log)", () => {
|
||||
const select: JSONObject = generateAllFieldsSelect(
|
||||
"LogItem",
|
||||
AnalyticsTableName.Log,
|
||||
"analytics",
|
||||
);
|
||||
expect(select).toEqual({
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import AnalyticsBaseModel from "./AnalyticsBaseModel/AnalyticsBaseModel";
|
||||
import Route from "../../Types/API/Route";
|
||||
import AnalyticsTableEngine from "../../Types/AnalyticsDatabase/AnalyticsTableEngine";
|
||||
import AnalyticsTableName from "../../Types/AnalyticsDatabase/AnalyticsTableName";
|
||||
import AnalyticsTableColumn, {
|
||||
SkipIndexType,
|
||||
} from "../../Types/AnalyticsDatabase/TableColumn";
|
||||
@@ -469,7 +470,7 @@ export default class ExceptionInstance extends AnalyticsBaseModel {
|
||||
});
|
||||
|
||||
super({
|
||||
tableName: "ExceptionItemV2",
|
||||
tableName: AnalyticsTableName.ExceptionInstance,
|
||||
tableEngine: AnalyticsTableEngine.MergeTree,
|
||||
singularName: "Exception Instance",
|
||||
pluralName: "Exception Instances",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import AnalyticsBaseModel from "./AnalyticsBaseModel/AnalyticsBaseModel";
|
||||
import Route from "../../Types/API/Route";
|
||||
import AnalyticsTableEngine from "../../Types/AnalyticsDatabase/AnalyticsTableEngine";
|
||||
import AnalyticsTableName from "../../Types/AnalyticsDatabase/AnalyticsTableName";
|
||||
import AnalyticsTableColumn, {
|
||||
SkipIndexType,
|
||||
} from "../../Types/AnalyticsDatabase/TableColumn";
|
||||
@@ -381,7 +382,7 @@ export default class Log extends AnalyticsBaseModel {
|
||||
});
|
||||
|
||||
super({
|
||||
tableName: "LogItemV2",
|
||||
tableName: AnalyticsTableName.Log,
|
||||
tableEngine: AnalyticsTableEngine.MergeTree,
|
||||
singularName: "Log",
|
||||
accessControl: {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import AnalyticsBaseModel from "./AnalyticsBaseModel/AnalyticsBaseModel";
|
||||
import Route from "../../Types/API/Route";
|
||||
import AnalyticsTableEngine from "../../Types/AnalyticsDatabase/AnalyticsTableEngine";
|
||||
import AnalyticsTableName from "../../Types/AnalyticsDatabase/AnalyticsTableName";
|
||||
import AnalyticsTableColumn, {
|
||||
SkipIndexType,
|
||||
} from "../../Types/AnalyticsDatabase/TableColumn";
|
||||
@@ -534,7 +535,7 @@ export default class Metric extends AnalyticsBaseModel {
|
||||
});
|
||||
|
||||
super({
|
||||
tableName: "MetricItemV2",
|
||||
tableName: AnalyticsTableName.Metric,
|
||||
tableEngine: AnalyticsTableEngine.MergeTree,
|
||||
singularName: "Metric",
|
||||
pluralName: "Metrics",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import AnalyticsBaseModel from "./AnalyticsBaseModel/AnalyticsBaseModel";
|
||||
import Route from "../../Types/API/Route";
|
||||
import AnalyticsTableEngine from "../../Types/AnalyticsDatabase/AnalyticsTableEngine";
|
||||
import AnalyticsTableName from "../../Types/AnalyticsDatabase/AnalyticsTableName";
|
||||
import AnalyticsTableColumn from "../../Types/AnalyticsDatabase/TableColumn";
|
||||
import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
|
||||
import { JSONObject } from "../../Types/JSON";
|
||||
@@ -115,7 +116,7 @@ export default class MonitorLog extends AnalyticsBaseModel {
|
||||
});
|
||||
|
||||
super({
|
||||
tableName: "MonitorLogV2",
|
||||
tableName: AnalyticsTableName.MonitorLog,
|
||||
tableEngine: AnalyticsTableEngine.MergeTree,
|
||||
singularName: "Monitor Log",
|
||||
accessControl: {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import AnalyticsBaseModel from "./AnalyticsBaseModel/AnalyticsBaseModel";
|
||||
import Route from "../../Types/API/Route";
|
||||
import AnalyticsTableEngine from "../../Types/AnalyticsDatabase/AnalyticsTableEngine";
|
||||
import AnalyticsTableName from "../../Types/AnalyticsDatabase/AnalyticsTableName";
|
||||
import AnalyticsTableColumn, {
|
||||
SkipIndexType,
|
||||
} from "../../Types/AnalyticsDatabase/TableColumn";
|
||||
@@ -575,7 +576,7 @@ export default class Span extends AnalyticsBaseModel {
|
||||
});
|
||||
|
||||
super({
|
||||
tableName: "SpanItemV2",
|
||||
tableName: AnalyticsTableName.Span,
|
||||
tableEngine: AnalyticsTableEngine.MergeTree,
|
||||
singularName: "Span",
|
||||
pluralName: "Spans",
|
||||
|
||||
@@ -5,6 +5,7 @@ import { JSONObject } from "../../Types/JSON";
|
||||
import ObjectID from "../../Types/ObjectID";
|
||||
import BadDataException from "../../Types/Exception/BadDataException";
|
||||
import Includes from "../../Types/BaseDatabase/Includes";
|
||||
import AnalyticsTableName from "../../Types/AnalyticsDatabase/AnalyticsTableName";
|
||||
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
||||
import { DbJSONResponse, Results } from "./AnalyticsDatabaseService";
|
||||
|
||||
@@ -82,7 +83,7 @@ export interface AnalyticsTableRow {
|
||||
|
||||
export class LogAggregationService {
|
||||
private static readonly DEFAULT_FACET_LIMIT: number = 500;
|
||||
private static readonly TABLE_NAME: string = "LogItem";
|
||||
private static readonly TABLE_NAME: string = AnalyticsTableName.Log;
|
||||
private static readonly TOP_LEVEL_COLUMNS: Set<string> = new Set([
|
||||
"severityText",
|
||||
"serviceId",
|
||||
|
||||
@@ -2,6 +2,7 @@ import LogAggregationService, {
|
||||
FacetRequest,
|
||||
} from "../../../Server/Services/LogAggregationService";
|
||||
import { Statement } from "../../../Server/Utils/AnalyticsDatabase/Statement";
|
||||
import AnalyticsTableName from "../../../Types/AnalyticsDatabase/AnalyticsTableName";
|
||||
import ObjectID from "../../../Types/ObjectID";
|
||||
import OneUptimeDate from "../../../Types/Date";
|
||||
import { describe, expect, test } from "@jest/globals";
|
||||
@@ -35,7 +36,7 @@ describe("LogAggregationService", () => {
|
||||
|
||||
expect(statement.query_params).toStrictEqual({
|
||||
p0: "severityText",
|
||||
p1: "LogItem",
|
||||
p1: AnalyticsTableName.Log,
|
||||
p2: defaultRequest.projectId.toString(),
|
||||
p3: OneUptimeDate.toClickhouseDateTime(defaultRequest.startTime),
|
||||
p4: OneUptimeDate.toClickhouseDateTime(defaultRequest.endTime),
|
||||
@@ -55,7 +56,7 @@ describe("LogAggregationService", () => {
|
||||
|
||||
expect(statement.query_params).toStrictEqual({
|
||||
p0: facetKey,
|
||||
p1: "LogItem",
|
||||
p1: AnalyticsTableName.Log,
|
||||
p2: defaultRequest.projectId.toString(),
|
||||
p3: OneUptimeDate.toClickhouseDateTime(defaultRequest.startTime),
|
||||
p4: OneUptimeDate.toClickhouseDateTime(defaultRequest.endTime),
|
||||
|
||||
9
Common/Types/AnalyticsDatabase/AnalyticsTableName.ts
Normal file
9
Common/Types/AnalyticsDatabase/AnalyticsTableName.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
enum AnalyticsTableName {
|
||||
Log = "LogItemV2",
|
||||
Metric = "MetricItemV2",
|
||||
ExceptionInstance = "ExceptionItemV2",
|
||||
Span = "SpanItemV2",
|
||||
MonitorLog = "MonitorLogV2",
|
||||
}
|
||||
|
||||
export default AnalyticsTableName;
|
||||
Reference in New Issue
Block a user