openclaw-observability 2026.4.1 → 2026.4.21

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 (112) hide show
  1. package/README.md +4 -4
  2. package/dist/cloud/api-key-auth.d.ts.map +1 -1
  3. package/dist/cloud/api-key-auth.js +4 -9
  4. package/dist/cloud/api-key-auth.js.map +1 -1
  5. package/dist/cloud/types.d.ts +2 -3
  6. package/dist/cloud/types.d.ts.map +1 -1
  7. package/dist/config.d.ts +34 -5
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +35 -2
  10. package/dist/config.js.map +1 -1
  11. package/dist/gateway/register-observability-gateway.d.ts +6 -4
  12. package/dist/gateway/register-observability-gateway.d.ts.map +1 -1
  13. package/dist/gateway/register-observability-gateway.js +105 -2
  14. package/dist/gateway/register-observability-gateway.js.map +1 -1
  15. package/dist/hooks/messages.d.ts +4 -3
  16. package/dist/hooks/messages.d.ts.map +1 -1
  17. package/dist/hooks/messages.js +23 -1
  18. package/dist/hooks/messages.js.map +1 -1
  19. package/dist/hooks/session.d.ts +4 -3
  20. package/dist/hooks/session.d.ts.map +1 -1
  21. package/dist/hooks/session.js +9 -4
  22. package/dist/hooks/session.js.map +1 -1
  23. package/dist/hooks/subagent.d.ts +4 -3
  24. package/dist/hooks/subagent.d.ts.map +1 -1
  25. package/dist/hooks/subagent.js +4 -1
  26. package/dist/hooks/subagent.js.map +1 -1
  27. package/dist/hooks/tools.d.ts +3 -3
  28. package/dist/hooks/tools.d.ts.map +1 -1
  29. package/dist/hooks/tools.js +122 -4
  30. package/dist/hooks/tools.js.map +1 -1
  31. package/dist/index.d.ts +2 -2
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +472 -118
  34. package/dist/index.js.map +1 -1
  35. package/dist/llm/replay-runtime.d.ts +16 -0
  36. package/dist/llm/replay-runtime.d.ts.map +1 -0
  37. package/dist/llm/replay-runtime.js +596 -0
  38. package/dist/llm/replay-runtime.js.map +1 -0
  39. package/dist/llm/replay.d.ts +3 -0
  40. package/dist/llm/replay.d.ts.map +1 -1
  41. package/dist/llm/replay.js.map +1 -1
  42. package/dist/redaction.d.ts +1 -1
  43. package/dist/redaction.js +1 -1
  44. package/dist/runtime/index.d.ts +1 -1
  45. package/dist/runtime/index.d.ts.map +1 -1
  46. package/dist/runtime/index.js +3 -1
  47. package/dist/runtime/index.js.map +1 -1
  48. package/dist/runtime/session-context.d.ts +4 -3
  49. package/dist/runtime/session-context.d.ts.map +1 -1
  50. package/dist/runtime/session-context.js +37 -17
  51. package/dist/runtime/session-context.js.map +1 -1
  52. package/dist/security/chain-detector.d.ts +4 -4
  53. package/dist/security/chain-detector.d.ts.map +1 -1
  54. package/dist/security/chain-detector.js.map +1 -1
  55. package/dist/security/rules.d.ts +2 -2
  56. package/dist/security/rules.d.ts.map +1 -1
  57. package/dist/security/rules.js +9 -2
  58. package/dist/security/rules.js.map +1 -1
  59. package/dist/security/scanner.d.ts +8 -3
  60. package/dist/security/scanner.d.ts.map +1 -1
  61. package/dist/security/scanner.js +85 -7
  62. package/dist/security/scanner.js.map +1 -1
  63. package/dist/security/types.d.ts +3 -0
  64. package/dist/security/types.d.ts.map +1 -1
  65. package/dist/storage/buffer.d.ts +7 -7
  66. package/dist/storage/buffer.d.ts.map +1 -1
  67. package/dist/storage/buffer.js +2 -2
  68. package/dist/storage/buffer.js.map +1 -1
  69. package/dist/storage/cloud-export-writer.d.ts +23 -0
  70. package/dist/storage/cloud-export-writer.d.ts.map +1 -0
  71. package/dist/storage/cloud-export-writer.js +202 -0
  72. package/dist/storage/cloud-export-writer.js.map +1 -0
  73. package/dist/storage/duckdb-local-writer.d.ts +19 -3
  74. package/dist/storage/duckdb-local-writer.d.ts.map +1 -1
  75. package/dist/storage/duckdb-local-writer.js +261 -81
  76. package/dist/storage/duckdb-local-writer.js.map +1 -1
  77. package/dist/storage/duckdb-observability-forwarder.d.ts +16 -0
  78. package/dist/storage/duckdb-observability-forwarder.d.ts.map +1 -0
  79. package/dist/storage/duckdb-observability-forwarder.js +289 -0
  80. package/dist/storage/duckdb-observability-forwarder.js.map +1 -0
  81. package/dist/storage/mysql-writer.d.ts +35 -6
  82. package/dist/storage/mysql-writer.d.ts.map +1 -1
  83. package/dist/storage/mysql-writer.js +251 -32
  84. package/dist/storage/mysql-writer.js.map +1 -1
  85. package/dist/storage/schema.d.ts +2 -2
  86. package/dist/storage/schema.d.ts.map +1 -1
  87. package/dist/storage/schema.js +181 -53
  88. package/dist/storage/schema.js.map +1 -1
  89. package/dist/storage/structured-model.d.ts +11 -2
  90. package/dist/storage/structured-model.d.ts.map +1 -1
  91. package/dist/storage/structured-model.js +183 -5
  92. package/dist/storage/structured-model.js.map +1 -1
  93. package/dist/storage/writer.d.ts +14 -2
  94. package/dist/storage/writer.d.ts.map +1 -1
  95. package/dist/types.d.ts +28 -4
  96. package/dist/types.d.ts.map +1 -1
  97. package/dist/types.js +3 -1
  98. package/dist/types.js.map +1 -1
  99. package/dist/web/api.d.ts +80 -2
  100. package/dist/web/api.d.ts.map +1 -1
  101. package/dist/web/api.js +917 -113
  102. package/dist/web/api.js.map +1 -1
  103. package/dist/web/routes.d.ts +22 -2
  104. package/dist/web/routes.d.ts.map +1 -1
  105. package/dist/web/routes.js +264 -21
  106. package/dist/web/routes.js.map +1 -1
  107. package/dist/web/ui.d.ts +3 -1
  108. package/dist/web/ui.d.ts.map +1 -1
  109. package/dist/web/ui.js +2678 -633
  110. package/dist/web/ui.js.map +1 -1
  111. package/openclaw.plugin.json +145 -4
  112. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * MySQL write layer
