checkly 8.14.1 → 8.15.0-prerelease-cdf176f
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/ai-context/context.d.ts +18 -0
- package/dist/ai-context/context.js +89 -0
- package/dist/ai-context/context.js.map +1 -1
- package/dist/ai-context/skills-command/references/configure-grpc-monitors.md +37 -0
- package/dist/ai-context/skills-command/references/configure-playwright-checks.md +5 -5
- package/dist/ai-context/skills-command/references/configure-ssl-monitors.md +39 -0
- package/dist/ai-context/skills-command/references/configure-traceroute-monitors.md +36 -0
- package/dist/ai-context/skills-command/references/configure.md +9 -0
- package/dist/commands/checks/stats.js +1 -0
- package/dist/commands/checks/stats.js.map +1 -1
- package/dist/commands/deploy.js +25 -16
- package/dist/commands/deploy.js.map +1 -1
- package/dist/constants.d.ts +4 -1
- package/dist/constants.js +3 -0
- package/dist/constants.js.map +1 -1
- package/dist/constructs/api-assertion-codegen.js +2 -2
- package/dist/constructs/api-assertion-codegen.js.map +1 -1
- package/dist/constructs/api-assertion.d.ts +3 -3
- package/dist/constructs/check-codegen.d.ts +6 -0
- package/dist/constructs/check-codegen.js +24 -0
- package/dist/constructs/check-codegen.js.map +1 -1
- package/dist/constructs/dns-assertion-codegen.js +2 -2
- package/dist/constructs/dns-assertion-codegen.js.map +1 -1
- package/dist/constructs/dns-assertion.d.ts +3 -3
- package/dist/constructs/dns-request.d.ts +2 -2
- package/dist/constructs/grpc-assertion-codegen.d.ts +3 -0
- package/dist/constructs/grpc-assertion-codegen.js +33 -0
- package/dist/constructs/grpc-assertion-codegen.js.map +1 -0
- package/dist/constructs/grpc-assertion-validation.d.ts +13 -0
- package/dist/constructs/grpc-assertion-validation.js +53 -0
- package/dist/constructs/grpc-assertion-validation.js.map +1 -0
- package/dist/constructs/grpc-assertion.d.ts +61 -0
- package/dist/constructs/grpc-assertion.js +71 -0
- package/dist/constructs/grpc-assertion.js.map +1 -0
- package/dist/constructs/grpc-monitor-codegen.d.ts +13 -0
- package/dist/constructs/grpc-monitor-codegen.js +34 -0
- package/dist/constructs/grpc-monitor-codegen.js.map +1 -0
- package/dist/constructs/grpc-monitor.d.ts +83 -0
- package/dist/constructs/grpc-monitor.js +56 -0
- package/dist/constructs/grpc-monitor.js.map +1 -0
- package/dist/constructs/grpc-request-codegen.d.ts +4 -0
- package/dist/constructs/grpc-request-codegen.js +68 -0
- package/dist/constructs/grpc-request-codegen.js.map +1 -0
- package/dist/constructs/grpc-request.d.ts +137 -0
- package/dist/constructs/grpc-request.js +2 -0
- package/dist/constructs/grpc-request.js.map +1 -0
- package/dist/constructs/icmp-assertion-codegen.js +2 -2
- package/dist/constructs/icmp-assertion-codegen.js.map +1 -1
- package/dist/constructs/icmp-assertion.d.ts +1 -1
- package/dist/constructs/icmp-request.d.ts +2 -2
- package/dist/constructs/index.d.ts +9 -0
- package/dist/constructs/index.js +9 -0
- package/dist/constructs/index.js.map +1 -1
- package/dist/constructs/internal/assertion-codegen.d.ts +11 -0
- package/dist/constructs/internal/assertion-codegen.js +39 -0
- package/dist/constructs/internal/assertion-codegen.js.map +1 -1
- package/dist/constructs/internal/assertion-validation.d.ts +3 -0
- package/dist/constructs/internal/assertion-validation.js +17 -0
- package/dist/constructs/internal/assertion-validation.js.map +1 -0
- package/dist/constructs/internal/assertion.d.ts +17 -11
- package/dist/constructs/internal/assertion.js +39 -38
- package/dist/constructs/internal/assertion.js.map +1 -1
- package/dist/constructs/internal/common-diagnostics.d.ts +1 -0
- package/dist/constructs/internal/common-diagnostics.js +14 -0
- package/dist/constructs/internal/common-diagnostics.js.map +1 -1
- package/dist/constructs/ssl-assertion-codegen.d.ts +3 -0
- package/dist/constructs/ssl-assertion-codegen.js +36 -0
- package/dist/constructs/ssl-assertion-codegen.js.map +1 -0
- package/dist/constructs/ssl-assertion-validation.d.ts +13 -0
- package/dist/constructs/ssl-assertion-validation.js +49 -0
- package/dist/constructs/ssl-assertion-validation.js.map +1 -0
- package/dist/constructs/ssl-assertion.d.ts +197 -0
- package/dist/constructs/ssl-assertion.js +267 -0
- package/dist/constructs/ssl-assertion.js.map +1 -0
- package/dist/constructs/ssl-monitor-codegen.d.ts +36 -0
- package/dist/constructs/ssl-monitor-codegen.js +51 -0
- package/dist/constructs/ssl-monitor-codegen.js.map +1 -0
- package/dist/constructs/ssl-monitor.d.ts +89 -0
- package/dist/constructs/ssl-monitor.js +73 -0
- package/dist/constructs/ssl-monitor.js.map +1 -0
- package/dist/constructs/ssl-request-codegen.d.ts +4 -0
- package/dist/constructs/ssl-request-codegen.js +48 -0
- package/dist/constructs/ssl-request-codegen.js.map +1 -0
- package/dist/constructs/ssl-request.d.ts +143 -0
- package/dist/constructs/ssl-request.js +2 -0
- package/dist/constructs/ssl-request.js.map +1 -0
- package/dist/constructs/tcp-monitor-codegen.js +2 -2
- package/dist/constructs/tcp-monitor-codegen.js.map +1 -1
- package/dist/constructs/tcp-monitor.d.ts +1 -1
- package/dist/constructs/traceroute-assertion-codegen.d.ts +3 -0
- package/dist/constructs/traceroute-assertion-codegen.js +17 -0
- package/dist/constructs/traceroute-assertion-codegen.js.map +1 -0
- package/dist/constructs/traceroute-assertion-validation.d.ts +11 -0
- package/dist/constructs/traceroute-assertion-validation.js +77 -0
- package/dist/constructs/traceroute-assertion-validation.js.map +1 -0
- package/dist/constructs/traceroute-assertion.d.ts +67 -0
- package/dist/constructs/traceroute-assertion.js +96 -0
- package/dist/constructs/traceroute-assertion.js.map +1 -0
- package/dist/constructs/traceroute-monitor-codegen.d.ts +13 -0
- package/dist/constructs/traceroute-monitor-codegen.js +34 -0
- package/dist/constructs/traceroute-monitor-codegen.js.map +1 -0
- package/dist/constructs/traceroute-monitor.d.ts +83 -0
- package/dist/constructs/traceroute-monitor.js +54 -0
- package/dist/constructs/traceroute-monitor.js.map +1 -0
- package/dist/constructs/traceroute-request-codegen.d.ts +4 -0
- package/dist/constructs/traceroute-request-codegen.js +41 -0
- package/dist/constructs/traceroute-request-codegen.js.map +1 -0
- package/dist/constructs/traceroute-request.d.ts +81 -0
- package/dist/constructs/traceroute-request.js +2 -0
- package/dist/constructs/traceroute-request.js.map +1 -0
- package/dist/constructs/url-assertion-codegen.js +2 -2
- package/dist/constructs/url-assertion-codegen.js.map +1 -1
- package/dist/formatters/assertion-line.d.ts +27 -0
- package/dist/formatters/assertion-line.js +126 -0
- package/dist/formatters/assertion-line.js.map +1 -0
- package/dist/formatters/batch-stats.js +20 -1
- package/dist/formatters/batch-stats.js.map +1 -1
- package/dist/formatters/check-result-detail.js +604 -1
- package/dist/formatters/check-result-detail.js.map +1 -1
- package/dist/helpers/cli-mode.d.ts +2 -2
- package/dist/helpers/cli-mode.js +103 -11
- package/dist/helpers/cli-mode.js.map +1 -1
- package/dist/reporters/json.d.ts +1 -0
- package/dist/reporters/json.js +58 -0
- package/dist/reporters/json.js.map +1 -1
- package/dist/reporters/util.js +192 -89
- package/dist/reporters/util.js.map +1 -1
- package/dist/rest/analytics.js +6 -0
- package/dist/rest/analytics.js.map +1 -1
- package/dist/rest/batch-analytics.d.ts +1 -0
- package/dist/rest/batch-analytics.js.map +1 -1
- package/dist/rest/check-results.d.ts +75 -1
- package/dist/rest/check-results.js.map +1 -1
- package/dist/rest/projects.d.ts +1 -1
- package/dist/services/check-parser/bundler.d.ts +6 -0
- package/dist/services/check-parser/bundler.js +8 -0
- package/dist/services/check-parser/bundler.js.map +1 -1
- package/dist/services/check-parser/cache-hash.d.ts +24 -2
- package/dist/services/check-parser/cache-hash.js +45 -3
- package/dist/services/check-parser/cache-hash.js.map +1 -1
- package/dist/services/check-parser/package-files/resolver.d.ts +6 -1
- package/dist/services/check-parser/package-files/resolver.js +19 -0
- package/dist/services/check-parser/package-files/resolver.js.map +1 -1
- package/dist/services/util.d.ts +4 -0
- package/dist/services/util.js +4 -0
- package/dist/services/util.js.map +1 -1
- package/oclif.manifest.json +214 -208
- package/package.json +1 -1
|
@@ -14,6 +14,9 @@ import { TcpMonitorCodegen } from './tcp-monitor-codegen.js';
|
|
|
14
14
|
import { UrlMonitorCodegen } from './url-monitor-codegen.js';
|
|
15
15
|
import { DnsMonitorCodegen } from './dns-monitor-codegen.js';
|
|
16
16
|
import { IcmpMonitorCodegen } from './icmp-monitor-codegen.js';
|
|
17
|
+
import { GrpcMonitorCodegen } from './grpc-monitor-codegen.js';
|
|
18
|
+
import { SslMonitorCodegen } from './ssl-monitor-codegen.js';
|
|
19
|
+
import { TracerouteMonitorCodegen } from './traceroute-monitor-codegen.js';
|
|
17
20
|
export interface CheckResource {
|
|
18
21
|
id: string;
|
|
19
22
|
checkType: string;
|
|
@@ -68,6 +71,9 @@ export declare class CheckCodegen extends Codegen<CheckResource> {
|
|
|
68
71
|
urlMonitorCodegen: UrlMonitorCodegen;
|
|
69
72
|
dnsMonitorCodegen: DnsMonitorCodegen;
|
|
70
73
|
icmpMonitorCodegen: IcmpMonitorCodegen;
|
|
74
|
+
grpcMonitorCodegen: GrpcMonitorCodegen;
|
|
75
|
+
sslMonitorCodegen: SslMonitorCodegen;
|
|
76
|
+
tracerouteMonitorCodegen: TracerouteMonitorCodegen;
|
|
71
77
|
constructor(program: Program);
|
|
72
78
|
describe(resource: CheckResource): string;
|
|
73
79
|
gencode(logicalId: string, resource: CheckResource, context: Context): void;
|
|
@@ -15,6 +15,9 @@ import { valueForPrivateLocationFromId } from './private-location-codegen.js';
|
|
|
15
15
|
import { valueForAlertChannelFromId } from './alert-channel-codegen.js';
|
|
16
16
|
import { DnsMonitorCodegen } from './dns-monitor-codegen.js';
|
|
17
17
|
import { IcmpMonitorCodegen } from './icmp-monitor-codegen.js';
|
|
18
|
+
import { GrpcMonitorCodegen } from './grpc-monitor-codegen.js';
|
|
19
|
+
import { SslMonitorCodegen } from './ssl-monitor-codegen.js';
|
|
20
|
+
import { TracerouteMonitorCodegen } from './traceroute-monitor-codegen.js';
|
|
18
21
|
export function buildCheckProps(program, genfile, builder, resource, context, options = {}) {
|
|
19
22
|
builder.string('name', resource.name, { order: -1000 });
|
|
20
23
|
if (resource.description != null) {
|
|
@@ -175,6 +178,9 @@ export class CheckCodegen extends Codegen {
|
|
|
175
178
|
urlMonitorCodegen;
|
|
176
179
|
dnsMonitorCodegen;
|
|
177
180
|
icmpMonitorCodegen;
|
|
181
|
+
grpcMonitorCodegen;
|
|
182
|
+
sslMonitorCodegen;
|
|
183
|
+
tracerouteMonitorCodegen;
|
|
178
184
|
constructor(program) {
|
|
179
185
|
super(program);
|
|
180
186
|
this.agenticCheckCodegen = new AgenticCheckCodegen(program);
|
|
@@ -187,6 +193,9 @@ export class CheckCodegen extends Codegen {
|
|
|
187
193
|
this.urlMonitorCodegen = new UrlMonitorCodegen(program);
|
|
188
194
|
this.dnsMonitorCodegen = new DnsMonitorCodegen(program);
|
|
189
195
|
this.icmpMonitorCodegen = new IcmpMonitorCodegen(program);
|
|
196
|
+
this.grpcMonitorCodegen = new GrpcMonitorCodegen(program);
|
|
197
|
+
this.sslMonitorCodegen = new SslMonitorCodegen(program);
|
|
198
|
+
this.tracerouteMonitorCodegen = new TracerouteMonitorCodegen(program);
|
|
190
199
|
}
|
|
191
200
|
describe(resource) {
|
|
192
201
|
const { checkType } = resource;
|
|
@@ -209,6 +218,12 @@ export class CheckCodegen extends Codegen {
|
|
|
209
218
|
return this.dnsMonitorCodegen.describe(resource);
|
|
210
219
|
case 'ICMP':
|
|
211
220
|
return this.icmpMonitorCodegen.describe(resource);
|
|
221
|
+
case 'GRPC':
|
|
222
|
+
return this.grpcMonitorCodegen.describe(resource);
|
|
223
|
+
case 'SSL':
|
|
224
|
+
return this.sslMonitorCodegen.describe(resource);
|
|
225
|
+
case 'TRACEROUTE':
|
|
226
|
+
return this.tracerouteMonitorCodegen.describe(resource);
|
|
212
227
|
default:
|
|
213
228
|
throw new Error(`Unable to describe unsupported check type '${checkType}'.`);
|
|
214
229
|
}
|
|
@@ -243,6 +258,15 @@ export class CheckCodegen extends Codegen {
|
|
|
243
258
|
case 'ICMP':
|
|
244
259
|
this.icmpMonitorCodegen.gencode(logicalId, resource, context);
|
|
245
260
|
return;
|
|
261
|
+
case 'GRPC':
|
|
262
|
+
this.grpcMonitorCodegen.gencode(logicalId, resource, context);
|
|
263
|
+
return;
|
|
264
|
+
case 'SSL':
|
|
265
|
+
this.sslMonitorCodegen.gencode(logicalId, resource, context);
|
|
266
|
+
return;
|
|
267
|
+
case 'TRACEROUTE':
|
|
268
|
+
this.tracerouteMonitorCodegen.gencode(logicalId, resource, context);
|
|
269
|
+
return;
|
|
246
270
|
default:
|
|
247
271
|
throw new Error(`Unable to generate code for unsupported check type '${checkType}'.`);
|
|
248
272
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-codegen.js","sourceRoot":"","sources":["../../src/constructs/check-codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,6BAA6B,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAwB,MAAM,4BAA4B,CAAA;AACtF,OAAO,EAA2B,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AACvG,OAAO,EAAE,eAAe,EAAoB,MAAM,wBAAwB,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,4BAA4B,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEtF,OAAO,EAAqB,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC7E,OAAO,EAAE,uBAAuB,EAA4B,MAAM,gCAAgC,CAAA;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAA0B,MAAM,+BAA+B,CAAA;AAC7F,OAAO,EAAyB,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAC1F,OAAO,EAAE,iBAAiB,EAAsB,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAsB,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAA;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAsB,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAuB,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"check-codegen.js","sourceRoot":"","sources":["../../src/constructs/check-codegen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { valueForGeneralAssertion, valueForNumericAssertion } from './internal/assertion-codegen.js';
|
|
1
|
+
import { unsupportedAssertionSource, valueForGeneralAssertion, valueForNumericAssertion } from './internal/assertion-codegen.js';
|
|
2
2
|
export function valueForDnsAssertion(genfile, assertion) {
|
|
3
3
|
genfile.namedImport('DnsAssertionBuilder', 'checkly/constructs');
|
|
4
4
|
switch (assertion.source) {
|
|
@@ -20,7 +20,7 @@ export function valueForDnsAssertion(genfile, assertion) {
|
|
|
20
20
|
hasRegex: false,
|
|
21
21
|
});
|
|
22
22
|
default:
|
|
23
|
-
|
|
23
|
+
return unsupportedAssertionSource(assertion.source, 'DNS');
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
//# sourceMappingURL=dns-assertion-codegen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dns-assertion-codegen.js","sourceRoot":"","sources":["../../src/constructs/dns-assertion-codegen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"dns-assertion-codegen.js","sourceRoot":"","sources":["../../src/constructs/dns-assertion-codegen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAGhI,MAAM,UAAU,oBAAoB,CAAE,OAAsB,EAAE,SAAuB;IACnF,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAA;IAEhE,QAAQ,SAAS,CAAC,MAAM,EAAE,CAAC;QACzB,KAAK,eAAe;YAClB,OAAO,wBAAwB,CAAC,qBAAqB,EAAE,cAAc,EAAE,SAAS,EAAE;gBAChF,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAA;QACJ,KAAK,eAAe;YAClB,OAAO,wBAAwB,CAAC,qBAAqB,EAAE,cAAc,EAAE,SAAS,CAAC,CAAA;QACnF,KAAK,aAAa;YAChB,OAAO,wBAAwB,CAAC,qBAAqB,EAAE,YAAY,EAAE,SAAS,EAAE;gBAC9E,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAA;QACJ,KAAK,aAAa;YAChB,OAAO,wBAAwB,CAAC,qBAAqB,EAAE,YAAY,EAAE,SAAS,EAAE;gBAC9E,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAA;QACJ;YACE,OAAO,0BAA0B,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9D,CAAC;AACH,CAAC"}
|
|
@@ -25,7 +25,7 @@ export declare class DnsAssertionBuilder {
|
|
|
25
25
|
* Creates an assertion builder for DNS response codes.
|
|
26
26
|
* @returns A general assertion builder for the response code.
|
|
27
27
|
*/
|
|
28
|
-
static responseCode(): GeneralAssertionBuilder<DnsAssertionSource>;
|
|
28
|
+
static responseCode(): GeneralAssertionBuilder<DnsAssertionSource, string | number | boolean>;
|
|
29
29
|
/**
|
|
30
30
|
* Creates an assertion builder for DNS response time.
|
|
31
31
|
* @returns A numeric assertion builder for response time in milliseconds.
|
|
@@ -38,12 +38,12 @@ export declare class DnsAssertionBuilder {
|
|
|
38
38
|
* first capture group instead of the entire answer.
|
|
39
39
|
* @returns A general assertion builder for the answer.
|
|
40
40
|
*/
|
|
41
|
-
static textAnswer(regex?: string): GeneralAssertionBuilder<DnsAssertionSource>;
|
|
41
|
+
static textAnswer(regex?: string): GeneralAssertionBuilder<DnsAssertionSource, string | number | boolean>;
|
|
42
42
|
/**
|
|
43
43
|
* Creates an assertion builder for the JSON formatted answer.
|
|
44
44
|
* @param property Optional JSON path to specific property (e.g., '$.Answer[0].data')
|
|
45
45
|
* @returns A general assertion builder for the JSON formatted answer.
|
|
46
46
|
*/
|
|
47
|
-
static jsonAnswer(property?: string): GeneralAssertionBuilder<DnsAssertionSource>;
|
|
47
|
+
static jsonAnswer(property?: string): GeneralAssertionBuilder<DnsAssertionSource, string | number | boolean>;
|
|
48
48
|
}
|
|
49
49
|
export {};
|
|
@@ -36,7 +36,7 @@ export interface DnsRequest {
|
|
|
36
36
|
* @minimum 1
|
|
37
37
|
* @maximum 65535
|
|
38
38
|
* @example 53
|
|
39
|
-
* @
|
|
39
|
+
* @defaultValue 53
|
|
40
40
|
*/
|
|
41
41
|
port?: number;
|
|
42
42
|
/**
|
|
@@ -44,7 +44,7 @@ export interface DnsRequest {
|
|
|
44
44
|
*
|
|
45
45
|
* @example "UDP"
|
|
46
46
|
* @example "TCP"
|
|
47
|
-
* @
|
|
47
|
+
* @defaultValue "UDP"
|
|
48
48
|
*/
|
|
49
49
|
protocol?: DnsProtocol;
|
|
50
50
|
/**
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { unsupportedAssertionSource, valueForGeneralAssertion, valueForNumericAssertion } from './internal/assertion-codegen.js';
|
|
2
|
+
export function valueForGrpcAssertion(genfile, assertion) {
|
|
3
|
+
genfile.namedImport('GrpcAssertionBuilder', 'checkly/constructs');
|
|
4
|
+
switch (assertion.source) {
|
|
5
|
+
case 'RESPONSE_TIME':
|
|
6
|
+
return valueForNumericAssertion('GrpcAssertionBuilder', 'responseTime', assertion);
|
|
7
|
+
case 'GRPC_STATUS_CODE':
|
|
8
|
+
return valueForNumericAssertion('GrpcAssertionBuilder', 'statusCode', assertion);
|
|
9
|
+
case 'GRPC_HEALTHCHECK_STATUS':
|
|
10
|
+
return valueForGeneralAssertion('GrpcAssertionBuilder', 'healthCheckStatus', assertion, {
|
|
11
|
+
hasProperty: false,
|
|
12
|
+
hasRegex: false,
|
|
13
|
+
});
|
|
14
|
+
case 'GRPC_RESPONSE':
|
|
15
|
+
return valueForGeneralAssertion('GrpcAssertionBuilder', 'responseMessage', assertion, {
|
|
16
|
+
hasProperty: true,
|
|
17
|
+
hasRegex: false,
|
|
18
|
+
});
|
|
19
|
+
case 'TEXT_BODY':
|
|
20
|
+
return valueForGeneralAssertion('GrpcAssertionBuilder', 'textBody', assertion, {
|
|
21
|
+
hasProperty: true,
|
|
22
|
+
hasRegex: false,
|
|
23
|
+
});
|
|
24
|
+
case 'GRPC_METADATA':
|
|
25
|
+
return valueForGeneralAssertion('GrpcAssertionBuilder', 'responseMetadata', assertion, {
|
|
26
|
+
hasProperty: true,
|
|
27
|
+
hasRegex: false,
|
|
28
|
+
});
|
|
29
|
+
default:
|
|
30
|
+
return unsupportedAssertionSource(assertion.source, 'gRPC');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=grpc-assertion-codegen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grpc-assertion-codegen.js","sourceRoot":"","sources":["../../src/constructs/grpc-assertion-codegen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAGhI,MAAM,UAAU,qBAAqB,CAAE,OAAsB,EAAE,SAAwB;IACrF,OAAO,CAAC,WAAW,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAA;IAEjE,QAAQ,SAAS,CAAC,MAAM,EAAE,CAAC;QACzB,KAAK,eAAe;YAClB,OAAO,wBAAwB,CAAC,sBAAsB,EAAE,cAAc,EAAE,SAAS,CAAC,CAAA;QACpF,KAAK,kBAAkB;YACrB,OAAO,wBAAwB,CAAC,sBAAsB,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;QAClF,KAAK,yBAAyB;YAC5B,OAAO,wBAAwB,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,SAAS,EAAE;gBACtF,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAA;QACJ,KAAK,eAAe;YAClB,OAAO,wBAAwB,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,SAAS,EAAE;gBACpF,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAA;QACJ,KAAK,WAAW;YACd,OAAO,wBAAwB,CAAC,sBAAsB,EAAE,UAAU,EAAE,SAAS,EAAE;gBAC7E,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAA;QACJ,KAAK,eAAe;YAClB,OAAO,wBAAwB,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,SAAS,EAAE;gBACrF,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAA;QACJ;YACE,OAAO,0BAA0B,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Diagnostics } from './diagnostics.js';
|
|
2
|
+
import { GrpcAssertion } from './grpc-assertion.js';
|
|
3
|
+
/**
|
|
4
|
+
* Reports gRPC assertions whose source or comparison the backend does not accept.
|
|
5
|
+
*
|
|
6
|
+
* gRPC places no constraint on `property` — any string is valid for every source —
|
|
7
|
+
* so only the source and comparison are checked. Assertions written as plain object
|
|
8
|
+
* literals bypass GrpcAssertionBuilder and are type-legal because the fields are
|
|
9
|
+
* declared as plain strings; the backend rejects an unknown source or comparison
|
|
10
|
+
* with a 400. Source and comparison are independent (the accepted comparison does
|
|
11
|
+
* not depend on the source), so both are always checked.
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateGrpcAssertion(diagnostics: Diagnostics, assertion: GrpcAssertion, index: number): void;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { addAssertionDiagnostic, quotedKeys } from './internal/assertion-validation.js';
|
|
2
|
+
// Keyed by the source union so a member added to GrpcAssertion['source'] without a
|
|
3
|
+
// matching entry here is a compile-time error.
|
|
4
|
+
const assertionSources = {
|
|
5
|
+
RESPONSE_TIME: true,
|
|
6
|
+
GRPC_RESPONSE: true,
|
|
7
|
+
TEXT_BODY: true,
|
|
8
|
+
GRPC_METADATA: true,
|
|
9
|
+
GRPC_HEALTHCHECK_STATUS: true,
|
|
10
|
+
GRPC_STATUS_CODE: true,
|
|
11
|
+
};
|
|
12
|
+
// The comparisons the backend accepts for gRPC assertions. Unlike traceroute, the
|
|
13
|
+
// backend does not couple the comparison to the source — it is the shared
|
|
14
|
+
// 14-operator list. Keep in sync with the backend's accepted comparison set.
|
|
15
|
+
const assertionComparisons = {
|
|
16
|
+
EQUALS: true,
|
|
17
|
+
NOT_EQUALS: true,
|
|
18
|
+
HAS_KEY: true,
|
|
19
|
+
NOT_HAS_KEY: true,
|
|
20
|
+
HAS_VALUE: true,
|
|
21
|
+
NOT_HAS_VALUE: true,
|
|
22
|
+
IS_EMPTY: true,
|
|
23
|
+
NOT_EMPTY: true,
|
|
24
|
+
GREATER_THAN: true,
|
|
25
|
+
LESS_THAN: true,
|
|
26
|
+
CONTAINS: true,
|
|
27
|
+
NOT_CONTAINS: true,
|
|
28
|
+
IS_NULL: true,
|
|
29
|
+
NOT_NULL: true,
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Reports gRPC assertions whose source or comparison the backend does not accept.
|
|
33
|
+
*
|
|
34
|
+
* gRPC places no constraint on `property` — any string is valid for every source —
|
|
35
|
+
* so only the source and comparison are checked. Assertions written as plain object
|
|
36
|
+
* literals bypass GrpcAssertionBuilder and are type-legal because the fields are
|
|
37
|
+
* declared as plain strings; the backend rejects an unknown source or comparison
|
|
38
|
+
* with a 400. Source and comparison are independent (the accepted comparison does
|
|
39
|
+
* not depend on the source), so both are always checked.
|
|
40
|
+
*/
|
|
41
|
+
export function validateGrpcAssertion(diagnostics, assertion, index) {
|
|
42
|
+
const location = `request.assertions[${index}]`;
|
|
43
|
+
if (!Object.hasOwn(assertionSources, assertion.source)) {
|
|
44
|
+
addAssertionDiagnostic(diagnostics, `The assertion at "${location}" has an unknown source "${assertion.source}". `
|
|
45
|
+
+ `Expected one of ${quotedKeys(assertionSources)}.`);
|
|
46
|
+
}
|
|
47
|
+
if (!Object.hasOwn(assertionComparisons, assertion.comparison)) {
|
|
48
|
+
addAssertionDiagnostic(diagnostics, `The assertion at "${location}" has an unsupported comparison `
|
|
49
|
+
+ `${assertion.comparison === '' ? '(none)' : `"${assertion.comparison}"`}. `
|
|
50
|
+
+ `Expected one of ${quotedKeys(assertionComparisons)}.`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=grpc-assertion-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grpc-assertion-validation.js","sourceRoot":"","sources":["../../src/constructs/grpc-assertion-validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAA;AAEvF,mFAAmF;AACnF,+CAA+C;AAC/C,MAAM,gBAAgB,GAA0C;IAC9D,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,IAAI;IACnB,uBAAuB,EAAE,IAAI;IAC7B,gBAAgB,EAAE,IAAI;CACvB,CAAA;AAED,kFAAkF;AAClF,0EAA0E;AAC1E,6EAA6E;AAC7E,MAAM,oBAAoB,GAAyB;IACjD,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAAwB,EACxB,SAAwB,EACxB,KAAa;IAEb,MAAM,QAAQ,GAAG,sBAAsB,KAAK,GAAG,CAAA;IAE/C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,sBAAsB,CAAC,WAAW,EAChC,qBAAqB,QAAQ,4BAA4B,SAAS,CAAC,MAAM,KAAK;cAC5E,mBAAmB,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACzD,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/D,sBAAsB,CAAC,WAAW,EAChC,qBAAqB,QAAQ,kCAAkC;cAC7D,GAAG,SAAS,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,UAAU,GAAG,IAAI;cAC3E,mBAAmB,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;IAC7D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Assertion as CoreAssertion, NumericAssertionBuilder, GeneralAssertionBuilder } from './internal/assertion.js';
|
|
2
|
+
type GrpcAssertionSource = 'RESPONSE_TIME' | 'GRPC_STATUS_CODE' | 'GRPC_HEALTHCHECK_STATUS' | 'GRPC_RESPONSE' | 'TEXT_BODY' | 'GRPC_METADATA';
|
|
3
|
+
export type GrpcAssertion = CoreAssertion<GrpcAssertionSource>;
|
|
4
|
+
/**
|
|
5
|
+
* Builder class for creating gRPC monitor assertions.
|
|
6
|
+
* Provides methods to create assertions for gRPC call responses.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // Response time assertions
|
|
11
|
+
* GrpcAssertionBuilder.responseTime().lessThan(1000)
|
|
12
|
+
*
|
|
13
|
+
* // gRPC status code assertions (e.g. 0 = OK)
|
|
14
|
+
* GrpcAssertionBuilder.statusCode().equals(0)
|
|
15
|
+
*
|
|
16
|
+
* // Health-check status assertions (HEALTH mode)
|
|
17
|
+
* GrpcAssertionBuilder.healthCheckStatus().equals('SERVING')
|
|
18
|
+
*
|
|
19
|
+
* // Response message assertions (BEHAVIOR mode)
|
|
20
|
+
* GrpcAssertionBuilder.responseMessage('$.status').equals('ok')
|
|
21
|
+
*
|
|
22
|
+
* // Response metadata (header) assertions
|
|
23
|
+
* GrpcAssertionBuilder.responseMetadata('content-type').contains('grpc')
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare class GrpcAssertionBuilder {
|
|
27
|
+
/**
|
|
28
|
+
* Creates an assertion builder for gRPC response time.
|
|
29
|
+
* @returns A numeric assertion builder for response time in milliseconds.
|
|
30
|
+
*/
|
|
31
|
+
static responseTime(): NumericAssertionBuilder<GrpcAssertionSource, string>;
|
|
32
|
+
/**
|
|
33
|
+
* Creates an assertion builder for the gRPC status code.
|
|
34
|
+
* @returns A numeric assertion builder for the gRPC status code.
|
|
35
|
+
*/
|
|
36
|
+
static statusCode(): NumericAssertionBuilder<GrpcAssertionSource, string>;
|
|
37
|
+
/**
|
|
38
|
+
* Creates an assertion builder for the gRPC health-check status (HEALTH mode).
|
|
39
|
+
* @returns A general assertion builder for the health-check status.
|
|
40
|
+
*/
|
|
41
|
+
static healthCheckStatus(): GeneralAssertionBuilder<GrpcAssertionSource, string | number | boolean>;
|
|
42
|
+
/**
|
|
43
|
+
* Creates an assertion builder for the gRPC response message (BEHAVIOR mode).
|
|
44
|
+
* @param property Optional JSON path to a specific property (e.g., '$.status').
|
|
45
|
+
* @returns A general assertion builder for the response message.
|
|
46
|
+
*/
|
|
47
|
+
static responseMessage(property?: string): GeneralAssertionBuilder<GrpcAssertionSource, string | number | boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Creates an assertion builder for the raw gRPC response body as text (BEHAVIOR mode).
|
|
50
|
+
* @param property Optional property path for text content.
|
|
51
|
+
* @returns A general assertion builder for the text response body.
|
|
52
|
+
*/
|
|
53
|
+
static textBody(property?: string): GeneralAssertionBuilder<GrpcAssertionSource, string | number | boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* Creates an assertion builder for gRPC response metadata (headers).
|
|
56
|
+
* @param property Optional metadata key to assert against.
|
|
57
|
+
* @returns A general assertion builder for the response metadata.
|
|
58
|
+
*/
|
|
59
|
+
static responseMetadata(property?: string): GeneralAssertionBuilder<GrpcAssertionSource, string | number | boolean>;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { NumericAssertionBuilder, GeneralAssertionBuilder } from './internal/assertion.js';
|
|
2
|
+
/**
|
|
3
|
+
* Builder class for creating gRPC monitor assertions.
|
|
4
|
+
* Provides methods to create assertions for gRPC call responses.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* // Response time assertions
|
|
9
|
+
* GrpcAssertionBuilder.responseTime().lessThan(1000)
|
|
10
|
+
*
|
|
11
|
+
* // gRPC status code assertions (e.g. 0 = OK)
|
|
12
|
+
* GrpcAssertionBuilder.statusCode().equals(0)
|
|
13
|
+
*
|
|
14
|
+
* // Health-check status assertions (HEALTH mode)
|
|
15
|
+
* GrpcAssertionBuilder.healthCheckStatus().equals('SERVING')
|
|
16
|
+
*
|
|
17
|
+
* // Response message assertions (BEHAVIOR mode)
|
|
18
|
+
* GrpcAssertionBuilder.responseMessage('$.status').equals('ok')
|
|
19
|
+
*
|
|
20
|
+
* // Response metadata (header) assertions
|
|
21
|
+
* GrpcAssertionBuilder.responseMetadata('content-type').contains('grpc')
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export class GrpcAssertionBuilder {
|
|
25
|
+
/**
|
|
26
|
+
* Creates an assertion builder for gRPC response time.
|
|
27
|
+
* @returns A numeric assertion builder for response time in milliseconds.
|
|
28
|
+
*/
|
|
29
|
+
static responseTime() {
|
|
30
|
+
return new NumericAssertionBuilder('RESPONSE_TIME');
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Creates an assertion builder for the gRPC status code.
|
|
34
|
+
* @returns A numeric assertion builder for the gRPC status code.
|
|
35
|
+
*/
|
|
36
|
+
static statusCode() {
|
|
37
|
+
return new NumericAssertionBuilder('GRPC_STATUS_CODE');
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Creates an assertion builder for the gRPC health-check status (HEALTH mode).
|
|
41
|
+
* @returns A general assertion builder for the health-check status.
|
|
42
|
+
*/
|
|
43
|
+
static healthCheckStatus() {
|
|
44
|
+
return new GeneralAssertionBuilder('GRPC_HEALTHCHECK_STATUS');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Creates an assertion builder for the gRPC response message (BEHAVIOR mode).
|
|
48
|
+
* @param property Optional JSON path to a specific property (e.g., '$.status').
|
|
49
|
+
* @returns A general assertion builder for the response message.
|
|
50
|
+
*/
|
|
51
|
+
static responseMessage(property) {
|
|
52
|
+
return new GeneralAssertionBuilder('GRPC_RESPONSE', property);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Creates an assertion builder for the raw gRPC response body as text (BEHAVIOR mode).
|
|
56
|
+
* @param property Optional property path for text content.
|
|
57
|
+
* @returns A general assertion builder for the text response body.
|
|
58
|
+
*/
|
|
59
|
+
static textBody(property) {
|
|
60
|
+
return new GeneralAssertionBuilder('TEXT_BODY', property);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Creates an assertion builder for gRPC response metadata (headers).
|
|
64
|
+
* @param property Optional metadata key to assert against.
|
|
65
|
+
* @returns A general assertion builder for the response metadata.
|
|
66
|
+
*/
|
|
67
|
+
static responseMetadata(property) {
|
|
68
|
+
return new GeneralAssertionBuilder('GRPC_METADATA', property);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=grpc-assertion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grpc-assertion.js","sourceRoot":"","sources":["../../src/constructs/grpc-assertion.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAYtH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,oBAAoB;IAC/B;;;OAGG;IACH,MAAM,CAAC,YAAY;QACjB,OAAO,IAAI,uBAAuB,CAAsB,eAAe,CAAC,CAAA;IAC1E,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,IAAI,uBAAuB,CAAsB,kBAAkB,CAAC,CAAA;IAC7E,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,iBAAiB;QACtB,OAAO,IAAI,uBAAuB,CAAsB,yBAAyB,CAAC,CAAA;IACpF,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAE,QAAiB;QACvC,OAAO,IAAI,uBAAuB,CAAsB,eAAe,EAAE,QAAQ,CAAC,CAAA;IACpF,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAE,QAAiB;QAChC,OAAO,IAAI,uBAAuB,CAAsB,WAAW,EAAE,QAAQ,CAAC,CAAA;IAChF,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAE,QAAiB;QACxC,OAAO,IAAI,uBAAuB,CAAsB,eAAe,EAAE,QAAQ,CAAC,CAAA;IACpF,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Codegen, Context } from './internal/codegen/index.js';
|
|
2
|
+
import { MonitorResource } from './monitor-codegen.js';
|
|
3
|
+
import { GrpcRequest } from './grpc-request.js';
|
|
4
|
+
export interface GrpcMonitorResource extends MonitorResource {
|
|
5
|
+
checkType: 'GRPC';
|
|
6
|
+
request: GrpcRequest;
|
|
7
|
+
degradedResponseTime?: number;
|
|
8
|
+
maxResponseTime?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class GrpcMonitorCodegen extends Codegen<GrpcMonitorResource> {
|
|
11
|
+
describe(resource: GrpcMonitorResource): string;
|
|
12
|
+
gencode(logicalId: string, resource: GrpcMonitorResource, context: Context): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Codegen } from './internal/codegen/index.js';
|
|
2
|
+
import { expr, ident } from '../sourcegen/index.js';
|
|
3
|
+
import { buildMonitorProps } from './monitor-codegen.js';
|
|
4
|
+
import { valueForGrpcRequest } from './grpc-request-codegen.js';
|
|
5
|
+
const construct = 'GrpcMonitor';
|
|
6
|
+
export class GrpcMonitorCodegen extends Codegen {
|
|
7
|
+
describe(resource) {
|
|
8
|
+
return `gRPC Monitor: ${resource.name}`;
|
|
9
|
+
}
|
|
10
|
+
gencode(logicalId, resource, context) {
|
|
11
|
+
const filePath = context.filePath('resources/grpc-monitors', resource.name, {
|
|
12
|
+
tags: resource.tags,
|
|
13
|
+
unique: true,
|
|
14
|
+
});
|
|
15
|
+
const file = this.program.generatedConstructFile(filePath.fullPath);
|
|
16
|
+
file.namedImport(construct, 'checkly/constructs');
|
|
17
|
+
file.section(expr(ident(construct), builder => {
|
|
18
|
+
builder.new(builder => {
|
|
19
|
+
builder.string(logicalId);
|
|
20
|
+
builder.object(builder => {
|
|
21
|
+
if (resource.degradedResponseTime !== undefined) {
|
|
22
|
+
builder.number('degradedResponseTime', resource.degradedResponseTime);
|
|
23
|
+
}
|
|
24
|
+
if (resource.maxResponseTime !== undefined) {
|
|
25
|
+
builder.number('maxResponseTime', resource.maxResponseTime);
|
|
26
|
+
}
|
|
27
|
+
buildMonitorProps(this.program, file, builder, resource, context);
|
|
28
|
+
builder.value('request', valueForGrpcRequest(this.program, file, context, resource.request));
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=grpc-monitor-codegen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grpc-monitor-codegen.js","sourceRoot":"","sources":["../../src/constructs/grpc-monitor-codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAmB,MAAM,sBAAsB,CAAA;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAS/D,MAAM,SAAS,GAAG,aAAa,CAAA;AAE/B,MAAM,OAAO,kBAAmB,SAAQ,OAA4B;IAClE,QAAQ,CAAE,QAA6B;QACrC,OAAO,iBAAiB,QAAQ,CAAC,IAAI,EAAE,CAAA;IACzC,CAAC;IAED,OAAO,CAAE,SAAiB,EAAE,QAA6B,EAAE,OAAgB;QACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,yBAAyB,EAAE,QAAQ,CAAC,IAAI,EAAE;YAC1E,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,IAAI;SACb,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEnE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;QAEjD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE;YAC5C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBACpB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBACzB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;oBACvB,IAAI,QAAQ,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;wBAChD,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAA;oBACvE,CAAC;oBAED,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;wBAC3C,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAA;oBAC7D,CAAC;oBAED,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;oBAEjE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC9F,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAC,CAAA;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Monitor, MonitorProps } from './monitor.js';
|
|
2
|
+
import { Diagnostics } from './diagnostics.js';
|
|
3
|
+
import { GrpcRequest } from './grpc-request.js';
|
|
4
|
+
export interface GrpcMonitorProps extends MonitorProps {
|
|
5
|
+
/**
|
|
6
|
+
* Determines the request that the monitor is going to run.
|
|
7
|
+
*/
|
|
8
|
+
request: GrpcRequest;
|
|
9
|
+
/**
|
|
10
|
+
* The response time in milliseconds where the monitor should be considered
|
|
11
|
+
* degraded.
|
|
12
|
+
*
|
|
13
|
+
* @defaultValue 10000
|
|
14
|
+
* @minimum 0
|
|
15
|
+
* @maximum 180000
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* degradedResponseTime: 3000 // Alert when the gRPC call takes longer than 3 seconds
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
degradedResponseTime?: number;
|
|
22
|
+
/**
|
|
23
|
+
* The response time in milliseconds where the monitor should be considered
|
|
24
|
+
* failing.
|
|
25
|
+
*
|
|
26
|
+
* @defaultValue 20000
|
|
27
|
+
* @minimum 0
|
|
28
|
+
* @maximum 180000
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* maxResponseTime: 10000 // Fail if the gRPC call takes longer than 10 seconds
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
maxResponseTime?: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Creates a gRPC Monitor
|
|
38
|
+
*/
|
|
39
|
+
export declare class GrpcMonitor extends Monitor {
|
|
40
|
+
request: GrpcRequest;
|
|
41
|
+
degradedResponseTime?: number;
|
|
42
|
+
maxResponseTime?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Constructs the gRPC Monitor instance
|
|
45
|
+
*
|
|
46
|
+
* @param logicalId unique project-scoped resource name identification
|
|
47
|
+
* @param props configuration properties
|
|
48
|
+
*
|
|
49
|
+
* {@link https://www.checklyhq.com/docs/constructs/grpc-monitor/ Read more in the docs}
|
|
50
|
+
*/
|
|
51
|
+
constructor(logicalId: string, props: GrpcMonitorProps);
|
|
52
|
+
describe(): string;
|
|
53
|
+
validate(diagnostics: Diagnostics): Promise<void>;
|
|
54
|
+
synthesize(): {
|
|
55
|
+
checkType: string;
|
|
56
|
+
request: GrpcRequest;
|
|
57
|
+
degradedResponseTime: number | undefined;
|
|
58
|
+
maxResponseTime: number | undefined;
|
|
59
|
+
doubleCheck: boolean;
|
|
60
|
+
activated: boolean | undefined;
|
|
61
|
+
muted: boolean | undefined;
|
|
62
|
+
shouldFail: boolean | undefined;
|
|
63
|
+
locations: (keyof import("../index.js").Region)[] | undefined;
|
|
64
|
+
privateLocations: undefined;
|
|
65
|
+
tags: string[] | undefined;
|
|
66
|
+
frequency: number | undefined;
|
|
67
|
+
frequencyOffset: number | undefined;
|
|
68
|
+
groupId: import("./ref.js").Ref | null;
|
|
69
|
+
retryStrategy: import("./retry-strategy.js").LinearRetryStrategy | import("./retry-strategy.js").ExponentialRetryStrategy | import("./retry-strategy.js").FixedRetryStrategy | import("./retry-strategy.js").SingleRetryRetryStrategy | null | undefined;
|
|
70
|
+
alertSettings: import("./alert-escalation-policy.js").AlertEscalation | undefined;
|
|
71
|
+
useGlobalAlertSettings: boolean | undefined;
|
|
72
|
+
runParallel: boolean | undefined;
|
|
73
|
+
triggerIncident: {
|
|
74
|
+
serviceId: import("./ref.js").Ref;
|
|
75
|
+
severity: "MINOR" | "MEDIUM" | "MAJOR" | "CRITICAL";
|
|
76
|
+
name: string;
|
|
77
|
+
description: string;
|
|
78
|
+
notifySubscribers: boolean;
|
|
79
|
+
} | undefined;
|
|
80
|
+
description?: string | undefined;
|
|
81
|
+
name: string;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Monitor } from './monitor.js';
|
|
2
|
+
import { Session } from './session.js';
|
|
3
|
+
import { validateResponseTimes } from './internal/common-diagnostics.js';
|
|
4
|
+
import { validateGrpcAssertion } from './grpc-assertion-validation.js';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a gRPC Monitor
|
|
7
|
+
*/
|
|
8
|
+
export class GrpcMonitor extends Monitor {
|
|
9
|
+
request;
|
|
10
|
+
degradedResponseTime;
|
|
11
|
+
maxResponseTime;
|
|
12
|
+
/**
|
|
13
|
+
* Constructs the gRPC Monitor instance
|
|
14
|
+
*
|
|
15
|
+
* @param logicalId unique project-scoped resource name identification
|
|
16
|
+
* @param props configuration properties
|
|
17
|
+
*
|
|
18
|
+
* {@link https://www.checklyhq.com/docs/constructs/grpc-monitor/ Read more in the docs}
|
|
19
|
+
*/
|
|
20
|
+
constructor(logicalId, props) {
|
|
21
|
+
super(logicalId, props);
|
|
22
|
+
this.request = props.request;
|
|
23
|
+
this.degradedResponseTime = props.degradedResponseTime;
|
|
24
|
+
this.maxResponseTime = props.maxResponseTime;
|
|
25
|
+
Session.registerConstruct(this);
|
|
26
|
+
this.addSubscriptions();
|
|
27
|
+
this.addPrivateLocationCheckAssignments();
|
|
28
|
+
}
|
|
29
|
+
describe() {
|
|
30
|
+
return `GrpcMonitor:${this.logicalId}`;
|
|
31
|
+
}
|
|
32
|
+
async validate(diagnostics) {
|
|
33
|
+
await super.validate(diagnostics);
|
|
34
|
+
await validateResponseTimes(diagnostics, this, {
|
|
35
|
+
// gRPC allows thresholds up to 180s (calls can run to the 180s timeout),
|
|
36
|
+
// matching the backend's gRPC response-time limits.
|
|
37
|
+
degradedResponseTime: 180_000,
|
|
38
|
+
maxResponseTime: 180_000,
|
|
39
|
+
// Backend default applied when maxResponseTime is omitted.
|
|
40
|
+
defaultMaxResponseTime: 20_000,
|
|
41
|
+
});
|
|
42
|
+
for (const [index, assertion] of (this.request.assertions ?? []).entries()) {
|
|
43
|
+
validateGrpcAssertion(diagnostics, assertion, index);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
synthesize() {
|
|
47
|
+
return {
|
|
48
|
+
...super.synthesize(),
|
|
49
|
+
checkType: 'GRPC',
|
|
50
|
+
request: this.request,
|
|
51
|
+
degradedResponseTime: this.degradedResponseTime,
|
|
52
|
+
maxResponseTime: this.maxResponseTime,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=grpc-monitor.js.map
|