@cogitator-ai/workflows 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +97 -0
- package/dist/builder.d.ts +39 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/builder.js +224 -0
- package/dist/builder.js.map +1 -0
- package/dist/checkpoint.d.ts +33 -0
- package/dist/checkpoint.d.ts.map +1 -0
- package/dist/checkpoint.js +108 -0
- package/dist/checkpoint.js.map +1 -0
- package/dist/executor.d.ts +24 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +207 -0
- package/dist/executor.js.map +1 -0
- package/dist/human/approval-store.d.ts +95 -0
- package/dist/human/approval-store.d.ts.map +1 -0
- package/dist/human/approval-store.js +377 -0
- package/dist/human/approval-store.js.map +1 -0
- package/dist/human/human-node.d.ts +104 -0
- package/dist/human/human-node.d.ts.map +1 -0
- package/dist/human/human-node.js +342 -0
- package/dist/human/human-node.js.map +1 -0
- package/dist/human/index.d.ts +17 -0
- package/dist/human/index.d.ts.map +1 -0
- package/dist/human/index.js +17 -0
- package/dist/human/index.js.map +1 -0
- package/dist/human/notifiers.d.ts +85 -0
- package/dist/human/notifiers.d.ts.map +1 -0
- package/dist/human/notifiers.js +289 -0
- package/dist/human/notifiers.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/manager/index.d.ts +19 -0
- package/dist/manager/index.d.ts.map +1 -0
- package/dist/manager/index.js +17 -0
- package/dist/manager/index.js.map +1 -0
- package/dist/manager/run-store.d.ts +78 -0
- package/dist/manager/run-store.d.ts.map +1 -0
- package/dist/manager/run-store.js +390 -0
- package/dist/manager/run-store.js.map +1 -0
- package/dist/manager/scheduler.d.ts +159 -0
- package/dist/manager/scheduler.d.ts.map +1 -0
- package/dist/manager/scheduler.js +355 -0
- package/dist/manager/scheduler.js.map +1 -0
- package/dist/manager/workflow-manager.d.ts +114 -0
- package/dist/manager/workflow-manager.d.ts.map +1 -0
- package/dist/manager/workflow-manager.js +460 -0
- package/dist/manager/workflow-manager.js.map +1 -0
- package/dist/nodes/agent.d.ts +24 -0
- package/dist/nodes/agent.d.ts.map +1 -0
- package/dist/nodes/agent.js +37 -0
- package/dist/nodes/agent.js.map +1 -0
- package/dist/nodes/base.d.ts +12 -0
- package/dist/nodes/base.d.ts.map +1 -0
- package/dist/nodes/base.js +5 -0
- package/dist/nodes/base.js.map +1 -0
- package/dist/nodes/function.d.ts +27 -0
- package/dist/nodes/function.d.ts.map +1 -0
- package/dist/nodes/function.js +29 -0
- package/dist/nodes/function.js.map +1 -0
- package/dist/nodes/index.d.ts +8 -0
- package/dist/nodes/index.d.ts.map +1 -0
- package/dist/nodes/index.js +8 -0
- package/dist/nodes/index.js.map +1 -0
- package/dist/nodes/tool.d.ts +19 -0
- package/dist/nodes/tool.d.ts.map +1 -0
- package/dist/nodes/tool.js +26 -0
- package/dist/nodes/tool.js.map +1 -0
- package/dist/observability/exporters.d.ts +93 -0
- package/dist/observability/exporters.d.ts.map +1 -0
- package/dist/observability/exporters.js +330 -0
- package/dist/observability/exporters.js.map +1 -0
- package/dist/observability/index.d.ts +17 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +17 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/metrics.d.ts +114 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +435 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/span-attributes.d.ts +95 -0
- package/dist/observability/span-attributes.d.ts.map +1 -0
- package/dist/observability/span-attributes.js +142 -0
- package/dist/observability/span-attributes.js.map +1 -0
- package/dist/observability/tracer.d.ts +110 -0
- package/dist/observability/tracer.d.ts.map +1 -0
- package/dist/observability/tracer.js +409 -0
- package/dist/observability/tracer.js.map +1 -0
- package/dist/patterns/index.d.ts +15 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +15 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/patterns/map-reduce.d.ts +223 -0
- package/dist/patterns/map-reduce.d.ts.map +1 -0
- package/dist/patterns/map-reduce.js +378 -0
- package/dist/patterns/map-reduce.js.map +1 -0
- package/dist/saga/circuit-breaker.d.ts +153 -0
- package/dist/saga/circuit-breaker.d.ts.map +1 -0
- package/dist/saga/circuit-breaker.js +306 -0
- package/dist/saga/circuit-breaker.js.map +1 -0
- package/dist/saga/compensation.d.ts +134 -0
- package/dist/saga/compensation.d.ts.map +1 -0
- package/dist/saga/compensation.js +240 -0
- package/dist/saga/compensation.js.map +1 -0
- package/dist/saga/dead-letter.d.ts +113 -0
- package/dist/saga/dead-letter.d.ts.map +1 -0
- package/dist/saga/dead-letter.js +307 -0
- package/dist/saga/dead-letter.js.map +1 -0
- package/dist/saga/idempotency.d.ts +95 -0
- package/dist/saga/idempotency.d.ts.map +1 -0
- package/dist/saga/idempotency.js +266 -0
- package/dist/saga/idempotency.js.map +1 -0
- package/dist/saga/index.d.ts +16 -0
- package/dist/saga/index.d.ts.map +1 -0
- package/dist/saga/index.js +16 -0
- package/dist/saga/index.js.map +1 -0
- package/dist/saga/retry.d.ts +59 -0
- package/dist/saga/retry.d.ts.map +1 -0
- package/dist/saga/retry.js +222 -0
- package/dist/saga/retry.js.map +1 -0
- package/dist/scheduler.d.ts +37 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +151 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/subworkflows/index.d.ts +16 -0
- package/dist/subworkflows/index.d.ts.map +1 -0
- package/dist/subworkflows/index.js +16 -0
- package/dist/subworkflows/index.js.map +1 -0
- package/dist/subworkflows/parallel-subworkflows.d.ts +139 -0
- package/dist/subworkflows/parallel-subworkflows.d.ts.map +1 -0
- package/dist/subworkflows/parallel-subworkflows.js +270 -0
- package/dist/subworkflows/parallel-subworkflows.js.map +1 -0
- package/dist/subworkflows/subworkflow-node.d.ts +136 -0
- package/dist/subworkflows/subworkflow-node.d.ts.map +1 -0
- package/dist/subworkflows/subworkflow-node.js +164 -0
- package/dist/subworkflows/subworkflow-node.js.map +1 -0
- package/dist/timers/cron-parser.d.ts +110 -0
- package/dist/timers/cron-parser.d.ts.map +1 -0
- package/dist/timers/cron-parser.js +412 -0
- package/dist/timers/cron-parser.js.map +1 -0
- package/dist/timers/index.d.ts +18 -0
- package/dist/timers/index.d.ts.map +1 -0
- package/dist/timers/index.js +18 -0
- package/dist/timers/index.js.map +1 -0
- package/dist/timers/timer-manager.d.ts +219 -0
- package/dist/timers/timer-manager.d.ts.map +1 -0
- package/dist/timers/timer-manager.js +351 -0
- package/dist/timers/timer-manager.js.map +1 -0
- package/dist/timers/timer-node.d.ts +144 -0
- package/dist/timers/timer-node.d.ts.map +1 -0
- package/dist/timers/timer-node.js +246 -0
- package/dist/timers/timer-node.js.map +1 -0
- package/dist/timers/timer-store.d.ts +90 -0
- package/dist/timers/timer-store.d.ts.map +1 -0
- package/dist/timers/timer-store.js +357 -0
- package/dist/timers/timer-store.js.map +1 -0
- package/dist/triggers/cron-trigger.d.ts +102 -0
- package/dist/triggers/cron-trigger.d.ts.map +1 -0
- package/dist/triggers/cron-trigger.js +309 -0
- package/dist/triggers/cron-trigger.js.map +1 -0
- package/dist/triggers/index.d.ts +14 -0
- package/dist/triggers/index.d.ts.map +1 -0
- package/dist/triggers/index.js +10 -0
- package/dist/triggers/index.js.map +1 -0
- package/dist/triggers/rate-limiter.d.ts +130 -0
- package/dist/triggers/rate-limiter.d.ts.map +1 -0
- package/dist/triggers/rate-limiter.js +294 -0
- package/dist/triggers/rate-limiter.js.map +1 -0
- package/dist/triggers/trigger-manager.d.ts +166 -0
- package/dist/triggers/trigger-manager.d.ts.map +1 -0
- package/dist/triggers/trigger-manager.js +436 -0
- package/dist/triggers/trigger-manager.js.map +1 -0
- package/dist/triggers/webhook-trigger.d.ts +150 -0
- package/dist/triggers/webhook-trigger.d.ts.map +1 -0
- package/dist/triggers/webhook-trigger.js +452 -0
- package/dist/triggers/webhook-trigger.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/observability/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAe,MAAM,qBAAqB,CAAC;AA4CvF;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,WAAW,CAAmD;IACtE,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,WAAW,CAAsB;gBAE7B,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM;IAY/C;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQhF;;OAEG;IACH,sBAAsB,CACpB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,EAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,IAAI;IAeP;;OAEG;IACH,mBAAmB,CACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,SAAI,GACV,IAAI;IA4CP;;OAEG;IACH,gBAAgB,CACd,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,IAAI;IAoBP;;OAEG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAQpD;;OAEG;IACH,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAwEhE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAYhB;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,kBAAkB,IAAI,MAAM;IA2C5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;OAEG;IACH,gBAAgB,IAAI,MAAM,EAAE;CAgB7B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAC9B,wBAAwB,CAE1B;AAOD,wBAAgB,gBAAgB,IAAI,wBAAwB,CAK3D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAExE"}
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkflowMetricsCollector - Metrics collection for workflow execution
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Counters for executions, successes, failures
|
|
6
|
+
* - Histograms for latency distribution
|
|
7
|
+
* - Gauges for active workflows, queue depth
|
|
8
|
+
* - Per-node and per-workflow metrics
|
|
9
|
+
* - Token and cost tracking
|
|
10
|
+
* - Prometheus-compatible output
|
|
11
|
+
*/
|
|
12
|
+
const DEFAULT_LATENCY_BUCKETS = [
|
|
13
|
+
10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000,
|
|
14
|
+
];
|
|
15
|
+
const DEFAULT_TOKEN_BUCKETS = [
|
|
16
|
+
100, 500, 1000, 5000, 10000, 50000, 100000,
|
|
17
|
+
];
|
|
18
|
+
const DEFAULT_COST_BUCKETS = [
|
|
19
|
+
0.001, 0.01, 0.1, 0.5, 1, 5, 10, 50,
|
|
20
|
+
];
|
|
21
|
+
/**
|
|
22
|
+
* Calculate percentile from sorted array
|
|
23
|
+
*/
|
|
24
|
+
function percentile(sortedValues, p) {
|
|
25
|
+
if (sortedValues.length === 0)
|
|
26
|
+
return 0;
|
|
27
|
+
const idx = Math.ceil((p / 100) * sortedValues.length) - 1;
|
|
28
|
+
return sortedValues[Math.max(0, idx)];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* WorkflowMetricsCollector - Main metrics collection class
|
|
32
|
+
*/
|
|
33
|
+
export class WorkflowMetricsCollector {
|
|
34
|
+
config;
|
|
35
|
+
counters = new Map();
|
|
36
|
+
gauges = new Map();
|
|
37
|
+
histograms = new Map();
|
|
38
|
+
latencySamples = new Map();
|
|
39
|
+
nodeMetrics = new Map();
|
|
40
|
+
tokenUsage = new Map();
|
|
41
|
+
costTracking = new Map();
|
|
42
|
+
lastUpdated = Date.now();
|
|
43
|
+
constructor(config = {}) {
|
|
44
|
+
this.config = {
|
|
45
|
+
enabled: true,
|
|
46
|
+
prefix: 'cogitator_workflow',
|
|
47
|
+
labels: {},
|
|
48
|
+
latencyBuckets: DEFAULT_LATENCY_BUCKETS,
|
|
49
|
+
tokenBuckets: DEFAULT_TOKEN_BUCKETS,
|
|
50
|
+
costBuckets: DEFAULT_COST_BUCKETS,
|
|
51
|
+
...config,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get prefixed metric name
|
|
56
|
+
*/
|
|
57
|
+
metricName(name) {
|
|
58
|
+
return this.config.prefix ? `${this.config.prefix}_${name}` : name;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Record workflow start
|
|
62
|
+
*/
|
|
63
|
+
recordWorkflowStart(workflowName, labels) {
|
|
64
|
+
const key = this.metricName('executions_total');
|
|
65
|
+
this.incrementCounter(key, { workflow: workflowName, ...labels });
|
|
66
|
+
const activeKey = this.metricName('active_workflows');
|
|
67
|
+
this.incrementGauge(activeKey, { workflow: workflowName });
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Record workflow completion
|
|
71
|
+
*/
|
|
72
|
+
recordWorkflowComplete(workflowName, durationMs, status, labels) {
|
|
73
|
+
const activeKey = this.metricName('active_workflows');
|
|
74
|
+
this.decrementGauge(activeKey, { workflow: workflowName });
|
|
75
|
+
const statusKey = this.metricName(`executions_${status}_total`);
|
|
76
|
+
this.incrementCounter(statusKey, { workflow: workflowName, ...labels });
|
|
77
|
+
const latencyKey = this.metricName('execution_duration_ms');
|
|
78
|
+
this.recordHistogram(latencyKey, durationMs, { workflow: workflowName });
|
|
79
|
+
this.recordLatencySample(workflowName, durationMs);
|
|
80
|
+
this.lastUpdated = Date.now();
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Record node execution
|
|
84
|
+
*/
|
|
85
|
+
recordNodeExecution(workflowName, nodeName, nodeType, durationMs, success, retries = 0) {
|
|
86
|
+
if (!this.nodeMetrics.has(workflowName)) {
|
|
87
|
+
this.nodeMetrics.set(workflowName, new Map());
|
|
88
|
+
}
|
|
89
|
+
const workflowNodes = this.nodeMetrics.get(workflowName);
|
|
90
|
+
if (!workflowNodes.has(nodeName)) {
|
|
91
|
+
workflowNodes.set(nodeName, {
|
|
92
|
+
executionCount: 0,
|
|
93
|
+
successCount: 0,
|
|
94
|
+
failureCount: 0,
|
|
95
|
+
retryCount: 0,
|
|
96
|
+
durations: [],
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
const nodeData = workflowNodes.get(nodeName);
|
|
100
|
+
nodeData.executionCount++;
|
|
101
|
+
nodeData.durations.push(durationMs);
|
|
102
|
+
if (success) {
|
|
103
|
+
nodeData.successCount++;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
nodeData.failureCount++;
|
|
107
|
+
}
|
|
108
|
+
nodeData.retryCount += retries;
|
|
109
|
+
const nodeLatencyKey = this.metricName('node_duration_ms');
|
|
110
|
+
this.recordHistogram(nodeLatencyKey, durationMs, {
|
|
111
|
+
workflow: workflowName,
|
|
112
|
+
node: nodeName,
|
|
113
|
+
type: nodeType,
|
|
114
|
+
});
|
|
115
|
+
const nodeExecKey = this.metricName('node_executions_total');
|
|
116
|
+
this.incrementCounter(nodeExecKey, {
|
|
117
|
+
workflow: workflowName,
|
|
118
|
+
node: nodeName,
|
|
119
|
+
status: success ? 'success' : 'failure',
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Record token usage
|
|
124
|
+
*/
|
|
125
|
+
recordTokenUsage(workflowName, inputTokens, outputTokens) {
|
|
126
|
+
if (!this.tokenUsage.has(workflowName)) {
|
|
127
|
+
this.tokenUsage.set(workflowName, {
|
|
128
|
+
input: 0,
|
|
129
|
+
output: 0,
|
|
130
|
+
total: 0,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
const usage = this.tokenUsage.get(workflowName);
|
|
134
|
+
usage.input += inputTokens;
|
|
135
|
+
usage.output += outputTokens;
|
|
136
|
+
usage.total += inputTokens + outputTokens;
|
|
137
|
+
const tokenKey = this.metricName('tokens_total');
|
|
138
|
+
this.recordHistogram(tokenKey, inputTokens + outputTokens, {
|
|
139
|
+
workflow: workflowName,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Record cost
|
|
144
|
+
*/
|
|
145
|
+
recordCost(workflowName, cost) {
|
|
146
|
+
const current = this.costTracking.get(workflowName) ?? 0;
|
|
147
|
+
this.costTracking.set(workflowName, current + cost);
|
|
148
|
+
const costKey = this.metricName('cost_usd');
|
|
149
|
+
this.recordHistogram(costKey, cost, { workflow: workflowName });
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Get workflow metrics summary
|
|
153
|
+
*/
|
|
154
|
+
getWorkflowMetrics(workflowName) {
|
|
155
|
+
const samples = this.latencySamples.get(workflowName);
|
|
156
|
+
if (!samples || samples.length === 0) {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
const durations = samples.map((s) => s.value).sort((a, b) => a - b);
|
|
160
|
+
const totalKey = this.metricName('executions_total');
|
|
161
|
+
const successKey = this.metricName('executions_success_total');
|
|
162
|
+
const failureKey = this.metricName('executions_failure_total');
|
|
163
|
+
const cancelledKey = this.metricName('executions_cancelled_total');
|
|
164
|
+
const getCounterValue = (key) => {
|
|
165
|
+
const counter = this.counters.get(`${key}:workflow=${workflowName}`);
|
|
166
|
+
return counter?.value ?? 0;
|
|
167
|
+
};
|
|
168
|
+
const nodeMetricsMap = new Map();
|
|
169
|
+
const workflowNodes = this.nodeMetrics.get(workflowName);
|
|
170
|
+
if (workflowNodes) {
|
|
171
|
+
for (const [nodeName, data] of workflowNodes) {
|
|
172
|
+
const sortedDurations = [...data.durations].sort((a, b) => a - b);
|
|
173
|
+
const avg = sortedDurations.reduce((sum, d) => sum + d, 0) /
|
|
174
|
+
sortedDurations.length;
|
|
175
|
+
nodeMetricsMap.set(nodeName, {
|
|
176
|
+
executionCount: data.executionCount,
|
|
177
|
+
successCount: data.successCount,
|
|
178
|
+
failureCount: data.failureCount,
|
|
179
|
+
retryCount: data.retryCount,
|
|
180
|
+
avgDuration: avg,
|
|
181
|
+
p50Duration: percentile(sortedDurations, 50),
|
|
182
|
+
p95Duration: percentile(sortedDurations, 95),
|
|
183
|
+
p99Duration: percentile(sortedDurations, 99),
|
|
184
|
+
minDuration: sortedDurations[0] ?? 0,
|
|
185
|
+
maxDuration: sortedDurations[sortedDurations.length - 1] ?? 0,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
const tokenData = this.tokenUsage.get(workflowName) ?? {
|
|
190
|
+
input: 0,
|
|
191
|
+
output: 0,
|
|
192
|
+
total: 0,
|
|
193
|
+
};
|
|
194
|
+
const totalCost = this.costTracking.get(workflowName) ?? 0;
|
|
195
|
+
return {
|
|
196
|
+
workflowName,
|
|
197
|
+
executionCount: getCounterValue(totalKey),
|
|
198
|
+
successCount: getCounterValue(successKey),
|
|
199
|
+
failureCount: getCounterValue(failureKey),
|
|
200
|
+
cancelledCount: getCounterValue(cancelledKey),
|
|
201
|
+
latency: {
|
|
202
|
+
avg: durations.reduce((sum, d) => sum + d, 0) / durations.length,
|
|
203
|
+
p50: percentile(durations, 50),
|
|
204
|
+
p90: percentile(durations, 90),
|
|
205
|
+
p99: percentile(durations, 99),
|
|
206
|
+
min: durations[0],
|
|
207
|
+
max: durations[durations.length - 1],
|
|
208
|
+
},
|
|
209
|
+
nodeMetrics: nodeMetricsMap,
|
|
210
|
+
tokenUsage: tokenData,
|
|
211
|
+
totalCost,
|
|
212
|
+
lastUpdated: this.lastUpdated,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Increment counter
|
|
217
|
+
*/
|
|
218
|
+
incrementCounter(name, labels, value = 1) {
|
|
219
|
+
const key = this.labeledKey(name, labels);
|
|
220
|
+
const current = this.counters.get(key);
|
|
221
|
+
if (current) {
|
|
222
|
+
current.value += value;
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
this.counters.set(key, {
|
|
226
|
+
value,
|
|
227
|
+
labels: { ...this.config.labels, ...labels },
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Set gauge value
|
|
233
|
+
*/
|
|
234
|
+
setGauge(name, value, labels) {
|
|
235
|
+
const key = this.labeledKey(name, labels);
|
|
236
|
+
this.gauges.set(key, {
|
|
237
|
+
value,
|
|
238
|
+
labels: { ...this.config.labels, ...labels },
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Increment gauge
|
|
243
|
+
*/
|
|
244
|
+
incrementGauge(name, labels) {
|
|
245
|
+
const key = this.labeledKey(name, labels);
|
|
246
|
+
const current = this.gauges.get(key);
|
|
247
|
+
this.setGauge(name, (current?.value ?? 0) + 1, labels);
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Decrement gauge
|
|
251
|
+
*/
|
|
252
|
+
decrementGauge(name, labels) {
|
|
253
|
+
const key = this.labeledKey(name, labels);
|
|
254
|
+
const current = this.gauges.get(key);
|
|
255
|
+
this.setGauge(name, Math.max(0, (current?.value ?? 0) - 1), labels);
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Record histogram value
|
|
259
|
+
*/
|
|
260
|
+
recordHistogram(name, value, labels) {
|
|
261
|
+
const key = this.labeledKey(name, labels);
|
|
262
|
+
let histogram = this.histograms.get(key);
|
|
263
|
+
if (!histogram) {
|
|
264
|
+
const buckets = this.getBucketsForMetric(name);
|
|
265
|
+
histogram = {
|
|
266
|
+
buckets: new Map(buckets.map((b) => [b, 0])),
|
|
267
|
+
sum: 0,
|
|
268
|
+
count: 0,
|
|
269
|
+
min: Infinity,
|
|
270
|
+
max: -Infinity,
|
|
271
|
+
};
|
|
272
|
+
this.histograms.set(key, histogram);
|
|
273
|
+
}
|
|
274
|
+
histogram.sum += value;
|
|
275
|
+
histogram.count++;
|
|
276
|
+
histogram.min = Math.min(histogram.min, value);
|
|
277
|
+
histogram.max = Math.max(histogram.max, value);
|
|
278
|
+
for (const [bucket, count] of histogram.buckets) {
|
|
279
|
+
if (value <= bucket) {
|
|
280
|
+
histogram.buckets.set(bucket, count + 1);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Record latency sample for percentile calculations
|
|
286
|
+
*/
|
|
287
|
+
recordLatencySample(workflowName, value) {
|
|
288
|
+
if (!this.latencySamples.has(workflowName)) {
|
|
289
|
+
this.latencySamples.set(workflowName, []);
|
|
290
|
+
}
|
|
291
|
+
const samples = this.latencySamples.get(workflowName);
|
|
292
|
+
samples.push({ value, timestamp: Date.now() });
|
|
293
|
+
if (samples.length > 1000) {
|
|
294
|
+
samples.shift();
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Get appropriate buckets for a metric
|
|
299
|
+
*/
|
|
300
|
+
getBucketsForMetric(name) {
|
|
301
|
+
if (name.includes('duration') || name.includes('latency')) {
|
|
302
|
+
return this.config.latencyBuckets ?? DEFAULT_LATENCY_BUCKETS;
|
|
303
|
+
}
|
|
304
|
+
if (name.includes('token')) {
|
|
305
|
+
return this.config.tokenBuckets ?? DEFAULT_TOKEN_BUCKETS;
|
|
306
|
+
}
|
|
307
|
+
if (name.includes('cost')) {
|
|
308
|
+
return this.config.costBuckets ?? DEFAULT_COST_BUCKETS;
|
|
309
|
+
}
|
|
310
|
+
return DEFAULT_LATENCY_BUCKETS;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Build labeled key for maps
|
|
314
|
+
*/
|
|
315
|
+
labeledKey(name, labels) {
|
|
316
|
+
if (!labels || Object.keys(labels).length === 0) {
|
|
317
|
+
return name;
|
|
318
|
+
}
|
|
319
|
+
const labelPairs = Object.entries(labels)
|
|
320
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
321
|
+
.map(([k, v]) => `${k}=${v}`)
|
|
322
|
+
.join(',');
|
|
323
|
+
return `${name}:${labelPairs}`;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Export metrics in Prometheus text format
|
|
327
|
+
*/
|
|
328
|
+
toPrometheusFormat() {
|
|
329
|
+
const lines = [];
|
|
330
|
+
for (const [key, data] of this.counters) {
|
|
331
|
+
const [name] = key.split(':');
|
|
332
|
+
const labelStr = this.formatPrometheusLabels(data.labels);
|
|
333
|
+
lines.push(`# TYPE ${name} counter`);
|
|
334
|
+
lines.push(`${name}${labelStr} ${data.value.toString()}`);
|
|
335
|
+
}
|
|
336
|
+
for (const [key, data] of this.gauges) {
|
|
337
|
+
const [name] = key.split(':');
|
|
338
|
+
const labelStr = this.formatPrometheusLabels(data.labels);
|
|
339
|
+
lines.push(`# TYPE ${name} gauge`);
|
|
340
|
+
lines.push(`${name}${labelStr} ${data.value.toString()}`);
|
|
341
|
+
}
|
|
342
|
+
for (const [key, data] of this.histograms) {
|
|
343
|
+
const [name, labelsPart] = key.split(':');
|
|
344
|
+
const labels = this.parseLabels(labelsPart);
|
|
345
|
+
const baseLabelStr = this.formatPrometheusLabels(labels);
|
|
346
|
+
lines.push(`# TYPE ${name} histogram`);
|
|
347
|
+
for (const [bucket, count] of data.buckets) {
|
|
348
|
+
const bucketLabels = { ...labels, le: bucket.toString() };
|
|
349
|
+
lines.push(`${name}_bucket${this.formatPrometheusLabels(bucketLabels)} ${count.toString()}`);
|
|
350
|
+
}
|
|
351
|
+
const infLabels = { ...labels, le: '+Inf' };
|
|
352
|
+
lines.push(`${name}_bucket${this.formatPrometheusLabels(infLabels)} ${data.count.toString()}`);
|
|
353
|
+
lines.push(`${name}_sum${baseLabelStr} ${data.sum.toString()}`);
|
|
354
|
+
lines.push(`${name}_count${baseLabelStr} ${data.count.toString()}`);
|
|
355
|
+
}
|
|
356
|
+
return lines.join('\n');
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Format labels for Prometheus
|
|
360
|
+
*/
|
|
361
|
+
formatPrometheusLabels(labels) {
|
|
362
|
+
if (!labels || Object.keys(labels).length === 0) {
|
|
363
|
+
return '';
|
|
364
|
+
}
|
|
365
|
+
const pairs = Object.entries(labels)
|
|
366
|
+
.map(([k, v]) => `${k}="${v}"`)
|
|
367
|
+
.join(',');
|
|
368
|
+
return `{${pairs}}`;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Parse labels from key
|
|
372
|
+
*/
|
|
373
|
+
parseLabels(labelsPart) {
|
|
374
|
+
if (!labelsPart)
|
|
375
|
+
return {};
|
|
376
|
+
const labels = {};
|
|
377
|
+
const pairs = labelsPart.split(',');
|
|
378
|
+
for (const pair of pairs) {
|
|
379
|
+
const [k, v] = pair.split('=');
|
|
380
|
+
if (k && v) {
|
|
381
|
+
labels[k] = v;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
return labels;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Reset all metrics
|
|
388
|
+
*/
|
|
389
|
+
reset() {
|
|
390
|
+
this.counters.clear();
|
|
391
|
+
this.gauges.clear();
|
|
392
|
+
this.histograms.clear();
|
|
393
|
+
this.latencySamples.clear();
|
|
394
|
+
this.nodeMetrics.clear();
|
|
395
|
+
this.tokenUsage.clear();
|
|
396
|
+
this.costTracking.clear();
|
|
397
|
+
this.lastUpdated = Date.now();
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Get all workflow names with metrics
|
|
401
|
+
*/
|
|
402
|
+
getWorkflowNames() {
|
|
403
|
+
const names = new Set();
|
|
404
|
+
for (const [key] of this.counters) {
|
|
405
|
+
const match = /workflow=([^,}]+)/.exec(key);
|
|
406
|
+
if (match) {
|
|
407
|
+
names.add(match[1]);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
for (const name of this.latencySamples.keys()) {
|
|
411
|
+
names.add(name);
|
|
412
|
+
}
|
|
413
|
+
return [...names];
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Create a metrics collector instance
|
|
418
|
+
*/
|
|
419
|
+
export function createMetricsCollector(config) {
|
|
420
|
+
return new WorkflowMetricsCollector(config);
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Global metrics collector for convenience
|
|
424
|
+
*/
|
|
425
|
+
let globalMetrics = null;
|
|
426
|
+
export function getGlobalMetrics() {
|
|
427
|
+
if (!globalMetrics) {
|
|
428
|
+
globalMetrics = new WorkflowMetricsCollector({ enabled: false });
|
|
429
|
+
}
|
|
430
|
+
return globalMetrics;
|
|
431
|
+
}
|
|
432
|
+
export function setGlobalMetrics(metrics) {
|
|
433
|
+
globalMetrics = metrics;
|
|
434
|
+
}
|
|
435
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/observability/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard span attributes for workflow tracing
|
|
3
|
+
* Based on OpenTelemetry semantic conventions + custom workflow attributes
|
|
4
|
+
*/
|
|
5
|
+
export declare const TRACE_PARENT_HEADER = "traceparent";
|
|
6
|
+
export declare const TRACE_STATE_HEADER = "tracestate";
|
|
7
|
+
export declare const BAGGAGE_HEADER = "baggage";
|
|
8
|
+
export declare const SERVICE_NAME = "service.name";
|
|
9
|
+
export declare const SERVICE_VERSION = "service.version";
|
|
10
|
+
export declare const SERVICE_INSTANCE_ID = "service.instance.id";
|
|
11
|
+
export declare const WORKFLOW_NAME = "workflow.name";
|
|
12
|
+
export declare const WORKFLOW_ID = "workflow.id";
|
|
13
|
+
export declare const WORKFLOW_RUN_ID = "workflow.run.id";
|
|
14
|
+
export declare const WORKFLOW_VERSION = "workflow.version";
|
|
15
|
+
export declare const WORKFLOW_ENTRY_POINT = "workflow.entry_point";
|
|
16
|
+
export declare const WORKFLOW_NODE_COUNT = "workflow.node_count";
|
|
17
|
+
export declare const WORKFLOW_STATUS = "workflow.status";
|
|
18
|
+
export declare const NODE_NAME = "node.name";
|
|
19
|
+
export declare const NODE_TYPE = "node.type";
|
|
20
|
+
export declare const NODE_INDEX = "node.index";
|
|
21
|
+
export declare const NODE_RETRY_COUNT = "node.retry_count";
|
|
22
|
+
export declare const NODE_TIMEOUT = "node.timeout";
|
|
23
|
+
export declare const NODE_DURATION = "node.duration_ms";
|
|
24
|
+
export declare const NODE_STATUS = "node.status";
|
|
25
|
+
export declare const LLM_SYSTEM = "llm.system";
|
|
26
|
+
export declare const LLM_REQUEST_MODEL = "llm.request.model";
|
|
27
|
+
export declare const LLM_RESPONSE_MODEL = "llm.response.model";
|
|
28
|
+
export declare const LLM_REQUEST_MAX_TOKENS = "llm.request.max_tokens";
|
|
29
|
+
export declare const LLM_REQUEST_TEMPERATURE = "llm.request.temperature";
|
|
30
|
+
export declare const LLM_REQUEST_TOP_P = "llm.request.top_p";
|
|
31
|
+
export declare const LLM_USAGE_INPUT_TOKENS = "llm.usage.input_tokens";
|
|
32
|
+
export declare const LLM_USAGE_OUTPUT_TOKENS = "llm.usage.output_tokens";
|
|
33
|
+
export declare const LLM_USAGE_TOTAL_TOKENS = "llm.usage.total_tokens";
|
|
34
|
+
export declare const LLM_USAGE_COST = "llm.usage.cost";
|
|
35
|
+
export declare const TOOL_NAME = "tool.name";
|
|
36
|
+
export declare const TOOL_PARAMETERS = "tool.parameters";
|
|
37
|
+
export declare const TOOL_RESULT = "tool.result";
|
|
38
|
+
export declare const TOOL_DURATION = "tool.duration_ms";
|
|
39
|
+
export declare const TOOL_SUCCESS = "tool.success";
|
|
40
|
+
export declare const ERROR_TYPE = "error.type";
|
|
41
|
+
export declare const ERROR_MESSAGE = "error.message";
|
|
42
|
+
export declare const ERROR_STACK = "error.stack";
|
|
43
|
+
export declare const ERROR_CODE = "error.code";
|
|
44
|
+
export declare const RETRY_ATTEMPT = "retry.attempt";
|
|
45
|
+
export declare const RETRY_MAX = "retry.max";
|
|
46
|
+
export declare const RETRY_DELAY = "retry.delay_ms";
|
|
47
|
+
export declare const CIRCUIT_BREAKER_STATE = "circuit_breaker.state";
|
|
48
|
+
export declare const COMPENSATION_TRIGGERED = "compensation.triggered";
|
|
49
|
+
export declare const COMPENSATION_NODE = "compensation.node";
|
|
50
|
+
export declare const DEAD_LETTER_QUEUE = "dlq.added";
|
|
51
|
+
export declare const APPROVAL_ID = "approval.id";
|
|
52
|
+
export declare const APPROVAL_TYPE = "approval.type";
|
|
53
|
+
export declare const APPROVAL_STATUS = "approval.status";
|
|
54
|
+
export declare const APPROVAL_TIMEOUT = "approval.timeout_ms";
|
|
55
|
+
export declare const APPROVAL_ASSIGNEE = "approval.assignee";
|
|
56
|
+
export declare const TIMER_TYPE = "timer.type";
|
|
57
|
+
export declare const TIMER_DELAY = "timer.delay_ms";
|
|
58
|
+
export declare const TIMER_CRON = "timer.cron";
|
|
59
|
+
export declare const TIMER_SCHEDULED_AT = "timer.scheduled_at";
|
|
60
|
+
export declare const TIMER_FIRED_AT = "timer.fired_at";
|
|
61
|
+
export declare const SUBWORKFLOW_NAME = "subworkflow.name";
|
|
62
|
+
export declare const SUBWORKFLOW_DEPTH = "subworkflow.depth";
|
|
63
|
+
export declare const SUBWORKFLOW_PARENT_ID = "subworkflow.parent_id";
|
|
64
|
+
export declare const TRIGGER_TYPE = "trigger.type";
|
|
65
|
+
export declare const TRIGGER_ID = "trigger.id";
|
|
66
|
+
export declare const TRIGGER_SOURCE = "trigger.source";
|
|
67
|
+
export declare const WEBHOOK_PATH = "webhook.path";
|
|
68
|
+
export declare const WEBHOOK_METHOD = "webhook.method";
|
|
69
|
+
export declare const CRON_EXPRESSION = "cron.expression";
|
|
70
|
+
export declare const CRON_NEXT_RUN = "cron.next_run";
|
|
71
|
+
/**
|
|
72
|
+
* Build standard workflow span attributes
|
|
73
|
+
*/
|
|
74
|
+
export declare function workflowSpanAttributes(workflowName: string, workflowId: string, runId: string, additionalAttrs?: Record<string, unknown>): Record<string, unknown>;
|
|
75
|
+
/**
|
|
76
|
+
* Build standard node span attributes
|
|
77
|
+
*/
|
|
78
|
+
export declare function nodeSpanAttributes(nodeName: string, nodeType: string, nodeIndex: number, additionalAttrs?: Record<string, unknown>): Record<string, unknown>;
|
|
79
|
+
/**
|
|
80
|
+
* Build LLM span attributes from token usage
|
|
81
|
+
*/
|
|
82
|
+
export declare function llmSpanAttributes(system: string, model: string, inputTokens: number, outputTokens: number, cost?: number, additionalAttrs?: Record<string, unknown>): Record<string, unknown>;
|
|
83
|
+
/**
|
|
84
|
+
* Build tool span attributes
|
|
85
|
+
*/
|
|
86
|
+
export declare function toolSpanAttributes(toolName: string, success: boolean, durationMs: number, additionalAttrs?: Record<string, unknown>): Record<string, unknown>;
|
|
87
|
+
/**
|
|
88
|
+
* Build error span attributes
|
|
89
|
+
*/
|
|
90
|
+
export declare function errorSpanAttributes(error: Error, additionalAttrs?: Record<string, unknown>): Record<string, unknown>;
|
|
91
|
+
/**
|
|
92
|
+
* Build retry span attributes
|
|
93
|
+
*/
|
|
94
|
+
export declare function retrySpanAttributes(attempt: number, maxAttempts: number, delayMs: number, additionalAttrs?: Record<string, unknown>): Record<string, unknown>;
|
|
95
|
+
//# sourceMappingURL=span-attributes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"span-attributes.d.ts","sourceRoot":"","sources":["../../src/observability/span-attributes.ts"],"names":[],"mappings":"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"}
|