add metrics page

This commit is contained in:
Athou
2022-08-14 18:15:40 +02:00
parent d2eac62273
commit eefc1ee0d7
10 changed files with 222 additions and 18 deletions

View File

@@ -12,6 +12,7 @@ import {
IDRequest,
LoginRequest,
MarkRequest,
Metrics,
PasswordResetRequest,
ProfileModificationRequest,
RegistrationRequest,
@@ -79,6 +80,7 @@ export const client = {
getAllUsers: () => axiosInstance.get<UserModel[]>("admin/user/getAll"),
saveUser: (req: UserModel) => axiosInstance.post("admin/user/save", req),
deleteUser: (req: IDRequest) => axiosInstance.post("admin/user/delete", req),
getMetrics: () => axiosInstance.get<Metrics>("admin/metrics"),
},
}

View File

@@ -37,6 +37,9 @@ export const redirectToSettings = createAsyncThunk("redirect/settings", (_, thun
export const redirectToAdminUsers = createAsyncThunk("redirect/admin/users", (_, thunkApi) =>
thunkApi.dispatch(redirectTo("/app/admin/users"))
)
export const redirectToMetrics = createAsyncThunk("redirect/admin/metrics", (_, thunkApi) =>
thunkApi.dispatch(redirectTo("/app/admin/metrics"))
)
export const redirectSlice = createSlice({
name: "redirect",

View File

@@ -115,6 +115,22 @@ export interface FeedModificationRequest {
filter?: string
}
export interface GetEntriesRequest {
id: string
readType?: ReadingMode
newerThan?: number
order?: ReadingOrder
keywords?: string
onlyIds?: boolean
excludedSubscriptionIds?: string
tag?: string
}
export interface GetEntriesPaginatedRequest extends GetEntriesRequest {
offset: number
limit: number
}
export interface IDRequest {
id: number
}
@@ -132,6 +148,50 @@ export interface MarkRequest {
excludedSubscriptions?: number[]
}
export interface MetricCounter {
count: number
}
export interface MetricGauge {
value: number
}
export interface MetricMeter {
count: number
m15_rate: number
m1_rate: number
m5_rate: number
mean_rate: number
units: string
}
export type MetricTimer = {
count: number
max: number
mean: number
min: number
p50: number
p75: number
p95: number
p98: number
p99: number
p999: number
stddev: number
m15_rate: number
m1_rate: number
m5_rate: number
mean_rate: number
duration_units: string
rate_units: string
}
export interface Metrics {
counters: { [key: string]: MetricCounter }
gauges: { [key: string]: MetricGauge }
meters: { [key: string]: MetricMeter }
timers: { [key: string]: MetricTimer }
}
export interface MultipleMarkRequest {
requests: MarkRequest[]
}
@@ -219,22 +279,6 @@ export interface TagRequest {
tags: string[]
}
export interface GetEntriesRequest {
id: string
readType?: ReadingMode
newerThan?: number
order?: ReadingOrder
keywords?: string
onlyIds?: boolean
excludedSubscriptionIds?: string
tag?: string
}
export interface GetEntriesPaginatedRequest extends GetEntriesRequest {
offset: number
limit: number
}
export interface UnreadCount {
feedId?: number
unreadCount?: number