@growth-labs/monitoring 0.1.0

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.
Files changed (117) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +115 -0
  3. package/SPEC.md +19 -0
  4. package/dist/alerting/dedup.d.ts +6 -0
  5. package/dist/alerting/dedup.d.ts.map +1 -0
  6. package/dist/alerting/dedup.js +49 -0
  7. package/dist/alerting/dedup.js.map +1 -0
  8. package/dist/alerting/escalation.d.ts +4 -0
  9. package/dist/alerting/escalation.d.ts.map +1 -0
  10. package/dist/alerting/escalation.js +26 -0
  11. package/dist/alerting/escalation.js.map +1 -0
  12. package/dist/alerting/index.d.ts +31 -0
  13. package/dist/alerting/index.d.ts.map +1 -0
  14. package/dist/alerting/index.js +50 -0
  15. package/dist/alerting/index.js.map +1 -0
  16. package/dist/alerting/thresholds.d.ts +8 -0
  17. package/dist/alerting/thresholds.d.ts.map +1 -0
  18. package/dist/alerting/thresholds.js +105 -0
  19. package/dist/alerting/thresholds.js.map +1 -0
  20. package/dist/index.d.ts +10 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +5 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/prober/index.d.ts +19 -0
  25. package/dist/prober/index.d.ts.map +1 -0
  26. package/dist/prober/index.js +48 -0
  27. package/dist/prober/index.js.map +1 -0
  28. package/dist/prober/persist.d.ts +4 -0
  29. package/dist/prober/persist.d.ts.map +1 -0
  30. package/dist/prober/persist.js +21 -0
  31. package/dist/prober/persist.js.map +1 -0
  32. package/dist/prober/runners/get-runner.d.ts +4 -0
  33. package/dist/prober/runners/get-runner.d.ts.map +1 -0
  34. package/dist/prober/runners/get-runner.js +43 -0
  35. package/dist/prober/runners/get-runner.js.map +1 -0
  36. package/dist/prober/runners/happy-path-runner.d.ts +13 -0
  37. package/dist/prober/runners/happy-path-runner.d.ts.map +1 -0
  38. package/dist/prober/runners/happy-path-runner.js +183 -0
  39. package/dist/prober/runners/happy-path-runner.js.map +1 -0
  40. package/dist/prober/runners/post-runner.d.ts +4 -0
  41. package/dist/prober/runners/post-runner.d.ts.map +1 -0
  42. package/dist/prober/runners/post-runner.js +44 -0
  43. package/dist/prober/runners/post-runner.js.map +1 -0
  44. package/dist/prober/surfaces.d.ts +46 -0
  45. package/dist/prober/surfaces.d.ts.map +1 -0
  46. package/dist/prober/surfaces.js +2 -0
  47. package/dist/prober/surfaces.js.map +1 -0
  48. package/dist/schemas/drizzle/schema.d.ts +519 -0
  49. package/dist/schemas/drizzle/schema.d.ts.map +1 -0
  50. package/dist/schemas/drizzle/schema.js +45 -0
  51. package/dist/schemas/drizzle/schema.js.map +1 -0
  52. package/dist/schemas/index.d.ts +2 -0
  53. package/dist/schemas/index.d.ts.map +1 -0
  54. package/dist/schemas/index.js +2 -0
  55. package/dist/schemas/index.js.map +1 -0
  56. package/dist/schemas/migrations/0001_uptime_checks.sql +12 -0
  57. package/dist/schemas/migrations/0002_uptime_incidents.sql +12 -0
  58. package/dist/schemas/migrations/0003_errors.sql +16 -0
  59. package/dist/schemas/migrations/README.md +15 -0
  60. package/dist/status-page/app.d.ts +10 -0
  61. package/dist/status-page/app.d.ts.map +1 -0
  62. package/dist/status-page/app.js +44 -0
  63. package/dist/status-page/app.js.map +1 -0
  64. package/dist/status-page/lib/queries.d.ts +6 -0
  65. package/dist/status-page/lib/queries.d.ts.map +1 -0
  66. package/dist/status-page/lib/queries.js +81 -0
  67. package/dist/status-page/lib/queries.js.map +1 -0
  68. package/dist/status-page/pages/api/status.json.d.ts +3 -0
  69. package/dist/status-page/pages/api/status.json.d.ts.map +1 -0
  70. package/dist/status-page/pages/api/status.json.js +19 -0
  71. package/dist/status-page/pages/api/status.json.js.map +1 -0
  72. package/dist/status-page/shell.d.ts +3 -0
  73. package/dist/status-page/shell.d.ts.map +1 -0
  74. package/dist/status-page/shell.js +18 -0
  75. package/dist/status-page/shell.js.map +1 -0
  76. package/dist/tail/categorize.d.ts +44 -0
  77. package/dist/tail/categorize.d.ts.map +1 -0
  78. package/dist/tail/categorize.js +113 -0
  79. package/dist/tail/categorize.js.map +1 -0
  80. package/dist/tail/fingerprint.d.ts +4 -0
  81. package/dist/tail/fingerprint.d.ts.map +1 -0
  82. package/dist/tail/fingerprint.js +18 -0
  83. package/dist/tail/fingerprint.js.map +1 -0
  84. package/dist/tail/index.d.ts +21 -0
  85. package/dist/tail/index.d.ts.map +1 -0
  86. package/dist/tail/index.js +50 -0
  87. package/dist/tail/index.js.map +1 -0
  88. package/dist/tail/persist.d.ts +15 -0
  89. package/dist/tail/persist.d.ts.map +1 -0
  90. package/dist/tail/persist.js +63 -0
  91. package/dist/tail/persist.js.map +1 -0
  92. package/dist/tail/redact.d.ts +5 -0
  93. package/dist/tail/redact.d.ts.map +1 -0
  94. package/dist/tail/redact.js +25 -0
  95. package/dist/tail/redact.js.map +1 -0
  96. package/dist/tail/sample.d.ts +9 -0
  97. package/dist/tail/sample.d.ts.map +1 -0
  98. package/dist/tail/sample.js +25 -0
  99. package/dist/tail/sample.js.map +1 -0
  100. package/dist/types.d.ts +87 -0
  101. package/dist/types.d.ts.map +1 -0
  102. package/dist/types.js +11 -0
  103. package/dist/types.js.map +1 -0
  104. package/package.json +85 -0
  105. package/src/schemas/migrations/0001_uptime_checks.sql +12 -0
  106. package/src/schemas/migrations/0002_uptime_incidents.sql +12 -0
  107. package/src/schemas/migrations/0003_errors.sql +16 -0
  108. package/src/schemas/migrations/README.md +15 -0
  109. package/src/status-page/README.md +14 -0
  110. package/src/status-page/app.ts +58 -0
  111. package/src/status-page/components/ErrorRollup.astro +26 -0
  112. package/src/status-page/components/IncidentList.astro +25 -0
  113. package/src/status-page/components/SurfaceRow.astro +24 -0
  114. package/src/status-page/lib/queries.ts +114 -0
  115. package/src/status-page/pages/api/status.json.ts +24 -0
  116. package/src/status-page/pages/index.astro +45 -0
  117. package/src/status-page/shell.ts +17 -0
