@oneuptime/common 10.5.17 → 10.5.18

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 (65) hide show
  1. package/Server/API/TelemetryAPI.ts +6 -0
  2. package/Server/EnvironmentConfig.ts +27 -0
  3. package/Server/Infrastructure/ClickhouseDatabase.ts +21 -1
  4. package/Server/Infrastructure/Postgres/DataSourceOptions.ts +19 -0
  5. package/Server/Infrastructure/PostgresDatabase.ts +27 -1
  6. package/Server/Infrastructure/QueueWorker.ts +14 -3
  7. package/Server/Infrastructure/Redis.ts +11 -0
  8. package/Server/Services/TelemetryAttributeService.ts +38 -2
  9. package/Server/Utils/Express.ts +32 -0
  10. package/Server/Utils/GracefulShutdown.ts +194 -0
  11. package/Server/Utils/Monitor/MonitorLogUtil.ts +22 -17
  12. package/Server/Utils/Profiling.ts +14 -6
  13. package/Server/Utils/Telemetry/LogExceptionExtractor.ts +289 -0
  14. package/Server/Utils/Telemetry/StackTraceParser.ts +423 -0
  15. package/Server/Utils/Telemetry.ts +15 -5
  16. package/Tests/Server/Services/TelemetryAttributeService.test.ts +83 -0
  17. package/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.ts +0 -0
  18. package/UI/Components/AutocompleteTextInput/AutocompleteTextInput.tsx +7 -1
  19. package/UI/Components/Dictionary/Dictionary.tsx +19 -0
  20. package/UI/Components/Filters/FiltersForm.tsx +1 -0
  21. package/UI/Components/Filters/JSONFilter.tsx +2 -0
  22. package/UI/Components/Filters/Types/Filter.ts +1 -0
  23. package/build/dist/Server/API/TelemetryAPI.js +4 -0
  24. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  25. package/build/dist/Server/EnvironmentConfig.js +19 -0
  26. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  27. package/build/dist/Server/Infrastructure/ClickhouseDatabase.js +16 -2
  28. package/build/dist/Server/Infrastructure/ClickhouseDatabase.js.map +1 -1
  29. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +10 -9
  30. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
  31. package/build/dist/Server/Infrastructure/PostgresDatabase.js +20 -1
  32. package/build/dist/Server/Infrastructure/PostgresDatabase.js.map +1 -1
  33. package/build/dist/Server/Infrastructure/QueueWorker.js +9 -2
  34. package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
  35. package/build/dist/Server/Infrastructure/Redis.js +5 -0
  36. package/build/dist/Server/Infrastructure/Redis.js.map +1 -1
  37. package/build/dist/Server/Services/TelemetryAttributeService.js +23 -1
  38. package/build/dist/Server/Services/TelemetryAttributeService.js.map +1 -1
  39. package/build/dist/Server/Utils/Express.js +23 -0
  40. package/build/dist/Server/Utils/Express.js.map +1 -1
  41. package/build/dist/Server/Utils/GracefulShutdown.js +145 -0
  42. package/build/dist/Server/Utils/GracefulShutdown.js.map +1 -0
  43. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js +12 -10
  44. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js.map +1 -1
  45. package/build/dist/Server/Utils/Profiling.js +8 -3
  46. package/build/dist/Server/Utils/Profiling.js.map +1 -1
  47. package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js +214 -0
  48. package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js.map +1 -0
  49. package/build/dist/Server/Utils/Telemetry/StackTraceParser.js +365 -0
  50. package/build/dist/Server/Utils/Telemetry/StackTraceParser.js.map +1 -0
  51. package/build/dist/Server/Utils/Telemetry.js +10 -4
  52. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  53. package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js +50 -0
  54. package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js.map +1 -0
  55. package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js +0 -0
  56. package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js.map +1 -0
  57. package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js +7 -1
  58. package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js.map +1 -1
  59. package/build/dist/UI/Components/Dictionary/Dictionary.js +10 -0
  60. package/build/dist/UI/Components/Dictionary/Dictionary.js.map +1 -1
  61. package/build/dist/UI/Components/Filters/FiltersForm.js +1 -1
  62. package/build/dist/UI/Components/Filters/FiltersForm.js.map +1 -1
  63. package/build/dist/UI/Components/Filters/JSONFilter.js +1 -1
  64. package/build/dist/UI/Components/Filters/JSONFilter.js.map +1 -1
  65. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { DatabaseHost, DatabaseName, DatabasePassword, DatabasePort, DatabaseRejectUnauthorized, DatabaseSslCa, DatabaseSslCert, DatabaseSslKey, DatabaseUsername, MaxPostgresConnections, PostgresConnectionAcquireTimeoutMs, PostgresIdleInTransactionTimeoutMs, PostgresIdleTimeoutMs, PostgresQueryTimeoutMs, PostgresSlowQueryLogThresholdMs, PostgresStatementTimeoutMs, ShouldDatabaseSslEnable, } from "../../../Server/EnvironmentConfig";
