@sfdxy/anypoint-connect 0.3.0 → 0.4.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/dist/api/MonitoringApi.d.ts +50 -5
- package/dist/api/MonitoringApi.d.ts.map +1 -1
- package/dist/api/MonitoringApi.js +86 -10
- package/dist/api/MonitoringApi.js.map +1 -1
- package/dist/commands/monitor.d.ts +5 -1
- package/dist/commands/monitor.d.ts.map +1 -1
- package/dist/commands/monitor.js +171 -16
- package/dist/commands/monitor.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools/monitoring.d.ts +2 -1
- package/dist/mcp/tools/monitoring.d.ts.map +1 -1
- package/dist/mcp/tools/monitoring.js +171 -2
- package/dist/mcp/tools/monitoring.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,11 +12,42 @@ export interface AppMetricsSummary {
|
|
|
12
12
|
appName: string;
|
|
13
13
|
requestCount: number;
|
|
14
14
|
avgResponseTime: number;
|
|
15
|
-
errorCount: number;
|
|
16
|
-
errorRate: number;
|
|
17
15
|
outboundCount: number;
|
|
18
16
|
outboundAvgResponseTime: number;
|
|
19
17
|
}
|
|
18
|
+
export interface PerformanceMetrics {
|
|
19
|
+
appName: string;
|
|
20
|
+
requestCount: number;
|
|
21
|
+
avgResponseTime: number;
|
|
22
|
+
maxResponseTime: number;
|
|
23
|
+
minResponseTime: number;
|
|
24
|
+
p50: number;
|
|
25
|
+
p95: number;
|
|
26
|
+
p99: number;
|
|
27
|
+
}
|
|
28
|
+
export interface TimeSeriesDataPoint {
|
|
29
|
+
timestamp: number;
|
|
30
|
+
appName: string;
|
|
31
|
+
requestCount: number;
|
|
32
|
+
avgResponseTime: number;
|
|
33
|
+
p95: number;
|
|
34
|
+
}
|
|
35
|
+
export interface WorkerMetrics {
|
|
36
|
+
appName: string;
|
|
37
|
+
workerId: string;
|
|
38
|
+
requestCount: number;
|
|
39
|
+
avgResponseTime: number;
|
|
40
|
+
maxResponseTime: number;
|
|
41
|
+
p95: number;
|
|
42
|
+
}
|
|
43
|
+
export interface CrossEnvMetrics {
|
|
44
|
+
appName: string;
|
|
45
|
+
envName: string;
|
|
46
|
+
requestCount: number;
|
|
47
|
+
avgResponseTime: number;
|
|
48
|
+
p95: number;
|
|
49
|
+
p99: number;
|
|
50
|
+
}
|
|
20
51
|
export interface MetricsExport {
|
|
21
52
|
environment: string;
|
|
22
53
|
period: {
|
|
@@ -27,10 +58,9 @@ export interface MetricsExport {
|
|
|
27
58
|
summary: {
|
|
28
59
|
totalRequests: number;
|
|
29
60
|
avgResponseTime: number;
|
|
30
|
-
totalErrors: number;
|
|
31
|
-
errorRate: number;
|
|
32
61
|
};
|
|
33
62
|
}
|
|
63
|
+
export type TimeSeriesGranularity = 'PT5M' | 'PT15M' | 'PT30M' | 'PT1H' | 'P1D';
|
|
34
64
|
export declare class MonitoringApi {
|
|
35
65
|
private readonly http;
|
|
36
66
|
private readonly cache;
|
|
@@ -49,7 +79,6 @@ export declare class MonitoringApi {
|
|
|
49
79
|
appName: string;
|
|
50
80
|
requestCount: number;
|
|
51
81
|
avgResponseTime: number;
|
|
52
|
-
errorCount: number;
|
|
53
82
|
}>>;
|
|
54
83
|
/**
|
|
55
84
|
* Get outbound metrics for a time range
|
|
@@ -63,6 +92,22 @@ export declare class MonitoringApi {
|
|
|
63
92
|
* Get combined app metrics for a time range
|
|
64
93
|
*/
|
|
65
94
|
getAppMetrics(orgId: string, envId: string, from: number, to: number, appName?: string): Promise<AppMetricsSummary[]>;
|
|
95
|
+
/**
|
|
96
|
+
* Get percentile-based performance metrics per app
|
|
97
|
+
*/
|
|
98
|
+
getPerformanceMetrics(orgId: string, envId: string, from: number, to: number, appName?: string): Promise<PerformanceMetrics[]>;
|
|
99
|
+
/**
|
|
100
|
+
* Get time-series metrics for trending analysis
|
|
101
|
+
*/
|
|
102
|
+
getTimeSeries(orgId: string, envId: string, from: number, to: number, granularity?: TimeSeriesGranularity, appName?: string): Promise<TimeSeriesDataPoint[]>;
|
|
103
|
+
/**
|
|
104
|
+
* Get per-worker/replica performance metrics
|
|
105
|
+
*/
|
|
106
|
+
getWorkerMetrics(orgId: string, envId: string, from: number, to: number, appName?: string): Promise<WorkerMetrics[]>;
|
|
107
|
+
/**
|
|
108
|
+
* Get cross-environment metrics comparison (no env filter)
|
|
109
|
+
*/
|
|
110
|
+
getCrossEnvMetrics(orgId: string, from: number, to: number): Promise<CrossEnvMetrics[]>;
|
|
66
111
|
/**
|
|
67
112
|
* Build a full metrics export for a period
|
|
68
113
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonitoringApi.d.ts","sourceRoot":"","sources":["../../src/api/MonitoringApi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,
|
|
1
|
+
{"version":3,"file":"MonitoringApi.d.ts","sourceRoot":"","sources":["../../src/api/MonitoringApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,13 +30,12 @@ export class MonitoringApi {
|
|
|
30
30
|
async getInboundMetrics(orgId, envId, from, to) {
|
|
31
31
|
const cacheKey = `mon:inbound:${orgId}:${envId}:${from}:${to}`;
|
|
32
32
|
return this.cache.getOrCompute(cacheKey, async () => {
|
|
33
|
-
const query = `SELECT COUNT(requests) AS "request_count", AVG(response_time) AS "avg_response_time",
|
|
33
|
+
const query = `SELECT COUNT(requests) AS "request_count", AVG(response_time) AS "avg_response_time", "app.name" FROM "mulesoft.app.inbound" WHERE "sub_org.id" = '${orgId}' AND "env.id" = '${envId}' AND timestamp BETWEEN ${from} AND ${to} GROUP BY "app.name"`;
|
|
34
34
|
const data = await this.search(query);
|
|
35
35
|
return data.map((row) => ({
|
|
36
36
|
appName: String(row['app.name'] || 'Unknown'),
|
|
37
37
|
requestCount: Number(row['request_count'] || 0),
|
|
38
38
|
avgResponseTime: Number(row['avg_response_time'] || 0),
|
|
39
|
-
errorCount: Number(row['error_count'] || 0),
|
|
40
39
|
}));
|
|
41
40
|
});
|
|
42
41
|
}
|
|
@@ -66,13 +65,10 @@ export class MonitoringApi {
|
|
|
66
65
|
const outboundByApp = new Map(outbound.map((o) => [o.appName, o]));
|
|
67
66
|
let results = inbound.map((row) => {
|
|
68
67
|
const ob = outboundByApp.get(row.appName);
|
|
69
|
-
const errorRate = row.requestCount > 0 ? (row.errorCount / row.requestCount) * 100 : 0;
|
|
70
68
|
return {
|
|
71
69
|
appName: row.appName,
|
|
72
70
|
requestCount: row.requestCount,
|
|
73
71
|
avgResponseTime: row.avgResponseTime,
|
|
74
|
-
errorCount: row.errorCount,
|
|
75
|
-
errorRate,
|
|
76
72
|
outboundCount: ob?.requestCount || 0,
|
|
77
73
|
outboundAvgResponseTime: ob?.avgResponseTime || 0,
|
|
78
74
|
};
|
|
@@ -84,8 +80,6 @@ export class MonitoringApi {
|
|
|
84
80
|
appName: ob.appName,
|
|
85
81
|
requestCount: 0,
|
|
86
82
|
avgResponseTime: 0,
|
|
87
|
-
errorCount: 0,
|
|
88
|
-
errorRate: 0,
|
|
89
83
|
outboundCount: ob.requestCount,
|
|
90
84
|
outboundAvgResponseTime: ob.avgResponseTime,
|
|
91
85
|
});
|
|
@@ -96,13 +90,97 @@ export class MonitoringApi {
|
|
|
96
90
|
}
|
|
97
91
|
return results;
|
|
98
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Get percentile-based performance metrics per app
|
|
95
|
+
*/
|
|
96
|
+
async getPerformanceMetrics(orgId, envId, from, to, appName) {
|
|
97
|
+
const cacheKey = `mon:perf:${orgId}:${envId}:${from}:${to}:${appName || ''}`;
|
|
98
|
+
return this.cache.getOrCompute(cacheKey, async () => {
|
|
99
|
+
let query = `SELECT COUNT(requests) AS "request_count", AVG(response_time) AS "avg_response_time", MAX(response_time) AS "max_response_time", MIN(response_time) AS "min_response_time", PERCENTILE(response_time, 0.5) AS "p50", PERCENTILE(response_time, 0.95) AS "p95", PERCENTILE(response_time, 0.99) AS "p99", "app.name" FROM "mulesoft.app.inbound" WHERE "sub_org.id" = '${orgId}' AND "env.id" = '${envId}' AND timestamp BETWEEN ${from} AND ${to}`;
|
|
100
|
+
if (appName) {
|
|
101
|
+
query += ` AND "app.name" = '${appName}'`;
|
|
102
|
+
}
|
|
103
|
+
query += ` GROUP BY "app.name"`;
|
|
104
|
+
const data = await this.search(query);
|
|
105
|
+
return data.map((row) => ({
|
|
106
|
+
appName: String(row['app.name'] || 'Unknown'),
|
|
107
|
+
requestCount: Number(row['request_count'] || 0),
|
|
108
|
+
avgResponseTime: Number(row['avg_response_time'] || 0),
|
|
109
|
+
maxResponseTime: Number(row['max_response_time'] || 0),
|
|
110
|
+
minResponseTime: Number(row['min_response_time'] || 0),
|
|
111
|
+
p50: Number(row['p50'] || 0),
|
|
112
|
+
p95: Number(row['p95'] || 0),
|
|
113
|
+
p99: Number(row['p99'] || 0),
|
|
114
|
+
}));
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get time-series metrics for trending analysis
|
|
119
|
+
*/
|
|
120
|
+
async getTimeSeries(orgId, envId, from, to, granularity = 'PT1H', appName) {
|
|
121
|
+
const cacheKey = `mon:ts:${orgId}:${envId}:${from}:${to}:${granularity}:${appName || ''}`;
|
|
122
|
+
return this.cache.getOrCompute(cacheKey, async () => {
|
|
123
|
+
let query = `SELECT timestamp, COUNT(requests) AS "request_count", AVG(response_time) AS "avg_response_time", PERCENTILE(response_time, 0.95) AS "p95", "app.name" FROM "mulesoft.app.inbound" WHERE "sub_org.id" = '${orgId}' AND "env.id" = '${envId}' AND timestamp BETWEEN ${from} AND ${to}`;
|
|
124
|
+
if (appName) {
|
|
125
|
+
query += ` AND "app.name" = '${appName}'`;
|
|
126
|
+
}
|
|
127
|
+
query += ` GROUP BY "app.name" TIMESERIES ${granularity}`;
|
|
128
|
+
const data = await this.search(query, 1000);
|
|
129
|
+
return data.map((row) => ({
|
|
130
|
+
timestamp: Number(row['timestamp'] || 0),
|
|
131
|
+
appName: String(row['app.name'] || 'Unknown'),
|
|
132
|
+
requestCount: Number(row['request_count'] || 0),
|
|
133
|
+
avgResponseTime: Number(row['avg_response_time'] || 0),
|
|
134
|
+
p95: Number(row['p95'] || 0),
|
|
135
|
+
}));
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get per-worker/replica performance metrics
|
|
140
|
+
*/
|
|
141
|
+
async getWorkerMetrics(orgId, envId, from, to, appName) {
|
|
142
|
+
const cacheKey = `mon:workers:${orgId}:${envId}:${from}:${to}:${appName || ''}`;
|
|
143
|
+
return this.cache.getOrCompute(cacheKey, async () => {
|
|
144
|
+
let query = `SELECT COUNT(requests) AS "request_count", AVG(response_time) AS "avg_response_time", MAX(response_time) AS "max_response_time", PERCENTILE(response_time, 0.95) AS "p95", "app.name", "worker.id" FROM "mulesoft.app.inbound" WHERE "sub_org.id" = '${orgId}' AND "env.id" = '${envId}' AND timestamp BETWEEN ${from} AND ${to}`;
|
|
145
|
+
if (appName) {
|
|
146
|
+
query += ` AND "app.name" = '${appName}'`;
|
|
147
|
+
}
|
|
148
|
+
query += ` GROUP BY "app.name", "worker.id"`;
|
|
149
|
+
const data = await this.search(query, 500);
|
|
150
|
+
return data.map((row) => ({
|
|
151
|
+
appName: String(row['app.name'] || 'Unknown'),
|
|
152
|
+
workerId: String(row['worker.id'] || 'Unknown'),
|
|
153
|
+
requestCount: Number(row['request_count'] || 0),
|
|
154
|
+
avgResponseTime: Number(row['avg_response_time'] || 0),
|
|
155
|
+
maxResponseTime: Number(row['max_response_time'] || 0),
|
|
156
|
+
p95: Number(row['p95'] || 0),
|
|
157
|
+
}));
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Get cross-environment metrics comparison (no env filter)
|
|
162
|
+
*/
|
|
163
|
+
async getCrossEnvMetrics(orgId, from, to) {
|
|
164
|
+
const cacheKey = `mon:crossenv:${orgId}:${from}:${to}`;
|
|
165
|
+
return this.cache.getOrCompute(cacheKey, async () => {
|
|
166
|
+
const query = `SELECT COUNT(requests) AS "request_count", AVG(response_time) AS "avg_response_time", PERCENTILE(response_time, 0.95) AS "p95", PERCENTILE(response_time, 0.99) AS "p99", "app.name", "env.name" FROM "mulesoft.app.inbound" WHERE "sub_org.id" = '${orgId}' AND timestamp BETWEEN ${from} AND ${to} GROUP BY "app.name", "env.name"`;
|
|
167
|
+
const data = await this.search(query, 500);
|
|
168
|
+
return data.map((row) => ({
|
|
169
|
+
appName: String(row['app.name'] || 'Unknown'),
|
|
170
|
+
envName: String(row['env.name'] || 'Unknown'),
|
|
171
|
+
requestCount: Number(row['request_count'] || 0),
|
|
172
|
+
avgResponseTime: Number(row['avg_response_time'] || 0),
|
|
173
|
+
p95: Number(row['p95'] || 0),
|
|
174
|
+
p99: Number(row['p99'] || 0),
|
|
175
|
+
}));
|
|
176
|
+
});
|
|
177
|
+
}
|
|
99
178
|
/**
|
|
100
179
|
* Build a full metrics export for a period
|
|
101
180
|
*/
|
|
102
181
|
async exportMetrics(orgId, envId, envName, from, to) {
|
|
103
182
|
const apps = await this.getAppMetrics(orgId, envId, from, to);
|
|
104
183
|
const totalRequests = apps.reduce((sum, m) => sum + m.requestCount, 0);
|
|
105
|
-
const totalErrors = apps.reduce((sum, m) => sum + m.errorCount, 0);
|
|
106
184
|
const avgResponseTime = apps.length > 0
|
|
107
185
|
? apps.reduce((sum, m) => sum + m.avgResponseTime * m.requestCount, 0) / (totalRequests || 1)
|
|
108
186
|
: 0;
|
|
@@ -116,8 +194,6 @@ export class MonitoringApi {
|
|
|
116
194
|
summary: {
|
|
117
195
|
totalRequests,
|
|
118
196
|
avgResponseTime,
|
|
119
|
-
totalErrors,
|
|
120
|
-
errorRate: totalRequests > 0 ? (totalErrors / totalRequests) * 100 : 0,
|
|
121
197
|
},
|
|
122
198
|
};
|
|
123
199
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonitoringApi.js","sourceRoot":"","sources":["../../src/api/MonitoringApi.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"MonitoringApi.js","sourceRoot":"","sources":["../../src/api/MonitoringApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Monitor CLI Commands
|
|
3
|
-
* anc monitor
|
|
3
|
+
* anc monitor view --env <envName> [-a <app>] [--from <date>] [--to <date>]
|
|
4
|
+
* anc monitor perf --env <envName> [-a <app>]
|
|
5
|
+
* anc monitor trend --env <envName> --app <app> [--granularity <5m|15m|30m|1h|1d>]
|
|
6
|
+
* anc monitor workers --env <envName> [-a <app>]
|
|
7
|
+
* anc monitor compare [--from <date>] [--to <date>]
|
|
4
8
|
* anc monitor download --env <envName> --from <date> --to <date> [--output <path>] [--format json|csv]
|
|
5
9
|
*/
|
|
6
10
|
import { Command } from 'commander';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/commands/monitor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/commands/monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,wBAAgB,oBAAoB,IAAI,OAAO,CA4R9C"}
|
package/dist/commands/monitor.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Monitor CLI Commands
|
|
3
|
-
* anc monitor
|
|
3
|
+
* anc monitor view --env <envName> [-a <app>] [--from <date>] [--to <date>]
|
|
4
|
+
* anc monitor perf --env <envName> [-a <app>]
|
|
5
|
+
* anc monitor trend --env <envName> --app <app> [--granularity <5m|15m|30m|1h|1d>]
|
|
6
|
+
* anc monitor workers --env <envName> [-a <app>]
|
|
7
|
+
* anc monitor compare [--from <date>] [--to <date>]
|
|
4
8
|
* anc monitor download --env <envName> --from <date> --to <date> [--output <path>] [--format json|csv]
|
|
5
9
|
*/
|
|
6
10
|
import { Command } from 'commander';
|
|
@@ -9,11 +13,18 @@ import chalk from 'chalk';
|
|
|
9
13
|
import { log } from '../utils/logger.js';
|
|
10
14
|
import { errorMessage } from '../utils/errors.js';
|
|
11
15
|
import { parseDate } from '../utils/dates.js';
|
|
12
|
-
import { printTable, formatMs } from '../utils/formatter.js';
|
|
16
|
+
import { printTable, formatMs, formatDate } from '../utils/formatter.js';
|
|
13
17
|
import { createClient } from './shared.js';
|
|
18
|
+
const GRANULARITY_MAP = {
|
|
19
|
+
'5m': 'PT5M',
|
|
20
|
+
'15m': 'PT15M',
|
|
21
|
+
'30m': 'PT30M',
|
|
22
|
+
'1h': 'PT1H',
|
|
23
|
+
'1d': 'P1D',
|
|
24
|
+
};
|
|
14
25
|
function metricsToCSV(metrics) {
|
|
15
|
-
const header = 'App Name,Requests,Avg Response Time (ms),
|
|
16
|
-
const rows = metrics.map((m) => `${m.appName},${m.requestCount},${m.avgResponseTime.toFixed(1)},${m.
|
|
26
|
+
const header = 'App Name,Requests,Avg Response Time (ms),Outbound Requests,Outbound Avg Response Time (ms)';
|
|
27
|
+
const rows = metrics.map((m) => `${m.appName},${m.requestCount},${m.avgResponseTime.toFixed(1)},${m.outboundCount},${m.outboundAvgResponseTime.toFixed(1)}`);
|
|
17
28
|
return [header, ...rows].join('\n');
|
|
18
29
|
}
|
|
19
30
|
export function createMonitorCommand() {
|
|
@@ -32,26 +43,31 @@ export function createMonitorCommand() {
|
|
|
32
43
|
const env = await client.accessManagement.resolveEnvironment(orgId, opts.env);
|
|
33
44
|
const to = opts.to ? parseDate(opts.to) : Date.now();
|
|
34
45
|
const from = opts.from ? parseDate(opts.from) : to - 24 * 60 * 60 * 1000;
|
|
35
|
-
const metrics = await
|
|
46
|
+
const [metrics, perf] = await Promise.all([
|
|
47
|
+
client.monitoring.getAppMetrics(orgId, env.id, from, to, opts.app),
|
|
48
|
+
client.monitoring.getPerformanceMetrics(orgId, env.id, from, to, opts.app),
|
|
49
|
+
]);
|
|
36
50
|
if (metrics.length === 0) {
|
|
37
51
|
log.warn('No metrics data available for the specified period');
|
|
38
52
|
return;
|
|
39
53
|
}
|
|
54
|
+
const perfByApp = new Map(perf.map((p) => [p.appName, p]));
|
|
40
55
|
log.header(`Metrics for ${env.name} (${new Date(from).toLocaleDateString()} → ${new Date(to).toLocaleDateString()})`);
|
|
41
|
-
printTable(['Application', 'Requests', 'Avg Response', '
|
|
42
|
-
m.appName
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
56
|
+
printTable(['Application', 'Requests', 'Avg Response', 'p95', 'p99', 'Outbound', 'Outbound Avg'], metrics.map((m) => {
|
|
57
|
+
const p = perfByApp.get(m.appName);
|
|
58
|
+
return [
|
|
59
|
+
m.appName,
|
|
60
|
+
String(m.requestCount),
|
|
61
|
+
formatMs(m.avgResponseTime),
|
|
62
|
+
p ? formatMs(p.p95) : '-',
|
|
63
|
+
p ? formatMs(p.p99) : '-',
|
|
64
|
+
String(m.outboundCount),
|
|
65
|
+
formatMs(m.outboundAvgResponseTime),
|
|
66
|
+
];
|
|
67
|
+
}));
|
|
50
68
|
const totalReqs = metrics.reduce((sum, m) => sum + m.requestCount, 0);
|
|
51
|
-
const totalErrors = metrics.reduce((sum, m) => sum + m.errorCount, 0);
|
|
52
69
|
console.log();
|
|
53
70
|
log.kv('Total Requests', totalReqs);
|
|
54
|
-
log.kv('Total Errors', totalErrors);
|
|
55
71
|
log.kv('Apps', metrics.length);
|
|
56
72
|
}
|
|
57
73
|
catch (error) {
|
|
@@ -59,6 +75,145 @@ export function createMonitorCommand() {
|
|
|
59
75
|
process.exit(1);
|
|
60
76
|
}
|
|
61
77
|
});
|
|
78
|
+
monitor
|
|
79
|
+
.command('perf')
|
|
80
|
+
.description('View percentile performance metrics (p50/p95/p99)')
|
|
81
|
+
.option('-a, --app <name>', 'Filter by application name')
|
|
82
|
+
.requiredOption('-e, --env <name>', 'Environment name')
|
|
83
|
+
.option('--from <date>', 'Start time (default: 24h ago)')
|
|
84
|
+
.option('--to <date>', 'End time (default: now)')
|
|
85
|
+
.action(async (opts) => {
|
|
86
|
+
try {
|
|
87
|
+
const client = createClient();
|
|
88
|
+
const orgId = await client.getDefaultOrgId();
|
|
89
|
+
const env = await client.accessManagement.resolveEnvironment(orgId, opts.env);
|
|
90
|
+
const to = opts.to ? parseDate(opts.to) : Date.now();
|
|
91
|
+
const from = opts.from ? parseDate(opts.from) : to - 24 * 60 * 60 * 1000;
|
|
92
|
+
const metrics = await client.monitoring.getPerformanceMetrics(orgId, env.id, from, to, opts.app);
|
|
93
|
+
if (metrics.length === 0) {
|
|
94
|
+
log.warn('No performance data available for the specified period');
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
log.header(`Performance — ${env.name} (${new Date(from).toLocaleDateString()} → ${new Date(to).toLocaleDateString()})`);
|
|
98
|
+
printTable(['Application', 'Requests', 'Avg', 'p50', 'p95', 'p99', 'Min', 'Max'], metrics.map((m) => [
|
|
99
|
+
m.appName,
|
|
100
|
+
String(m.requestCount),
|
|
101
|
+
formatMs(m.avgResponseTime),
|
|
102
|
+
formatMs(m.p50),
|
|
103
|
+
formatMs(m.p95),
|
|
104
|
+
formatMs(m.p99),
|
|
105
|
+
formatMs(m.minResponseTime),
|
|
106
|
+
formatMs(m.maxResponseTime),
|
|
107
|
+
]));
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
log.error(`Performance metrics failed: ${errorMessage(error)}`);
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
monitor
|
|
115
|
+
.command('trend')
|
|
116
|
+
.description('View time-series metrics for an application')
|
|
117
|
+
.requiredOption('-e, --env <name>', 'Environment name')
|
|
118
|
+
.requiredOption('-a, --app <name>', 'Application name')
|
|
119
|
+
.option('-g, --granularity <interval>', 'Time bucket size: 5m, 15m, 30m, 1h, 1d (default: 1h)', '1h')
|
|
120
|
+
.option('--from <date>', 'Start time (default: 24h ago)')
|
|
121
|
+
.option('--to <date>', 'End time (default: now)')
|
|
122
|
+
.action(async (opts) => {
|
|
123
|
+
try {
|
|
124
|
+
const granularity = GRANULARITY_MAP[opts.granularity];
|
|
125
|
+
if (!granularity) {
|
|
126
|
+
log.error(`Invalid granularity "${opts.granularity}". Use: 5m, 15m, 30m, 1h, 1d`);
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
const client = createClient();
|
|
130
|
+
const orgId = await client.getDefaultOrgId();
|
|
131
|
+
const env = await client.accessManagement.resolveEnvironment(orgId, opts.env);
|
|
132
|
+
const to = opts.to ? parseDate(opts.to) : Date.now();
|
|
133
|
+
const from = opts.from ? parseDate(opts.from) : to - 24 * 60 * 60 * 1000;
|
|
134
|
+
const data = await client.monitoring.getTimeSeries(orgId, env.id, from, to, granularity, opts.app);
|
|
135
|
+
if (data.length === 0) {
|
|
136
|
+
log.warn('No time-series data available for the specified period');
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
log.header(`Trend — ${opts.app} in ${env.name} (${opts.granularity} buckets)`);
|
|
140
|
+
printTable(['Time', 'Requests', 'Avg Response', 'p95'], data.map((d) => [
|
|
141
|
+
formatDate(d.timestamp),
|
|
142
|
+
String(d.requestCount),
|
|
143
|
+
formatMs(d.avgResponseTime),
|
|
144
|
+
formatMs(d.p95),
|
|
145
|
+
]));
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
log.error(`Trend metrics failed: ${errorMessage(error)}`);
|
|
149
|
+
process.exit(1);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
monitor
|
|
153
|
+
.command('workers')
|
|
154
|
+
.description('View per-worker/replica performance metrics')
|
|
155
|
+
.option('-a, --app <name>', 'Filter by application name')
|
|
156
|
+
.requiredOption('-e, --env <name>', 'Environment name')
|
|
157
|
+
.option('--from <date>', 'Start time (default: 24h ago)')
|
|
158
|
+
.option('--to <date>', 'End time (default: now)')
|
|
159
|
+
.action(async (opts) => {
|
|
160
|
+
try {
|
|
161
|
+
const client = createClient();
|
|
162
|
+
const orgId = await client.getDefaultOrgId();
|
|
163
|
+
const env = await client.accessManagement.resolveEnvironment(orgId, opts.env);
|
|
164
|
+
const to = opts.to ? parseDate(opts.to) : Date.now();
|
|
165
|
+
const from = opts.from ? parseDate(opts.from) : to - 24 * 60 * 60 * 1000;
|
|
166
|
+
const metrics = await client.monitoring.getWorkerMetrics(orgId, env.id, from, to, opts.app);
|
|
167
|
+
if (metrics.length === 0) {
|
|
168
|
+
log.warn('No worker metrics available for the specified period');
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
log.header(`Workers — ${env.name} (${new Date(from).toLocaleDateString()} → ${new Date(to).toLocaleDateString()})`);
|
|
172
|
+
printTable(['Application', 'Worker', 'Requests', 'Avg Response', 'p95', 'Max'], metrics.map((m) => [
|
|
173
|
+
m.appName,
|
|
174
|
+
m.workerId,
|
|
175
|
+
String(m.requestCount),
|
|
176
|
+
formatMs(m.avgResponseTime),
|
|
177
|
+
formatMs(m.p95),
|
|
178
|
+
formatMs(m.maxResponseTime),
|
|
179
|
+
]));
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
log.error(`Worker metrics failed: ${errorMessage(error)}`);
|
|
183
|
+
process.exit(1);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
monitor
|
|
187
|
+
.command('compare')
|
|
188
|
+
.description('Compare performance across all environments')
|
|
189
|
+
.option('--from <date>', 'Start time (default: 24h ago)')
|
|
190
|
+
.option('--to <date>', 'End time (default: now)')
|
|
191
|
+
.action(async (opts) => {
|
|
192
|
+
try {
|
|
193
|
+
const client = createClient();
|
|
194
|
+
const orgId = await client.getDefaultOrgId();
|
|
195
|
+
const to = opts.to ? parseDate(opts.to) : Date.now();
|
|
196
|
+
const from = opts.from ? parseDate(opts.from) : to - 24 * 60 * 60 * 1000;
|
|
197
|
+
const metrics = await client.monitoring.getCrossEnvMetrics(orgId, from, to);
|
|
198
|
+
if (metrics.length === 0) {
|
|
199
|
+
log.warn('No cross-environment metrics available');
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
log.header(`Cross-Environment Comparison (${new Date(from).toLocaleDateString()} → ${new Date(to).toLocaleDateString()})`);
|
|
203
|
+
printTable(['Application', 'Environment', 'Requests', 'Avg Response', 'p95', 'p99'], metrics.map((m) => [
|
|
204
|
+
m.appName,
|
|
205
|
+
m.envName,
|
|
206
|
+
String(m.requestCount),
|
|
207
|
+
formatMs(m.avgResponseTime),
|
|
208
|
+
formatMs(m.p95),
|
|
209
|
+
formatMs(m.p99),
|
|
210
|
+
]));
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
log.error(`Cross-env comparison failed: ${errorMessage(error)}`);
|
|
214
|
+
process.exit(1);
|
|
215
|
+
}
|
|
216
|
+
});
|
|
62
217
|
monitor
|
|
63
218
|
.command('download')
|
|
64
219
|
.description('Export monitoring data to file')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/commands/monitor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/commands/monitor.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export type { TokenStore, AnypointTokens } from './auth/TokenStore.js';
|
|
|
9
9
|
export { AccessManagementApi, type UserProfile, type Environment } from './api/AccessManagementApi.js';
|
|
10
10
|
export { CloudHub2Api, type CH2Deployment, type CreateDeploymentPayload } from './api/CloudHub2Api.js';
|
|
11
11
|
export { LogsApi, type LogEntry } from './api/LogsApi.js';
|
|
12
|
-
export { MonitoringApi, type AppMetricsSummary, type MetricsExport } from './api/MonitoringApi.js';
|
|
12
|
+
export { MonitoringApi, type AppMetricsSummary, type MetricsExport, type PerformanceMetrics, type TimeSeriesDataPoint, type WorkerMetrics, type CrossEnvMetrics, type TimeSeriesGranularity, } from './api/MonitoringApi.js';
|
|
13
13
|
export { ExchangeApi, type ExchangeAsset, type ExchangeAssetDetail } from './api/ExchangeApi.js';
|
|
14
14
|
export { ApiManagerApi, type ApiInstance, type ApiAsset, type ApiPolicy, type SlaTier } from './api/ApiManagerApi.js';
|
|
15
15
|
export { DesignCenterApi, type DesignCenterProject, type DesignCenterFile, type PublishToExchangeOptions, } from './api/DesignCenterApi.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvF,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,EAAE,mBAAmB,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvF,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,EAAE,mBAAmB,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACH,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EACH,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,GAChC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@ export { FileStore } from './auth/FileStore.js';
|
|
|
11
11
|
export { AccessManagementApi } from './api/AccessManagementApi.js';
|
|
12
12
|
export { CloudHub2Api } from './api/CloudHub2Api.js';
|
|
13
13
|
export { LogsApi } from './api/LogsApi.js';
|
|
14
|
-
export { MonitoringApi } from './api/MonitoringApi.js';
|
|
14
|
+
export { MonitoringApi, } from './api/MonitoringApi.js';
|
|
15
15
|
export { ExchangeApi } from './api/ExchangeApi.js';
|
|
16
16
|
export { ApiManagerApi } from './api/ApiManagerApi.js';
|
|
17
17
|
export { DesignCenterApi, } from './api/DesignCenterApi.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,OAAO,EAAE,cAAc,EAA6B,MAAM,4BAA4B,CAAC;AAEvF,OAAO;AACP,OAAO,EAAE,YAAY,EAA4C,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAoB,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO;AACP,OAAO,EAAE,mBAAmB,EAAsC,MAAM,8BAA8B,CAAC;AACvG,OAAO,EAAE,YAAY,EAAoD,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,OAAO,EAAiB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,OAAO,EAAE,cAAc,EAA6B,MAAM,4BAA4B,CAAC;AAEvF,OAAO;AACP,OAAO,EAAE,YAAY,EAA4C,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAoB,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO;AACP,OAAO,EAAE,mBAAmB,EAAsC,MAAM,8BAA8B,CAAC;AACvG,OAAO,EAAE,YAAY,EAAoD,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,OAAO,EAAiB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACH,aAAa,GAQhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAgD,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAiE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EACH,eAAe,GAIlB,MAAM,0BAA0B,CAAC;AAElC,QAAQ;AACR,OAAO,EAAE,UAAU,EAAyB,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAmB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAA0B,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP Tool Registrar — Monitoring tools
|
|
3
|
-
* get_metrics
|
|
3
|
+
* get_metrics, get_performance_metrics, get_metrics_timeseries,
|
|
4
|
+
* get_worker_metrics, compare_environments
|
|
4
5
|
*/
|
|
5
6
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
6
7
|
import type { AnypointClient } from '../../client/AnypointClient.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitoring.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/monitoring.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"monitoring.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/monitoring.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QA4QhF"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP Tool Registrar — Monitoring tools
|
|
3
|
-
* get_metrics
|
|
3
|
+
* get_metrics, get_performance_metrics, get_metrics_timeseries,
|
|
4
|
+
* get_worker_metrics, compare_environments
|
|
4
5
|
*/
|
|
5
6
|
import { z } from 'zod';
|
|
6
7
|
import { mcpError } from './shared.js';
|
|
7
8
|
export function registerMonitoringTools(server, client) {
|
|
8
9
|
server.registerTool('get_metrics', {
|
|
9
10
|
title: 'Get Application Metrics',
|
|
10
|
-
description: 'Fetches runtime performance metrics for applications in an environment using Anypoint Monitoring AMQL queries. Returns inbound request count, average response time (ms),
|
|
11
|
+
description: 'Fetches runtime performance metrics for applications in an environment using Anypoint Monitoring AMQL queries. Returns inbound request count, average response time (ms), outbound request count, and outbound average response time. Use this to identify performance bottlenecks or traffic patterns.',
|
|
11
12
|
inputSchema: {
|
|
12
13
|
environment: z.string().describe('Environment name or ID'),
|
|
13
14
|
hoursBack: z
|
|
@@ -44,5 +45,173 @@ export function registerMonitoringTools(server, client) {
|
|
|
44
45
|
return mcpError(error);
|
|
45
46
|
}
|
|
46
47
|
});
|
|
48
|
+
server.registerTool('get_performance_metrics', {
|
|
49
|
+
title: 'Get Performance Metrics (Percentiles)',
|
|
50
|
+
description: 'Fetches detailed percentile-based performance metrics per application: p50, p95, p99 response times, min/max latency, and request count. Use this for SLA validation, identifying tail latency issues, and performance baselining. For basic request counts and averages, use get_metrics instead.',
|
|
51
|
+
inputSchema: {
|
|
52
|
+
environment: z
|
|
53
|
+
.string()
|
|
54
|
+
.describe('Environment name (e.g. "Development", "Production") or environment ID'),
|
|
55
|
+
hoursBack: z
|
|
56
|
+
.number()
|
|
57
|
+
.optional()
|
|
58
|
+
.describe('Time window in hours (default: 24). Use 1 for recent, 168 for weekly trends'),
|
|
59
|
+
appName: z
|
|
60
|
+
.string()
|
|
61
|
+
.optional()
|
|
62
|
+
.describe('Filter to a specific application name. Omit to get metrics for all apps'),
|
|
63
|
+
},
|
|
64
|
+
annotations: { readOnlyHint: true },
|
|
65
|
+
}, async ({ environment, hoursBack, appName }) => {
|
|
66
|
+
try {
|
|
67
|
+
const orgId = await client.getDefaultOrgId();
|
|
68
|
+
const env = await client.accessManagement.resolveEnvironment(orgId, environment);
|
|
69
|
+
const to = Date.now();
|
|
70
|
+
const from = to - (hoursBack || 24) * 60 * 60 * 1000;
|
|
71
|
+
const metrics = await client.monitoring.getPerformanceMetrics(orgId, env.id, from, to, appName);
|
|
72
|
+
return {
|
|
73
|
+
content: [
|
|
74
|
+
{
|
|
75
|
+
type: 'text',
|
|
76
|
+
text: JSON.stringify({
|
|
77
|
+
environment: env.name,
|
|
78
|
+
period: { from: new Date(from).toISOString(), to: new Date(to).toISOString() },
|
|
79
|
+
apps: metrics,
|
|
80
|
+
}, null, 2),
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
return mcpError(error);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
server.registerTool('get_metrics_timeseries', {
|
|
90
|
+
title: 'Get Metrics Time Series',
|
|
91
|
+
description: 'Fetches time-series metrics for trending analysis. Returns timestamped buckets with request count, average response time, and p95 latency per app. Use this to spot degradation trends, traffic spikes, or correlate performance changes with deployments.',
|
|
92
|
+
inputSchema: {
|
|
93
|
+
environment: z
|
|
94
|
+
.string()
|
|
95
|
+
.describe('Environment name (e.g. "Development", "Production") or environment ID'),
|
|
96
|
+
hoursBack: z
|
|
97
|
+
.number()
|
|
98
|
+
.optional()
|
|
99
|
+
.describe('Time window in hours (default: 24). Use 1 for recent, 168 for weekly trends'),
|
|
100
|
+
granularity: z
|
|
101
|
+
.enum(['5m', '15m', '30m', '1h', '1d'])
|
|
102
|
+
.optional()
|
|
103
|
+
.describe('Time bucket size (default: "1h"). Use "5m" for short windows, "1d" for weekly'),
|
|
104
|
+
appName: z
|
|
105
|
+
.string()
|
|
106
|
+
.optional()
|
|
107
|
+
.describe('Filter to a specific application name. Omit to get time series for all apps'),
|
|
108
|
+
},
|
|
109
|
+
annotations: { readOnlyHint: true },
|
|
110
|
+
}, async ({ environment, hoursBack, granularity, appName }) => {
|
|
111
|
+
try {
|
|
112
|
+
const orgId = await client.getDefaultOrgId();
|
|
113
|
+
const env = await client.accessManagement.resolveEnvironment(orgId, environment);
|
|
114
|
+
const to = Date.now();
|
|
115
|
+
const from = to - (hoursBack || 24) * 60 * 60 * 1000;
|
|
116
|
+
const granularityMap = {
|
|
117
|
+
'5m': 'PT5M',
|
|
118
|
+
'15m': 'PT15M',
|
|
119
|
+
'30m': 'PT30M',
|
|
120
|
+
'1h': 'PT1H',
|
|
121
|
+
'1d': 'P1D',
|
|
122
|
+
};
|
|
123
|
+
const g = granularityMap[granularity || '1h'];
|
|
124
|
+
const data = await client.monitoring.getTimeSeries(orgId, env.id, from, to, g, appName);
|
|
125
|
+
return {
|
|
126
|
+
content: [
|
|
127
|
+
{
|
|
128
|
+
type: 'text',
|
|
129
|
+
text: JSON.stringify({
|
|
130
|
+
environment: env.name,
|
|
131
|
+
period: { from: new Date(from).toISOString(), to: new Date(to).toISOString() },
|
|
132
|
+
granularity: granularity || '1h',
|
|
133
|
+
dataPoints: data,
|
|
134
|
+
}, null, 2),
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
return mcpError(error);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
server.registerTool('get_worker_metrics', {
|
|
144
|
+
title: 'Get Worker/Replica Metrics',
|
|
145
|
+
description: 'Fetches per-worker (per-replica) performance metrics: request count, average response time, max latency, and p95 for each worker ID. Use this to detect unhealthy replicas, identify load imbalance between workers, or pinpoint specific instances with elevated latency.',
|
|
146
|
+
inputSchema: {
|
|
147
|
+
environment: z
|
|
148
|
+
.string()
|
|
149
|
+
.describe('Environment name (e.g. "Development", "Production") or environment ID'),
|
|
150
|
+
hoursBack: z
|
|
151
|
+
.number()
|
|
152
|
+
.optional()
|
|
153
|
+
.describe('Time window in hours (default: 24). Use 1 for recent, 168 for weekly trends'),
|
|
154
|
+
appName: z
|
|
155
|
+
.string()
|
|
156
|
+
.optional()
|
|
157
|
+
.describe('Filter to a specific application name. Omit to get worker metrics for all apps'),
|
|
158
|
+
},
|
|
159
|
+
annotations: { readOnlyHint: true },
|
|
160
|
+
}, async ({ environment, hoursBack, appName }) => {
|
|
161
|
+
try {
|
|
162
|
+
const orgId = await client.getDefaultOrgId();
|
|
163
|
+
const env = await client.accessManagement.resolveEnvironment(orgId, environment);
|
|
164
|
+
const to = Date.now();
|
|
165
|
+
const from = to - (hoursBack || 24) * 60 * 60 * 1000;
|
|
166
|
+
const metrics = await client.monitoring.getWorkerMetrics(orgId, env.id, from, to, appName);
|
|
167
|
+
return {
|
|
168
|
+
content: [
|
|
169
|
+
{
|
|
170
|
+
type: 'text',
|
|
171
|
+
text: JSON.stringify({
|
|
172
|
+
environment: env.name,
|
|
173
|
+
period: { from: new Date(from).toISOString(), to: new Date(to).toISOString() },
|
|
174
|
+
workers: metrics,
|
|
175
|
+
}, null, 2),
|
|
176
|
+
},
|
|
177
|
+
],
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
return mcpError(error);
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
server.registerTool('compare_env_performance', {
|
|
185
|
+
title: 'Compare Environment Performance',
|
|
186
|
+
description: 'Compares application response-time performance across all environments (Development, Sandbox, Production) without requiring an environment filter. Returns per-app, per-environment metrics including request count, average response time, p95, and p99 latency. Use this to validate that staging matches production behavior, spot environment-specific degradation, or baseline performance across the org.',
|
|
187
|
+
inputSchema: {
|
|
188
|
+
hoursBack: z
|
|
189
|
+
.number()
|
|
190
|
+
.optional()
|
|
191
|
+
.describe('Time window in hours (default: 24). Use 1 for recent, 168 for weekly trends'),
|
|
192
|
+
},
|
|
193
|
+
annotations: { readOnlyHint: true },
|
|
194
|
+
}, async ({ hoursBack }) => {
|
|
195
|
+
try {
|
|
196
|
+
const orgId = await client.getDefaultOrgId();
|
|
197
|
+
const to = Date.now();
|
|
198
|
+
const from = to - (hoursBack || 24) * 60 * 60 * 1000;
|
|
199
|
+
const metrics = await client.monitoring.getCrossEnvMetrics(orgId, from, to);
|
|
200
|
+
return {
|
|
201
|
+
content: [
|
|
202
|
+
{
|
|
203
|
+
type: 'text',
|
|
204
|
+
text: JSON.stringify({
|
|
205
|
+
period: { from: new Date(from).toISOString(), to: new Date(to).toISOString() },
|
|
206
|
+
environments: metrics,
|
|
207
|
+
}, null, 2),
|
|
208
|
+
},
|
|
209
|
+
],
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
return mcpError(error);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
47
216
|
}
|
|
48
217
|
//# sourceMappingURL=monitoring.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../../src/mcp/tools/monitoring.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../../src/mcp/tools/monitoring.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sfdxy/anypoint-connect",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "CLI + MCP toolkit for Anypoint Platform — deploy, tail logs, pull metrics, manage API specs, with production safety nets",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|