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.
- package/README.md +4 -4
- package/dist/cloud/api-key-auth.d.ts.map +1 -1
- package/dist/cloud/api-key-auth.js +4 -9
- package/dist/cloud/api-key-auth.js.map +1 -1
- package/dist/cloud/types.d.ts +2 -3
- package/dist/cloud/types.d.ts.map +1 -1
- package/dist/config.d.ts +34 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +35 -2
- package/dist/config.js.map +1 -1
- package/dist/gateway/register-observability-gateway.d.ts +6 -4
- package/dist/gateway/register-observability-gateway.d.ts.map +1 -1
- package/dist/gateway/register-observability-gateway.js +105 -2
- package/dist/gateway/register-observability-gateway.js.map +1 -1
- package/dist/hooks/messages.d.ts +4 -3
- package/dist/hooks/messages.d.ts.map +1 -1
- package/dist/hooks/messages.js +23 -1
- package/dist/hooks/messages.js.map +1 -1
- package/dist/hooks/session.d.ts +4 -3
- package/dist/hooks/session.d.ts.map +1 -1
- package/dist/hooks/session.js +9 -4
- package/dist/hooks/session.js.map +1 -1
- package/dist/hooks/subagent.d.ts +4 -3
- package/dist/hooks/subagent.d.ts.map +1 -1
- package/dist/hooks/subagent.js +4 -1
- package/dist/hooks/subagent.js.map +1 -1
- package/dist/hooks/tools.d.ts +3 -3
- package/dist/hooks/tools.d.ts.map +1 -1
- package/dist/hooks/tools.js +122 -4
- package/dist/hooks/tools.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +472 -118
- package/dist/index.js.map +1 -1
- package/dist/llm/replay-runtime.d.ts +16 -0
- package/dist/llm/replay-runtime.d.ts.map +1 -0
- package/dist/llm/replay-runtime.js +596 -0
- package/dist/llm/replay-runtime.js.map +1 -0
- package/dist/llm/replay.d.ts +3 -0
- package/dist/llm/replay.d.ts.map +1 -1
- package/dist/llm/replay.js.map +1 -1
- package/dist/redaction.d.ts +1 -1
- package/dist/redaction.js +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +3 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/session-context.d.ts +4 -3
- package/dist/runtime/session-context.d.ts.map +1 -1
- package/dist/runtime/session-context.js +37 -17
- package/dist/runtime/session-context.js.map +1 -1
- package/dist/security/chain-detector.d.ts +4 -4
- package/dist/security/chain-detector.d.ts.map +1 -1
- package/dist/security/chain-detector.js.map +1 -1
- package/dist/security/rules.d.ts +2 -2
- package/dist/security/rules.d.ts.map +1 -1
- package/dist/security/rules.js +9 -2
- package/dist/security/rules.js.map +1 -1
- package/dist/security/scanner.d.ts +8 -3
- package/dist/security/scanner.d.ts.map +1 -1
- package/dist/security/scanner.js +85 -7
- package/dist/security/scanner.js.map +1 -1
- package/dist/security/types.d.ts +3 -0
- package/dist/security/types.d.ts.map +1 -1
- package/dist/storage/buffer.d.ts +7 -7
- package/dist/storage/buffer.d.ts.map +1 -1
- package/dist/storage/buffer.js +2 -2
- package/dist/storage/buffer.js.map +1 -1
- package/dist/storage/cloud-export-writer.d.ts +23 -0
- package/dist/storage/cloud-export-writer.d.ts.map +1 -0
- package/dist/storage/cloud-export-writer.js +202 -0
- package/dist/storage/cloud-export-writer.js.map +1 -0
- package/dist/storage/duckdb-local-writer.d.ts +19 -3
- package/dist/storage/duckdb-local-writer.d.ts.map +1 -1
- package/dist/storage/duckdb-local-writer.js +261 -81
- package/dist/storage/duckdb-local-writer.js.map +1 -1
- package/dist/storage/duckdb-observability-forwarder.d.ts +16 -0
- package/dist/storage/duckdb-observability-forwarder.d.ts.map +1 -0
- package/dist/storage/duckdb-observability-forwarder.js +289 -0
- package/dist/storage/duckdb-observability-forwarder.js.map +1 -0
- package/dist/storage/mysql-writer.d.ts +35 -6
- package/dist/storage/mysql-writer.d.ts.map +1 -1
- package/dist/storage/mysql-writer.js +251 -32
- package/dist/storage/mysql-writer.js.map +1 -1
- package/dist/storage/schema.d.ts +2 -2
- package/dist/storage/schema.d.ts.map +1 -1
- package/dist/storage/schema.js +181 -53
- package/dist/storage/schema.js.map +1 -1
- package/dist/storage/structured-model.d.ts +11 -2
- package/dist/storage/structured-model.d.ts.map +1 -1
- package/dist/storage/structured-model.js +183 -5
- package/dist/storage/structured-model.js.map +1 -1
- package/dist/storage/writer.d.ts +14 -2
- package/dist/storage/writer.d.ts.map +1 -1
- package/dist/types.d.ts +28 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -1
- package/dist/types.js.map +1 -1
- package/dist/web/api.d.ts +80 -2
- package/dist/web/api.d.ts.map +1 -1
- package/dist/web/api.js +917 -113
- package/dist/web/api.js.map +1 -1
- package/dist/web/routes.d.ts +22 -2
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +264 -21
- package/dist/web/routes.js.map +1 -1
- package/dist/web/ui.d.ts +3 -1
- package/dist/web/ui.d.ts.map +1 -1
- package/dist/web/ui.js +2678 -633
- package/dist/web/ui.js.map +1 -1
- package/openclaw.plugin.json +145 -4
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* MySQL write layer
|
|
4
|
-
* Writes
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
151
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
204
|
-
SET
|
|
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
|
|
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
|
|
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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"}
|
package/dist/storage/schema.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MySQL database schema definition and migrations
|
|
3
|
-
* Creates
|
|
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
|
|
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,
|
|
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"}
|