@@ -0,0 +1,519 @@
1
+ export declare const uptimeChecks: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
+ name: "gl_uptime_checks";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
6
+ name: "id";
7
+ tableName: "gl_uptime_checks";
8
+ dataType: "string";
9
+ columnType: "SQLiteText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {
22
+ length: number | undefined;
23
+ }>;
24
+ surface: import("drizzle-orm/sqlite-core").SQLiteColumn<{
25
+ name: "surface";
26
+ tableName: "gl_uptime_checks";
27
+ dataType: "string";
28
+ columnType: "SQLiteText";
29
+ data: string;
30
+ driverParam: string;
31
+ notNull: true;
32
+ hasDefault: false;
33
+ isPrimaryKey: false;
34
+ isAutoincrement: false;
35
+ hasRuntimeDefault: false;
36
+ enumValues: [string, ...string[]];
37
+ baseColumn: never;
38
+ identity: undefined;
39
+ generated: undefined;
40
+ }, {}, {
41
+ length: number | undefined;
42
+ }>;
43
+ checkType: import("drizzle-orm/sqlite-core").SQLiteColumn<{
44
+ name: "check_type";
45
+ tableName: "gl_uptime_checks";
46
+ dataType: "string";
47
+ columnType: "SQLiteText";
48
+ data: string;
49
+ driverParam: string;
50
+ notNull: true;
51
+ hasDefault: false;
52
+ isPrimaryKey: false;
53
+ isAutoincrement: false;
54
+ hasRuntimeDefault: false;
55
+ enumValues: [string, ...string[]];
56
+ baseColumn: never;
57
+ identity: undefined;
58
+ generated: undefined;
59
+ }, {}, {
60
+ length: number | undefined;
61
+ }>;
62
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
63
+ name: "status";
64
+ tableName: "gl_uptime_checks";
65
+ dataType: "string";
66
+ columnType: "SQLiteText";
67
+ data: string;
68
+ driverParam: string;
69
+ notNull: true;
70
+ hasDefault: false;
71
+ isPrimaryKey: false;
72
+ isAutoincrement: false;
73
+ hasRuntimeDefault: false;
74
+ enumValues: [string, ...string[]];
75
+ baseColumn: never;
76
+ identity: undefined;
77
+ generated: undefined;
78
+ }, {}, {
79
+ length: number | undefined;
80
+ }>;
81
+ statusCode: import("drizzle-orm/sqlite-core").SQLiteColumn<{
82
+ name: "status_code";
83
+ tableName: "gl_uptime_checks";
84
+ dataType: "number";
85
+ columnType: "SQLiteInteger";
86
+ data: number;
87
+ driverParam: number;
88
+ notNull: false;
89
+ hasDefault: false;
90
+ isPrimaryKey: false;
91
+ isAutoincrement: false;
92
+ hasRuntimeDefault: false;
93
+ enumValues: undefined;
94
+ baseColumn: never;
95
+ identity: undefined;
96
+ generated: undefined;
97
+ }, {}, {}>;
98
+ latencyMs: import("drizzle-orm/sqlite-core").SQLiteColumn<{
99
+ name: "latency_ms";
100
+ tableName: "gl_uptime_checks";
101
+ dataType: "number";
102
+ columnType: "SQLiteInteger";
103
+ data: number;
104
+ driverParam: number;
105
+ notNull: false;
106
+ hasDefault: false;
107
+ isPrimaryKey: false;
108
+ isAutoincrement: false;
109
+ hasRuntimeDefault: false;
110
+ enumValues: undefined;
111
+ baseColumn: never;
112
+ identity: undefined;
113
+ generated: undefined;
114
+ }, {}, {}>;
115
+ errorMessage: import("drizzle-orm/sqlite-core").SQLiteColumn<{
116
+ name: "error_message";
117
+ tableName: "gl_uptime_checks";
118
+ dataType: "string";
119
+ columnType: "SQLiteText";
120
+ data: string;
121
+ driverParam: string;
122
+ notNull: false;
123
+ hasDefault: false;
124
+ isPrimaryKey: false;
125
+ isAutoincrement: false;
126
+ hasRuntimeDefault: false;
127
+ enumValues: [string, ...string[]];
128
+ baseColumn: never;
129
+ identity: undefined;
130
+ generated: undefined;
131
+ }, {}, {
132
+ length: number | undefined;
133
+ }>;
134
+ checkedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
135
+ name: "checked_at";
136
+ tableName: "gl_uptime_checks";
137
+ dataType: "number";
138
+ columnType: "SQLiteInteger";
139
+ data: number;
140
+ driverParam: number;
141
+ notNull: true;
142
+ hasDefault: false;
143
+ isPrimaryKey: false;
144
+ isAutoincrement: false;
145
+ hasRuntimeDefault: false;
146
+ enumValues: undefined;
147
+ baseColumn: never;
148
+ identity: undefined;
149
+ generated: undefined;
150
+ }, {}, {}>;
151
+ };
152
+ dialect: "sqlite";
153
+ }>;
154
+ export declare const uptimeIncidents: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
155
+ name: "gl_uptime_incidents";
156
+ schema: undefined;
157
+ columns: {
158
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
159
+ name: "id";
160
+ tableName: "gl_uptime_incidents";
161
+ dataType: "string";
162
+ columnType: "SQLiteText";
163
+ data: string;
164
+ driverParam: string;
165
+ notNull: true;
166
+ hasDefault: false;
167
+ isPrimaryKey: true;
168
+ isAutoincrement: false;
169
+ hasRuntimeDefault: false;
170
+ enumValues: [string, ...string[]];
171
+ baseColumn: never;
172
+ identity: undefined;
173
+ generated: undefined;
174
+ }, {}, {
175
+ length: number | undefined;
176
+ }>;
177
+ surface: import("drizzle-orm/sqlite-core").SQLiteColumn<{
178
+ name: "surface";
179
+ tableName: "gl_uptime_incidents";
180
+ dataType: "string";
181
+ columnType: "SQLiteText";
182
+ data: string;
183
+ driverParam: string;
184
+ notNull: true;
185
+ hasDefault: false;
186
+ isPrimaryKey: false;
187
+ isAutoincrement: false;
188
+ hasRuntimeDefault: false;
189
+ enumValues: [string, ...string[]];
190
+ baseColumn: never;
191
+ identity: undefined;
192
+ generated: undefined;
193
+ }, {}, {
194
+ length: number | undefined;
195
+ }>;
196
+ openedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
197
+ name: "opened_at";
198
+ tableName: "gl_uptime_incidents";
199
+ dataType: "number";
200
+ columnType: "SQLiteInteger";
201
+ data: number;
202
+ driverParam: number;
203
+ notNull: true;
204
+ hasDefault: false;
205
+ isPrimaryKey: false;
206
+ isAutoincrement: false;
207
+ hasRuntimeDefault: false;
208
+ enumValues: undefined;
209
+ baseColumn: never;
210
+ identity: undefined;
211
+ generated: undefined;
212
+ }, {}, {}>;
213
+ closedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
214
+ name: "closed_at";
215
+ tableName: "gl_uptime_incidents";
216
+ dataType: "number";
217
+ columnType: "SQLiteInteger";
218
+ data: number;
219
+ driverParam: number;
220
+ notNull: false;
221
+ hasDefault: false;
222
+ isPrimaryKey: false;
223
+ isAutoincrement: false;
224
+ hasRuntimeDefault: false;
225
+ enumValues: undefined;
226
+ baseColumn: never;
227
+ identity: undefined;
228
+ generated: undefined;
229
+ }, {}, {}>;
230
+ triggerCheckId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
231
+ name: "trigger_check_id";
232
+ tableName: "gl_uptime_incidents";
233
+ dataType: "string";
234
+ columnType: "SQLiteText";
235
+ data: string;
236
+ driverParam: string;
237
+ notNull: false;
238
+ hasDefault: false;
239
+ isPrimaryKey: false;
240
+ isAutoincrement: false;
241
+ hasRuntimeDefault: false;
242
+ enumValues: [string, ...string[]];
243
+ baseColumn: never;
244
+ identity: undefined;
245
+ generated: undefined;
246
+ }, {}, {
247
+ length: number | undefined;
248
+ }>;
249
+ resolveCheckId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
250
+ name: "resolve_check_id";
251
+ tableName: "gl_uptime_incidents";
252
+ dataType: "string";
253
+ columnType: "SQLiteText";
254
+ data: string;
255
+ driverParam: string;
256
+ notNull: false;
257
+ hasDefault: false;
258
+ isPrimaryKey: false;
259
+ isAutoincrement: false;
260
+ hasRuntimeDefault: false;
261
+ enumValues: [string, ...string[]];
262
+ baseColumn: never;
263
+ identity: undefined;
264
+ generated: undefined;
265
+ }, {}, {
266
+ length: number | undefined;
267
+ }>;
268
+ severity: import("drizzle-orm/sqlite-core").SQLiteColumn<{
269
+ name: "severity";
270
+ tableName: "gl_uptime_incidents";
271
+ dataType: "string";
272
+ columnType: "SQLiteText";
273
+ data: string;
274
+ driverParam: string;
275
+ notNull: true;
276
+ hasDefault: false;
277
+ isPrimaryKey: false;
278
+ isAutoincrement: false;
279
+ hasRuntimeDefault: false;
280
+ enumValues: [string, ...string[]];
281
+ baseColumn: never;
282
+ identity: undefined;
283
+ generated: undefined;
284
+ }, {}, {
285
+ length: number | undefined;
286
+ }>;
287
+ notes: import("drizzle-orm/sqlite-core").SQLiteColumn<{
288
+ name: "notes";
289
+ tableName: "gl_uptime_incidents";
290
+ dataType: "string";
291
+ columnType: "SQLiteText";
292
+ data: string;
293
+ driverParam: string;
294
+ notNull: false;
295
+ hasDefault: false;
296
+ isPrimaryKey: false;
297
+ isAutoincrement: false;
298
+ hasRuntimeDefault: false;
299
+ enumValues: [string, ...string[]];
300
+ baseColumn: never;
301
+ identity: undefined;
302
+ generated: undefined;
303
+ }, {}, {
304
+ length: number | undefined;
305
+ }>;
306
+ };
307
+ dialect: "sqlite";
308
+ }>;
309
+ export declare const errors: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
310
+ name: "gl_errors";
311
+ schema: undefined;
312
+ columns: {
313
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
314
+ name: "id";
315
+ tableName: "gl_errors";
316
+ dataType: "string";
317
+ columnType: "SQLiteText";
318
+ data: string;
319
+ driverParam: string;
320
+ notNull: true;
321
+ hasDefault: false;
322
+ isPrimaryKey: true;
323
+ isAutoincrement: false;
324
+ hasRuntimeDefault: false;
325
+ enumValues: [string, ...string[]];
326
+ baseColumn: never;
327
+ identity: undefined;
328
+ generated: undefined;
329
+ }, {}, {
330
+ length: number | undefined;
331
+ }>;
332
+ realmKey: import("drizzle-orm/sqlite-core").SQLiteColumn<{
333
+ name: "realm_key";
334
+ tableName: "gl_errors";
335
+ dataType: "string";
336
+ columnType: "SQLiteText";
337
+ data: string;
338
+ driverParam: string;
339
+ notNull: true;
340
+ hasDefault: false;
341
+ isPrimaryKey: false;
342
+ isAutoincrement: false;
343
+ hasRuntimeDefault: false;
344
+ enumValues: [string, ...string[]];
345
+ baseColumn: never;
346
+ identity: undefined;
347
+ generated: undefined;
348
+ }, {}, {
349
+ length: number | undefined;
350
+ }>;
351
+ surface: import("drizzle-orm/sqlite-core").SQLiteColumn<{
352
+ name: "surface";
353
+ tableName: "gl_errors";
354
+ dataType: "string";
355
+ columnType: "SQLiteText";
356
+ data: string;
357
+ driverParam: string;
358
+ notNull: true;
359
+ hasDefault: false;
360
+ isPrimaryKey: false;
361
+ isAutoincrement: false;
362
+ hasRuntimeDefault: false;
363
+ enumValues: [string, ...string[]];
364
+ baseColumn: never;
365
+ identity: undefined;
366
+ generated: undefined;
367
+ }, {}, {
368
+ length: number | undefined;
369
+ }>;
370
+ severity: import("drizzle-orm/sqlite-core").SQLiteColumn<{
371
+ name: "severity";
372
+ tableName: "gl_errors";
373
+ dataType: "string";
374
+ columnType: "SQLiteText";
375
+ data: string;
376
+ driverParam: string;
377
+ notNull: true;
378
+ hasDefault: false;
379
+ isPrimaryKey: false;
380
+ isAutoincrement: false;
381
+ hasRuntimeDefault: false;
382
+ enumValues: [string, ...string[]];
383
+ baseColumn: never;
384
+ identity: undefined;
385
+ generated: undefined;
386
+ }, {}, {
387
+ length: number | undefined;
388
+ }>;
389
+ message: import("drizzle-orm/sqlite-core").SQLiteColumn<{
390
+ name: "message";
391
+ tableName: "gl_errors";
392
+ dataType: "string";
393
+ columnType: "SQLiteText";
394
+ data: string;
395
+ driverParam: string;
396
+ notNull: true;
397
+ hasDefault: false;
398
+ isPrimaryKey: false;
399
+ isAutoincrement: false;
400
+ hasRuntimeDefault: false;
401
+ enumValues: [string, ...string[]];
402
+ baseColumn: never;
403
+ identity: undefined;
404
+ generated: undefined;
405
+ }, {}, {
406
+ length: number | undefined;
407
+ }>;
408
+ stack: import("drizzle-orm/sqlite-core").SQLiteColumn<{
409
+ name: "stack";
410
+ tableName: "gl_errors";
411
+ dataType: "string";
412
+ columnType: "SQLiteText";
413
+ data: string;
414
+ driverParam: string;
415
+ notNull: false;
416
+ hasDefault: false;
417
+ isPrimaryKey: false;
418
+ isAutoincrement: false;
419
+ hasRuntimeDefault: false;
420
+ enumValues: [string, ...string[]];
421
+ baseColumn: never;
422
+ identity: undefined;
423
+ generated: undefined;
424
+ }, {}, {
425
+ length: number | undefined;
426
+ }>;
427
+ requestId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
428
+ name: "request_id";
429
+ tableName: "gl_errors";
430
+ dataType: "string";
431
+ columnType: "SQLiteText";
432
+ data: string;
433
+ driverParam: string;
434
+ notNull: false;
435
+ hasDefault: false;
436
+ isPrimaryKey: false;
437
+ isAutoincrement: false;
438
+ hasRuntimeDefault: false;
439
+ enumValues: [string, ...string[]];
440
+ baseColumn: never;
441
+ identity: undefined;
442
+ generated: undefined;
443
+ }, {}, {
444
+ length: number | undefined;
445
+ }>;
446
+ statusCode: import("drizzle-orm/sqlite-core").SQLiteColumn<{
447
+ name: "status_code";
448
+ tableName: "gl_errors";
449
+ dataType: "number";
450
+ columnType: "SQLiteInteger";
451
+ data: number;
452
+ driverParam: number;
453
+ notNull: false;
454
+ hasDefault: false;
455
+ isPrimaryKey: false;
456
+ isAutoincrement: false;
457
+ hasRuntimeDefault: false;
458
+ enumValues: undefined;
459
+ baseColumn: never;
460
+ identity: undefined;
461
+ generated: undefined;
462
+ }, {}, {}>;
463
+ durationMs: import("drizzle-orm/sqlite-core").SQLiteColumn<{
464
+ name: "duration_ms";
465
+ tableName: "gl_errors";
466
+ dataType: "number";
467
+ columnType: "SQLiteInteger";
468
+ data: number;
469
+ driverParam: number;
470
+ notNull: false;
471
+ hasDefault: false;
472
+ isPrimaryKey: false;
473
+ isAutoincrement: false;
474
+ hasRuntimeDefault: false;
475
+ enumValues: undefined;
476
+ baseColumn: never;
477
+ identity: undefined;
478
+ generated: undefined;
479
+ }, {}, {}>;
480
+ occurredAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
481
+ name: "occurred_at";
482
+ tableName: "gl_errors";
483
+ dataType: "number";
484
+ columnType: "SQLiteInteger";
485
+ data: number;
486
+ driverParam: number;
487
+ notNull: true;
488
+ hasDefault: false;
489
+ isPrimaryKey: false;
490
+ isAutoincrement: false;
491
+ hasRuntimeDefault: false;
492
+ enumValues: undefined;
493
+ baseColumn: never;
494
+ identity: undefined;
495
+ generated: undefined;
496
+ }, {}, {}>;
497
+ fingerprint: import("drizzle-orm/sqlite-core").SQLiteColumn<{
498
+ name: "fingerprint";
499
+ tableName: "gl_errors";
500
+ dataType: "string";
501
+ columnType: "SQLiteText";
502
+ data: string;
503
+ driverParam: string;
504
+ notNull: true;
505
+ hasDefault: false;
506
+ isPrimaryKey: false;
507
+ isAutoincrement: false;
508
+ hasRuntimeDefault: false;
509
+ enumValues: [string, ...string[]];
510
+ baseColumn: never;
511
+ identity: undefined;
512
+ generated: undefined;
513
+ }, {}, {
514
+ length: number | undefined;
515
+ }>;
516
+ };
517
+ dialect: "sqlite";
518
+ }>;
519
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/drizzle/schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBxB,CAAA;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB3B,CAAA;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBlB,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { index, integer, sqliteTable, text } from 'drizzle-orm/sqlite-core';
2
+ export const uptimeChecks = sqliteTable('gl_uptime_checks', {
3
+ id: text('id').primaryKey(),
4
+ surface: text('surface').notNull(),
5
+ checkType: text('check_type').notNull(),
6
+ status: text('status').notNull(),
7
+ statusCode: integer('status_code'),
8
+ latencyMs: integer('latency_ms'),
9
+ errorMessage: text('error_message'),
10
+ checkedAt: integer('checked_at').notNull(),
11
+ }, (table) => [
12
+ index('idx_uptime_surface_time').on(table.surface, table.checkedAt),
13
+ index('idx_uptime_status_time').on(table.status, table.checkedAt),
14
+ ]);
15
+ export const uptimeIncidents = sqliteTable('gl_uptime_incidents', {
16
+ id: text('id').primaryKey(),
17
+ surface: text('surface').notNull(),
18
+ openedAt: integer('opened_at').notNull(),
19
+ closedAt: integer('closed_at'),
20
+ triggerCheckId: text('trigger_check_id'),
21
+ resolveCheckId: text('resolve_check_id'),
22
+ severity: text('severity').notNull(),
23
+ notes: text('notes'),
24
+ }, (table) => [
25
+ index('idx_incidents_surface_open').on(table.surface, table.openedAt),
26
+ index('idx_incidents_open').on(table.closedAt),
27
+ ]);
28
+ export const errors = sqliteTable('gl_errors', {
29
+ id: text('id').primaryKey(),
30
+ realmKey: text('realm_key').notNull(),
31
+ surface: text('surface').notNull(),
32
+ severity: text('severity').notNull(),
33
+ message: text('message').notNull(),
34
+ stack: text('stack'),
35
+ requestId: text('request_id'),
36
+ statusCode: integer('status_code'),
37
+ durationMs: integer('duration_ms'),
38
+ occurredAt: integer('occurred_at').notNull(),
39
+ fingerprint: text('fingerprint').notNull(),
40
+ }, (table) => [
41
+ index('idx_errors_realm_time').on(table.realmKey, table.occurredAt),
42
+ index('idx_errors_fingerprint_time').on(table.fingerprint, table.occurredAt),
43
+ index('idx_errors_surface_time').on(table.surface, table.occurredAt),
44
+ ]);
45
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/schemas/drizzle/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { errors, uptimeChecks, uptimeIncidents } from './drizzle/schema.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { errors, uptimeChecks, uptimeIncidents } from './drizzle/schema.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,12 @@
1
+ CREATE TABLE gl_uptime_checks (
2
+ id TEXT PRIMARY KEY,
3
+ surface TEXT NOT NULL,
4
+ check_type TEXT NOT NULL,
5
+ status TEXT NOT NULL,
6
+ status_code INTEGER,
7
+ latency_ms INTEGER,
8
+ error_message TEXT,
9
+ checked_at INTEGER NOT NULL
10
+ );
11
+ CREATE INDEX idx_uptime_surface_time ON gl_uptime_checks (surface, checked_at DESC);
12
+ CREATE INDEX idx_uptime_status_time ON gl_uptime_checks (status, checked_at DESC);
@@ -0,0 +1,12 @@
1
+ CREATE TABLE gl_uptime_incidents (
2
+ id TEXT PRIMARY KEY,
3
+ surface TEXT NOT NULL,
4
+ opened_at INTEGER NOT NULL,
5
+ closed_at INTEGER,
6
+ trigger_check_id TEXT,
7
+ resolve_check_id TEXT,
8
+ severity TEXT NOT NULL,
9
+ notes TEXT
10
+ );
11
+ CREATE INDEX idx_incidents_surface_open ON gl_uptime_incidents (surface, opened_at DESC);
12
+ CREATE INDEX idx_incidents_open ON gl_uptime_incidents (closed_at) WHERE closed_at IS NULL;
@@ -0,0 +1,16 @@
1
+ CREATE TABLE gl_errors (
2
+ id TEXT PRIMARY KEY,
3
+ realm_key TEXT NOT NULL,
4
+ surface TEXT NOT NULL,
5
+ severity TEXT NOT NULL,
6
+ message TEXT NOT NULL,
7
+ stack TEXT,
8
+ request_id TEXT,
9
+ status_code INTEGER,
10
+ duration_ms INTEGER,
11
+ occurred_at INTEGER NOT NULL,
12
+ fingerprint TEXT NOT NULL
13
+ );
14
+ CREATE INDEX idx_errors_realm_time ON gl_errors (realm_key, occurred_at DESC);
15
+ CREATE INDEX idx_errors_fingerprint_time ON gl_errors (fingerprint, occurred_at DESC);
16
+ CREATE INDEX idx_errors_surface_time ON gl_errors (surface, occurred_at DESC);
@@ -0,0 +1,15 @@
1
+ # @growth-labs/monitoring D1 Migrations
2
+
3
+ Apply these migrations to the consumer's monitoring D1 database before mounting
4
+ the prober, tail worker, or status page.
5
+
6
+ Wrangler example:
7
+
8
+ ```toml
9
+ [[d1_databases]]
10
+ binding = "MONITORING_DB"
11
+ database_name = "monitoring"
12
+ migrations_dir = "node_modules/@growth-labs/monitoring/src/schemas/migrations"
13
+ ```
14
+
15
+ Tables are prefixed with `gl_` per Growth Labs package convention.
@@ -0,0 +1,10 @@
1
+ import type { AstroIntegration } from 'astro';
2
+ import type { StatusPageConfig } from '../types.js';
3
+ export interface StatusPageAppConfig extends StatusPageConfig {
4
+ routePath?: string;
5
+ jsonRoutePath?: string;
6
+ }
7
+ export declare function createStatusPageApp(config: StatusPageAppConfig): AstroIntegration;
8
+ export type { ErrorRollup, StatusPageConfig, SurfaceStatus, UptimeIncident } from '../types.js';
9
+ export { getCurrentSurfaceStatuses, getOpenIncidents, getSurfaceUptime, getTopErrors, } from './lib/queries.js';
10
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/status-page/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,gBAAgB,CAyCjF;AAED,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/F,OAAO,EACN,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,GACZ,MAAM,kBAAkB,CAAA"}