@abyss-project/monitor 1.0.39 → 1.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ import { LogLevel } from '../../../enum';
1
2
  export interface GetReportAdminResponse {
2
3
  data: {
3
4
  metrics: {
@@ -21,6 +22,22 @@ export interface GetReportAdminResponse {
21
22
  endpoint: string;
22
23
  count: number;
23
24
  }>;
25
+ totalLogs: number;
26
+ totalCronTasks: number;
27
+ successfulCronTasks: number;
28
+ failedCronTasks: number;
29
+ totalEvents: number;
30
+ totalWebhooks: number;
31
+ successfulWebhooks: number;
32
+ failedWebhooks: number;
33
+ totalSentinelChecks: number;
34
+ successfulSentinelChecks: number;
35
+ failedSentinelChecks: number;
36
+ logsByMonth: Array<{
37
+ month: number;
38
+ level: LogLevel;
39
+ count: number;
40
+ }>;
24
41
  };
25
42
  };
26
43
  }
@@ -2,6 +2,12 @@ import { WebhookMessageCreateOptions } from 'discord.js';
2
2
  import { IApplicationCronTask, IApplicationCronTaskHistory } from '../types';
3
3
  import { LogData } from '../models';
4
4
  import { PayloadSendStatsAlert } from './alert.utils';
5
+ export declare const MAX_DESCRIPTION_LENGTH = 4096;
6
+ export declare const MAX_FIELD_NAME_LENGTH = 256;
7
+ export declare const MAX_FIELD_VALUE_LENGTH = 1024;
8
+ export declare const MAX_FOOTER_LENGTH = 2048;
9
+ export declare const MAX_TITLE_LENGTH = 256;
10
+ export declare const MAX_AUTHOR_NAME_LENGTH = 256;
5
11
  export declare const HIGHLIGHT = "```";
