agentic-qe 1.8.3 → 1.8.4
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/.claude/skills/cicd-pipeline-qe-orchestrator/README.md +2 -2
- package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +6 -6
- package/CHANGELOG.md +220 -0
- package/README.md +36 -3
- package/config/constitution.schema.json +423 -0
- package/config/otel-collector.yaml +234 -0
- package/dist/cli/commands/init-claude-md-template.js +3 -3
- package/dist/constitution/index.d.ts +105 -0
- package/dist/constitution/index.d.ts.map +1 -0
- package/dist/constitution/index.js +207 -0
- package/dist/constitution/index.js.map +1 -0
- package/dist/constitution/loader.d.ts +141 -0
- package/dist/constitution/loader.d.ts.map +1 -0
- package/dist/constitution/loader.js +515 -0
- package/dist/constitution/loader.js.map +1 -0
- package/dist/constitution/schema.d.ts +409 -0
- package/dist/constitution/schema.d.ts.map +1 -0
- package/dist/constitution/schema.js +71 -0
- package/dist/constitution/schema.js.map +1 -0
- package/dist/core/memory/MemoryManagerFactory.d.ts +77 -0
- package/dist/core/memory/MemoryManagerFactory.d.ts.map +1 -0
- package/dist/core/memory/MemoryManagerFactory.js +270 -0
- package/dist/core/memory/MemoryManagerFactory.js.map +1 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts +18 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +96 -11
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/core/memory/index.d.ts +1 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +12 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/mcp/handlers/memory/memory-backup.js +6 -6
- package/dist/mcp/handlers/memory/memory-backup.js.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.js +4 -2
- package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +4 -38
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +4 -4
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/persistence/event-store.d.ts +162 -0
- package/dist/persistence/event-store.d.ts.map +1 -0
- package/dist/persistence/event-store.js +315 -0
- package/dist/persistence/event-store.js.map +1 -0
- package/dist/persistence/index.d.ts +145 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +227 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/metrics-aggregator.d.ts +187 -0
- package/dist/persistence/metrics-aggregator.d.ts.map +1 -0
- package/dist/persistence/metrics-aggregator.js +495 -0
- package/dist/persistence/metrics-aggregator.js.map +1 -0
- package/dist/persistence/reasoning-store.d.ts +178 -0
- package/dist/persistence/reasoning-store.d.ts.map +1 -0
- package/dist/persistence/reasoning-store.js +440 -0
- package/dist/persistence/reasoning-store.js.map +1 -0
- package/dist/persistence/schema.d.ts +181 -0
- package/dist/persistence/schema.d.ts.map +1 -0
- package/dist/persistence/schema.js +186 -0
- package/dist/persistence/schema.js.map +1 -0
- package/dist/telemetry/bootstrap.d.ts +67 -0
- package/dist/telemetry/bootstrap.d.ts.map +1 -0
- package/dist/telemetry/bootstrap.js +320 -0
- package/dist/telemetry/bootstrap.js.map +1 -0
- package/dist/telemetry/index.d.ts +16 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +84 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/metrics/agent-metrics.d.ts +109 -0
- package/dist/telemetry/metrics/agent-metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics/agent-metrics.js +213 -0
- package/dist/telemetry/metrics/agent-metrics.js.map +1 -0
- package/dist/telemetry/metrics/index.d.ts +51 -0
- package/dist/telemetry/metrics/index.d.ts.map +1 -0
- package/dist/telemetry/metrics/index.js +100 -0
- package/dist/telemetry/metrics/index.js.map +1 -0
- package/dist/telemetry/metrics/quality-metrics.d.ts +171 -0
- package/dist/telemetry/metrics/quality-metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics/quality-metrics.js +259 -0
- package/dist/telemetry/metrics/quality-metrics.js.map +1 -0
- package/dist/telemetry/metrics/system-metrics.d.ts +129 -0
- package/dist/telemetry/metrics/system-metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics/system-metrics.js +380 -0
- package/dist/telemetry/metrics/system-metrics.js.map +1 -0
- package/dist/telemetry/types.d.ts +195 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +90 -0
- package/dist/telemetry/types.js.map +1 -0
- package/package.json +18 -2
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenTelemetry Module for Agentic QE Fleet
|
|
4
|
+
*
|
|
5
|
+
* Main entry point for telemetry functionality.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
24
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
25
|
+
};
|
|
26
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
27
|
+
var ownKeys = function(o) {
|
|
28
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
29
|
+
var ar = [];
|
|
30
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
31
|
+
return ar;
|
|
32
|
+
};
|
|
33
|
+
return ownKeys(o);
|
|
34
|
+
};
|
|
35
|
+
return function (mod) {
|
|
36
|
+
if (mod && mod.__esModule) return mod;
|
|
37
|
+
var result = {};
|
|
38
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
39
|
+
__setModuleDefault(result, mod);
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
42
|
+
})();
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.SPAN_NAMES = exports.HISTOGRAM_BOUNDARIES = exports.METRIC_NAMES = exports.defaultTelemetryConfig = exports.setSpanAttributes = exports.recordSpanEvent = exports.withSpan = exports.isTelemetryInitialized = exports.getMeter = exports.getTracer = exports.shutdownTelemetry = exports.initTelemetry = void 0;
|
|
45
|
+
exports.quickStartTelemetry = quickStartTelemetry;
|
|
46
|
+
// Bootstrap exports
|
|
47
|
+
var bootstrap_1 = require("./bootstrap");
|
|
48
|
+
Object.defineProperty(exports, "initTelemetry", { enumerable: true, get: function () { return bootstrap_1.initTelemetry; } });
|
|
49
|
+
Object.defineProperty(exports, "shutdownTelemetry", { enumerable: true, get: function () { return bootstrap_1.shutdownTelemetry; } });
|
|
50
|
+
Object.defineProperty(exports, "getTracer", { enumerable: true, get: function () { return bootstrap_1.getTracer; } });
|
|
51
|
+
Object.defineProperty(exports, "getMeter", { enumerable: true, get: function () { return bootstrap_1.getMeter; } });
|
|
52
|
+
Object.defineProperty(exports, "isTelemetryInitialized", { enumerable: true, get: function () { return bootstrap_1.isTelemetryInitialized; } });
|
|
53
|
+
Object.defineProperty(exports, "withSpan", { enumerable: true, get: function () { return bootstrap_1.withSpan; } });
|
|
54
|
+
Object.defineProperty(exports, "recordSpanEvent", { enumerable: true, get: function () { return bootstrap_1.recordSpanEvent; } });
|
|
55
|
+
Object.defineProperty(exports, "setSpanAttributes", { enumerable: true, get: function () { return bootstrap_1.setSpanAttributes; } });
|
|
56
|
+
Object.defineProperty(exports, "defaultTelemetryConfig", { enumerable: true, get: function () { return bootstrap_1.defaultTelemetryConfig; } });
|
|
57
|
+
// Type exports
|
|
58
|
+
var types_1 = require("./types");
|
|
59
|
+
Object.defineProperty(exports, "METRIC_NAMES", { enumerable: true, get: function () { return types_1.METRIC_NAMES; } });
|
|
60
|
+
Object.defineProperty(exports, "HISTOGRAM_BOUNDARIES", { enumerable: true, get: function () { return types_1.HISTOGRAM_BOUNDARIES; } });
|
|
61
|
+
Object.defineProperty(exports, "SPAN_NAMES", { enumerable: true, get: function () { return types_1.SPAN_NAMES; } });
|
|
62
|
+
// Metrics exports
|
|
63
|
+
__exportStar(require("./metrics"), exports);
|
|
64
|
+
/**
|
|
65
|
+
* Quick start function for initializing telemetry with defaults
|
|
66
|
+
*
|
|
67
|
+
* @param serviceName - Optional service name override
|
|
68
|
+
* @returns Initialization result
|
|
69
|
+
*/
|
|
70
|
+
async function quickStartTelemetry(serviceName) {
|
|
71
|
+
const { initTelemetry } = await Promise.resolve().then(() => __importStar(require('./bootstrap')));
|
|
72
|
+
const { initializeAllMetrics } = await Promise.resolve().then(() => __importStar(require('./metrics')));
|
|
73
|
+
const result = await initTelemetry({
|
|
74
|
+
serviceName: serviceName || 'agentic-qe-fleet',
|
|
75
|
+
enableConsoleExport: process.env.NODE_ENV === 'development',
|
|
76
|
+
enableAutoInstrumentation: true,
|
|
77
|
+
});
|
|
78
|
+
if (result.success) {
|
|
79
|
+
// Initialize all metrics
|
|
80
|
+
initializeAllMetrics();
|
|
81
|
+
}
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCH,kDAgBC;AArDD,oBAAoB;AACpB,yCAUqB;AATnB,0GAAA,aAAa,OAAA;AACb,8GAAA,iBAAiB,OAAA;AACjB,sGAAA,SAAS,OAAA;AACT,qGAAA,QAAQ,OAAA;AACR,mHAAA,sBAAsB,OAAA;AACtB,qGAAA,QAAQ,OAAA;AACR,4GAAA,eAAe,OAAA;AACf,8GAAA,iBAAiB,OAAA;AACjB,mHAAA,sBAAsB,OAAA;AAGxB,eAAe;AACf,iCAYiB;AAHf,qGAAA,YAAY,OAAA;AACZ,6GAAA,oBAAoB,OAAA;AACpB,mGAAA,UAAU,OAAA;AAGZ,kBAAkB;AAClB,4CAA0B;AAE1B;;;;;GAKG;AACI,KAAK,UAAU,mBAAmB,CAAC,WAAoB;IAC5D,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;IACtD,MAAM,EAAE,oBAAoB,EAAE,GAAG,wDAAa,WAAW,GAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACjC,WAAW,EAAE,WAAW,IAAI,kBAAkB;QAC9C,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;QAC3D,yBAAyB,EAAE,IAAI;KAChC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,yBAAyB;QACzB,oBAAoB,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Performance Metrics for Agentic QE Fleet
|
|
3
|
+
*
|
|
4
|
+
* Metrics for tracking agent task execution, performance, and resource usage.
|
|
5
|
+
*/
|
|
6
|
+
import { Meter, Counter, Histogram, UpDownCounter, Attributes } from '@opentelemetry/api';
|
|
7
|
+
import { MetricRecordOptions } from '../types';
|
|
8
|
+
/**
|
|
9
|
+
* Agent metrics registry
|
|
10
|
+
*/
|
|
11
|
+
export interface AgentMetrics {
|
|
12
|
+
/** Total number of tasks executed by agents */
|
|
13
|
+
taskCount: Counter;
|
|
14
|
+
/** Distribution of task durations in milliseconds */
|
|
15
|
+
taskDuration: Histogram;
|
|
16
|
+
/** Number of successful tasks */
|
|
17
|
+
successCount: Counter;
|
|
18
|
+
/** Number of failed tasks */
|
|
19
|
+
errorCount: Counter;
|
|
20
|
+
/** Total tokens consumed by agents */
|
|
21
|
+
tokenUsage: Counter;
|
|
22
|
+
/** Total cost incurred by agents */
|
|
23
|
+
costTotal: Counter;
|
|
24
|
+
/** Number of currently active agents */
|
|
25
|
+
activeAgents: UpDownCounter;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Initialize agent metrics
|
|
29
|
+
*
|
|
30
|
+
* @param meter - OpenTelemetry Meter instance
|
|
31
|
+
* @returns Agent metrics registry
|
|
32
|
+
*/
|
|
33
|
+
export declare function createAgentMetrics(meter?: Meter): AgentMetrics;
|
|
34
|
+
/**
|
|
35
|
+
* Get initialized agent metrics
|
|
36
|
+
*
|
|
37
|
+
* @returns Agent metrics registry
|
|
38
|
+
*/
|
|
39
|
+
export declare function getAgentMetrics(): AgentMetrics;
|
|
40
|
+
/**
|
|
41
|
+
* Record a completed agent task
|
|
42
|
+
*
|
|
43
|
+
* @param agentType - Type of agent (e.g., test-generator, coverage-analyzer)
|
|
44
|
+
* @param taskType - Type of task executed
|
|
45
|
+
* @param durationMs - Task duration in milliseconds
|
|
46
|
+
* @param success - Whether the task succeeded
|
|
47
|
+
* @param options - Additional recording options
|
|
48
|
+
*/
|
|
49
|
+
export declare function recordAgentTask(agentType: string, taskType: string, durationMs: number, success: boolean, options?: {
|
|
50
|
+
agentId?: string;
|
|
51
|
+
taskId?: string;
|
|
52
|
+
priority?: string;
|
|
53
|
+
tokensUsed?: number;
|
|
54
|
+
cost?: number;
|
|
55
|
+
}): void;
|
|
56
|
+
/**
|
|
57
|
+
* Record agent spawn/despawn
|
|
58
|
+
*
|
|
59
|
+
* @param agentType - Type of agent
|
|
60
|
+
* @param delta - Change in agent count (+1 for spawn, -1 for despawn)
|
|
61
|
+
* @param attributes - Additional attributes
|
|
62
|
+
*/
|
|
63
|
+
export declare function recordAgentCount(agentType: string, delta: number, attributes?: Attributes): void;
|
|
64
|
+
/**
|
|
65
|
+
* Record model routing decision
|
|
66
|
+
*/
|
|
67
|
+
export interface ModelRoutingRecord {
|
|
68
|
+
/** Model provider (anthropic, openai, etc.) */
|
|
69
|
+
provider: string;
|
|
70
|
+
/** Model name/ID */
|
|
71
|
+
model: string;
|
|
72
|
+
/** Model tier (fast, balanced, quality) */
|
|
73
|
+
tier: string;
|
|
74
|
+
/** Task complexity score */
|
|
75
|
+
complexity: number;
|
|
76
|
+
/** Routing latency in ms */
|
|
77
|
+
routingLatencyMs: number;
|
|
78
|
+
/** Tokens used for routing */
|
|
79
|
+
tokensUsed?: number;
|
|
80
|
+
/** Cost of the routed call */
|
|
81
|
+
cost?: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Create model routing metrics
|
|
85
|
+
*
|
|
86
|
+
* @param meter - OpenTelemetry Meter instance
|
|
87
|
+
* @returns Model routing metrics
|
|
88
|
+
*/
|
|
89
|
+
export declare function createModelRoutingMetrics(meter?: Meter): {
|
|
90
|
+
routingCount: Counter<Attributes>;
|
|
91
|
+
routingLatency: Histogram<Attributes>;
|
|
92
|
+
modelInvocationCount: Counter<Attributes>;
|
|
93
|
+
modelTokensInput: Counter<Attributes>;
|
|
94
|
+
modelTokensOutput: Counter<Attributes>;
|
|
95
|
+
modelCost: Counter<Attributes>;
|
|
96
|
+
modelLatency: Histogram<Attributes>;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Learning and pattern metrics for agents
|
|
100
|
+
*/
|
|
101
|
+
export declare function createLearningMetrics(meter?: Meter): {
|
|
102
|
+
patternMatchCount: Counter<Attributes>;
|
|
103
|
+
patternMatchScore: Histogram<Attributes>;
|
|
104
|
+
learningEpisodeCount: Counter<Attributes>;
|
|
105
|
+
rewardScore: Histogram<Attributes>;
|
|
106
|
+
experienceBufferSize: UpDownCounter<Attributes>;
|
|
107
|
+
};
|
|
108
|
+
export type { MetricRecordOptions };
|
|
109
|
+
//# sourceMappingURL=agent-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-metrics.d.ts","sourceRoot":"","sources":["../../../src/telemetry/metrics/agent-metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE1F,OAAO,EAAsC,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,YAAY,EAAE,SAAS,CAAC;IACxB,iCAAiC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,sCAAsC;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,YAAY,EAAE,aAAa,CAAC;CAC7B;AAKD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,YAAY,CAgD9D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAK9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACA,IAAI,CAyCN;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,UAAU,GACtB,IAAI,CAON;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,KAAK;;;;;;;;EA6CtD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,KAAK;;;;;;EAmClD;AAGD,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Agent Performance Metrics for Agentic QE Fleet
|
|
4
|
+
*
|
|
5
|
+
* Metrics for tracking agent task execution, performance, and resource usage.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.createAgentMetrics = createAgentMetrics;
|
|
9
|
+
exports.getAgentMetrics = getAgentMetrics;
|
|
10
|
+
exports.recordAgentTask = recordAgentTask;
|
|
11
|
+
exports.recordAgentCount = recordAgentCount;
|
|
12
|
+
exports.createModelRoutingMetrics = createModelRoutingMetrics;
|
|
13
|
+
exports.createLearningMetrics = createLearningMetrics;
|
|
14
|
+
const bootstrap_1 = require("../bootstrap");
|
|
15
|
+
const types_1 = require("../types");
|
|
16
|
+
// Singleton metrics instance
|
|
17
|
+
let agentMetrics = null;
|
|
18
|
+
/**
|
|
19
|
+
* Initialize agent metrics
|
|
20
|
+
*
|
|
21
|
+
* @param meter - OpenTelemetry Meter instance
|
|
22
|
+
* @returns Agent metrics registry
|
|
23
|
+
*/
|
|
24
|
+
function createAgentMetrics(meter) {
|
|
25
|
+
if (agentMetrics) {
|
|
26
|
+
return agentMetrics;
|
|
27
|
+
}
|
|
28
|
+
const m = meter || (0, bootstrap_1.getMeter)();
|
|
29
|
+
agentMetrics = {
|
|
30
|
+
taskCount: m.createCounter(types_1.METRIC_NAMES.AGENT_TASK_COUNT, {
|
|
31
|
+
description: 'Total number of tasks executed by agents',
|
|
32
|
+
unit: 'tasks',
|
|
33
|
+
}),
|
|
34
|
+
taskDuration: m.createHistogram(types_1.METRIC_NAMES.AGENT_TASK_DURATION, {
|
|
35
|
+
description: 'Distribution of agent task execution durations',
|
|
36
|
+
unit: 'ms',
|
|
37
|
+
advice: {
|
|
38
|
+
explicitBucketBoundaries: types_1.HISTOGRAM_BOUNDARIES.taskDuration,
|
|
39
|
+
},
|
|
40
|
+
}),
|
|
41
|
+
successCount: m.createCounter(`${types_1.METRIC_NAMES.AGENT_TASK_COUNT}.success`, {
|
|
42
|
+
description: 'Total number of successful agent tasks',
|
|
43
|
+
unit: 'tasks',
|
|
44
|
+
}),
|
|
45
|
+
errorCount: m.createCounter(types_1.METRIC_NAMES.AGENT_ERROR_COUNT, {
|
|
46
|
+
description: 'Total number of failed agent tasks',
|
|
47
|
+
unit: 'errors',
|
|
48
|
+
}),
|
|
49
|
+
tokenUsage: m.createCounter(types_1.METRIC_NAMES.AGENT_TOKEN_USAGE, {
|
|
50
|
+
description: 'Total tokens consumed by agents',
|
|
51
|
+
unit: 'tokens',
|
|
52
|
+
}),
|
|
53
|
+
costTotal: m.createCounter(types_1.METRIC_NAMES.AGENT_COST, {
|
|
54
|
+
description: 'Total cost incurred by agent operations',
|
|
55
|
+
unit: 'USD',
|
|
56
|
+
}),
|
|
57
|
+
activeAgents: m.createUpDownCounter(types_1.METRIC_NAMES.AGENT_ACTIVE_COUNT, {
|
|
58
|
+
description: 'Number of currently active agents in the fleet',
|
|
59
|
+
unit: 'agents',
|
|
60
|
+
}),
|
|
61
|
+
};
|
|
62
|
+
return agentMetrics;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get initialized agent metrics
|
|
66
|
+
*
|
|
67
|
+
* @returns Agent metrics registry
|
|
68
|
+
*/
|
|
69
|
+
function getAgentMetrics() {
|
|
70
|
+
if (!agentMetrics) {
|
|
71
|
+
return createAgentMetrics();
|
|
72
|
+
}
|
|
73
|
+
return agentMetrics;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Record a completed agent task
|
|
77
|
+
*
|
|
78
|
+
* @param agentType - Type of agent (e.g., test-generator, coverage-analyzer)
|
|
79
|
+
* @param taskType - Type of task executed
|
|
80
|
+
* @param durationMs - Task duration in milliseconds
|
|
81
|
+
* @param success - Whether the task succeeded
|
|
82
|
+
* @param options - Additional recording options
|
|
83
|
+
*/
|
|
84
|
+
function recordAgentTask(agentType, taskType, durationMs, success, options) {
|
|
85
|
+
const metrics = getAgentMetrics();
|
|
86
|
+
const attributes = {
|
|
87
|
+
'agent.type': agentType,
|
|
88
|
+
'task.type': taskType,
|
|
89
|
+
'task.status': success ? 'success' : 'failed',
|
|
90
|
+
};
|
|
91
|
+
if (options?.agentId) {
|
|
92
|
+
attributes['agent.id'] = options.agentId;
|
|
93
|
+
}
|
|
94
|
+
if (options?.taskId) {
|
|
95
|
+
attributes['task.id'] = options.taskId;
|
|
96
|
+
}
|
|
97
|
+
if (options?.priority) {
|
|
98
|
+
attributes['task.priority'] = options.priority;
|
|
99
|
+
}
|
|
100
|
+
// Record task count
|
|
101
|
+
metrics.taskCount.add(1, attributes);
|
|
102
|
+
// Record duration
|
|
103
|
+
metrics.taskDuration.record(durationMs, attributes);
|
|
104
|
+
// Record success/failure
|
|
105
|
+
if (success) {
|
|
106
|
+
metrics.successCount.add(1, attributes);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
metrics.errorCount.add(1, attributes);
|
|
110
|
+
}
|
|
111
|
+
// Record token usage if provided
|
|
112
|
+
if (options?.tokensUsed && options.tokensUsed > 0) {
|
|
113
|
+
metrics.tokenUsage.add(options.tokensUsed, attributes);
|
|
114
|
+
}
|
|
115
|
+
// Record cost if provided
|
|
116
|
+
if (options?.cost && options.cost > 0) {
|
|
117
|
+
metrics.costTotal.add(options.cost, attributes);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Record agent spawn/despawn
|
|
122
|
+
*
|
|
123
|
+
* @param agentType - Type of agent
|
|
124
|
+
* @param delta - Change in agent count (+1 for spawn, -1 for despawn)
|
|
125
|
+
* @param attributes - Additional attributes
|
|
126
|
+
*/
|
|
127
|
+
function recordAgentCount(agentType, delta, attributes) {
|
|
128
|
+
const metrics = getAgentMetrics();
|
|
129
|
+
metrics.activeAgents.add(delta, {
|
|
130
|
+
'agent.type': agentType,
|
|
131
|
+
...attributes,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Create model routing metrics
|
|
136
|
+
*
|
|
137
|
+
* @param meter - OpenTelemetry Meter instance
|
|
138
|
+
* @returns Model routing metrics
|
|
139
|
+
*/
|
|
140
|
+
function createModelRoutingMetrics(meter) {
|
|
141
|
+
const m = meter || (0, bootstrap_1.getMeter)();
|
|
142
|
+
return {
|
|
143
|
+
routingCount: m.createCounter('aqe.model.routing.count', {
|
|
144
|
+
description: 'Number of model routing decisions',
|
|
145
|
+
unit: 'routes',
|
|
146
|
+
}),
|
|
147
|
+
routingLatency: m.createHistogram('aqe.model.routing.latency', {
|
|
148
|
+
description: 'Model routing decision latency',
|
|
149
|
+
unit: 'ms',
|
|
150
|
+
advice: {
|
|
151
|
+
explicitBucketBoundaries: [1, 5, 10, 25, 50, 100, 250, 500],
|
|
152
|
+
},
|
|
153
|
+
}),
|
|
154
|
+
modelInvocationCount: m.createCounter('aqe.model.invocation.count', {
|
|
155
|
+
description: 'Number of model invocations',
|
|
156
|
+
unit: 'invocations',
|
|
157
|
+
}),
|
|
158
|
+
modelTokensInput: m.createCounter('aqe.model.tokens.input', {
|
|
159
|
+
description: 'Total input tokens sent to models',
|
|
160
|
+
unit: 'tokens',
|
|
161
|
+
}),
|
|
162
|
+
modelTokensOutput: m.createCounter('aqe.model.tokens.output', {
|
|
163
|
+
description: 'Total output tokens received from models',
|
|
164
|
+
unit: 'tokens',
|
|
165
|
+
}),
|
|
166
|
+
modelCost: m.createCounter('aqe.model.cost', {
|
|
167
|
+
description: 'Total cost of model invocations',
|
|
168
|
+
unit: 'USD',
|
|
169
|
+
}),
|
|
170
|
+
modelLatency: m.createHistogram('aqe.model.invocation.latency', {
|
|
171
|
+
description: 'Model invocation latency',
|
|
172
|
+
unit: 'ms',
|
|
173
|
+
advice: {
|
|
174
|
+
explicitBucketBoundaries: [100, 250, 500, 1000, 2500, 5000, 10000, 30000],
|
|
175
|
+
},
|
|
176
|
+
}),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Learning and pattern metrics for agents
|
|
181
|
+
*/
|
|
182
|
+
function createLearningMetrics(meter) {
|
|
183
|
+
const m = meter || (0, bootstrap_1.getMeter)();
|
|
184
|
+
return {
|
|
185
|
+
patternMatchCount: m.createCounter('aqe.learning.pattern.match.count', {
|
|
186
|
+
description: 'Number of pattern matches found',
|
|
187
|
+
unit: 'matches',
|
|
188
|
+
}),
|
|
189
|
+
patternMatchScore: m.createHistogram('aqe.learning.pattern.match.score', {
|
|
190
|
+
description: 'Distribution of pattern match scores',
|
|
191
|
+
unit: 'score',
|
|
192
|
+
advice: {
|
|
193
|
+
explicitBucketBoundaries: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],
|
|
194
|
+
},
|
|
195
|
+
}),
|
|
196
|
+
learningEpisodeCount: m.createCounter('aqe.learning.episode.count', {
|
|
197
|
+
description: 'Number of learning episodes recorded',
|
|
198
|
+
unit: 'episodes',
|
|
199
|
+
}),
|
|
200
|
+
rewardScore: m.createHistogram('aqe.learning.reward.score', {
|
|
201
|
+
description: 'Distribution of reward scores',
|
|
202
|
+
unit: 'score',
|
|
203
|
+
advice: {
|
|
204
|
+
explicitBucketBoundaries: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],
|
|
205
|
+
},
|
|
206
|
+
}),
|
|
207
|
+
experienceBufferSize: m.createUpDownCounter('aqe.learning.buffer.size', {
|
|
208
|
+
description: 'Current size of experience replay buffer',
|
|
209
|
+
unit: 'experiences',
|
|
210
|
+
}),
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=agent-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-metrics.js","sourceRoot":"","sources":["../../../src/telemetry/metrics/agent-metrics.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAmCH,gDAgDC;AAOD,0CAKC;AAWD,0CAqDC;AASD,4CAWC;AA4BD,8DA6CC;AAKD,sDAmCC;AAjSD,4CAAwC;AACxC,oCAAmF;AAsBnF,6BAA6B;AAC7B,IAAI,YAAY,GAAwB,IAAI,CAAC;AAE7C;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,GAAG,KAAK,IAAI,IAAA,oBAAQ,GAAE,CAAC;IAE9B,YAAY,GAAG;QACb,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,oBAAY,CAAC,gBAAgB,EAAE;YACxD,WAAW,EAAE,0CAA0C;YACvD,IAAI,EAAE,OAAO;SACd,CAAC;QAEF,YAAY,EAAE,CAAC,CAAC,eAAe,CAAC,oBAAY,CAAC,mBAAmB,EAAE;YAChE,WAAW,EAAE,gDAAgD;YAC7D,IAAI,EAAE,IAAI;YACV,MAAM,EAAE;gBACN,wBAAwB,EAAE,4BAAoB,CAAC,YAAY;aAC5D;SACF,CAAC;QAEF,YAAY,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,oBAAY,CAAC,gBAAgB,UAAU,EAAE;YACxE,WAAW,EAAE,wCAAwC;YACrD,IAAI,EAAE,OAAO;SACd,CAAC;QAEF,UAAU,EAAE,CAAC,CAAC,aAAa,CAAC,oBAAY,CAAC,iBAAiB,EAAE;YAC1D,WAAW,EAAE,oCAAoC;YACjD,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,UAAU,EAAE,CAAC,CAAC,aAAa,CAAC,oBAAY,CAAC,iBAAiB,EAAE;YAC1D,WAAW,EAAE,iCAAiC;YAC9C,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,oBAAY,CAAC,UAAU,EAAE;YAClD,WAAW,EAAE,yCAAyC;YACtD,IAAI,EAAE,KAAK;SACZ,CAAC;QAEF,YAAY,EAAE,CAAC,CAAC,mBAAmB,CAAC,oBAAY,CAAC,kBAAkB,EAAE;YACnE,WAAW,EAAE,gDAAgD;YAC7D,IAAI,EAAE,QAAQ;SACf,CAAC;KACH,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe;IAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAC7B,SAAiB,EACjB,QAAgB,EAChB,UAAkB,EAClB,OAAgB,EAChB,OAMC;IAED,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAElC,MAAM,UAAU,GAAe;QAC7B,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,QAAQ;QACrB,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;KAC9C,CAAC;IAEF,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,UAAU,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,UAAU,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IACjD,CAAC;IAED,oBAAoB;IACpB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAErC,kBAAkB;IAClB,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEpD,yBAAyB;IACzB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,iCAAiC;IACjC,IAAI,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,0BAA0B;IAC1B,IAAI,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,SAAiB,EACjB,KAAa,EACb,UAAuB;IAEvB,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAElC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE;QAC9B,YAAY,EAAE,SAAS;QACvB,GAAG,UAAU;KACd,CAAC,CAAC;AACL,CAAC;AAsBD;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,KAAa;IACrD,MAAM,CAAC,GAAG,KAAK,IAAI,IAAA,oBAAQ,GAAE,CAAC;IAE9B,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,aAAa,CAAC,yBAAyB,EAAE;YACvD,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,cAAc,EAAE,CAAC,CAAC,eAAe,CAAC,2BAA2B,EAAE;YAC7D,WAAW,EAAE,gCAAgC;YAC7C,IAAI,EAAE,IAAI;YACV,MAAM,EAAE;gBACN,wBAAwB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aAC5D;SACF,CAAC;QAEF,oBAAoB,EAAE,CAAC,CAAC,aAAa,CAAC,4BAA4B,EAAE;YAClE,WAAW,EAAE,6BAA6B;YAC1C,IAAI,EAAE,aAAa;SACpB,CAAC;QAEF,gBAAgB,EAAE,CAAC,CAAC,aAAa,CAAC,wBAAwB,EAAE;YAC1D,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,iBAAiB,EAAE,CAAC,CAAC,aAAa,CAAC,yBAAyB,EAAE;YAC5D,WAAW,EAAE,0CAA0C;YACvD,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,gBAAgB,EAAE;YAC3C,WAAW,EAAE,iCAAiC;YAC9C,IAAI,EAAE,KAAK;SACZ,CAAC;QAEF,YAAY,EAAE,CAAC,CAAC,eAAe,CAAC,8BAA8B,EAAE;YAC9D,WAAW,EAAE,0BAA0B;YACvC,IAAI,EAAE,IAAI;YACV,MAAM,EAAE;gBACN,wBAAwB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;aAC1E;SACF,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAa;IACjD,MAAM,CAAC,GAAG,KAAK,IAAI,IAAA,oBAAQ,GAAE,CAAC;IAE9B,OAAO;QACL,iBAAiB,EAAE,CAAC,CAAC,aAAa,CAAC,kCAAkC,EAAE;YACrE,WAAW,EAAE,iCAAiC;YAC9C,IAAI,EAAE,SAAS;SAChB,CAAC;QAEF,iBAAiB,EAAE,CAAC,CAAC,eAAe,CAAC,kCAAkC,EAAE;YACvE,WAAW,EAAE,sCAAsC;YACnD,IAAI,EAAE,OAAO;YACb,MAAM,EAAE;gBACN,wBAAwB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aAC7E;SACF,CAAC;QAEF,oBAAoB,EAAE,CAAC,CAAC,aAAa,CAAC,4BAA4B,EAAE;YAClE,WAAW,EAAE,sCAAsC;YACnD,IAAI,EAAE,UAAU;SACjB,CAAC;QAEF,WAAW,EAAE,CAAC,CAAC,eAAe,CAAC,2BAA2B,EAAE;YAC1D,WAAW,EAAE,+BAA+B;YAC5C,IAAI,EAAE,OAAO;YACb,MAAM,EAAE;gBACN,wBAAwB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aAChF;SACF,CAAC;QAEF,oBAAoB,EAAE,CAAC,CAAC,mBAAmB,CAAC,0BAA0B,EAAE;YACtE,WAAW,EAAE,0CAA0C;YACvD,IAAI,EAAE,aAAa;SACpB,CAAC;KACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metrics Index for Agentic QE Fleet Telemetry
|
|
3
|
+
*
|
|
4
|
+
* Exports all metric definitions and recording functions.
|
|
5
|
+
*/
|
|
6
|
+
export { AgentMetrics, createAgentMetrics, getAgentMetrics, recordAgentTask, recordAgentCount, createModelRoutingMetrics, createLearningMetrics, ModelRoutingRecord, } from './agent-metrics';
|
|
7
|
+
export { QualityMetrics, createQualityMetrics, getQualityMetrics, recordTestExecution, recordCoverage, recordQualityGate, recordSecurityScan, recordFlakyTest, recordDefectDensity, createApiContractMetrics, TestExecutionResult, CoverageReport, QualityGateResult, SecurityScanResult, } from './quality-metrics';
|
|
8
|
+
export { SystemMetrics, createSystemMetrics, getSystemMetrics, recordDatabaseQuery, recordDatabaseConnection, recordQueueOperation, recordEventBusOperation, recordNetworkRequest, recordFileSystemOperation, recordEventLoopLag, createMemoryDetailMetrics, createFleetCoordinationMetrics, } from './system-metrics';
|
|
9
|
+
export { METRIC_NAMES, HISTOGRAM_BOUNDARIES, MetricRecordOptions } from '../types';
|
|
10
|
+
/**
|
|
11
|
+
* Initialize all metrics
|
|
12
|
+
*
|
|
13
|
+
* @returns Object containing all metric registries
|
|
14
|
+
*/
|
|
15
|
+
export declare function initializeAllMetrics(): {
|
|
16
|
+
agent: any;
|
|
17
|
+
quality: any;
|
|
18
|
+
system: any;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Convenience function to record a complete agent task with all metrics
|
|
22
|
+
*/
|
|
23
|
+
export interface CompleteTaskRecord {
|
|
24
|
+
agentType: string;
|
|
25
|
+
agentId?: string;
|
|
26
|
+
taskType: string;
|
|
27
|
+
taskId?: string;
|
|
28
|
+
priority?: string;
|
|
29
|
+
durationMs: number;
|
|
30
|
+
success: boolean;
|
|
31
|
+
tokensUsed?: number;
|
|
32
|
+
cost?: number;
|
|
33
|
+
testResults?: {
|
|
34
|
+
total: number;
|
|
35
|
+
passed: number;
|
|
36
|
+
failed: number;
|
|
37
|
+
skipped: number;
|
|
38
|
+
};
|
|
39
|
+
coverage?: {
|
|
40
|
+
line: number;
|
|
41
|
+
branch: number;
|
|
42
|
+
function: number;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Record a complete agent task with all relevant metrics
|
|
47
|
+
*
|
|
48
|
+
* @param record - Complete task record
|
|
49
|
+
*/
|
|
50
|
+
export declare function recordCompleteTask(record: CompleteTaskRecord): void;
|
|
51
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/telemetry/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEnF;;;;GAIG;AACH,wBAAgB,oBAAoB;;;;EAUnC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAEjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IAGjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAmCnE"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Metrics Index for Agentic QE Fleet Telemetry
|
|
4
|
+
*
|
|
5
|
+
* Exports all metric definitions and recording functions.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.HISTOGRAM_BOUNDARIES = exports.METRIC_NAMES = exports.createFleetCoordinationMetrics = exports.createMemoryDetailMetrics = exports.recordEventLoopLag = exports.recordFileSystemOperation = exports.recordNetworkRequest = exports.recordEventBusOperation = exports.recordQueueOperation = exports.recordDatabaseConnection = exports.recordDatabaseQuery = exports.getSystemMetrics = exports.createSystemMetrics = exports.createApiContractMetrics = exports.recordDefectDensity = exports.recordFlakyTest = exports.recordSecurityScan = exports.recordQualityGate = exports.recordCoverage = exports.recordTestExecution = exports.getQualityMetrics = exports.createQualityMetrics = exports.createLearningMetrics = exports.createModelRoutingMetrics = exports.recordAgentCount = exports.recordAgentTask = exports.getAgentMetrics = exports.createAgentMetrics = void 0;
|
|
9
|
+
exports.initializeAllMetrics = initializeAllMetrics;
|
|
10
|
+
exports.recordCompleteTask = recordCompleteTask;
|
|
11
|
+
// Agent metrics
|
|
12
|
+
var agent_metrics_1 = require("./agent-metrics");
|
|
13
|
+
Object.defineProperty(exports, "createAgentMetrics", { enumerable: true, get: function () { return agent_metrics_1.createAgentMetrics; } });
|
|
14
|
+
Object.defineProperty(exports, "getAgentMetrics", { enumerable: true, get: function () { return agent_metrics_1.getAgentMetrics; } });
|
|
15
|
+
Object.defineProperty(exports, "recordAgentTask", { enumerable: true, get: function () { return agent_metrics_1.recordAgentTask; } });
|
|
16
|
+
Object.defineProperty(exports, "recordAgentCount", { enumerable: true, get: function () { return agent_metrics_1.recordAgentCount; } });
|
|
17
|
+
Object.defineProperty(exports, "createModelRoutingMetrics", { enumerable: true, get: function () { return agent_metrics_1.createModelRoutingMetrics; } });
|
|
18
|
+
Object.defineProperty(exports, "createLearningMetrics", { enumerable: true, get: function () { return agent_metrics_1.createLearningMetrics; } });
|
|
19
|
+
// Quality metrics
|
|
20
|
+
var quality_metrics_1 = require("./quality-metrics");
|
|
21
|
+
Object.defineProperty(exports, "createQualityMetrics", { enumerable: true, get: function () { return quality_metrics_1.createQualityMetrics; } });
|
|
22
|
+
Object.defineProperty(exports, "getQualityMetrics", { enumerable: true, get: function () { return quality_metrics_1.getQualityMetrics; } });
|
|
23
|
+
Object.defineProperty(exports, "recordTestExecution", { enumerable: true, get: function () { return quality_metrics_1.recordTestExecution; } });
|
|
24
|
+
Object.defineProperty(exports, "recordCoverage", { enumerable: true, get: function () { return quality_metrics_1.recordCoverage; } });
|
|
25
|
+
Object.defineProperty(exports, "recordQualityGate", { enumerable: true, get: function () { return quality_metrics_1.recordQualityGate; } });
|
|
26
|
+
Object.defineProperty(exports, "recordSecurityScan", { enumerable: true, get: function () { return quality_metrics_1.recordSecurityScan; } });
|
|
27
|
+
Object.defineProperty(exports, "recordFlakyTest", { enumerable: true, get: function () { return quality_metrics_1.recordFlakyTest; } });
|
|
28
|
+
Object.defineProperty(exports, "recordDefectDensity", { enumerable: true, get: function () { return quality_metrics_1.recordDefectDensity; } });
|
|
29
|
+
Object.defineProperty(exports, "createApiContractMetrics", { enumerable: true, get: function () { return quality_metrics_1.createApiContractMetrics; } });
|
|
30
|
+
// System metrics
|
|
31
|
+
var system_metrics_1 = require("./system-metrics");
|
|
32
|
+
Object.defineProperty(exports, "createSystemMetrics", { enumerable: true, get: function () { return system_metrics_1.createSystemMetrics; } });
|
|
33
|
+
Object.defineProperty(exports, "getSystemMetrics", { enumerable: true, get: function () { return system_metrics_1.getSystemMetrics; } });
|
|
34
|
+
Object.defineProperty(exports, "recordDatabaseQuery", { enumerable: true, get: function () { return system_metrics_1.recordDatabaseQuery; } });
|
|
35
|
+
Object.defineProperty(exports, "recordDatabaseConnection", { enumerable: true, get: function () { return system_metrics_1.recordDatabaseConnection; } });
|
|
36
|
+
Object.defineProperty(exports, "recordQueueOperation", { enumerable: true, get: function () { return system_metrics_1.recordQueueOperation; } });
|
|
37
|
+
Object.defineProperty(exports, "recordEventBusOperation", { enumerable: true, get: function () { return system_metrics_1.recordEventBusOperation; } });
|
|
38
|
+
Object.defineProperty(exports, "recordNetworkRequest", { enumerable: true, get: function () { return system_metrics_1.recordNetworkRequest; } });
|
|
39
|
+
Object.defineProperty(exports, "recordFileSystemOperation", { enumerable: true, get: function () { return system_metrics_1.recordFileSystemOperation; } });
|
|
40
|
+
Object.defineProperty(exports, "recordEventLoopLag", { enumerable: true, get: function () { return system_metrics_1.recordEventLoopLag; } });
|
|
41
|
+
Object.defineProperty(exports, "createMemoryDetailMetrics", { enumerable: true, get: function () { return system_metrics_1.createMemoryDetailMetrics; } });
|
|
42
|
+
Object.defineProperty(exports, "createFleetCoordinationMetrics", { enumerable: true, get: function () { return system_metrics_1.createFleetCoordinationMetrics; } });
|
|
43
|
+
// Re-export types and constants
|
|
44
|
+
var types_1 = require("../types");
|
|
45
|
+
Object.defineProperty(exports, "METRIC_NAMES", { enumerable: true, get: function () { return types_1.METRIC_NAMES; } });
|
|
46
|
+
Object.defineProperty(exports, "HISTOGRAM_BOUNDARIES", { enumerable: true, get: function () { return types_1.HISTOGRAM_BOUNDARIES; } });
|
|
47
|
+
/**
|
|
48
|
+
* Initialize all metrics
|
|
49
|
+
*
|
|
50
|
+
* @returns Object containing all metric registries
|
|
51
|
+
*/
|
|
52
|
+
function initializeAllMetrics() {
|
|
53
|
+
const { createAgentMetrics } = require('./agent-metrics');
|
|
54
|
+
const { createQualityMetrics } = require('./quality-metrics');
|
|
55
|
+
const { createSystemMetrics } = require('./system-metrics');
|
|
56
|
+
return {
|
|
57
|
+
agent: createAgentMetrics(),
|
|
58
|
+
quality: createQualityMetrics(),
|
|
59
|
+
system: createSystemMetrics(),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Record a complete agent task with all relevant metrics
|
|
64
|
+
*
|
|
65
|
+
* @param record - Complete task record
|
|
66
|
+
*/
|
|
67
|
+
function recordCompleteTask(record) {
|
|
68
|
+
const { recordAgentTask } = require('./agent-metrics');
|
|
69
|
+
const { recordTestExecution, recordCoverage } = require('./quality-metrics');
|
|
70
|
+
// Record agent task
|
|
71
|
+
recordAgentTask(record.agentType, record.taskType, record.durationMs, record.success, {
|
|
72
|
+
agentId: record.agentId,
|
|
73
|
+
taskId: record.taskId,
|
|
74
|
+
priority: record.priority,
|
|
75
|
+
tokensUsed: record.tokensUsed,
|
|
76
|
+
cost: record.cost,
|
|
77
|
+
});
|
|
78
|
+
// Record test results if provided
|
|
79
|
+
if (record.testResults) {
|
|
80
|
+
recordTestExecution({
|
|
81
|
+
framework: 'jest', // Default, should be configurable
|
|
82
|
+
suite: record.taskId || 'unknown',
|
|
83
|
+
total: record.testResults.total,
|
|
84
|
+
passed: record.testResults.passed,
|
|
85
|
+
failed: record.testResults.failed,
|
|
86
|
+
skipped: record.testResults.skipped,
|
|
87
|
+
durationMs: record.durationMs,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
// Record coverage if provided
|
|
91
|
+
if (record.coverage) {
|
|
92
|
+
recordCoverage({
|
|
93
|
+
target: record.taskId || 'unknown',
|
|
94
|
+
line: record.coverage.line,
|
|
95
|
+
branch: record.coverage.branch,
|
|
96
|
+
function: record.coverage.function,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/metrics/index.ts"],"names":[],"mappings":"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"}
|