1
+ import { DatabaseHost, DatabaseName, DatabasePassword, DatabasePort, DatabaseRejectUnauthorized, DatabaseSslCa, DatabaseSslCert, DatabaseSslKey, DatabaseUsername, MaxPostgresConnections, PostgresConnectionAcquireTimeoutMs, PostgresIdleInTransactionTimeoutMs, PostgresIdleSessionTimeoutMs, PostgresIdleTimeoutMs, PostgresKeepAliveInitialDelayMs, PostgresQueryTimeoutMs, PostgresSlowQueryLogThresholdMs, PostgresStatementTimeoutMs, ShouldDatabaseSslEnable, } from "../../../Server/EnvironmentConfig";
2
2
  import Migrations from "./SchemaMigrations/Index";
3
3
  import DatabaseType from "../../../Types/DatabaseType";
4
4
  import Entities from "../../../Models/DatabaseModels/Index";
@@ -27,14 +27,15 @@ const dataSourceOptions = {
27
27
  * and client. Pool sizing + timeouts live here because TypeORM's defaults
28
28
  * (10 connections, no timeouts) are too small for any non-trivial load.
29
29
  */
30
- extra: {
31
- max: MaxPostgresConnections,
32
- idleTimeoutMillis: PostgresIdleTimeoutMs,
33
- connectionTimeoutMillis: PostgresConnectionAcquireTimeoutMs,
34
- statement_timeout: PostgresStatementTimeoutMs,
35
- query_timeout: PostgresQueryTimeoutMs,
36
- idle_in_transaction_session_timeout: PostgresIdleInTransactionTimeoutMs,
37
- },
30
+ extra: Object.assign({ max: MaxPostgresConnections, idleTimeoutMillis: PostgresIdleTimeoutMs, connectionTimeoutMillis: PostgresConnectionAcquireTimeoutMs, statement_timeout: PostgresStatementTimeoutMs, query_timeout: PostgresQueryTimeoutMs, idle_in_transaction_session_timeout: PostgresIdleInTransactionTimeoutMs,
31
+ /*
32
+ * Detect dead TCP peers (ungraceful client exit / network partition) so
33
+ * orphaned server-side connections get torn down instead of lingering
34
+ * until the OS keepalive default (~2h).
35
+ */
36
+ keepAlive: true, keepAliveInitialDelayMillis: PostgresKeepAliveInitialDelayMs }, (PostgresIdleSessionTimeoutMs > 0
37
+ ? { options: `-c idle_session_timeout=${PostgresIdleSessionTimeoutMs}` }
38
+ : {})),
38
39
  /*
39
40
  * Log any query slower than the configured threshold so we can find
40
41
  * offenders in production. TypeORM emits these via the configured
@@ -1 +1 @@
1
- {"version":3,"file":"DataSourceOptions.js","sourceRoot":"","sources":["../../../../../Server/Infrastructure/Postgres/DataSourceOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,kCAAkC,EAClC,kCAAkC,EAClC,qBAAqB,EACrB,sBAAsB,EACtB,+BAA+B,EAC/B,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,YAAY,MAAM,6BAA6B,CAAC;AACvD,OAAO,QAAQ,MAAM,sCAAsC,CAAC;AAG5D,MAAM,iBAAiB,GAAsB;IAC3C,IAAI,EAAE,YAAY,CAAC,QAAQ;IAC3B,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,YAAY;IACtB,mBAAmB,EAAE,YAAY;IACjC,UAAU,EAAE,UAAU;IACtB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,QAAQ;IAClB,eAAe,EAAE,WAAW;IAC5B,GAAG,EAAE,uBAAuB;QAC1B,CAAC,CAAC;YACE,kBAAkB,EAAE,0BAA0B;YAC9C,EAAE,EAAE,aAAa;YACjB,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,eAAe;SACtB;QACH,CAAC,CAAC,KAAK;IACT;;;;OAIG;IACH,KAAK,EAAE;QACL,GAAG,EAAE,sBAAsB;QAC3B,iBAAiB,EAAE,qBAAqB;QACxC,uBAAuB,EAAE,kCAAkC;QAC3D,iBAAiB,EAAE,0BAA0B;QAC7C,aAAa,EAAE,sBAAsB;QACrC,mCAAmC,EAAE,kCAAkC;KACxE;IACD;;;;OAIG;IACH,qBAAqB,EAAE,+BAA+B;IACtD,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"DataSourceOptions.js","sourceRoot":"","sources":["../../../../../Server/Infrastructure/Postgres/DataSourceOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,kCAAkC,EAClC,kCAAkC,EAClC,4BAA4B,EAC5B,qBAAqB,EACrB,+BAA+B,EAC/B,sBAAsB,EACtB,+BAA+B,EAC/B,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,YAAY,MAAM,6BAA6B,CAAC;AACvD,OAAO,QAAQ,MAAM,sCAAsC,CAAC;AAG5D,MAAM,iBAAiB,GAAsB;IAC3C,IAAI,EAAE,YAAY,CAAC,QAAQ;IAC3B,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,YAAY;IACtB,mBAAmB,EAAE,YAAY;IACjC,UAAU,EAAE,UAAU;IACtB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,QAAQ;IAClB,eAAe,EAAE,WAAW;IAC5B,GAAG,EAAE,uBAAuB;QAC1B,CAAC,CAAC;YACE,kBAAkB,EAAE,0BAA0B;YAC9C,EAAE,EAAE,aAAa;YACjB,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,eAAe;SACtB;QACH,CAAC,CAAC,KAAK;IACT;;;;OAIG;IACH,KAAK,kBACH,GAAG,EAAE,sBAAsB,EAC3B,iBAAiB,EAAE,qBAAqB,EACxC,uBAAuB,EAAE,kCAAkC,EAC3D,iBAAiB,EAAE,0BAA0B,EAC7C,aAAa,EAAE,sBAAsB,EACrC,mCAAmC,EAAE,kCAAkC;QACvE;;;;WAIG;QACH,SAAS,EAAE,IAAI,EACf,2BAA2B,EAAE,+BAA+B,IAQzD,CAAC,4BAA4B,GAAG,CAAC;QAClC,CAAC,CAAC,EAAE,OAAO,EAAE,2BAA2B,4BAA4B,EAAE,EAAE;QACxE,CAAC,CAAC,EAAE,CAAC,CACR;IACD;;;;OAIG;IACH,qBAAqB,EAAE,+BAA+B;IACtD,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -13,6 +13,7 @@ import Sleep from "../../Types/Sleep";
13
13
  import { DataSource } from "typeorm";
14
14
  import { createDatabase, dropDatabase } from "typeorm-extension";
15
15
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
16
+ import GracefulShutdown, { ShutdownPriority } from "../Utils/GracefulShutdown";
16
17
  class Database {
17
18
  static getDatasourceOptions() {
18
19
  this.dataSourceOptions = DatabaseDataSourceOptions;
@@ -25,6 +26,14 @@ class Database {
25
26
  return Boolean(this.dataSource);
26
27
  }
27
28
  static async connect() {
29
+ /*
30
+ * Idempotent: a second connect() must not overwrite (and thereby orphan)
31
+ * the existing pool. Return the live DataSource instead of building a new
32
+ * one.
33
+ */
34
+ if (this.dataSource) {
35
+ return this.dataSource;
36
+ }
28
37
  let retry = 0;
29
38
  const dataSourceOptions = this.getDatasourceOptions();
30
39
  try {
@@ -47,7 +56,17 @@ class Database {
47
56
  throw err;
48
57
  }
49
58
  };
50
- return await connectToDatabase();
59
+ const dataSource = await connectToDatabase();
60
+ /*
61
+ * Drain the pool on shutdown. Registered here (after a successful
62
+ * connect) so we never register cleanup for a pool that was never
63
+ * created, and — thanks to GracefulShutdown deduping by name — exactly
64
+ * once even if connect() is somehow reached twice.
65
+ */
66
+ GracefulShutdown.registerHandler("PostgresDatabase", ShutdownPriority.DataStores, () => {
67
+ return this.disconnect();
68
+ });
69
+ return dataSource;
51
70
  }