6
12
  export declare enum DISCORD_EMBED_COLORS {
7
13
  red = 16711680,
@@ -3,11 +3,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateDiscordCronTaskHistoryMessageContent = exports.generateDiscordStatsMessageContent = exports.generateDiscordApiLogMessageContent = exports.generateDiscordAlertLogMessageContent = exports.getAPIEmbedColor = exports.getBlockColorByResultCode = exports.generateDiscordHighlightBlockWithColor = exports.generateDiscordHighlightBlock = exports.dateFormatted = exports.DATE_FORMAT = exports.DISCORD_EMBED_COLORS = exports.HIGHLIGHT = void 0;
6
+ exports.generateDiscordCronTaskHistoryMessageContent = exports.generateDiscordStatsMessageContent = exports.generateDiscordApiLogMessageContent = exports.generateDiscordAlertLogMessageContent = exports.getAPIEmbedColor = exports.getBlockColorByResultCode = exports.generateDiscordHighlightBlockWithColor = exports.generateDiscordHighlightBlock = exports.dateFormatted = exports.DATE_FORMAT = exports.DISCORD_EMBED_COLORS = exports.HIGHLIGHT = exports.MAX_AUTHOR_NAME_LENGTH = exports.MAX_TITLE_LENGTH = exports.MAX_FOOTER_LENGTH = exports.MAX_FIELD_VALUE_LENGTH = exports.MAX_FIELD_NAME_LENGTH = exports.MAX_DESCRIPTION_LENGTH = void 0;
7
7
  const lodash_1 = require("lodash");
8
8
  const types_1 = require("../types");
9
9
  const dayjs_1 = __importDefault(require("dayjs"));
10
- const MAX_FIELD_LENGTH = 1024;
10
+ exports.MAX_DESCRIPTION_LENGTH = 4096;
11
+ exports.MAX_FIELD_NAME_LENGTH = 256;
12
+ exports.MAX_FIELD_VALUE_LENGTH = 1024;
13
+ exports.MAX_FOOTER_LENGTH = 2048;
14
+ exports.MAX_TITLE_LENGTH = 256;
15
+ exports.MAX_AUTHOR_NAME_LENGTH = 256;
16
+ const truncate = (text, maxLength) => {
17
+ if (text.length <= maxLength) {
18
+ return text;
19
+ }
20
+ return text.substring(0, maxLength - 3) + '...';
21
+ };
11
22
  exports.HIGHLIGHT = '```';
12
23
  var DISCORD_EMBED_COLORS;
13
24
  (function (DISCORD_EMBED_COLORS) {
@@ -98,26 +109,28 @@ const generateDiscordAlertLogMessageContent = (params, options) => {
98
109
  {
99
110
  color: COLOR_FOR_LOG_LEVEL[params.level],
100
111
  author: {
101
- name: `${params.author} - ${types_1.LogLevel[params.level]}`,
112
+ name: truncate(`${params.author} - ${types_1.LogLevel[params.level]}`, exports.MAX_AUTHOR_NAME_LENGTH),
102
113
  },
103
114
  ...(params.title || params.level === types_1.LogLevel.ERROR
104
- ? { title: `${params.title ? params.title : 'Not named Error'}` }
115
+ ? {
116
+ title: truncate(`${params.title ? params.title : 'Not named Error'}`, exports.MAX_TITLE_LENGTH),
117
+ }
105
118
  : {}),
106
- description: `${params.message} ${params.stack ? params.stack : ''}`,
119
+ description: truncate(`${params.message} ${params.stack ? params.stack : ''}`, exports.MAX_DESCRIPTION_LENGTH),
107
120
  fields: [
108
121
  {
109
- name: `Context`,
110
- value: (0, exports.generateDiscordHighlightBlock)(params.context || 'No Context'),
122
+ name: truncate(`Context`, exports.MAX_FIELD_NAME_LENGTH),
123
+ value: truncate((0, exports.generateDiscordHighlightBlock)(params.context || 'No Context'), exports.MAX_FIELD_VALUE_LENGTH),
111
124
  inline: true,
112
125
  },
113
126
  {
114
- name: `Scenario`,
115
- value: (0, exports.generateDiscordHighlightBlock)(params.scenario || 'No Scenario'),
127
+ name: truncate(`Scenario`, exports.MAX_FIELD_NAME_LENGTH),
128
+ value: truncate((0, exports.generateDiscordHighlightBlock)(params.scenario || 'No Scenario'), exports.MAX_FIELD_VALUE_LENGTH),
116
129
  inline: true,
117
130
  },
118
131
  ],
119
132
  footer: {
120
- text: `${(0, exports.dateFormatted)(params.dateValue)} - ${params.processId} - ${params.requestId || 'No Request id'} - [See Log](${params.dashboardLogUrl})`,
133
+ text: truncate(`${(0, exports.dateFormatted)(params.dateValue)} - ${params.processId} - ${params.requestId || 'No Request id'} - [See Log](${params.dashboardLogUrl})`, exports.MAX_FOOTER_LENGTH),
121
134
  },
122
135
  },
123
136
  ],
@@ -144,64 +157,64 @@ const generateDiscordApiLogMessageContent = (params) => {
144
157
  {
145
158
  color: (0, exports.getAPIEmbedColor)(color),
146
159
  author: {
147
- name: `${params.author} - API`,
160
+ name: truncate(`${params.author} - API`, exports.MAX_AUTHOR_NAME_LENGTH),
148
161
  },
149
162
  fields: [
150
163
  {
151
- name: `Request ID`,
152
- value: (0, exports.generateDiscordHighlightBlock)(params.requestId || ''),
164
+ name: truncate(`Request ID`, exports.MAX_FIELD_NAME_LENGTH),
165
+ value: truncate((0, exports.generateDiscordHighlightBlock)(params.requestId || ''), exports.MAX_FIELD_VALUE_LENGTH),
153
166
  inline: true,
154
167
  },
155
168
  {
156
- name: `Process ID`,
157
- value: (0, exports.generateDiscordHighlightBlock)(params.processId),
169
+ name: truncate(`Process ID`, exports.MAX_FIELD_NAME_LENGTH),
170
+ value: truncate((0, exports.generateDiscordHighlightBlock)(params.processId), exports.MAX_FIELD_VALUE_LENGTH),
158
171
  inline: true,
159
172
  },
160
173
  {
161
- name: `Authentication`,
162
- value: (0, exports.generateDiscordHighlightBlock)(params.applicationLogEndpoint.authentication || 'None'),
174
+ name: truncate(`Authentication`, exports.MAX_FIELD_NAME_LENGTH),
175
+ value: truncate((0, exports.generateDiscordHighlightBlock)(params.applicationLogEndpoint.authentication || 'None'), exports.MAX_FIELD_VALUE_LENGTH),
163
176
  },
164
177
  {
165
- name: `Method`,
166
- value: `${(0, exports.generateDiscordHighlightBlockWithColor)('blue', types_1.APIMethod[params.applicationLogEndpoint.method].toUpperCase())}`,
178
+ name: truncate(`Method`, exports.MAX_FIELD_NAME_LENGTH),
179
+ value: truncate(`${(0, exports.generateDiscordHighlightBlockWithColor)('blue', types_1.APIMethod[params.applicationLogEndpoint.method].toUpperCase())}`, exports.MAX_FIELD_VALUE_LENGTH),
167
180
  inline: true,
168
181
  },
169
182
  {
170
- name: `Response HTTP Code`,
171
- value: (0, exports.generateDiscordHighlightBlockWithColor)(color, params.applicationLogEndpoint.responseHttpCode.toString()),
183
+ name: truncate(`Response HTTP Code`, exports.MAX_FIELD_NAME_LENGTH),
184
+ value: truncate((0, exports.generateDiscordHighlightBlockWithColor)(color, params.applicationLogEndpoint.responseHttpCode.toString()), exports.MAX_FIELD_VALUE_LENGTH),
172
185
  inline: true,
173
186
  },
174
187
  {
175
- name: `Duration`,
176
- value: (0, exports.generateDiscordHighlightBlockWithColor)(durationColor, `${params.applicationLogEndpoint.responseTime}ms`),
188
+ name: truncate(`Duration`, exports.MAX_FIELD_NAME_LENGTH),
189
+ value: truncate((0, exports.generateDiscordHighlightBlockWithColor)(durationColor, `${params.applicationLogEndpoint.responseTime}ms`), exports.MAX_FIELD_VALUE_LENGTH),
177
190
  inline: true,
178
191
  },
179
192
  {
180
- name: `Controller`,
181
- value: (0, exports.generateDiscordHighlightBlock)((0, lodash_1.upperFirst)(params.applicationLogEndpoint.controller || 'Unknown Controller')),
193
+ name: truncate(`Controller`, exports.MAX_FIELD_NAME_LENGTH),
194
+ value: truncate((0, exports.generateDiscordHighlightBlock)((0, lodash_1.upperFirst)(params.applicationLogEndpoint.controller || 'Unknown Controller')), exports.MAX_FIELD_VALUE_LENGTH),
182
195
  inline: true,
183
196
  },
184
197
  {
185
- name: `Endpoint`,
186
- value: (0, exports.generateDiscordHighlightBlock)(params.applicationLogEndpoint.endpoint),
198
+ name: truncate(`Endpoint`, exports.MAX_FIELD_NAME_LENGTH),
199
+ value: truncate((0, exports.generateDiscordHighlightBlock)(params.applicationLogEndpoint.endpoint), exports.MAX_FIELD_VALUE_LENGTH),
187
200
  inline: true,
188
201
  },
189
202
  {
190
- name: `Client IPs`,
191
- value: (0, exports.generateDiscordHighlightBlock)(params.applicationLogEndpoint.ip.join('\n')),
203
+ name: truncate(`Client IPs`, exports.MAX_FIELD_NAME_LENGTH),
204
+ value: truncate((0, exports.generateDiscordHighlightBlock)(params.applicationLogEndpoint.ip.join('\n')), exports.MAX_FIELD_VALUE_LENGTH),
192
205
  },
193
206
  ...(params.applicationLogEndpoint.responseHttpCode < 200 ||
194
207
  params.applicationLogEndpoint.responseHttpCode > 399
195
208
  ? [
196
209
  {
197
- name: `Error`,
198
- value: `${JSON.stringify(params.applicationLogEndpoint.responseBody).substring(0, MAX_FIELD_LENGTH)}`,
210
+ name: truncate(`Error`, exports.MAX_FIELD_NAME_LENGTH),
211
+ value: truncate(`${JSON.stringify(params.applicationLogEndpoint.responseBody)}`, exports.MAX_FIELD_VALUE_LENGTH),
199
212
  },
200
213
  ]
201
214
  : []),
202
215
  ],
203
216
  footer: {
204
- text: `${(0, exports.dateFormatted)(params.dateValue)} - ${params.processId} - ${params.requestId || 'No Request id'} - [See Log](${params.dashboardLogUrl})`,
217
+ text: truncate(`${(0, exports.dateFormatted)(params.dateValue)} - ${params.processId} - ${params.requestId || 'No Request id'} - [See Log](${params.dashboardLogUrl})`, exports.MAX_FOOTER_LENGTH),
205
218
  },
206
219
  },
207
220
  ],
@@ -213,28 +226,28 @@ const generateDiscordStatsMessageContent = (params) => {
213
226
  embeds: [
214
227
  {
215
228
  color: (0, exports.getAPIEmbedColor)('orange'),
216
- title: `${params.author} - Performance Alert`,
229
+ title: truncate(`${params.author} - Performance Alert`, exports.MAX_TITLE_LENGTH),
217
230
  fields: [
218
231
  ...(params.statsData.cpu &&
219
232
  (params.statsData.cpu.value || params.statsData.cpu.percentValue)
220
233
  ? [
221
234
  {
222
- name: 'CPU Usage',
223
- value: (0, exports.generateDiscordHighlightBlock)(`${params.statsData.cpu.value
235
+ name: truncate('CPU Usage', exports.MAX_FIELD_NAME_LENGTH),
236
+ value: truncate((0, exports.generateDiscordHighlightBlock)(`${params.statsData.cpu.value
224
237
  ? `${(params.statsData.cpu.value / 1000 / 1000 / 1000).toFixed(2)} Ghz`
225
- : 'Unknown'}`),
238
+ : 'Unknown'}`), exports.MAX_FIELD_VALUE_LENGTH),
226
239
  inline: true,
227
240
  },
228
241
  {
229
- name: 'CPU Percent Usage',
230
- value: (0, exports.generateDiscordHighlightBlock)(`${params.statsData.cpu.percentValue
242
+ name: truncate('CPU Percent Usage', exports.MAX_FIELD_NAME_LENGTH),
243
+ value: truncate((0, exports.generateDiscordHighlightBlock)(`${params.statsData.cpu.percentValue
231
244
  ? `${params.statsData.cpu.percentValue.toFixed(2)}%`
232
- : 'Unknown'}`),
245
+ : 'Unknown'}`), exports.MAX_FIELD_VALUE_LENGTH),
233
246
  inline: true,
234
247
  },
235
248
  {
236
- name: '\n',
237
- value: '\n',
249
+ name: truncate('\n', exports.MAX_FIELD_NAME_LENGTH),
250
+ value: truncate('\n', exports.MAX_FIELD_VALUE_LENGTH),
238
251
  inline: true,
239
252
  },
240
253
  ]
@@ -243,22 +256,22 @@ const generateDiscordStatsMessageContent = (params) => {
243
256
  (params.statsData.ram.value || params.statsData.ram.percentValue)
244
257
  ? [
245
258
  {
246
- name: 'Memory Usage',
247
- value: (0, exports.generateDiscordHighlightBlock)(`${params.statsData.ram.value
259
+ name: truncate('Memory Usage', exports.MAX_FIELD_NAME_LENGTH),
260
+ value: truncate((0, exports.generateDiscordHighlightBlock)(`${params.statsData.ram.value
248
261
  ? `${(params.statsData.ram.value / 1024 / 1024 / 1024).toFixed(2)} Go`
249
- : 'Unknown'}`),
262
+ : 'Unknown'}`), exports.MAX_FIELD_VALUE_LENGTH),
250
263
  inline: true,
251
264
  },
252
265
  {
253
- name: 'Memory Percent Usage',
254
- value: (0, exports.generateDiscordHighlightBlock)(`${params.statsData.ram.percentValue
266
+ name: truncate('Memory Percent Usage', exports.MAX_FIELD_NAME_LENGTH),
267
+ value: truncate((0, exports.generateDiscordHighlightBlock)(`${params.statsData.ram.percentValue
255
268
  ? `${params.statsData.ram.percentValue.toFixed(2)}%`
256
- : 'Unknown'}`),
269
+ : 'Unknown'}`), exports.MAX_FIELD_VALUE_LENGTH),
257
270
  inline: true,
258
271
  },
259
272
  {
260
- name: '\n',
261
- value: '\n',
273
+ name: truncate('\n', exports.MAX_FIELD_NAME_LENGTH),
274
+ value: truncate('\n', exports.MAX_FIELD_VALUE_LENGTH),
262
275
  inline: true,
263
276
  },
264
277
  ]
@@ -267,29 +280,29 @@ const generateDiscordStatsMessageContent = (params) => {
267
280
  (params.statsData.disk.value || params.statsData.disk.percentValue)
268
281
  ? [
269
282
  {
270
- name: 'Disk Usage',
271
- value: (0, exports.generateDiscordHighlightBlock)(`${params.statsData.disk.value
283
+ name: truncate('Disk Usage', exports.MAX_FIELD_NAME_LENGTH),
284
+ value: truncate((0, exports.generateDiscordHighlightBlock)(`${params.statsData.disk.value
272
285
  ? `${(params.statsData.disk.value / 1024 / 1024 / 1024).toFixed(2)}`
273
- : 'Unknown'}`),
286
+ : 'Unknown'}`), exports.MAX_FIELD_VALUE_LENGTH),
274
287
  inline: true,
275
288
  },
276
289
  {
277
- name: 'Disk Percent Usage',
278
- value: (0, exports.generateDiscordHighlightBlock)(`${params.statsData.disk.percentValue
290
+ name: truncate('Disk Percent Usage', exports.MAX_FIELD_NAME_LENGTH),
291
+ value: truncate((0, exports.generateDiscordHighlightBlock)(`${params.statsData.disk.percentValue
279
292
  ? `${params.statsData.disk.percentValue.toFixed(2)}%`
280
- : 'Unknown'}`),
293
+ : 'Unknown'}`), exports.MAX_FIELD_VALUE_LENGTH),
281
294
  inline: true,
282
295
  },
283
296
  {
284
- name: '\n',
285
- value: '\n',
297
+ name: truncate('\n', exports.MAX_FIELD_NAME_LENGTH),
298
+ value: truncate('\n', exports.MAX_FIELD_VALUE_LENGTH),
286
299
  inline: true,
287
300
  },
288
301
  ]
289
302
  : []),
290
303
  ],
291
304
  footer: {
292
- text: `${(0, exports.dateFormatted)(params.dateValue)} - ${params.processId} - [See Stats](${params.dashboardStatsUrl})`,
305
+ text: truncate(`${(0, exports.dateFormatted)(params.dateValue)} - ${params.processId} - [See Stats](${params.dashboardStatsUrl})`, exports.MAX_FOOTER_LENGTH),
293
306
  },
294
307
  },
295
308
  ],
