@emmvish/stable-request 2.1.7 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +254 -4
- package/dist/constants/index.d.ts +9 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +73 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/core/stable-api-gateway.d.ts.map +1 -1
- package/dist/core/stable-api-gateway.js +10 -1
- package/dist/core/stable-api-gateway.js.map +1 -1
- package/dist/core/stable-function.d.ts.map +1 -1
- package/dist/core/stable-function.js +191 -170
- package/dist/core/stable-function.js.map +1 -1
- package/dist/core/stable-request.d.ts.map +1 -1
- package/dist/core/stable-request.js +8 -3
- package/dist/core/stable-request.js.map +1 -1
- package/dist/core/stable-workflow.d.ts.map +1 -1
- package/dist/core/stable-workflow.js +13 -1
- package/dist/core/stable-workflow.js.map +1 -1
- package/dist/enums/index.d.ts +10 -0
- package/dist/enums/index.d.ts.map +1 -1
- package/dist/enums/index.js +12 -0
- package/dist/enums/index.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +117 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utilities/execute-branch-workflow.d.ts.map +1 -1
- package/dist/utilities/execute-branch-workflow.js +18 -1
- package/dist/utilities/execute-branch-workflow.js.map +1 -1
- package/dist/utilities/execute-phase.d.ts.map +1 -1
- package/dist/utilities/execute-phase.js +7 -0
- package/dist/utilities/execute-phase.js.map +1 -1
- package/dist/utilities/execute-sequentially.d.ts.map +1 -1
- package/dist/utilities/execute-sequentially.js +0 -1
- package/dist/utilities/execute-sequentially.js.map +1 -1
- package/dist/utilities/execute-with-timeout.d.ts +6 -0
- package/dist/utilities/execute-with-timeout.d.ts.map +1 -0
- package/dist/utilities/execute-with-timeout.js +28 -0
- package/dist/utilities/execute-with-timeout.js.map +1 -0
- package/dist/utilities/execute-workflow-graph.d.ts.map +1 -1
- package/dist/utilities/execute-workflow-graph.js +4 -0
- package/dist/utilities/execute-workflow-graph.js.map +1 -1
- package/dist/utilities/index.d.ts +2 -0
- package/dist/utilities/index.d.ts.map +1 -1
- package/dist/utilities/index.js +2 -0
- package/dist/utilities/index.js.map +1 -1
- package/dist/utilities/metrics-aggregator.d.ts +0 -36
- package/dist/utilities/metrics-aggregator.d.ts.map +1 -1
- package/dist/utilities/metrics-aggregator.js +1 -42
- package/dist/utilities/metrics-aggregator.js.map +1 -1
- package/dist/utilities/metrics-validator.d.ts +80 -0
- package/dist/utilities/metrics-validator.d.ts.map +1 -0
- package/dist/utilities/metrics-validator.js +274 -0
- package/dist/utilities/metrics-validator.js.map +1 -0
- package/dist/utilities/prepare-api-function-options.d.ts.map +1 -1
- package/dist/utilities/prepare-api-function-options.js +1 -0
- package/dist/utilities/prepare-api-function-options.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -68,6 +68,7 @@ Every execution—whether a single request, a pure function, or an entire workfl
|
|
|
68
68
|
- **Circuit breaker** to fail fast and protect downstream systems
|
|
69
69
|
- **Caching** for idempotent read operations
|
|
70
70
|
- **Rate & concurrency limits** to respect external constraints
|
|
71
|
+
- **Metrics guardrails** to validate execution against thresholds with automatic anomaly detection
|
|
71
72
|
|
|
72
73
|
### Type Safety
|
|
73
74
|
|
|
@@ -469,6 +470,196 @@ console.log(`Graph workflow success: ${result.success}`);
|
|
|
469
470
|
|
|
470
471
|
## Resilience Mechanisms
|
|
471
472
|
|
|
473
|
+
### Execution Timeouts
|
|
474
|
+
|
|
475
|
+
Set maximum execution time for functions to prevent indefinite hangs. Timeouts are enforced at multiple levels with proper inheritance.
|
|
476
|
+
|
|
477
|
+
#### Function-Level Timeout
|
|
478
|
+
|
|
479
|
+
Set timeout directly on a function:
|
|
480
|
+
|
|
481
|
+
```typescript
|
|
482
|
+
import { stableFunction } from '@emmvish/stable-request';
|
|
483
|
+
|
|
484
|
+
const result = await stableFunction({
|
|
485
|
+
fn: async () => {
|
|
486
|
+
// Long-running operation
|
|
487
|
+
await processLargeDataset();
|
|
488
|
+
return 'success';
|
|
489
|
+
},
|
|
490
|
+
args: [],
|
|
491
|
+
returnResult: true,
|
|
492
|
+
executionTimeout: 5000, // 5 seconds max
|
|
493
|
+
attempts: 3,
|
|
494
|
+
});
|
|
495
|
+
|
|
496
|
+
if (!result.success && result.error?.includes('timeout')) {
|
|
497
|
+
console.log('Function timed out');
|
|
498
|
+
}
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
#### Gateway-Level Timeout
|
|
502
|
+
|
|
503
|
+
Apply timeout to all functions in a gateway:
|
|
504
|
+
|
|
505
|
+
```typescript
|
|
506
|
+
import { stableApiGateway, RequestOrFunction } from '@emmvish/stable-request';
|
|
507
|
+
|
|
508
|
+
const results = await stableApiGateway(
|
|
509
|
+
[
|
|
510
|
+
{
|
|
511
|
+
type: RequestOrFunction.FUNCTION,
|
|
512
|
+
function: {
|
|
513
|
+
id: 'task1',
|
|
514
|
+
functionOptions: {
|
|
515
|
+
fn: async () => await task1(),
|
|
516
|
+
args: [],
|
|
517
|
+
// No timeout specified - inherits from gateway
|
|
518
|
+
},
|
|
519
|
+
},
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
type: RequestOrFunction.FUNCTION,
|
|
523
|
+
function: {
|
|
524
|
+
id: 'task2',
|
|
525
|
+
functionOptions: {
|
|
526
|
+
fn: async () => await task2(),
|
|
527
|
+
args: [],
|
|
528
|
+
executionTimeout: 10000, // Override gateway timeout
|
|
529
|
+
},
|
|
530
|
+
},
|
|
531
|
+
},
|
|
532
|
+
],
|
|
533
|
+
{
|
|
534
|
+
commonExecutionTimeout: 3000, // Default 3s for all functions
|
|
535
|
+
}
|
|
536
|
+
);
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
#### Request Group Timeout
|
|
540
|
+
|
|
541
|
+
Different timeouts for different groups:
|
|
542
|
+
|
|
543
|
+
```typescript
|
|
544
|
+
const results = await stableApiGateway(
|
|
545
|
+
[
|
|
546
|
+
{
|
|
547
|
+
type: RequestOrFunction.FUNCTION,
|
|
548
|
+
function: {
|
|
549
|
+
id: 'critical',
|
|
550
|
+
groupId: 'criticalOps',
|
|
551
|
+
functionOptions: { fn: criticalOp, args: [] },
|
|
552
|
+
},
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
type: RequestOrFunction.FUNCTION,
|
|
556
|
+
function: {
|
|
557
|
+
id: 'background',
|
|
558
|
+
groupId: 'backgroundOps',
|
|
559
|
+
functionOptions: { fn: backgroundOp, args: [] },
|
|
560
|
+
},
|
|
561
|
+
},
|
|
562
|
+
],
|
|
563
|
+
{
|
|
564
|
+
requestGroups: [
|
|
565
|
+
{
|
|
566
|
+
id: 'criticalOps',
|
|
567
|
+
commonConfig: {
|
|
568
|
+
commonExecutionTimeout: 1000, // Strict 1s timeout
|
|
569
|
+
},
|
|
570
|
+
},
|
|
571
|
+
{
|
|
572
|
+
id: 'backgroundOps',
|
|
573
|
+
commonConfig: {
|
|
574
|
+
commonExecutionTimeout: 30000, // Lenient 30s timeout
|
|
575
|
+
},
|
|
576
|
+
},
|
|
577
|
+
],
|
|
578
|
+
}
|
|
579
|
+
);
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
#### Workflow Phase Timeout
|
|
583
|
+
|
|
584
|
+
Apply timeout at phase level in workflows:
|
|
585
|
+
|
|
586
|
+
```typescript
|
|
587
|
+
import { stableWorkflow } from '@emmvish/stable-request';
|
|
588
|
+
|
|
589
|
+
const result = await stableWorkflow(
|
|
590
|
+
[
|
|
591
|
+
{
|
|
592
|
+
id: 'initialization',
|
|
593
|
+
functions: [
|
|
594
|
+
{
|
|
595
|
+
id: 'init',
|
|
596
|
+
functionOptions: {
|
|
597
|
+
fn: initializeSystem,
|
|
598
|
+
args: [],
|
|
599
|
+
},
|
|
600
|
+
},
|
|
601
|
+
],
|
|
602
|
+
commonConfig: {
|
|
603
|
+
commonExecutionTimeout: 5000, // 5s for initialization
|
|
604
|
+
},
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
id: 'processing',
|
|
608
|
+
functions: [
|
|
609
|
+
{
|
|
610
|
+
id: 'process',
|
|
611
|
+
functionOptions: {
|
|
612
|
+
fn: processData,
|
|
613
|
+
args: [],
|
|
614
|
+
},
|
|
615
|
+
},
|
|
616
|
+
],
|
|
617
|
+
commonConfig: {
|
|
618
|
+
commonExecutionTimeout: 30000, // 30s for processing
|
|
619
|
+
},
|
|
620
|
+
},
|
|
621
|
+
],
|
|
622
|
+
{
|
|
623
|
+
commonExecutionTimeout: 10000, // Default for phases without specific timeout
|
|
624
|
+
}
|
|
625
|
+
);
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
#### Timeout Precedence
|
|
629
|
+
|
|
630
|
+
Timeouts follow the configuration cascade pattern:
|
|
631
|
+
|
|
632
|
+
**Function > Group > Phase/Branch > Gateway**
|
|
633
|
+
|
|
634
|
+
- Function-level `executionTimeout` always wins
|
|
635
|
+
- If not set, inherits from request group's `commonExecutionTimeout`
|
|
636
|
+
- If not set, inherits from phase/branch's `commonExecutionTimeout`
|
|
637
|
+
- If not set, inherits from gateway's `commonExecutionTimeout`
|
|
638
|
+
- If not set, no timeout is applied
|
|
639
|
+
|
|
640
|
+
#### Timeout Behavior
|
|
641
|
+
|
|
642
|
+
- Timeout applies to **entire function execution** including all retry attempts
|
|
643
|
+
- When timeout is exceeded, function returns failed result with timeout error
|
|
644
|
+
- Timeout does NOT stop execution mid-flight (no AbortController)
|
|
645
|
+
- Metrics are still collected even when timeout occurs
|
|
646
|
+
- Use with retries: timeout encompasses all attempts, not per-attempt
|
|
647
|
+
|
|
648
|
+
```typescript
|
|
649
|
+
const result = await stableFunction({
|
|
650
|
+
fn: slowFunction,
|
|
651
|
+
args: [],
|
|
652
|
+
attempts: 5,
|
|
653
|
+
wait: 1000,
|
|
654
|
+
executionTimeout: 3000, // Total time for all 5 attempts
|
|
655
|
+
});
|
|
656
|
+
|
|
657
|
+
// If each attempt takes 800ms:
|
|
658
|
+
// - Attempt 1: 800ms
|
|
659
|
+
// - Attempt 2: starts at 1800ms (after 1s wait)
|
|
660
|
+
// - Attempt 3: would start at 3600ms → TIMEOUT at 3000ms
|
|
661
|
+
```
|
|
662
|
+
|
|
472
663
|
### Retry Strategies
|
|
473
664
|
|
|
474
665
|
When a request or function fails and is retryable, retry with configurable backoff.
|
|
@@ -1584,6 +1775,11 @@ console.log(result.metrics); // {
|
|
|
1584
1775
|
// cache: { /* hits, misses, size */ },
|
|
1585
1776
|
// rateLimiter: { /* limit, current rate */ },
|
|
1586
1777
|
// concurrencyLimiter: { /* limit, in-flight */ }
|
|
1778
|
+
// },
|
|
1779
|
+
// validation: {
|
|
1780
|
+
// isValid: true,
|
|
1781
|
+
// anomalies: [],
|
|
1782
|
+
// validatedAt: '2026-01-20T...'
|
|
1587
1783
|
// }
|
|
1588
1784
|
// }
|
|
1589
1785
|
```
|
|
@@ -1624,6 +1820,11 @@ console.log(result.metrics); // {
|
|
|
1624
1820
|
// cache: { /* hit rate, size, utilization */ },
|
|
1625
1821
|
// rateLimiter: { /* throttle rate, queue length */ },
|
|
1626
1822
|
// concurrencyLimiter: { /* utilization, queue */ }
|
|
1823
|
+
// },
|
|
1824
|
+
// validation: {
|
|
1825
|
+
// isValid: true,
|
|
1826
|
+
// anomalies: [],
|
|
1827
|
+
// validatedAt: '2026-01-20T...'
|
|
1627
1828
|
// }
|
|
1628
1829
|
// }
|
|
1629
1830
|
```
|
|
@@ -1653,9 +1854,14 @@ console.log(result); // {
|
|
|
1653
1854
|
// failedRequests: 0,
|
|
1654
1855
|
// workflowExecutionTime: 1200,
|
|
1655
1856
|
// phases: [
|
|
1656
|
-
// { phaseId: 'p1', success: true, responses: [...], ... },
|
|
1657
|
-
// { phaseId: 'p2', success: true, responses: [...], ... }
|
|
1658
|
-
// ]
|
|
1857
|
+
// { phaseId: 'p1', success: true, responses: [...], validation: {...}, ... },
|
|
1858
|
+
// { phaseId: 'p2', success: true, responses: [...], validation: {...}, ... }
|
|
1859
|
+
// ],
|
|
1860
|
+
// validation: {
|
|
1861
|
+
// isValid: true,
|
|
1862
|
+
// anomalies: [],
|
|
1863
|
+
// validatedAt: '2026-01-20T...'
|
|
1864
|
+
// }
|
|
1659
1865
|
// }
|
|
1660
1866
|
```
|
|
1661
1867
|
|
|
@@ -1990,7 +2196,51 @@ await stableApiGateway<ServiceRequest, ServiceResponse>(requests, {
|
|
|
1990
2196
|
});
|
|
1991
2197
|
```
|
|
1992
2198
|
|
|
1993
|
-
###
|
|
2199
|
+
### 6. Define Metrics Guardrails for SLA Monitoring
|
|
2200
|
+
|
|
2201
|
+
Enforce performance and reliability SLAs with automatic validation.
|
|
2202
|
+
|
|
2203
|
+
```typescript
|
|
2204
|
+
import { stableWorkflow, MetricsGuardrails } from '@emmvish/stable-request';
|
|
2205
|
+
import type { STABLE_WORKFLOW_PHASE } from '@emmvish/stable-request';
|
|
2206
|
+
|
|
2207
|
+
interface ApiRequest {}
|
|
2208
|
+
interface ApiResponse { data: any; }
|
|
2209
|
+
|
|
2210
|
+
const phases: STABLE_WORKFLOW_PHASE<ApiRequest, ApiResponse>[] = [
|
|
2211
|
+
{
|
|
2212
|
+
id: 'critical-phase',
|
|
2213
|
+
requests: [{ id: 'req-1', requestOptions: { reqData: { path: '/critical' }, resReq: true } }],
|
|
2214
|
+
metricsGuardrails: {
|
|
2215
|
+
phase: {
|
|
2216
|
+
executionTime: { max: 3000 }, // SLA: <3s
|
|
2217
|
+
requestSuccessRate: { min: 99.5 } // SLA: 99.5% success
|
|
2218
|
+
}
|
|
2219
|
+
}
|
|
2220
|
+
}
|
|
2221
|
+
];
|
|
2222
|
+
|
|
2223
|
+
const result = await stableWorkflow(phases, {
|
|
2224
|
+
workflowId: 'sla-monitored',
|
|
2225
|
+
metricsGuardrails: {
|
|
2226
|
+
workflow: {
|
|
2227
|
+
executionTime: { max: 10000 }, // Workflow SLA: <10s
|
|
2228
|
+
requestSuccessRate: { min: 99 } // Workflow SLA: 99% success
|
|
2229
|
+
}
|
|
2230
|
+
}
|
|
2231
|
+
});
|
|
2232
|
+
|
|
2233
|
+
// Automatic SLA violation detection
|
|
2234
|
+
if (result.validation && !result.validation.isValid) {
|
|
2235
|
+
const criticalAnomalies = result.validation.anomalies.filter(a => a.severity === 'CRITICAL');
|
|
2236
|
+
if (criticalAnomalies.length > 0) {
|
|
2237
|
+
// Trigger alerts for SLA violations
|
|
2238
|
+
console.error('SLA violated:', criticalAnomalies);
|
|
2239
|
+
}
|
|
2240
|
+
}
|
|
2241
|
+
```
|
|
2242
|
+
|
|
2243
|
+
### 6. Apply Rate & Concurrency Limits
|
|
1994
2244
|
|
|
1995
2245
|
Respect external quotas and capacity.
|
|
1996
2246
|
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { API_GATEWAY_OPTIONS, ApiRequestOptionsMapping } from "../types/index.js";
|
|
2
2
|
export declare const extractCommonOptionsKeys: (keyof API_GATEWAY_OPTIONS)[];
|
|
3
3
|
export declare const PrepareApiRequestOptionsMapping: ApiRequestOptionsMapping[];
|
|
4
|
+
export declare const REQUEST_METRICS_TO_VALIDATE_KEYS: readonly ["totalAttempts", "successfulAttempts", "failedAttempts", "totalExecutionTime", "averageAttemptTime"];
|
|
5
|
+
export declare const API_GATEWAY_METRICS_TO_VALIDATE_KEYS: readonly ["totalRequests", "successfulRequests", "failedRequests", "successRate", "failureRate", "executionTime", "throughput", "averageRequestDuration"];
|
|
6
|
+
export declare const WORKFLOW_METRICS_TO_VALIDATE_KEYS: readonly ["totalPhases", "completedPhases", "failedPhases", "totalRequests", "successfulRequests", "failedRequests", "requestSuccessRate", "requestFailureRate", "executionTime", "averagePhaseExecutionTime", "throughput", "phaseCompletionRate"];
|
|
7
|
+
export declare const CIRCUIT_BREAKER_METRICS_TO_VALIDATE_KEYS: readonly ["failureRate", "totalRequests", "failedRequests"];
|
|
8
|
+
export declare const CACHE_METRICS_TO_VALIDATE_KEYS: readonly ["hitRate", "missRate", "utilizationPercentage", "evictionRate"];
|
|
9
|
+
export declare const RATE_LIMITER_METRICS_TO_VALIDATE_KEYS: readonly ["throttleRate", "queueLength", "utilizationPercentage", "averageQueueWaitTime"];
|
|
10
|
+
export declare const CONCURRENCY_LIMITER_METRICS_TO_VALIDATE_KEYS: readonly ["utilizationPercentage", "queueLength", "averageQueueWaitTime"];
|
|
11
|
+
export declare const PHASE_METRICS_TO_VALIDATE_KEYS: readonly ["totalRequests", "successfulRequests", "failedRequests", "requestSuccessRate", "requestFailureRate", "executionTime"];
|
|
12
|
+
export declare const BRANCH_METRICS_TO_VALIDATE_KEYS: readonly ["totalPhases", "completedPhases", "failedPhases", "phaseCompletionRate", "totalRequests", "successfulRequests", "failedRequests", "requestSuccessRate", "executionTime"];
|
|
4
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElF,eAAO,MAAM,wBAAwB,EAAE,CAAC,MAAM,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElF,eAAO,MAAM,wBAAwB,EAAE,CAAC,MAAM,mBAAmB,CAAC,EAsBjE,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,wBAAwB,EAqBrE,CAAC;AAEF,eAAO,MAAM,gCAAgC,gHAMnC,CAAC;AAEX,eAAO,MAAM,oCAAoC,2JASvC,CAAC;AAEX,eAAO,MAAM,iCAAiC,qPAapC,CAAC;AAEX,eAAO,MAAM,wCAAwC,6DAI3C,CAAC;AAEX,eAAO,MAAM,8BAA8B,2EAKjC,CAAC;AAEX,eAAO,MAAM,qCAAqC,2FAKxC,CAAC;AAEX,eAAO,MAAM,4CAA4C,2EAI/C,CAAC;AAEX,eAAO,MAAM,8BAA8B,iIAOjC,CAAC;AAEX,eAAO,MAAM,+BAA+B,oLAUlC,CAAC"}
|
package/dist/constants/index.js
CHANGED
|
@@ -19,6 +19,7 @@ export const extractCommonOptionsKeys = [
|
|
|
19
19
|
'commonTrialMode',
|
|
20
20
|
'commonCache',
|
|
21
21
|
'commonStatePersistence',
|
|
22
|
+
'commonExecutionTimeout',
|
|
22
23
|
];
|
|
23
24
|
export const PrepareApiRequestOptionsMapping = [
|
|
24
25
|
{ localKey: 'preExecution', commonKey: 'commonPreExecution', groupCommonKey: 'commonPreExecution', targetKey: 'preExecution' },
|
|
@@ -42,4 +43,76 @@ export const PrepareApiRequestOptionsMapping = [
|
|
|
42
43
|
{ localKey: 'commonBuffer', commonKey: 'sharedBuffer', groupCommonKey: 'sharedBuffer', targetKey: 'commonBuffer' },
|
|
43
44
|
{ localKey: 'statePersistence', commonKey: 'commonStatePersistence', groupCommonKey: 'commonStatePersistence', targetKey: 'statePersistence' },
|
|
44
45
|
];
|
|
46
|
+
export const REQUEST_METRICS_TO_VALIDATE_KEYS = [
|
|
47
|
+
'totalAttempts',
|
|
48
|
+
'successfulAttempts',
|
|
49
|
+
'failedAttempts',
|
|
50
|
+
'totalExecutionTime',
|
|
51
|
+
'averageAttemptTime'
|
|
52
|
+
];
|
|
53
|
+
export const API_GATEWAY_METRICS_TO_VALIDATE_KEYS = [
|
|
54
|
+
'totalRequests',
|
|
55
|
+
'successfulRequests',
|
|
56
|
+
'failedRequests',
|
|
57
|
+
'successRate',
|
|
58
|
+
'failureRate',
|
|
59
|
+
'executionTime',
|
|
60
|
+
'throughput',
|
|
61
|
+
'averageRequestDuration'
|
|
62
|
+
];
|
|
63
|
+
export const WORKFLOW_METRICS_TO_VALIDATE_KEYS = [
|
|
64
|
+
'totalPhases',
|
|
65
|
+
'completedPhases',
|
|
66
|
+
'failedPhases',
|
|
67
|
+
'totalRequests',
|
|
68
|
+
'successfulRequests',
|
|
69
|
+
'failedRequests',
|
|
70
|
+
'requestSuccessRate',
|
|
71
|
+
'requestFailureRate',
|
|
72
|
+
'executionTime',
|
|
73
|
+
'averagePhaseExecutionTime',
|
|
74
|
+
'throughput',
|
|
75
|
+
'phaseCompletionRate'
|
|
76
|
+
];
|
|
77
|
+
export const CIRCUIT_BREAKER_METRICS_TO_VALIDATE_KEYS = [
|
|
78
|
+
'failureRate',
|
|
79
|
+
'totalRequests',
|
|
80
|
+
'failedRequests'
|
|
81
|
+
];
|
|
82
|
+
export const CACHE_METRICS_TO_VALIDATE_KEYS = [
|
|
83
|
+
'hitRate',
|
|
84
|
+
'missRate',
|
|
85
|
+
'utilizationPercentage',
|
|
86
|
+
'evictionRate'
|
|
87
|
+
];
|
|
88
|
+
export const RATE_LIMITER_METRICS_TO_VALIDATE_KEYS = [
|
|
89
|
+
'throttleRate',
|
|
90
|
+
'queueLength',
|
|
91
|
+
'utilizationPercentage',
|
|
92
|
+
'averageQueueWaitTime'
|
|
93
|
+
];
|
|
94
|
+
export const CONCURRENCY_LIMITER_METRICS_TO_VALIDATE_KEYS = [
|
|
95
|
+
'utilizationPercentage',
|
|
96
|
+
'queueLength',
|
|
97
|
+
'averageQueueWaitTime'
|
|
98
|
+
];
|
|
99
|
+
export const PHASE_METRICS_TO_VALIDATE_KEYS = [
|
|
100
|
+
'totalRequests',
|
|
101
|
+
'successfulRequests',
|
|
102
|
+
'failedRequests',
|
|
103
|
+
'requestSuccessRate',
|
|
104
|
+
'requestFailureRate',
|
|
105
|
+
'executionTime'
|
|
106
|
+
];
|
|
107
|
+
export const BRANCH_METRICS_TO_VALIDATE_KEYS = [
|
|
108
|
+
'totalPhases',
|
|
109
|
+
'completedPhases',
|
|
110
|
+
'failedPhases',
|
|
111
|
+
'phaseCompletionRate',
|
|
112
|
+
'totalRequests',
|
|
113
|
+
'successfulRequests',
|
|
114
|
+
'failedRequests',
|
|
115
|
+
'requestSuccessRate',
|
|
116
|
+
'executionTime'
|
|
117
|
+
];
|
|
45
118
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stable-api-gateway.d.ts","sourceRoot":"","sources":["../../src/core/stable-api-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAEhB,kBAAkB,EAOrB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"stable-api-gateway.d.ts","sourceRoot":"","sources":["../../src/core/stable-api-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAEhB,kBAAkB,EAOrB,MAAM,mBAAmB,CAAC;AAe3B,wBAAsB,gBAAgB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAChF,QAAQ,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EACtI,OAAO,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,GAChE,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEjD,wBAAsB,gBAAgB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAAE,gBAAgB,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,kBAAkB,GAAG,GAAG,EAClJ,QAAQ,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,EAChK,SAAS,EAAE,oBAAoB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,EACvE,OAAO,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,GACtG,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { executeConcurrently, executeSequentially, extractCommonRequestConfigOptions as extractCommonOptions, MetricsAggregator, CircuitBreaker, getGlobalCircuitBreaker, getGlobalCacheManager, getGlobalRateLimiter, getGlobalConcurrencyLimiter } from '../utilities/index.js';
|
|
1
|
+
import { executeConcurrently, executeSequentially, extractCommonRequestConfigOptions as extractCommonOptions, MetricsAggregator, MetricsValidator, CircuitBreaker, getGlobalCircuitBreaker, getGlobalCacheManager, getGlobalRateLimiter, getGlobalConcurrencyLimiter } from '../utilities/index.js';
|
|
2
2
|
import { RequestOrFunction } from '../enums/index.js';
|
|
3
3
|
export async function stableApiGateway(requests = [], functionsOrOptions, options) {
|
|
4
4
|
const startTime = Date.now();
|
|
@@ -106,6 +106,15 @@ export async function stableApiGateway(requests = [], functionsOrOptions, option
|
|
|
106
106
|
if (Object.keys(infrastructureMetrics).length > 0) {
|
|
107
107
|
result.metrics.infrastructureMetrics = infrastructureMetrics;
|
|
108
108
|
}
|
|
109
|
+
if (finalOptions.metricsGuardrails) {
|
|
110
|
+
const validation = MetricsValidator.validateApiGatewayMetrics(result.metrics, finalOptions.metricsGuardrails);
|
|
111
|
+
if (result.metrics.infrastructureMetrics) {
|
|
112
|
+
const infraValidation = MetricsValidator.validateInfrastructureMetrics(result.metrics.infrastructureMetrics, finalOptions.metricsGuardrails);
|
|
113
|
+
validation.anomalies.push(...infraValidation.anomalies);
|
|
114
|
+
validation.isValid = validation.isValid && infraValidation.isValid;
|
|
115
|
+
}
|
|
116
|
+
result.metrics.validation = validation;
|
|
117
|
+
}
|
|
109
118
|
return result;
|
|
110
119
|
}
|
|
111
120
|
//# sourceMappingURL=stable-api-gateway.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stable-api-gateway.js","sourceRoot":"","sources":["../../src/core/stable-api-gateway.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stable-api-gateway.js","sourceRoot":"","sources":["../../src/core/stable-api-gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stable-function.d.ts","sourceRoot":"","sources":["../../src/core/stable-function.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,eAAe,EACf,sBAAsB,EAEvB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"stable-function.d.ts","sourceRoot":"","sources":["../../src/core/stable-function.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,eAAe,EACf,sBAAsB,EAEvB,MAAM,mBAAmB,CAAC;AAqB3B,wBAAsB,cAAc,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EAC7E,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,GACvC,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAkc1C"}
|