52
71
  catch (err) {
53
72
  logger.error("Postgres Database Connection Failed");
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresDatabase.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/PostgresDatabase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresDatabase.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/PostgresDatabase.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,yBAAyB,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAqB,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAK/E,MAAqB,QAAQ;IAKb,AAAP,MAAM,CAAC,oBAAoB;QAChC,IAAI,CAAC,iBAAiB,GAAG,yBAAyB,CAAC;QACnD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAGa,AAAP,MAAM,CAAC,aAAa;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAGa,AAAP,MAAM,CAAC,WAAW;QACvB,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,OAAO;QACzB;;;;WAIG;QACH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,GAAW,CAAC,CAAC;QAEtB,MAAM,iBAAiB,GAAsB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEzE,IAAI,CAAC;YAGH,MAAM,iBAAiB,GACrB,KAAK,IAAyB,EAAE;gBAC9B,IAAI,CAAC;oBACH,MAAM,kBAAkB,GAAe,IAAI,UAAU,CACnD,iBAAiB,CAClB,CAAC;oBACF,MAAM,UAAU,GACd,MAAM,kBAAkB,CAAC,UAAU,EAAE,CAAC;oBACxC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBAC5C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC7B,OAAO,UAAU,CAAC;gBACpB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;wBACd,MAAM,CAAC,KAAK,CACV,yDAAyD,CAC1D,CAAC;wBACF,uBAAuB;wBAEvB,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAExB,KAAK,EAAE,CAAC;wBACR,OAAO,MAAM,iBAAiB,EAAE,CAAC;oBACnC,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YAEJ,MAAM,UAAU,GAAe,MAAM,iBAAiB,EAAE,CAAC;YAEzD;;;;;eAKG;YACH,gBAAgB,CAAC,eAAe,CAC9B,kBAAkB,EAClB,gBAAgB,CAAC,UAAU,EAC3B,GAAG,EAAE;gBACH,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,CAAC,CACF,CAAC;YAEF,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,UAAU;QAC5B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,sBAAsB;;QACxC,qEAAqE;QACrE,IAAI,CAAC;YACH,MAAM,MAAM,GAAQ,MAAM,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,CAAC,UAAU,CAAC,CAAA,CAAC;YAE7D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,YAAY;QAC9B,MAAM,YAAY,CAAC;YACjB,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE;SACrC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,cAAc;QAChC,MAAM,cAAc,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACpC,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,gBAAgB;QAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,yBAAyB;QAC3C,wEAAwE;QACxE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;;AA9IgB,0BAAiB,GAA6B,IAAI,CAAC;AACnD,mBAAU,GAAsB,IAAI,CAAC;eAFnC,QAAQ;AAKb;IADb,WAAW,EAAE;;;;0CAIb;AAGa;IADb,WAAW,EAAE;;;;mCAGb;AAGa;IADb,WAAW,EAAE;;;;iCAGb;AAGmB;IADnB,WAAW,EAAE;;;;6BAmEb;AAGmB;IADnB,WAAW,EAAE;;;;gCAMb;AAGmB;IADnB,WAAW,EAAE;;;;4CAgBb;AAGmB;IADnB,WAAW,EAAE;;;;kCAOb;AAGmB;IADnB,WAAW,EAAE;;;;oCAMb;AAGmB;IADnB,WAAW,EAAE;;;;sCAIb;AAGmB;IADnB,WAAW,EAAE;;;;+CAKb"}
@@ -15,6 +15,7 @@ import AppMetrics from "../Utils/Telemetry/AppMetrics";
15
15
  import TelemetryContext from "../Utils/Telemetry/TelemetryContext";
16
16
  import Telemetry, { SpanStatusCode, } from "../Utils/Telemetry";
17
17
  import Redis from "./Redis";
18
+ import GracefulShutdown, { ShutdownPriority } from "../Utils/GracefulShutdown";
18
19
  export default class QueueWorker {
19
20
  static getWorker(queueName, onJobInQueue, options) {
20
21
  const instrumentedJobHandler = async (job) => {
@@ -77,8 +78,14 @@ export default class QueueWorker {
77
78
  const worker = new Worker(queueName, instrumentedJobHandler, Object.assign(Object.assign({ connection: Redis.getRedisOptions(), concurrency: options.concurrency }, (options.lockDuration ? { lockDuration: options.lockDuration } : {})), (options.maxStalledCount !== undefined
78
79
  ? { maxStalledCount: options.maxStalledCount }
79
80
  : {})));
80
- process.on("SIGINT", async () => {
81
- await worker.close();
81
+ /*
82
+ * Stop pulling new jobs and let in-flight ones finish on shutdown. Runs in
83
+ * the Workers tier — before datastores are drained — so jobs mid-flight can
84
+ * still reach Postgres / Redis. Replaces a SIGINT-only handler that never
85
+ * fired in containers (Kubernetes / docker stop send SIGTERM).
86
+ */
87
+ GracefulShutdown.registerHandler(`QueueWorker:${queueName}`, ShutdownPriority.Workers, () => {
88
+ return worker.close();
82
89
  });
83
90
  return worker;
84
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueueWorker.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/QueueWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueueWorker.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/QueueWorker.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import logger from "../Utils/Logger";
12
12
  import Sleep from "../../Types/Sleep";
13
13
  import { Redis as RedisClient } from "ioredis";
14
14
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
15
+ import GracefulShutdown, { ShutdownPriority } from "../Utils/GracefulShutdown";
15
16
  class Redis {
16
17
  static isConnected() {
17
18
  if (!this.client) {
@@ -91,6 +92,10 @@ class Redis {
91
92
  };
92
93
  await connectToDatabase(this.client);
93
94
  logger.debug(`Redis connected on ${RedisHostname}:${RedisPort.toNumber()}`);
95
+ // Close the Redis connection on shutdown.
96
+ GracefulShutdown.registerHandler("Redis", ShutdownPriority.DataStores, () => {
97
+ return this.disconnect();
98
+ });
94
99
  return this.client;
95
100
  }
96
101
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"Redis.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/Redis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Redis.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/Redis.ts"],"names":[],"mappings":"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"}
@@ -235,9 +235,10 @@ export class TelemetryAttributeService {
235
235
  source,
236
236
  metricName: data.metricName,
237
237
  attributeKey: data.attributeKey,
238
+ searchText: data.searchText,
238
239
  });
239
240
  }
240
- static async fetchAttributeValuesFromDatabase(data) {
241
+ static buildAttributeValuesStatement(data) {
241
242
  const lookbackStartDate = TelemetryAttributeService.getLookbackStartDate();
242
243
  const statement = SQL `
243
244
  SELECT DISTINCT ${data.source.attributesColumn}[${{
@@ -264,12 +265,33 @@ export class TelemetryAttributeService {
264
265
  value: data.metricName,
265
266
  }}`);
266
267
  }
268
+ /*
269
+ * Case-insensitive substring filter so the value autocomplete keeps
270
+ * narrowing server-side as the user types. Without it only the first
271
+ * ATTRIBUTE_VALUES_LIMIT values (alphabetically) are ever reachable,
272
+ * which hides matches on high-cardinality keys (host.name, url, ...).
273
+ * Mirrors the ILIKE idiom used for bodySearchText / nameSearchText.
274
+ */
275
+ if (data.searchText && data.searchText.trim().length > 0) {
276
+ statement.append(SQL `
277
+ AND ${data.source.attributesColumn}[${{
278
+ type: TableColumnType.Text,
279
+ value: data.attributeKey,
280
+ }}] ILIKE ${{
281
+ type: TableColumnType.Text,
282
+ value: `%${data.searchText.trim()}%`,
283
+ }}`);
284
+ }
267
285
  statement.append(SQL `
268
286
  ORDER BY attributeValue ASC
269
287
  LIMIT ${{
270
288
  type: TableColumnType.Number,
271
289
  value: TelemetryAttributeService.ATTRIBUTE_VALUES_LIMIT,
272
290
  }}`);
291
+ return statement;
292
+ }
293
+ static async fetchAttributeValuesFromDatabase(data) {
294
+ const statement = TelemetryAttributeService.buildAttributeValuesStatement(data);
273
295
  const dbResult = await data.source.service.executeQuery(statement);
274
296
  const response = await dbResult.json();
275
297
  const rows = response.data || [];
@@ -1 +1 @@
1
- {"version":3,"file":"TelemetryAttributeService.js","sourceRoot":"","sources":["../../../../Server/Services/TelemetryAttributeService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TelemetryAttributeService.js","sourceRoot":"","sources":["../../../../Server/Services/TelemetryAttributeService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import logger from "./Logger";
2
+ import GracefulShutdown, { ShutdownPriority } from "./GracefulShutdown";
2
3
  import "ejs";
3
4
  import express from "express";
4
5
  import { createServer } from "http";
@@ -32,6 +33,28 @@ class Express {
32
33
  if (!this.httpServer) {
33
34
  this.httpServer = createServer(this.app);
34
35
  }
36
+ /*
37
+ * On shutdown, stop accepting new connections first (before datastores are
38
+ * drained) so in-flight requests can finish but new ones don't acquire
39
+ * resources we're about to tear down. closeIdleConnections() drops idle
40
+ * keep-alive sockets so server.close() doesn't block waiting on them; the
41
+ * GracefulShutdown per-handler timeout bounds anything still in flight.
42
+ */
43
+ GracefulShutdown.registerHandler("HttpServer", ShutdownPriority.HttpServer, () => {
44
+ return new Promise((resolve) => {
45
+ if (!this.httpServer || !this.httpServer.listening) {
46
+ resolve();
47
+ return;
48
+ }
49
+ const server = this.httpServer;
50
+ if (typeof server.closeIdleConnections === "function") {
51
+ server.closeIdleConnections();
52
+ }
53
+ server.close(() => {
54
+ resolve();
55
+ });
56
+ });
57
+ });
35
58
  return new Promise((resolve) => {
36
59
  this.httpServer.listen((port === null || port === void 0 ? void 0 : port.toNumber()) || this.app.get("port"), () => {
37
60
  logger.debug(`${appName} server started on port: ${(port === null || port === void 0 ? void 0 : port.toNumber()) || this.app.get("port")}`);
@@ -1 +1 @@
1
- {"version":3,"file":"Express.js","sourceRoot":"","sources":["../../../../Server/Utils/Express.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Express.js","sourceRoot":"","sources":["../../../../Server/Utils/Express.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import logger from "./Logger";
2
+ /*
3
+ * Centralized graceful-shutdown coordinator.
4
+ *
5
+ * Before this existed, each subsystem registered its own
6
+ * process.on("SIGTERM" | "SIGINT") handler independently. The telemetry
7
+ * handler in particular called process.exit(0) as soon as the OTEL SDK
8
+ * flushed, which raced every other handler and — crucially — meant the
9
+ * Postgres / Redis / Clickhouse pools were never drained. Connections were
10
+ * left for the OS socket teardown to reap (and leaked outright on SIGKILL or
11
+ * a network partition).
12
+ *
13
+ * Now every subsystem registers an async cleanup callback here, and this class
14
+ * is the single owner of the signal handlers and of process.exit. Handlers run
15
+ * in ascending priority order (lower first) so we stop accepting new work
16
+ * before tearing down the resources that work depends on:
17
+ *
18
+ * HttpServer (10) -> stop accepting new HTTP requests
19
+ * Workers (20) -> stop pulling new queue jobs, finish in-flight jobs
20
+ * Buffers (30) -> flush in-memory write buffers to their datastore
21
+ * DataStores (40) -> drain Postgres / Redis / Clickhouse pools
22
+ * Telemetry (50) -> flush traces / metrics / logs / profiles last
23
+ *
24
+ * Handlers in the same tier run concurrently. Each handler is bounded by a
25
+ * per-handler timeout, and the whole sequence by an overall deadline, so a
26
+ * single hung handler can never wedge the shutdown.
27
+ */
28
+ export var ShutdownPriority;
29
+ (function (ShutdownPriority) {
30
+ ShutdownPriority[ShutdownPriority["HttpServer"] = 10] = "HttpServer";
31
+ ShutdownPriority[ShutdownPriority["Workers"] = 20] = "Workers";
32
+ ShutdownPriority[ShutdownPriority["Buffers"] = 30] = "Buffers";
33
+ ShutdownPriority[ShutdownPriority["DataStores"] = 40] = "DataStores";
34
+ ShutdownPriority[ShutdownPriority["Telemetry"] = 50] = "Telemetry";
35
+ })(ShutdownPriority || (ShutdownPriority = {}));
36
+ class GracefulShutdown {
37
+ /*
38
+ * Register a cleanup callback to run on SIGTERM / SIGINT. Registering by a
39
+ * stable name is idempotent: a repeat registration (e.g. a second connect())
40
+ * replaces the previous callback instead of stacking a duplicate. Callers
41
+ * that own multiple independent resources (e.g. two Clickhouse pools) must
42
+ * therefore pass distinct names.
43
+ */
44
+ static registerHandler(name, priority, callback) {
45
+ const existingIndex = this.handlers.findIndex((handler) => {
46
+ return handler.name === name;
47
+ });
48
+ if (existingIndex >= 0) {
49
+ this.handlers[existingIndex] = { name, priority, callback };
50
+ }
51
+ else {
52
+ this.handlers.push({ name, priority, callback });
53
+ }
54
+ this.installSignalListeners();
55
+ }
56
+ static installSignalListeners() {
57
+ if (this.signalListenersInstalled) {
58
+ return;
59
+ }
60
+ this.signalListenersInstalled = true;
61
+ process.on("SIGTERM", () => {
62
+ void this.shutdown("SIGTERM");
63
+ });
64
+ process.on("SIGINT", () => {
65
+ void this.shutdown("SIGINT");
66
+ });
67
+ }
68
+ static async shutdown(signal) {
69
+ if (this.isShuttingDown) {
70
+ /*
71
+ * A second signal while we're already draining means the operator (or
72
+ * orchestrator) is impatient. Bail out immediately.
73
+ */
74
+ logger.warn(`GracefulShutdown: received ${signal} while already shutting down. Forcing exit.`);
75
+ return process.exit(1);
76
+ }
77
+ this.isShuttingDown = true;
78
+ logger.info(`GracefulShutdown: received ${signal}. Draining ${this.handlers.length} handler(s)...`);
79
+ const forceExitTimer = setTimeout(() => {
80
+ logger.error(`GracefulShutdown: exceeded ${this.overallTimeoutMs}ms overall deadline. Forcing exit.`);
81
+ return process.exit(1);
82
+ }, this.overallTimeoutMs);
83
+ // Don't let this timer keep the event loop alive on its own.
84
+ forceExitTimer.unref();
85
+ // Run handlers tier by tier; lower priority tiers complete before the next.
86
+ const tiers = Array.from(new Set(this.handlers.map((handler) => {
87
+ return handler.priority;
88
+ }))).sort((a, b) => {
89
+ return a - b;
90
+ });
91
+ for (const tier of tiers) {
92
+ const handlersInTier = this.handlers.filter((handler) => {
93
+ return handler.priority === tier;
94
+ });
95
+ // Handlers within a tier are independent, so run them concurrently.
96
+ await Promise.all(handlersInTier.map((handler) => {
97
+ return this.runHandlerWithTimeout(handler);
98
+ }));
99
+ }
100
+ clearTimeout(forceExitTimer);
101
+ logger.info("GracefulShutdown: all handlers complete. Exiting cleanly.");
102
+ return process.exit(0);
103
+ }
104
+ static async runHandlerWithTimeout(handler) {
105
+ logger.debug(`GracefulShutdown: running handler "${handler.name}"...`);
106
+ let timer = null;
107
+ const timeout = new Promise((resolve) => {
108
+ timer = setTimeout(() => {
109
+ logger.warn(`GracefulShutdown: handler "${handler.name}" exceeded ${this.perHandlerTimeoutMs}ms. Moving on.`);
110
+ return resolve();
111
+ }, this.perHandlerTimeoutMs);
112
+ timer.unref();
113
+ });
114
+ const run = (async () => {
115
+ try {
116
+ await handler.callback();
117
+ logger.debug(`GracefulShutdown: handler "${handler.name}" done.`);
118
+ }
119
+ catch (err) {
120
+ logger.error(`GracefulShutdown: handler "${handler.name}" failed:`);
121
+ logger.error(err);
122
+ }
123
+ })();
124
+ await Promise.race([run, timeout]);
125
+ if (timer) {
126
+ clearTimeout(timer);
127
+ }
128
+ }
129
+ }
130
+ GracefulShutdown.handlers = [];
131
+ GracefulShutdown.signalListenersInstalled = false;
132
+ GracefulShutdown.isShuttingDown = false;
133
+ /*
134
+ * How long a single handler may run before we give up on it and move on.
135
+ * Kept comfortably under the orchestrator (Kubernetes) default
136
+ * terminationGracePeriodSeconds of 30s.
137
+ */
138
+ GracefulShutdown.perHandlerTimeoutMs = 10000;
139
+ /*
140
+ * Hard ceiling for the entire shutdown. If we blow past this we force-exit
141
+ * rather than risk being SIGKILLed mid-cleanup.
142
+ */
143
+ GracefulShutdown.overallTimeoutMs = 25000;
144
+ export default GracefulShutdown;
145
+ //# sourceMappingURL=GracefulShutdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GracefulShutdown.js","sourceRoot":"","sources":["../../../../Server/Utils/GracefulShutdown.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,oEAAe,CAAA;IACf,8DAAY,CAAA;IACZ,8DAAY,CAAA;IACZ,oEAAe,CAAA;IACf,kEAAc,CAAA;AAChB,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B;AAUD,MAAqB,gBAAgB;IAkBnC;;;;;;OAMG;IACI,MAAM,CAAC,eAAe,CAC3B,IAAY,EACZ,QAA0B,EAC1B,QAA0B;QAE1B,MAAM,aAAa,GAAW,IAAI,CAAC,QAAQ,CAAC,SAAS,CACnD,CAAC,OAAkC,EAAE,EAAE;YACrC,OAAO,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;QAC/B,CAAC,CACF,CAAC;QAEF,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,sBAAsB;QACnC,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QAErC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAc;QACzC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB;;;eAGG;YACH,MAAM,CAAC,IAAI,CACT,8BAA8B,MAAM,6CAA6C,CAClF,CAAC;YACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,MAAM,CAAC,IAAI,CACT,8BAA8B,MAAM,cAAc,IAAI,CAAC,QAAQ,CAAC,MAAM,gBAAgB,CACvF,CAAC;QAEF,MAAM,cAAc,GAAkC,UAAU,CAAC,GAAG,EAAE;YACpE,MAAM,CAAC,KAAK,CACV,8BAA8B,IAAI,CAAC,gBAAgB,oCAAoC,CACxF,CAAC;YACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE1B,6DAA6D;QAC7D,cAAc,CAAC,KAAK,EAAE,CAAC;QAEvB,4EAA4E;QAC5E,MAAM,KAAK,GAAkB,KAAK,CAAC,IAAI,CACrC,IAAI,GAAG,CACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAkC,EAAE,EAAE;YACvD,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC1B,CAAC,CAAC,CACH,CACF,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAkC,EAAE,EAAE;gBAC1D,OAAO,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC;YACnC,CAAC,CAAC,CAAC;YAEL,oEAAoE;YACpE,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,CAAC,OAAkC,EAAE,EAAE;gBACxD,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,cAAc,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QACzE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,qBAAqB,CACxC,OAAkC;QAElC,MAAM,CAAC,KAAK,CAAC,sCAAsC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC;QAEvE,IAAI,KAAK,GAAyC,IAAI,CAAC;QAEvD,MAAM,OAAO,GAAkB,IAAI,OAAO,CAAO,CAAC,OAAmB,EAAE,EAAE;YACvE,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,MAAM,CAAC,IAAI,CACT,8BAA8B,OAAO,CAAC,IAAI,cAAc,IAAI,CAAC,mBAAmB,gBAAgB,CACjG,CAAC;gBACF,OAAO,OAAO,EAAE,CAAC;YACnB,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC7B,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAkB,CAAC,KAAK,IAAmB,EAAE;YACpD,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACzB,MAAM,CAAC,KAAK,CAAC,8BAA8B,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,8BAA8B,OAAO,CAAC,IAAI,WAAW,CAAC,CAAC;gBACpE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QAEnC,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;;AAnJc,yBAAQ,GAAqC,EAAE,CAAC;AAChD,yCAAwB,GAAY,KAAK,CAAC;AAC1C,+BAAc,GAAY,KAAK,CAAC;AAE/C;;;;GAIG;AACqB,oCAAmB,GAAW,KAAM,CAAC;AAE7D;;;GAGG;AACqB,iCAAgB,GAAW,KAAM,CAAC;eAhBvC,gBAAgB"}
@@ -1,6 +1,7 @@
1
1
  import MonitorLogService from "../../Services/MonitorLogService";
2
2
  import GlobalConfigService from "../../Services/GlobalConfigService";
3
3
  import logger from "../Logger";
4
+ import GracefulShutdown, { ShutdownPriority } from "../GracefulShutdown";
4
5
  import OneUptimeDate from "../../../Types/Date";
5
6
  import ObjectID from "../../../Types/ObjectID";
6
7
  /*
@@ -167,17 +168,19 @@ class MonitorLogUtil {
167
168
  }
168
169
  }
169
170
  /*
170
- * Register SIGTERM / SIGINT handlers exactly once, lazily on
171
- * first ingest. We avoid registering at module-load time so
172
- * tooling that imports this file (e.g. migration runners,
173
- * CLI scripts) doesn't end up with stray process listeners.
171
+ * Register the shutdown flush exactly once, lazily on first ingest. We avoid
172
+ * registering at module-load time so tooling that imports this file (e.g.
173
+ * migration runners, CLI scripts) doesn't end up holding a stray handler.
174
+ *
175
+ * Runs in the Buffers tier — ahead of the DataStores tier — so the buffer is
176
+ * drained to Clickhouse before the datastore pools are torn down.
174
177
  */
175
178
  static ensureShutdownHooks() {
176
179
  if (this.shutdownHooksRegistered) {
177
180
  return;
178
181
  }
179
182
  this.shutdownHooksRegistered = true;
180
- const flushOnShutdown = async () => {
183
+ GracefulShutdown.registerHandler("MonitorLogUtil", ShutdownPriority.Buffers, async () => {
181
184
  try {
182
185
  await this.flushAndWait();
183
186
  }
@@ -185,9 +188,7 @@ class MonitorLogUtil {
185
188
  logger.error("Error flushing MonitorLog buffer on shutdown:");
186
189
  logger.error(err);
187
190
  }
188
- };
189
- process.on("SIGTERM", flushOnShutdown);
190
- process.on("SIGINT", flushOnShutdown);
191
+ });
191
192
  }
192
193
  }
193
194
  // Default retention in days if GlobalConfig is not set
@@ -201,8 +202,9 @@ MonitorLogUtil.CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
201
202
  * here until either MONITOR_LOG_FLUSH_BATCH_SIZE rows arrive
202
203
  * (size trigger) or MONITOR_LOG_FLUSH_INTERVAL_MS elapses since
203
204
  * the first row entered an empty buffer (time trigger),
204
- * whichever comes first. On graceful shutdown the SIGTERM /
205
- * SIGINT hook below drains the buffer before the process exits.
205
+ * whichever comes first. On graceful shutdown the registered
206
+ * GracefulShutdown handler below drains the buffer (in the
207
+ * Buffers tier, before the datastores are torn down).
206
208
  */
207
209
  MonitorLogUtil.buffer = [];
208
210
  MonitorLogUtil.flushTimer = null;
@@ -1 +1 @@
1
- {"version":3,"file":"MonitorLogUtil.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/MonitorLogUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MonitorLogUtil.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/MonitorLogUtil.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import Pyroscope from "@pyroscope/nodejs";
2
2
  import { EnableProfiling } from "../EnvironmentConfig";
3
3
  import logger from "./Logger";
4
+ import GracefulShutdown, { ShutdownPriority } from "./GracefulShutdown";
4
5
  export default class Profiling {
5
6
  static init(data) {
6
7
  if (!EnableProfiling) {
@@ -31,11 +32,15 @@ export default class Profiling {
31
32
  logger.error("Failed to initialize profiling:", profilingLogAttributes);
32
33
  logger.error(err, profilingLogAttributes);
33
34
  }
34
- process.on("SIGTERM", () => {
35
- Pyroscope.stop().catch((err) => {
35
+ // Stop the profiler last (Telemetry tier), alongside the OTEL flush.
36
+ GracefulShutdown.registerHandler("Profiling", ShutdownPriority.Telemetry, async () => {
37
+ try {
38
+ await Pyroscope.stop();
39
+ }
40
+ catch (err) {
36
41
  logger.error("Error stopping profiler:", profilingLogAttributes);
37
42
  logger.error(err, profilingLogAttributes);
38
- });
43
+ }
39
44
  });
40
45
  }
41
46
  static getServerAddress() {
@@ -1 +1 @@
1
- {"version":3,"file":"Profiling.js","sourceRoot":"","sources":["../../../../Server/Utils/Profiling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Profiling.js","sourceRoot":"","sources":["../../../../Server/Utils/Profiling.ts"],"names":[],"mappings":"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"}