@@ -301,16 +314,16 @@ const generateDiscordCronTaskHistoryMessageContent = (params) => {
301
314
  embeds: [
302
315
  {
303
316
  color: (0, exports.getAPIEmbedColor)(params.applicationCronTaskHistory.hasFailed ? 'red' : 'green'),
304
- title: `CronTask ${params.applicationCronTask.name}`,
317
+ title: truncate(`CronTask ${params.applicationCronTask.name}`, exports.MAX_TITLE_LENGTH),
305
318
  fields: [
306
319
  {
307
- name: 'Status',
308
- value: (0, exports.generateDiscordHighlightBlock)(`${params.applicationCronTaskHistory.hasFailed ? 'FAILED' : 'SUCCEEDED'}`),
320
+ name: truncate('Status', exports.MAX_FIELD_NAME_LENGTH),
321
+ value: truncate((0, exports.generateDiscordHighlightBlock)(`${params.applicationCronTaskHistory.hasFailed ? 'FAILED' : 'SUCCEEDED'}`), exports.MAX_FIELD_VALUE_LENGTH),
309
322
  inline: true,
310
323
  },
311
324
  ],
312
325
  footer: {
313
- text: `${(0, exports.dateFormatted)(params.applicationCronTaskHistory.startDate)} - ${params.applicationCronTaskHistory.requestId || 'No Request id'} - [See CronTask history](${params.dashboardCronTaskHistoryUrl})`,
326
+ text: truncate(`${(0, exports.dateFormatted)(params.applicationCronTaskHistory.startDate)} - ${params.applicationCronTaskHistory.requestId || 'No Request id'} - [See CronTask history](${params.dashboardCronTaskHistoryUrl})`, exports.MAX_FOOTER_LENGTH),
314
327
  },
315
328
  },
316
329
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abyss-project/monitor",
3
- "version": "1.0.39",
3
+ "version": "1.0.41",
4
4
  "description": "Core package to interact with Abyss-Monitor",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",