Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add @nivo/bar, @nivo/core, and @nivo/line dependencies*** #1293

Merged
merged 25 commits into from
Mar 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
61d6ca9
Add @nivo/bar, @nivo/core, and @nivo/line dependencies***
simlarsen Mar 26, 2024
4bcd12b
Merge branch 'master' into nivo-chart
simlarsen Mar 26, 2024
ea04be2
Add react-google-charts package
simlarsen Mar 26, 2024
0441519
Merge branch 'master' into nivo-chart
simlarsen Mar 27, 2024
7477aec
Remove react-google-charts dependency and update LineChart component
simlarsen Mar 27, 2024
48427a3
Remove unused code and fix formatting in BaseChart.tsx and Bar.tsx
simlarsen Mar 27, 2024
39f0834
Add sync functionality to ChartGroup component
simlarsen Mar 27, 2024
c03d250
Refactor LineChart component to use generic types
simlarsen Mar 28, 2024
efa0990
Update onMouseEnter to onMouseMove in LineChart component
simlarsen Mar 28, 2024
8428677
Refactor chart components and add new utility function
simlarsen Mar 28, 2024
672f2ec
Add MonitorMetricsByMinute API endpoint and fix CriteriaFilterUtil bug
simlarsen Mar 28, 2024
a41bbb3
Add new method to get local hour and minute from date
simlarsen Mar 28, 2024
67d241b
Add title and description to Chart interface and display them in Line…
simlarsen Mar 28, 2024
d7ecd18
Refactor code formatting and fix function parameter spacing
simlarsen Mar 28, 2024
c188d23
Update LineChart and MonitorChart components
simlarsen Mar 28, 2024
87ad6dd
Refactor MonitorChart and MonitorChartTooltip components
simlarsen Mar 28, 2024
34d7c9b
Fix import statement for MonitorCharts component
simlarsen Mar 28, 2024
57b99e2
Fix y-axis formatting in LineChart and add y-scale for usage percenta…
simlarsen Mar 28, 2024
ed404df
Refactor line chart tooltip and monitor view
simlarsen Mar 28, 2024
32473b0
Update axis types in LineChart and MonitorChart
simlarsen Mar 28, 2024
e2da673
Fix formatting issues in MonitorChart and MonitorChartTooltip components
simlarsen Mar 28, 2024
676e2c6
Merge branch 'master' into nivo-chart
simlarsen Mar 30, 2024
466ebc8
Remove @nivo/bar package and update posthog-js version
simlarsen Mar 30, 2024
c6e47dd
Merge branch 'master' into nivo-chart
simlarsen Mar 31, 2024
f61e44f
Update Date.ts, Index.tsx, MonitorChartTooltip.tsx, JSONFunctions.ts,…
simlarsen Mar 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions App/FeatureSet/BaseAPI/Index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -426,6 +426,11 @@ import LogService, {
LogService as LogServiceType,
} from 'CommonServer/Services/LogService';

import MonitorMetricsByMinute from 'Model/AnalyticsModels/MonitorMetricsByMinute';
import MonitorMetricsByMinuteService, {
MonitorMetricsByMinuteService as MonitorMetricsByMinuteServiceType,
} from 'CommonServer/Services/MonitorMetricsByMinuteService';

import Span from 'Model/AnalyticsModels/Span';
import SpanService, {
SpanService as SpanServiceType,
Expand Down Expand Up @@ -458,6 +463,14 @@ app.use(
new BaseAnalyticsAPI<Log, LogServiceType>(Log, LogService).getRouter()
);

app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAnalyticsAPI<
MonitorMetricsByMinute,
MonitorMetricsByMinuteServiceType
>(MonitorMetricsByMinute, MonitorMetricsByMinuteService).getRouter()
);

app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAnalyticsAPI<Span, SpanServiceType>(Span, SpanService).getRouter()
Expand Down
1 change: 1 addition & 0 deletions Common/Types/BrandColors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export const Grey: Color = Color.fromString('#575757');
export const LightGrey: Color = Color.fromString('#908B8B');
export const Moroon: Color = Color.fromString('#b70400');
export const Blue: Color = Color.fromString('#3686be');
export const Indigo500: Color = Color.fromString('#6366f1');

export const EventColorList: Color[] = [
Color.fromString('#d50000'),
Expand Down
5 changes: 5 additions & 0 deletions Common/Types/Date.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ export default class OneUptimeDate {
return date.getTime() * 1000000;
}

public static getLocalHourAndMinuteFromDate(date: Date | string): string {
date = this.fromString(date);
return moment(date).format('HH:mm');
}

public static getMillisecondsBetweenTwoUnixNanoDates(
startDate: number,
endDate: number
Expand Down
38 changes: 38 additions & 0 deletions Common/Types/JSONFunctions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,44 @@ export default class JSONFunctions {
return Object.keys(obj).length === 0;
}

public static isEqualObject(
obj1: JSONObject | undefined,
obj2: JSONObject | undefined
): boolean {
// check if all the keys are the same

if (!obj1 && !obj2) {
return true;
}

if (!obj1 || !obj2) {
return false;
}

const keys1: Array<string> = Object.keys(obj1);
const keys2: Array<string> = Object.keys(obj2);

if (keys1.length !== keys2.length) {
return false;
}

for (const key of keys1) {
if (!keys2.includes(key)) {
return false;
}
}

// check if all the values are the same

for (const key of keys1) {
if (obj1[key] !== obj2[key]) {
return false;
}
}

return true;
}

public static toCompressedString(val: JSONValue): string {
return JSON.stringify(val, null, 2);
}
Expand Down
26 changes: 26 additions & 0 deletions Common/Types/Monitor/CriteriaFilter.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import MonitorType from './MonitorType';

export enum CheckOn {
ResponseTime = 'Response Time (in ms)',
ResponseStatusCode = 'Response Status Code',
Expand Down Expand Up @@ -89,4 +91,28 @@ export class CriteriaFilterUtil {
checkOn === CheckOn.MemoryUsagePercent
);
}

public static getTimeFiltersByMonitorType(
monitorType: MonitorType
): Array<CheckOn> {
if (
monitorType === MonitorType.API ||
monitorType === MonitorType.Website
) {
return [CheckOn.ResponseStatusCode, CheckOn.ResponseTime];
} else if (
monitorType === MonitorType.Ping ||
monitorType === MonitorType.IP ||
monitorType === MonitorType.Port
) {
return [CheckOn.ResponseTime];
} else if (monitorType === MonitorType.Server) {
return [
CheckOn.DiskUsagePercent,
CheckOn.CPUUsagePercent,
CheckOn.MemoryUsagePercent,
];
}
return [];
}
}
18 changes: 18 additions & 0 deletions CommonServer/Utils/Probe/ProbeMonitorResponse.ts
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,24 @@ export default class ProbeMonitorResponseService {
},
});
}

if ((data.dataToProcess as ProbeMonitorResponse).responseCode) {
const monitorMetricsByMinute: MonitorMetricsByMinute =
new MonitorMetricsByMinute();
monitorMetricsByMinute.monitorId = data.monitorId;
monitorMetricsByMinute.projectId = data.projectId;
monitorMetricsByMinute.metricType = CheckOn.ResponseStatusCode;
monitorMetricsByMinute.metricValue = (
data.dataToProcess as ProbeMonitorResponse
).responseCode;

await MonitorMetricsByMinuteService.create({
data: monitorMetricsByMinute,
props: {
isRoot: true,
},
});
}
}

private static async checkOpenIncidentsAndCloseIfResolved(input: {
Expand Down
Loading
Loading