4
- * Writes audit records to MySQL-compatible database
4
+ * Writes observation records to MySQL-compatible database
5
5
  */
6
6
  var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -9,6 +9,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.MySQLWriter = void 0;
11
11
  const promise_1 = __importDefault(require("mysql2/promise"));
12
+ const node_crypto_1 = require("node:crypto");
12
13
  const schema_1 = require("./schema");
13
14
  const structured_model_1 = require("./structured-model");
14
15
  /**
@@ -16,13 +17,26 @@ const structured_model_1 = require("./structured-model");
16
17
  * Manages connection pool and data writing
17
18
  */
18
19
  class MySQLWriter {
20
+ static ACTION_JSON_MAX_BYTES = 8 * 1024 * 1024;
21
+ static ACTION_JSON_PREVIEW_BYTES = 128 * 1024;
19
22
  pool = null;
20
23
  config;
21
24
  initialized = false;
22
25
  /** Promise for in-progress initialization so concurrent callers can await the same work */
23
26
  initPromise = null;
24
- constructor(config) {
27
+ scopeId;
28
+ scopeToken;
29
+ dataRetentionDays;
30
+ startupMaintenanceDone = false;
31
+ onTokenIssued;
32
+ constructor(config, options) {
25
33
  this.config = config;
34
+ this.scopeId = String(options?.scopeId || 'local').trim() || 'local';
35
+ this.scopeToken = String(options?.scopeToken || '').trim();
36
+ this.dataRetentionDays = Number.isFinite(Number(options?.dataRetentionDays))
37
+ ? Math.max(0, Math.floor(Number(options?.dataRetentionDays)))
38
+ : 30;
39
+ this.onTokenIssued = options?.onTokenIssued;
26
40
  }
27
41
  /**
28
42
  * Initialize connection pool and schema (with retries)
@@ -103,9 +117,159 @@ class MySQLWriter {
103
117
  conn.release();
104
118
  // Ensure table schema exists
105
119
  await (0, schema_1.ensureSchema)(this.pool);
120
+ await this.ensureScopeRegistration();
121
+ await this.runStartupMaintenance();
106
122
  this.initialized = true;
107
123
  console.log('[openclaw-observability] MySQL writer initialized successfully');
108
124
  }
125
+ async runStartupMaintenance() {
126
+ if (this.startupMaintenanceDone)
127
+ return;
128
+ await this.cleanupExpiredDataOnStartup();
129
+ this.startupMaintenanceDone = true;
130
+ }
131
+ async cleanupExpiredDataOnStartup() {
132
+ if (!this.pool || this.dataRetentionDays <= 0)
133
+ return;
134
+ const cutoffDate = new Date(Date.now() - this.dataRetentionDays * 24 * 60 * 60 * 1000);
135
+ const cutoffMs = cutoffDate.getTime();
136
+ await this.pool.query('DELETE FROM observation_alerts WHERE created_at < ?', [cutoffDate]);
137
+ await this.pool.query('DELETE FROM observation_actions WHERE created_at < ?', [cutoffDate]);
138
+ await this.pool.query('DELETE FROM observation_sessions WHERE COALESCE(end_time, start_time) < ?', [cutoffDate]);
139
+ await this.pool.query('DELETE FROM oc_events_raw WHERE event_time < ?', [cutoffDate]);
140
+ await this.pool.query(`DELETE FROM oc_observations_payload
141
+ WHERE observation_id IN (
142
+ SELECT observation_id
143
+ FROM oc_observations_core
144
+ WHERE COALESCE(end_time, start_time, created_at) < ?
145
+ )`, [cutoffDate]);
146
+ await this.pool.query('DELETE FROM oc_observations_core WHERE COALESCE(end_time, start_time, created_at) < ?', [cutoffDate]);
147
+ await this.pool.query('DELETE FROM oc_traces WHERE COALESCE(end_time, start_time, created_at) < ?', [cutoffDate]);
148
+ await this.pool.query('DELETE FROM observability_metrics_samples WHERE sample_timestamp_ms < ?', [cutoffMs]);
149
+ await this.pool.query('DELETE FROM oc_metric_points_number WHERE ts_ms < ?', [cutoffMs]);
150
+ await this.pool.query('DELETE FROM oc_metric_points_histogram WHERE ts_ms < ?', [cutoffMs]);
151
+ await this.pool.query('DELETE FROM oc_metric_series WHERE last_seen_ms < ?', [cutoffMs]);
152
+ await this.pool.query('DELETE FROM oc_observations_payload WHERE observation_id NOT IN (SELECT observation_id FROM oc_observations_core)');
153
+ console.log(`[openclaw-observability] Startup data retention cleanup completed for MySQL (days=${this.dataRetentionDays}, cutoff=${cutoffDate.toISOString()})`);
154
+ }
155
+ hashScopeToken(token) {
156
+ return (0, node_crypto_1.createHash)('sha256').update(token, 'utf8').digest('hex');
157
+ }
158
+ createScopeToken() {
159
+ return `st_${(0, node_crypto_1.randomBytes)(24).toString('hex')}`;
160
+ }
161
+ async readScopeTokenHash(conn, scopeId) {
162
+ const [rows] = await conn.query('SELECT token_hash FROM scopes WHERE id = ? LIMIT 1', [scopeId]);
163
+ const row = rows[0];
164
+ if (!row)
165
+ return null;
166
+ const hash = String(row.token_hash || '').trim();
167
+ return hash || '';
168
+ }
169
+ async ensureScopeRegistration() {
170
+ if (!this.pool)
171
+ return;
172
+ const scopeId = this.scopeId;
173
+ const configuredToken = this.scopeToken;
174
+ const conn = await this.pool.getConnection();
175
+ try {
176
+ const [rows] = await conn.query('SELECT id, token_hash FROM scopes WHERE id = ? LIMIT 1', [scopeId]);
177
+ const row = rows[0];
178
+ if (configuredToken) {
179
+ const configuredHash = this.hashScopeToken(configuredToken);
180
+ if (!row) {
181
+ await conn.execute('INSERT INTO scopes (id, name, token_hash) VALUES (?, ?, ?)', [scopeId, scopeId, configuredHash]);
182
+ return;
183
+ }
184
+ const storedHash = String(row.token_hash || '');
185
+ if (!storedHash) {
186
+ await conn.execute('UPDATE scopes SET token_hash = ? WHERE id = ?', [configuredHash, scopeId]);
187
+ return;
188
+ }
189
+ if (storedHash !== configuredHash) {
190
+ throw new Error(`Invalid scope token for scope "${scopeId}"`);
191
+ }
192
+ return;
193
+ }
194
+ if (row && row.token_hash) {
195
+ throw new Error(`Scope "${scopeId}" already registered; configure scopeToken in openclaw.json`);
196
+ }
197
+ const issued = this.createScopeToken();
198
+ const issuedHash = this.hashScopeToken(issued);
199
+ if (row) {
200
+ await conn.execute('UPDATE scopes SET token_hash = ? WHERE id = ?', [issuedHash, scopeId]);
201
+ }
202
+ else {
203
+ await conn.execute('INSERT INTO scopes (id, name, token_hash) VALUES (?, ?, ?)', [scopeId, scopeId, issuedHash]);
204
+ }
205
+ this.scopeToken = issued;
206
+ if (this.onTokenIssued) {
207
+ await this.onTokenIssued(issued);
208
+ }
209
+ console.log(`[openclaw-observability] Generated scope token for scope "${scopeId}" and persisted to config`);
210
+ }
211
+ finally {
212
+ conn.release();
213
+ }
214
+ }
215
+ async rotateScopeToken(scopeId, oldToken) {
216
+ if (!this.pool || !this.initialized)
217
+ throw new Error('MySQL writer not initialized');
218
+ const targetScopeId = String(scopeId || this.scopeId || 'local').trim() || 'local';
219
+ const providedOldToken = String(oldToken || '').trim();
220
+ if (!providedOldToken)
221
+ throw new Error('oldToken is required');
222
+ const conn = await this.pool.getConnection();
223
+ try {
224
+ const storedHash = await this.readScopeTokenHash(conn, targetScopeId);
225
+ if (storedHash === null)
226
+ throw new Error(`Scope "${targetScopeId}" not found`);
227
+ if (!storedHash)
228
+ throw new Error(`Scope "${targetScopeId}" has no token configured`);
229
+ const providedHash = this.hashScopeToken(providedOldToken);
230
+ if (providedHash !== storedHash)
231
+ throw new Error(`Invalid scope token for scope "${targetScopeId}"`);
232
+ const nextToken = this.createScopeToken();
233
+ const nextHash = this.hashScopeToken(nextToken);
234
+ await conn.execute('UPDATE scopes SET token_hash = ? WHERE id = ?', [nextHash, targetScopeId]);
235
+ if (targetScopeId === this.scopeId) {
236
+ this.scopeToken = nextToken;
237
+ if (this.onTokenIssued)
238
+ await this.onTokenIssued(nextToken);
239
+ }
240
+ return { scopeId: targetScopeId, scopeToken: nextToken };
241
+ }
242
+ finally {
243
+ conn.release();
244
+ }
245
+ }
246
+ async recoverScopeToken(scopeId) {
247
+ if (!this.pool || !this.initialized)
248
+ throw new Error('MySQL writer not initialized');
249
+ const targetScopeId = String(scopeId || this.scopeId || 'local').trim() || 'local';
250
+ const conn = await this.pool.getConnection();
251
+ try {
252
+ const [rows] = await conn.query('SELECT id FROM scopes WHERE id = ? LIMIT 1', [targetScopeId]);
253
+ const exists = Array.isArray(rows) && rows.length > 0;
254
+ const nextToken = this.createScopeToken();
255
+ const nextHash = this.hashScopeToken(nextToken);
256
+ if (exists) {
257
+ await conn.execute('UPDATE scopes SET token_hash = ? WHERE id = ?', [nextHash, targetScopeId]);
258
+ }
259
+ else {
260
+ await conn.execute('INSERT INTO scopes (id, name, token_hash) VALUES (?, ?, ?)', [targetScopeId, targetScopeId, nextHash]);
261
+ }
262
+ if (targetScopeId === this.scopeId) {
263
+ this.scopeToken = nextToken;
264
+ if (this.onTokenIssued)
265
+ await this.onTokenIssued(nextToken);
266
+ }
267
+ return { scopeId: targetScopeId, scopeToken: nextToken };
268
+ }
269
+ finally {
270
+ conn.release();
271
+ }
272
+ }
109
273
  /**
110
274
  * Batch write buffer entries
111
275
  */
@@ -128,31 +292,39 @@ class MySQLWriter {
128
292
  await this.writeSessions(sessions);
129
293
  }
130
294
  /**
131
- * Batch insert audit action records
295
+ * Batch insert observation action records
132
296
  */
133
297
  async writeActions(actions) {
134
298
  if (!this.pool)
135
299
  return;
136
300
  const sql = `
137
- INSERT INTO audit_actions
138
- (session_id, action_type, action_name, model_name, input_params, output_result,
139
- prompt_tokens, completion_tokens, duration_ms, user_id, channel_id, created_at)
140
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
301
+ INSERT INTO observation_actions
302
+ (organization_id, scope_id, environment, session_id, action_type, action_name, model_name, input_params, output_result,
303
+ prompt_tokens, completion_tokens, duration_ms, user_id, parent_session_id, run_id, parent_run_id, channel_id, created_at)
304
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
141
305
  `;
142
306
  const conn = await this.pool.getConnection();
143
307
  try {
144
308
  for (const action of actions) {
309
+ const inputJson = this.serializeActionJson(action.inputParams, 'input_params', action);
310
+ const outputJson = this.serializeActionJson(action.outputResult, 'output_result', action);
145
311
  await conn.execute(sql, [
312
+ action.organizationId || 'local',
313
+ action.scopeId || 'local',
314
+ action.environment || 'prod',
146
315
  action.sessionId,
147
316
  action.actionType,
148
317
  action.actionName,
149
318
  action.modelName,
150
- action.inputParams ? JSON.stringify(action.inputParams) : null,
151
- action.outputResult ? JSON.stringify(action.outputResult) : null,
319
+ inputJson,
320
+ outputJson,
152
321
  action.promptTokens,
153
322
  action.completionTokens,
154
323
  action.durationMs,
155
324
  action.userId,
325
+ action.parentSessionId || '',
326
+ action.runId || '',
327
+ action.parentRunId || '',
156
328
  action.channelId || '',
157
329
  action.createdAt,
158
330
  ]);
@@ -162,9 +334,34 @@ class MySQLWriter {
162
334
  conn.release();
163
335
  }
164
336
  }
337
+ serializeActionJson(payload, field, action) {
338
+ if (payload == null)
339
+ return null;
340
+ let json = '';
341
+ try {
342
+ json = JSON.stringify(payload);
343
+ }
344
+ catch {
345
+ return JSON.stringify({ error: 'json_serialize_failed' });
346
+ }
347
+ const size = Buffer.byteLength(json, 'utf8');
348
+ if (size <= MySQLWriter.ACTION_JSON_MAX_BYTES)
349
+ return json;
350
+ const preview = Buffer.from(json, 'utf8')
351
+ .subarray(0, MySQLWriter.ACTION_JSON_PREVIEW_BYTES)
352
+ .toString('utf8');
353
+ console.warn(`[openclaw-observability] Truncated oversized ${field}: session=${action.sessionId} action=${action.actionType}:${action.actionName} bytes=${size}`);
354
+ return JSON.stringify({
355
+ truncated: true,
356
+ field,
357
+ originalBytes: size,
358
+ maxBytes: MySQLWriter.ACTION_JSON_MAX_BYTES,
359
+ preview,
360
+ });
361
+ }
165
362
  /**
166
363
  * Write or update session summary records
167
- * Stats are aggregated in real-time from audit_actions, not from memory counters
364
+ * Stats are aggregated in real-time from observation_actions, not from memory counters
168
365
  * This ensures historical data is preserved even after Gateway restarts
169
366
  */
170
367
  async writeSessions(sessions) {
@@ -178,14 +375,17 @@ class MySQLWriter {
178
375
  const conn = await this.pool.getConnection();
179
376
  try {
180
377
  for (const session of deduped.values()) {
181
- // Aggregate stats from audit_actions in real-time
378
+ const scopeId = session.scopeId || 'local';
379
+ const organizationId = session.organizationId || 'local';
380
+ const environment = session.environment || 'prod';
381
+ // Aggregate stats from observation_actions in real-time
182
382
  const [statsRows] = await conn.query(`SELECT
183
383
  MIN(created_at) AS start_time,
184
384
  MAX(created_at) AS end_time,
185
385
  COUNT(*) AS total_actions,
186
386
  COALESCE(SUM(COALESCE(prompt_tokens, 0) + COALESCE(completion_tokens, 0)), 0) AS total_tokens
187
- FROM audit_actions
188
- WHERE session_id = ?`, [session.sessionId]);
387
+ FROM observation_actions
388
+ WHERE scope_id = ? AND session_id = ?`, [scopeId, session.sessionId]);
189
389
  const stats = statsRows[0];
190
390
  // If no action records for this session, use passed-in values
191
391
  const startTime = stats?.start_time || session.startTime;
@@ -193,39 +393,50 @@ class MySQLWriter {
193
393
  const totalActions = Number(stats?.total_actions) || 0;
194
394
  const totalTokens = Number(stats?.total_tokens) || 0;
195
395
  // Check if session already exists
196
- const [existingRows] = await conn.query('SELECT session_id, start_time FROM audit_sessions WHERE session_id = ?', [session.sessionId]);
396
+ const [existingRows] = await conn.query('SELECT session_id, start_time, user_id, parent_session_id FROM observation_sessions WHERE scope_id = ? AND session_id = ?', [scopeId, session.sessionId]);
197
397
  const existing = existingRows[0];
198
398
  if (existing) {
199
399
  // UPDATE — keep the earlier start_time, use latest aggregated values for the rest
200
400
  const earlierStart = existing.start_time && startTime && new Date(existing.start_time) < new Date(startTime)
201
401
  ? existing.start_time
202
402
  : startTime;
203
- await conn.execute(`UPDATE audit_sessions
204
- SET user_id = ?,
403
+ await conn.execute(`UPDATE observation_sessions
404
+ SET organization_id = ?,
405
+ environment = ?,
406
+ user_id = ?,
407
+ parent_session_id = CASE WHEN ? != '' THEN ? ELSE parent_session_id END,
205
408
  model_name = CASE WHEN ? != '' THEN ? ELSE model_name END,
206
409
  channel_id = CASE WHEN ? != '' THEN ? ELSE channel_id END,
207
410
  start_time = ?,
208
411
  end_time = ?,
209
412
  total_actions = ?,
210
413
  total_tokens = ?
211
- WHERE session_id = ?`, [
414
+ WHERE scope_id = ? AND session_id = ?`, [
415
+ organizationId,
416
+ environment,
212
417
  session.userId || existing.user_id || '',
418
+ session.parentSessionId || '', session.parentSessionId || '',
213
419
  session.modelName, session.modelName,
214
420
  session.channelId || '', session.channelId || '',
215
421
  earlierStart,
216
422
  endTime,
217
423
  totalActions,
218
424
  totalTokens,
425
+ scopeId,
219
426
  session.sessionId,
220
427
  ]);
221
428
  }
222
429
  else {
223
430
  // INSERT — new session
224
- await conn.execute(`INSERT INTO audit_sessions
225
- (session_id, user_id, model_name, channel_id, start_time, end_time, total_actions, total_tokens)
226
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, [
431
+ await conn.execute(`INSERT INTO observation_sessions
432
+ (organization_id, scope_id, environment, session_id, user_id, parent_session_id, model_name, channel_id, start_time, end_time, total_actions, total_tokens)
433
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
434
+ organizationId,
435
+ scopeId,
436
+ environment,
227
437
  session.sessionId,
228
438
  session.userId,
439
+ session.parentSessionId || '',
229
440
  session.modelName,
230
441
  session.channelId || '',
231
442
  startTime,
@@ -248,9 +459,11 @@ class MySQLWriter {
248
459
  try {
249
460
  const traceSql = `
250
461
  INSERT INTO oc_traces
251
- (trace_id, session_id, user_id, channel_id, trace_name, status, tags_json, metadata_json, start_time, end_time, created_at, updated_at)
252
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
462
+ (trace_id, organization_id, scope_id, environment, session_id, user_id, channel_id, trace_name, status, tags_json, metadata_json, start_time, end_time, created_at, updated_at)
463
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
253
464
  ON DUPLICATE KEY UPDATE
465
+ organization_id = VALUES(organization_id),
466
+ environment = VALUES(environment),
254
467
  user_id = IF(VALUES(user_id) != '', VALUES(user_id), user_id),
255
468
  channel_id = IF(VALUES(channel_id) != '', VALUES(channel_id), channel_id),
256
469
  trace_name = IF(VALUES(trace_name) != '', VALUES(trace_name), trace_name),
@@ -263,9 +476,11 @@ class MySQLWriter {
263
476
  `;
264
477
  const obsSql = `
265
478
  INSERT INTO oc_observations_core
266
- (observation_id, trace_id, parent_observation_id, root_observation_id, observation_type, observation_name, level, status, start_time, end_time, duration_ms, run_id, tool_call_id, model_name, provider, prompt_tokens, completion_tokens, total_tokens, cost_usd, user_id, session_id, channel_id, created_at, updated_at)
267
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
479
+ (observation_id, organization_id, scope_id, environment, trace_id, parent_observation_id, root_observation_id, observation_type, observation_name, level, status, start_time, end_time, duration_ms, run_id, tool_call_id, model_name, provider, prompt_tokens, completion_tokens, total_tokens, cost_usd, user_id, session_id, channel_id, created_at, updated_at)
480
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
268
481
  ON DUPLICATE KEY UPDATE
482
+ organization_id = VALUES(organization_id),
483
+ environment = VALUES(environment),
269
484
  parent_observation_id = COALESCE(parent_observation_id, VALUES(parent_observation_id)),
270
485
  root_observation_id = VALUES(root_observation_id),
271
486
  level = VALUES(level),
@@ -296,20 +511,20 @@ class MySQLWriter {
296
511
  `;
297
512
  const eventSql = `
298
513
  INSERT INTO oc_events_raw
299
- (event_id, trace_id, observation_id, event_type, event_name, event_time, run_id, payload_json, created_at)
300
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
514
+ (event_id, organization_id, scope_id, environment, trace_id, observation_id, event_type, event_name, event_time, run_id, payload_json, created_at)
515
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
301
516
  ON DUPLICATE KEY UPDATE
302
517
  created_at = created_at
303
518
  `;
304
519
  for (const t of batch.traces) {
305
520
  await conn.execute(traceSql, [
306
- t.traceId, t.sessionId, t.userId, t.channelId, t.name, t.status, t.tagsJson, t.metadataJson,
521
+ t.traceId, t.organizationId, t.scopeId, t.environment, t.sessionId, t.userId, t.channelId, t.name, t.status, t.tagsJson, t.metadataJson,
307
522
  t.startTime, t.endTime, t.startTime, t.endTime || t.startTime,
308
523
  ]);
309
524
  }
310
525
  for (const o of batch.observations) {
311
526
  await conn.execute(obsSql, [
312
- o.observationId, o.traceId, o.parentObservationId, o.rootObservationId, o.type, o.name,
527
+ o.observationId, o.organizationId, o.scopeId, o.environment, o.traceId, o.parentObservationId, o.rootObservationId, o.type, o.name,
313
528
  o.level, o.status, o.startTime, o.endTime, o.durationMs, o.runId, o.toolCallId,
314
529
  o.modelName, o.provider, o.promptTokens, o.completionTokens, o.totalTokens, o.costUsd,
315
530
  o.userId, o.sessionId, o.channelId, o.createdAt, o.updatedAt,
@@ -323,7 +538,7 @@ class MySQLWriter {
323
538
  }
324
539
  for (const e of batch.events) {
325
540
  await conn.execute(eventSql, [
326
- e.eventId, e.traceId, e.observationId, e.eventType, e.eventName, e.eventTime, e.runId, e.payloadJson, e.createdAt,
541
+ e.eventId, e.organizationId, e.scopeId, e.environment, e.traceId, e.observationId, e.eventType, e.eventName, e.eventTime, e.runId, e.payloadJson, e.createdAt,
327
542
  ]);
328
543
  }
329
544
  }
@@ -338,15 +553,18 @@ class MySQLWriter {
338
553
  if (!this.pool || alerts.length === 0)
339
554
  return;
340
555
  const sql = `
341
- INSERT INTO audit_alerts
342
- (alert_id, session_id, action_type, action_name, rule_id, rule_name,
556
+ INSERT INTO observation_alerts
557
+ (organization_id, scope_id, environment, alert_id, session_id, action_type, action_name, rule_id, rule_name,
343
558
  category, severity, finding, context, status, user_id, model_name, created_at)
344
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
559
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
345
560
  `;
346
561
  const conn = await this.pool.getConnection();
347
562
  try {
348
563
  for (const alert of alerts) {
349
564
  await conn.execute(sql, [
565
+ alert.organizationId || 'local',
566
+ alert.scopeId || 'local',
567
+ alert.environment || 'prod',
350
568
  alert.alertId,
351
569
  alert.sessionId,
352
570
  alert.actionType,
@@ -465,6 +683,7 @@ class MySQLWriter {
465
683
  await this.pool.end();
466
684
  this.pool = null;
467
685
  this.initialized = false;
686
+ this.startupMaintenanceDone = false;
468
687
  console.log('[openclaw-observability] MySQL writer closed');
469
688
  }
470
689
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mysql-writer.js","sourceRoot":"","sources":["../../src/storage/mysql-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mysql-writer.js","sourceRoot":"","sources":["../../src/storage/mysql-writer.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * MySQL database schema definition and migrations
3
- * Creates audit tables in MySQL-compatible databases
3
+ * Creates observation tables in MySQL-compatible databases
4
4
  *
5
5
  * WARNING: DuckDB schema is defined in duckdb-local-writer.ts (DUCKDB_SCHEMA_STATEMENTS).
6
6
  * When modifying table structure, update both places.
7
7
  */
8
8
  import { Pool } from 'mysql2/promise';
9
9
  /**
10
- * Create audit tables in MySQL (if not exists)
10
+ * Create observation tables in MySQL (if not exists)
11
11
  */
12
12
  export declare function ensureSchema(pool: Pool): Promise<void>;
13
13
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/storage/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA6P5D"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/storage/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA2U5D"}