@depup/vercel 50.32.5-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +38 -0
- package/changes.json +38 -0
- package/dist/chunks/chunk-2DLBVZWU.js +197 -0
- package/dist/chunks/chunk-2HSQ7YUK.js +93 -0
- package/dist/chunks/chunk-2IQTNMUG.js +86 -0
- package/dist/chunks/chunk-3FRG2XGZ.js +466 -0
- package/dist/chunks/chunk-3KMKI2FP.js +34 -0
- package/dist/chunks/chunk-3XFFP2BA.js +110 -0
- package/dist/chunks/chunk-4S3Y3ATR.js +5383 -0
- package/dist/chunks/chunk-7EHTK7LP.js +359 -0
- package/dist/chunks/chunk-7YHZDJ4G.js +116 -0
- package/dist/chunks/chunk-A3NYPUKZ.js +17 -0
- package/dist/chunks/chunk-AA7QEJFB.js +5204 -0
- package/dist/chunks/chunk-AHU7WNL2.js +24 -0
- package/dist/chunks/chunk-AKQZ7KG3.js +4172 -0
- package/dist/chunks/chunk-AQLVWVEN.js +39155 -0
- package/dist/chunks/chunk-BQ3DXZNT.js +968 -0
- package/dist/chunks/chunk-E65JE2CC.js +102 -0
- package/dist/chunks/chunk-EKPSCRJZ.js +26 -0
- package/dist/chunks/chunk-EOZFDJSY.js +18 -0
- package/dist/chunks/chunk-FDJURQMQ.js +4676 -0
- package/dist/chunks/chunk-FLKHKWZV.js +1854 -0
- package/dist/chunks/chunk-G6BUEBF5.js +192 -0
- package/dist/chunks/chunk-GBNIO3KP.js +771 -0
- package/dist/chunks/chunk-GGP5R3FU.js +129 -0
- package/dist/chunks/chunk-H5XJSH37.js +91 -0
- package/dist/chunks/chunk-IB5L4LKZ.js +1082 -0
- package/dist/chunks/chunk-IE7MNZ56.js +149 -0
- package/dist/chunks/chunk-IK7DLK2T.js +16112 -0
- package/dist/chunks/chunk-IUGPWINM.js +104 -0
- package/dist/chunks/chunk-J7HDA5GH.js +54 -0
- package/dist/chunks/chunk-JLYZNGYY.js +293 -0
- package/dist/chunks/chunk-JQ4NA5MX.js +250 -0
- package/dist/chunks/chunk-LL26LVRR.js +81 -0
- package/dist/chunks/chunk-LW5ZNGW7.js +127 -0
- package/dist/chunks/chunk-LWBSOTJP.js +1772 -0
- package/dist/chunks/chunk-MBGJBHYD.js +388 -0
- package/dist/chunks/chunk-NUKAG3YM.js +168 -0
- package/dist/chunks/chunk-O7I4ZOCC.js +58 -0
- package/dist/chunks/chunk-OWR3XNE3.js +48 -0
- package/dist/chunks/chunk-P3SKP5WM.js +27 -0
- package/dist/chunks/chunk-P4I4DMEU.js +342 -0
- package/dist/chunks/chunk-P5Q6F5IA.js +107 -0
- package/dist/chunks/chunk-PMSMUMUO.js +30 -0
- package/dist/chunks/chunk-QXRJ52T4.js +2977 -0
- package/dist/chunks/chunk-RQXPRFRM.js +90 -0
- package/dist/chunks/chunk-S7KYDPEM.js +1564 -0
- package/dist/chunks/chunk-SGGLJFUZ.js +68 -0
- package/dist/chunks/chunk-SOTR4CXR.js +34 -0
- package/dist/chunks/chunk-TEVP63TU.js +1717 -0
- package/dist/chunks/chunk-TNBMKNET.js +323 -0
- package/dist/chunks/chunk-TZ2YI2VH.js +87 -0
- package/dist/chunks/chunk-U6XOC6E4.js +903 -0
- package/dist/chunks/chunk-V5P25P7F.js +22 -0
- package/dist/chunks/chunk-WQ5CUZWR.js +333 -0
- package/dist/chunks/chunk-WU2BPWRP.js +12237 -0
- package/dist/chunks/chunk-XPKWKPWA.js +44 -0
- package/dist/chunks/chunk-XR53KVJD.js +33 -0
- package/dist/chunks/chunk-Y4JJYHUG.js +16 -0
- package/dist/chunks/chunk-YPQSDAEW.js +29 -0
- package/dist/chunks/chunk-ZB2UO4V2.js +135 -0
- package/dist/chunks/chunk-ZLCMHY2G.js +1528 -0
- package/dist/chunks/compile-vercel-config-XU3YY2CZ.js +32 -0
- package/dist/chunks/delete-EJ2V7KQO.js +144 -0
- package/dist/chunks/disable-BKRFMX4U.js +122 -0
- package/dist/chunks/discard-4WF34DXK.js +118 -0
- package/dist/chunks/edit-FQE7JGU3.js +509 -0
- package/dist/chunks/emit-flags-datafiles-QYKPNWPX.js +17 -0
- package/dist/chunks/enable-VCNMX63U.js +122 -0
- package/dist/chunks/export-3KNVJCQR.js +133 -0
- package/dist/chunks/list-43XQCGKH.js +382 -0
- package/dist/chunks/list-DUL6PHUR.js +394 -0
- package/dist/chunks/publish-CF7GVZK3.js +128 -0
- package/dist/chunks/query-KWKO7VWO.js +954 -0
- package/dist/chunks/reorder-GU65YMIN.js +259 -0
- package/dist/chunks/restore-Q7ENGWVJ.js +158 -0
- package/dist/chunks/routes-Q5CWG44T.js +20 -0
- package/dist/chunks/schema-PJKLO2K2.js +176 -0
- package/dist/chunks/stamp-RTPE2EBB.js +15 -0
- package/dist/chunks/types-563KUQRV.js +108 -0
- package/dist/chunks/update-route-version-E3V47KNI.js +13 -0
- package/dist/commands/build/index.js +1597 -0
- package/dist/commands/deploy/index.js +1711 -0
- package/dist/commands/dev/builder-worker.cjs +95 -0
- package/dist/commands/dev/index.js +20810 -0
- package/dist/commands/env/index.js +2154 -0
- package/dist/commands/link/index.js +225 -0
- package/dist/commands/list/index.js +528 -0
- package/dist/commands-bulk.js +29627 -0
- package/dist/get-latest-worker.cjs +272 -0
- package/dist/help.js +14 -0
- package/dist/index.js +24274 -0
- package/dist/vc.js +36 -0
- package/dist/version.mjs +1 -0
- package/package.json +254 -0
|
@@ -0,0 +1,968 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'node:url';
|
|
3
|
+
import { dirname as __dirname_ } from 'node:path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __dirname_(__filename);
|
|
7
|
+
import {
|
|
8
|
+
validateAllProjectMutualExclusivity
|
|
9
|
+
} from "./chunk-IE7MNZ56.js";
|
|
10
|
+
|
|
11
|
+
// src/commands/metrics/schema-data.ts
|
|
12
|
+
var COUNT_AGGREGATIONS = ["sum", "persecond", "percent"];
|
|
13
|
+
var VALUE_AGGREGATIONS = [
|
|
14
|
+
"sum",
|
|
15
|
+
"persecond",
|
|
16
|
+
"percent",
|
|
17
|
+
"avg",
|
|
18
|
+
"min",
|
|
19
|
+
"max",
|
|
20
|
+
"p50",
|
|
21
|
+
"p75",
|
|
22
|
+
"p90",
|
|
23
|
+
"p95",
|
|
24
|
+
"p99",
|
|
25
|
+
"stddev"
|
|
26
|
+
];
|
|
27
|
+
var SCHEMA = {
|
|
28
|
+
aiGatewayRequest: {
|
|
29
|
+
description: "AI Gateway Requests",
|
|
30
|
+
dimensions: [
|
|
31
|
+
{
|
|
32
|
+
name: "aiGatewayModelId",
|
|
33
|
+
label: "AI Gateway Model ID",
|
|
34
|
+
filterOnly: true
|
|
35
|
+
},
|
|
36
|
+
{ name: "aiModel", label: "AI Model", filterOnly: false },
|
|
37
|
+
{ name: "aiModelType", label: "AI Model Type", filterOnly: false },
|
|
38
|
+
{ name: "aiProvider", label: "AI Provider", filterOnly: false },
|
|
39
|
+
{
|
|
40
|
+
name: "cacheCreationInputTokensCurrency",
|
|
41
|
+
label: "Cache Creation Input Tokens Currency",
|
|
42
|
+
filterOnly: true
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "cachedInputTokensCurrency",
|
|
46
|
+
label: "Cached Input Tokens Currency",
|
|
47
|
+
filterOnly: true
|
|
48
|
+
},
|
|
49
|
+
{ name: "costCurrency", label: "Currency", filterOnly: true },
|
|
50
|
+
{ name: "deploymentId", label: "Deployment ID", filterOnly: false },
|
|
51
|
+
{ name: "environment", label: "Environment", filterOnly: false },
|
|
52
|
+
{ name: "httpStatus", label: "HTTP Status", filterOnly: false },
|
|
53
|
+
{ name: "isByok", label: "BYOK", filterOnly: false },
|
|
54
|
+
{ name: "keyId", label: "Key ID", filterOnly: true },
|
|
55
|
+
{ name: "keyName", label: "Key Name", filterOnly: true },
|
|
56
|
+
{
|
|
57
|
+
name: "marketCostCurrency",
|
|
58
|
+
label: "Market Cost Currency",
|
|
59
|
+
filterOnly: true
|
|
60
|
+
},
|
|
61
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
62
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
63
|
+
{
|
|
64
|
+
name: "videoAspectRatio",
|
|
65
|
+
label: "Video Aspect Ratio",
|
|
66
|
+
filterOnly: false
|
|
67
|
+
},
|
|
68
|
+
{ name: "videoResolution", label: "Video Resolution", filterOnly: false }
|
|
69
|
+
],
|
|
70
|
+
measures: [
|
|
71
|
+
{
|
|
72
|
+
name: "aiRequestDurationMs",
|
|
73
|
+
label: "Request Duration",
|
|
74
|
+
unit: "milliseconds"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "cacheCreationInputTokens",
|
|
78
|
+
label: "Cache Creation Tokens",
|
|
79
|
+
unit: "count"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: "cachedInputTokens",
|
|
83
|
+
label: "Cached Input Tokens",
|
|
84
|
+
unit: "count"
|
|
85
|
+
},
|
|
86
|
+
{ name: "cost", label: "Cost", unit: "US dollars" },
|
|
87
|
+
{ name: "count", label: "Count", unit: "count" },
|
|
88
|
+
{ name: "inputTokens", label: "Input Tokens", unit: "count" },
|
|
89
|
+
{ name: "outputTokens", label: "Output Tokens", unit: "count" },
|
|
90
|
+
{
|
|
91
|
+
name: "timeToFirstTokenMs",
|
|
92
|
+
label: "Time to First Token",
|
|
93
|
+
unit: "milliseconds"
|
|
94
|
+
},
|
|
95
|
+
{ name: "videoCount", label: "Video Count", unit: "count" },
|
|
96
|
+
{
|
|
97
|
+
name: "videoDurationSeconds",
|
|
98
|
+
label: "Video Duration",
|
|
99
|
+
unit: "seconds"
|
|
100
|
+
},
|
|
101
|
+
{ name: "videoFps", label: "Video FPS", unit: "count" },
|
|
102
|
+
{ name: "webSearchCallCount", label: "Web Search Calls", unit: "count" }
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
blobDataTransfer: {
|
|
106
|
+
description: "Blob store data transfer operations",
|
|
107
|
+
dimensions: [
|
|
108
|
+
{ name: "cacheHitLevel", label: "Cache Hit Level", filterOnly: true },
|
|
109
|
+
{ name: "cacheHitState", label: "Cache Hit State", filterOnly: true },
|
|
110
|
+
{ name: "cacheResult", label: "Cache Result", filterOnly: false },
|
|
111
|
+
{ name: "clientIp", label: "IP Address", filterOnly: false },
|
|
112
|
+
{ name: "clientIpCountry", label: "IP Country", filterOnly: false },
|
|
113
|
+
{ name: "clientUserAgent", label: "User Agent", filterOnly: false },
|
|
114
|
+
{
|
|
115
|
+
name: "edgeNetworkRegion",
|
|
116
|
+
label: "Edge Network Region",
|
|
117
|
+
filterOnly: false
|
|
118
|
+
},
|
|
119
|
+
{ name: "httpStatus", label: "HTTP Status", filterOnly: false },
|
|
120
|
+
{ name: "pathType", label: "Path Type", filterOnly: false },
|
|
121
|
+
{
|
|
122
|
+
name: "referrerHostname",
|
|
123
|
+
label: "Referrer Hostname",
|
|
124
|
+
filterOnly: false
|
|
125
|
+
},
|
|
126
|
+
{ name: "referrerUrl", label: "Referrer URL", filterOnly: false },
|
|
127
|
+
{ name: "requestId", label: "Request ID", filterOnly: true },
|
|
128
|
+
{ name: "requestMethod", label: "Request Method", filterOnly: false },
|
|
129
|
+
{ name: "requestPath", label: "Request Path", filterOnly: false },
|
|
130
|
+
{ name: "storeId", label: "Store ID", filterOnly: true },
|
|
131
|
+
{ name: "storeName", label: "Store", filterOnly: true }
|
|
132
|
+
],
|
|
133
|
+
measures: [
|
|
134
|
+
{ name: "bdtOutBytes", label: "Blob Data Transfer", unit: "bytes" },
|
|
135
|
+
{ name: "count", label: "Count", unit: "count" }
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
blobOperation: {
|
|
139
|
+
description: "Blob store operations including reads writes and deletes",
|
|
140
|
+
dimensions: [
|
|
141
|
+
{
|
|
142
|
+
name: "blobOperationLevel",
|
|
143
|
+
label: "Operation Level",
|
|
144
|
+
filterOnly: true
|
|
145
|
+
},
|
|
146
|
+
{ name: "blobOperationType", label: "Operation", filterOnly: true },
|
|
147
|
+
{ name: "storeId", label: "Store ID", filterOnly: true },
|
|
148
|
+
{ name: "storeName", label: "Store", filterOnly: true }
|
|
149
|
+
],
|
|
150
|
+
measures: [{ name: "count", label: "Count", unit: "count" }]
|
|
151
|
+
},
|
|
152
|
+
blockedConnection: {
|
|
153
|
+
description: "Blocked Connections",
|
|
154
|
+
dimensions: [
|
|
155
|
+
{ name: "asnId", label: "AS Number", filterOnly: false },
|
|
156
|
+
{ name: "asnName", label: "AS Name", filterOnly: false },
|
|
157
|
+
{ name: "clientIp", label: "IP Address", filterOnly: false },
|
|
158
|
+
{ name: "clientIpCountry", label: "IP Country", filterOnly: false },
|
|
159
|
+
{ name: "clientUserAgent", label: "User Agent", filterOnly: false },
|
|
160
|
+
{
|
|
161
|
+
name: "edgeNetworkRegion",
|
|
162
|
+
label: "Edge Network Region",
|
|
163
|
+
filterOnly: false
|
|
164
|
+
},
|
|
165
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
166
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
167
|
+
{ name: "requestHostname", label: "Request Hostname", filterOnly: false },
|
|
168
|
+
{ name: "requestPath", label: "Request Path", filterOnly: false },
|
|
169
|
+
{ name: "route", label: "Route", filterOnly: false },
|
|
170
|
+
{ name: "wafAction", label: "WAF Action", filterOnly: false },
|
|
171
|
+
{ name: "wafRuleId", label: "WAF Rule ID", filterOnly: false }
|
|
172
|
+
],
|
|
173
|
+
measures: [{ name: "count", label: "Count", unit: "count" }]
|
|
174
|
+
},
|
|
175
|
+
botIdCheck: {
|
|
176
|
+
description: "BotID Checks",
|
|
177
|
+
dimensions: [
|
|
178
|
+
{ name: "asnId", label: "AS Number", filterOnly: false },
|
|
179
|
+
{ name: "asnName", label: "AS Name", filterOnly: false },
|
|
180
|
+
{ name: "botCheckResult", label: "BotID", filterOnly: false },
|
|
181
|
+
{ name: "clientIp", label: "IP Address", filterOnly: false },
|
|
182
|
+
{ name: "clientIpCountry", label: "IP Country", filterOnly: false },
|
|
183
|
+
{ name: "clientJa4Digest", label: "JA4 Digest", filterOnly: false },
|
|
184
|
+
{ name: "clientUserAgent", label: "User Agent", filterOnly: false },
|
|
185
|
+
{
|
|
186
|
+
name: "deepAnalysisCheck",
|
|
187
|
+
label: "Deep Analysis Check",
|
|
188
|
+
filterOnly: false
|
|
189
|
+
},
|
|
190
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
191
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
192
|
+
{ name: "referrerUrl", label: "Referrer URL", filterOnly: false },
|
|
193
|
+
{ name: "requestHostname", label: "Request Hostname", filterOnly: false },
|
|
194
|
+
{ name: "requestPath", label: "Request Path", filterOnly: false },
|
|
195
|
+
{ name: "route", label: "Route", filterOnly: false }
|
|
196
|
+
],
|
|
197
|
+
measures: [{ name: "count", label: "Count", unit: "count" }]
|
|
198
|
+
},
|
|
199
|
+
dataCacheEntryOperation: {
|
|
200
|
+
description: "Individual Vercel Data Cache entry operations",
|
|
201
|
+
dimensions: [
|
|
202
|
+
{ name: "cacheApi", label: "Cache API", filterOnly: true },
|
|
203
|
+
{ name: "cacheOperation", label: "Cache Operation", filterOnly: true },
|
|
204
|
+
{ name: "cacheResult", label: "Cache Result", filterOnly: false },
|
|
205
|
+
{
|
|
206
|
+
name: "dataCacheRegion",
|
|
207
|
+
label: "Vercel Data Cache Region",
|
|
208
|
+
filterOnly: true
|
|
209
|
+
},
|
|
210
|
+
{ name: "deploymentId", label: "Deployment ID", filterOnly: false },
|
|
211
|
+
{ name: "entryName", label: "Entry Name", filterOnly: true },
|
|
212
|
+
{
|
|
213
|
+
name: "entryRevalidateSeconds",
|
|
214
|
+
label: "Entry Revalidate Lifetime",
|
|
215
|
+
filterOnly: true
|
|
216
|
+
},
|
|
217
|
+
{ name: "environment", label: "Environment", filterOnly: false },
|
|
218
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
219
|
+
{ name: "requestHostname", label: "Request Hostname", filterOnly: false },
|
|
220
|
+
{ name: "requestId", label: "Request ID", filterOnly: true }
|
|
221
|
+
],
|
|
222
|
+
measures: [{ name: "count", label: "Count", unit: "count" }]
|
|
223
|
+
},
|
|
224
|
+
firewallAction: {
|
|
225
|
+
description: "Firewall Actions",
|
|
226
|
+
dimensions: [
|
|
227
|
+
{ name: "asnId", label: "AS Number", filterOnly: false },
|
|
228
|
+
{ name: "asnName", label: "AS Name", filterOnly: false },
|
|
229
|
+
{ name: "clientIp", label: "IP Address", filterOnly: false },
|
|
230
|
+
{ name: "clientIpCountry", label: "IP Country", filterOnly: false },
|
|
231
|
+
{ name: "clientJa4Digest", label: "JA4 Digest", filterOnly: false },
|
|
232
|
+
{ name: "clientUserAgent", label: "User Agent", filterOnly: false },
|
|
233
|
+
{
|
|
234
|
+
name: "edgeNetworkRegion",
|
|
235
|
+
label: "Edge Network Region",
|
|
236
|
+
filterOnly: false
|
|
237
|
+
},
|
|
238
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
239
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
240
|
+
{ name: "requestHostname", label: "Request Hostname", filterOnly: false },
|
|
241
|
+
{ name: "requestPath", label: "Request Path", filterOnly: false },
|
|
242
|
+
{ name: "route", label: "Route", filterOnly: false },
|
|
243
|
+
{ name: "wafAction", label: "WAF Action", filterOnly: false },
|
|
244
|
+
{ name: "wafRuleId", label: "WAF Rule ID", filterOnly: false }
|
|
245
|
+
],
|
|
246
|
+
measures: [{ name: "count", label: "Count", unit: "count" }]
|
|
247
|
+
},
|
|
248
|
+
functionExecution: {
|
|
249
|
+
description: "Function Executions",
|
|
250
|
+
dimensions: [
|
|
251
|
+
{ name: "cause", label: "Cause", filterOnly: false },
|
|
252
|
+
{ name: "clientIp", label: "IP Address", filterOnly: false },
|
|
253
|
+
{ name: "clientUserAgent", label: "User Agent", filterOnly: false },
|
|
254
|
+
{ name: "deploymentId", label: "Deployment ID", filterOnly: false },
|
|
255
|
+
{
|
|
256
|
+
name: "edgeNetworkRegion",
|
|
257
|
+
label: "Edge Network Region",
|
|
258
|
+
filterOnly: false
|
|
259
|
+
},
|
|
260
|
+
{ name: "environment", label: "Environment", filterOnly: false },
|
|
261
|
+
{ name: "errorCode", label: "Error Code", filterOnly: false },
|
|
262
|
+
{ name: "functionRegion", label: "Function Region", filterOnly: false },
|
|
263
|
+
{
|
|
264
|
+
name: "functionStartType",
|
|
265
|
+
label: "Function Start Type",
|
|
266
|
+
filterOnly: false
|
|
267
|
+
},
|
|
268
|
+
{ name: "httpStatus", label: "HTTP Status", filterOnly: false },
|
|
269
|
+
{
|
|
270
|
+
name: "middlewareAction",
|
|
271
|
+
label: "Middleware Action",
|
|
272
|
+
filterOnly: false
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
name: "middlewareActionTarget",
|
|
276
|
+
label: "Middleware Action Target",
|
|
277
|
+
filterOnly: false
|
|
278
|
+
},
|
|
279
|
+
{ name: "pathType", label: "Path Type", filterOnly: false },
|
|
280
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
281
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
282
|
+
{ name: "provider", label: "Provider", filterOnly: true },
|
|
283
|
+
{
|
|
284
|
+
name: "referrerHostname",
|
|
285
|
+
label: "Referrer Hostname",
|
|
286
|
+
filterOnly: false
|
|
287
|
+
},
|
|
288
|
+
{ name: "referrerUrl", label: "Referrer URL", filterOnly: false },
|
|
289
|
+
{ name: "requestHostname", label: "Request Hostname", filterOnly: false },
|
|
290
|
+
{ name: "requestMethod", label: "Request Method", filterOnly: false },
|
|
291
|
+
{ name: "requestPath", label: "Request Path", filterOnly: false },
|
|
292
|
+
{ name: "route", label: "Route", filterOnly: false },
|
|
293
|
+
{ name: "runtime", label: "Runtime", filterOnly: false },
|
|
294
|
+
{
|
|
295
|
+
name: "serverActionName",
|
|
296
|
+
label: "Server Action Name",
|
|
297
|
+
filterOnly: false
|
|
298
|
+
}
|
|
299
|
+
],
|
|
300
|
+
measures: [
|
|
301
|
+
{ name: "count", label: "Count", unit: "count" },
|
|
302
|
+
{
|
|
303
|
+
name: "fotInBytes",
|
|
304
|
+
label: "Incoming Fast Origin Transfer",
|
|
305
|
+
unit: "bytes"
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
name: "fotOutBytes",
|
|
309
|
+
label: "Outgoing Fast Origin Transfer",
|
|
310
|
+
unit: "bytes"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
name: "functionCpuTimeMs",
|
|
314
|
+
label: "Active CPU Time",
|
|
315
|
+
unit: "milliseconds"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
name: "functionDurationMs",
|
|
319
|
+
label: "Duration",
|
|
320
|
+
unit: "milliseconds"
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
name: "provisionedMemoryMb",
|
|
324
|
+
label: "Provisioned Memory",
|
|
325
|
+
unit: "megabytes"
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
name: "requestDurationMs",
|
|
329
|
+
label: "Request Duration",
|
|
330
|
+
unit: "milliseconds"
|
|
331
|
+
},
|
|
332
|
+
{ name: "ttfbMs", label: "Time to First Byte", unit: "milliseconds" }
|
|
333
|
+
]
|
|
334
|
+
},
|
|
335
|
+
imageTransformation: {
|
|
336
|
+
description: "Image Transformations",
|
|
337
|
+
dimensions: [
|
|
338
|
+
{ name: "deploymentId", label: "Deployment ID", filterOnly: false },
|
|
339
|
+
{ name: "environment", label: "Environment", filterOnly: false },
|
|
340
|
+
{ name: "httpStatus", label: "HTTP Status", filterOnly: false },
|
|
341
|
+
{
|
|
342
|
+
name: "imageTransformationRegion",
|
|
343
|
+
label: "Image Optimization Region",
|
|
344
|
+
filterOnly: false
|
|
345
|
+
},
|
|
346
|
+
{ name: "optimizedFormatMimeType", label: "Format", filterOnly: false },
|
|
347
|
+
{ name: "optimizedQuality", label: "Quality", filterOnly: false },
|
|
348
|
+
{ name: "optimizedWidthPixels", label: "Width", filterOnly: false },
|
|
349
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
350
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
351
|
+
{ name: "sourceImage", label: "Source Image", filterOnly: true },
|
|
352
|
+
{
|
|
353
|
+
name: "sourceImageHash",
|
|
354
|
+
label: "Source Image Hash",
|
|
355
|
+
filterOnly: false
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
name: "sourceImageHostname",
|
|
359
|
+
label: "Source Image Hostname",
|
|
360
|
+
filterOnly: false
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
name: "sourceImagePathname",
|
|
364
|
+
label: "Source Image Pathname",
|
|
365
|
+
filterOnly: true
|
|
366
|
+
}
|
|
367
|
+
],
|
|
368
|
+
measures: [
|
|
369
|
+
{ name: "compressionRatio", label: "Compression Ratio", unit: "ratio" },
|
|
370
|
+
{ name: "count", label: "Count", unit: "count" },
|
|
371
|
+
{ name: "optimizedSizeBytes", label: "Optimized Size", unit: "bytes" },
|
|
372
|
+
{
|
|
373
|
+
name: "requestDurationMs",
|
|
374
|
+
label: "Request Duration",
|
|
375
|
+
unit: "milliseconds"
|
|
376
|
+
},
|
|
377
|
+
{ name: "sizeChangePercent", label: "Size Change", unit: "percent" },
|
|
378
|
+
{ name: "sourceSizeBytes", label: "Source Size", unit: "bytes" }
|
|
379
|
+
]
|
|
380
|
+
},
|
|
381
|
+
imageTransformationFailure: {
|
|
382
|
+
description: "Image Transformation Failures",
|
|
383
|
+
dimensions: [
|
|
384
|
+
{ name: "deploymentId", label: "Deployment ID", filterOnly: false },
|
|
385
|
+
{ name: "environment", label: "Environment", filterOnly: false },
|
|
386
|
+
{ name: "errorMessage", label: "Error Message", filterOnly: true },
|
|
387
|
+
{ name: "httpStatus", label: "HTTP Status", filterOnly: false },
|
|
388
|
+
{ name: "imageSource", label: "Image Source", filterOnly: true },
|
|
389
|
+
{
|
|
390
|
+
name: "imageTransformationRegion",
|
|
391
|
+
label: "Image Optimization Region",
|
|
392
|
+
filterOnly: false
|
|
393
|
+
},
|
|
394
|
+
{ name: "optimizedFormatMimeType", label: "Format", filterOnly: false },
|
|
395
|
+
{ name: "optimizedQuality", label: "Quality", filterOnly: false },
|
|
396
|
+
{ name: "optimizedWidthPixels", label: "Width", filterOnly: false },
|
|
397
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
398
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
399
|
+
{ name: "sourceImage", label: "Source Image", filterOnly: true },
|
|
400
|
+
{
|
|
401
|
+
name: "sourceImageHostname",
|
|
402
|
+
label: "Source Image Hostname",
|
|
403
|
+
filterOnly: false
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
name: "sourceImagePathname",
|
|
407
|
+
label: "Source Image Pathname",
|
|
408
|
+
filterOnly: true
|
|
409
|
+
}
|
|
410
|
+
],
|
|
411
|
+
measures: [
|
|
412
|
+
{ name: "count", label: "Count", unit: "count" },
|
|
413
|
+
{
|
|
414
|
+
name: "requestDurationMs",
|
|
415
|
+
label: "Request Duration",
|
|
416
|
+
unit: "milliseconds"
|
|
417
|
+
}
|
|
418
|
+
]
|
|
419
|
+
},
|
|
420
|
+
edgeRequest: {
|
|
421
|
+
description: "Edge Requests",
|
|
422
|
+
queryEngineEvent: "incomingRequest",
|
|
423
|
+
dimensions: [
|
|
424
|
+
{ name: "asnId", label: "AS Number", filterOnly: false },
|
|
425
|
+
{ name: "asnName", label: "AS Name", filterOnly: false },
|
|
426
|
+
{ name: "botCategory", label: "Bot Category", filterOnly: false },
|
|
427
|
+
{
|
|
428
|
+
name: "botCategoryLegacy",
|
|
429
|
+
label: "Bot Category (Legacy)",
|
|
430
|
+
filterOnly: false
|
|
431
|
+
},
|
|
432
|
+
{ name: "botName", label: "Bot Name", filterOnly: false },
|
|
433
|
+
{ name: "botVerified", label: "Bot Verified", filterOnly: false },
|
|
434
|
+
{ name: "cacheHitLevel", label: "Cache Hit Level", filterOnly: true },
|
|
435
|
+
{ name: "cacheHitState", label: "Cache Hit State", filterOnly: true },
|
|
436
|
+
{ name: "cacheResult", label: "Cache Result", filterOnly: false },
|
|
437
|
+
{ name: "clientIp", label: "IP Address", filterOnly: false },
|
|
438
|
+
{ name: "clientIpCountry", label: "IP Country", filterOnly: false },
|
|
439
|
+
{ name: "clientJa4Digest", label: "JA4 Digest", filterOnly: false },
|
|
440
|
+
{ name: "clientUserAgent", label: "User Agent", filterOnly: false },
|
|
441
|
+
{ name: "deploymentId", label: "Deployment ID", filterOnly: false },
|
|
442
|
+
{
|
|
443
|
+
name: "edgeNetworkRegion",
|
|
444
|
+
label: "Edge Network Region",
|
|
445
|
+
filterOnly: false
|
|
446
|
+
},
|
|
447
|
+
{ name: "environment", label: "Environment", filterOnly: false },
|
|
448
|
+
{ name: "errorCode", label: "Error Code", filterOnly: false },
|
|
449
|
+
{
|
|
450
|
+
name: "externalRewriteTargetHost",
|
|
451
|
+
label: "External Rewrite Destination Hostname",
|
|
452
|
+
filterOnly: true
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
name: "externalRewriteTargetPath",
|
|
456
|
+
label: "External Rewrite Destination Path",
|
|
457
|
+
filterOnly: true
|
|
458
|
+
},
|
|
459
|
+
{ name: "httpStatus", label: "HTTP Status", filterOnly: false },
|
|
460
|
+
{ name: "isrCacheRegion", label: "ISR Cache Region", filterOnly: false },
|
|
461
|
+
{
|
|
462
|
+
name: "microfrontendsDefaultAppDeploymentId",
|
|
463
|
+
label: "Microfrontends Default App Deployment ID",
|
|
464
|
+
filterOnly: true
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
name: "microfrontendsDefaultAppProjectId",
|
|
468
|
+
label: "Microfrontends Default App Project ID",
|
|
469
|
+
filterOnly: true
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
name: "microfrontendsMatchedPath",
|
|
473
|
+
label: "Microfrontends Matched Path",
|
|
474
|
+
filterOnly: false
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
name: "microfrontendsResponseReason",
|
|
478
|
+
label: "Microfrontends Response Reason",
|
|
479
|
+
filterOnly: false
|
|
480
|
+
},
|
|
481
|
+
{ name: "pathType", label: "Path Type", filterOnly: false },
|
|
482
|
+
{ name: "pathTypeVariant", label: "Path Type Variant", filterOnly: true },
|
|
483
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
484
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
485
|
+
{
|
|
486
|
+
name: "redirectLocation",
|
|
487
|
+
label: "Redirect Location",
|
|
488
|
+
filterOnly: false
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
name: "referrerHostname",
|
|
492
|
+
label: "Referrer Hostname",
|
|
493
|
+
filterOnly: false
|
|
494
|
+
},
|
|
495
|
+
{ name: "referrerUrl", label: "Referrer URL", filterOnly: false },
|
|
496
|
+
{
|
|
497
|
+
name: "requestExtension",
|
|
498
|
+
label: "Request Extension",
|
|
499
|
+
filterOnly: true
|
|
500
|
+
},
|
|
501
|
+
{ name: "requestHostname", label: "Request Hostname", filterOnly: false },
|
|
502
|
+
{ name: "requestId", label: "Request ID", filterOnly: true },
|
|
503
|
+
{ name: "requestMethod", label: "Request Method", filterOnly: false },
|
|
504
|
+
{ name: "requestPath", label: "Request Path", filterOnly: false },
|
|
505
|
+
{
|
|
506
|
+
name: "rewriteDestinationHostname",
|
|
507
|
+
label: "Rewrite Destination Hostname",
|
|
508
|
+
filterOnly: true
|
|
509
|
+
},
|
|
510
|
+
{ name: "route", label: "Route", filterOnly: false },
|
|
511
|
+
{
|
|
512
|
+
name: "serverActionName",
|
|
513
|
+
label: "Server Action Name",
|
|
514
|
+
filterOnly: false
|
|
515
|
+
},
|
|
516
|
+
{ name: "skewProtection", label: "Skew Protection", filterOnly: false },
|
|
517
|
+
{ name: "wafAction", label: "WAF Action", filterOnly: false },
|
|
518
|
+
{ name: "wafRuleId", label: "WAF Rule ID", filterOnly: false }
|
|
519
|
+
],
|
|
520
|
+
measures: [
|
|
521
|
+
{ name: "count", label: "Count", unit: "count" },
|
|
522
|
+
{
|
|
523
|
+
name: "externalRewriteConnectMs",
|
|
524
|
+
label: "External Rewrite Connect Time",
|
|
525
|
+
unit: "milliseconds"
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
name: "externalRewriteDnsMs",
|
|
529
|
+
label: "External Rewrite DNS Time",
|
|
530
|
+
unit: "milliseconds"
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
name: "fdtInBytes",
|
|
534
|
+
label: "Fast Data Transfer (Incoming)",
|
|
535
|
+
unit: "bytes"
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
name: "fdtOutBytes",
|
|
539
|
+
label: "Fast Data Transfer (Outgoing)",
|
|
540
|
+
unit: "bytes"
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
name: "fdtTotalBytes",
|
|
544
|
+
label: "Fast Data Transfer (Total)",
|
|
545
|
+
unit: "bytes"
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
name: "requestDurationMs",
|
|
549
|
+
label: "Edge Request Duration",
|
|
550
|
+
unit: "milliseconds"
|
|
551
|
+
}
|
|
552
|
+
]
|
|
553
|
+
},
|
|
554
|
+
isrOperation: {
|
|
555
|
+
description: "ISR Operations",
|
|
556
|
+
dimensions: [
|
|
557
|
+
{ name: "cacheHitLevel", label: "Cache Hit Level", filterOnly: true },
|
|
558
|
+
{ name: "cacheHitState", label: "Cache Hit State", filterOnly: true },
|
|
559
|
+
{ name: "cacheResult", label: "Cache Result", filterOnly: false },
|
|
560
|
+
{ name: "deploymentId", label: "Deployment ID", filterOnly: false },
|
|
561
|
+
{
|
|
562
|
+
name: "edgeNetworkRegion",
|
|
563
|
+
label: "Edge Network Region",
|
|
564
|
+
filterOnly: false
|
|
565
|
+
},
|
|
566
|
+
{ name: "environment", label: "Environment", filterOnly: false },
|
|
567
|
+
{ name: "errorCode", label: "Error Code", filterOnly: false },
|
|
568
|
+
{ name: "httpStatus", label: "HTTP Status", filterOnly: false },
|
|
569
|
+
{ name: "isrAction", label: "ISR Action", filterOnly: true },
|
|
570
|
+
{ name: "isrCacheRegion", label: "ISR Cache Region", filterOnly: false },
|
|
571
|
+
{ name: "pathType", label: "Path Type", filterOnly: false },
|
|
572
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
573
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
574
|
+
{
|
|
575
|
+
name: "referrerHostname",
|
|
576
|
+
label: "Referrer Hostname",
|
|
577
|
+
filterOnly: false
|
|
578
|
+
},
|
|
579
|
+
{ name: "referrerUrl", label: "Referrer URL", filterOnly: false },
|
|
580
|
+
{ name: "requestHostname", label: "Request Hostname", filterOnly: false },
|
|
581
|
+
{ name: "requestMethod", label: "Request Method", filterOnly: false },
|
|
582
|
+
{ name: "requestPath", label: "Request Path", filterOnly: false },
|
|
583
|
+
{ name: "route", label: "Route", filterOnly: false }
|
|
584
|
+
],
|
|
585
|
+
measures: [
|
|
586
|
+
{ name: "isrReadBytes", label: "Read Bandwidth", unit: "bytes" },
|
|
587
|
+
{ name: "isrReadUnits", label: "Read Units", unit: "count" },
|
|
588
|
+
{ name: "isrWriteBytes", label: "Write Bandwidth", unit: "bytes" },
|
|
589
|
+
{ name: "isrWriteUnits", label: "Write Units", unit: "count" },
|
|
590
|
+
{ name: "count", label: "Count", unit: "count" }
|
|
591
|
+
]
|
|
592
|
+
},
|
|
593
|
+
middlewareInvocation: {
|
|
594
|
+
description: "Middleware Invocations",
|
|
595
|
+
dimensions: [
|
|
596
|
+
{ name: "clientIp", label: "IP Address", filterOnly: false },
|
|
597
|
+
{ name: "clientUserAgent", label: "User Agent", filterOnly: false },
|
|
598
|
+
{ name: "deploymentId", label: "Deployment ID", filterOnly: false },
|
|
599
|
+
{
|
|
600
|
+
name: "edgeNetworkRegion",
|
|
601
|
+
label: "Edge Network Region",
|
|
602
|
+
filterOnly: false
|
|
603
|
+
},
|
|
604
|
+
{ name: "environment", label: "Environment", filterOnly: false },
|
|
605
|
+
{ name: "functionRegion", label: "Function Region", filterOnly: false },
|
|
606
|
+
{
|
|
607
|
+
name: "functionStartType",
|
|
608
|
+
label: "Function Start Type",
|
|
609
|
+
filterOnly: false
|
|
610
|
+
},
|
|
611
|
+
{ name: "httpStatus", label: "HTTP Status", filterOnly: false },
|
|
612
|
+
{
|
|
613
|
+
name: "isAdditionalRequest",
|
|
614
|
+
label: "Is Additional Request",
|
|
615
|
+
filterOnly: true
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
name: "middlewareAction",
|
|
619
|
+
label: "Middleware Action",
|
|
620
|
+
filterOnly: false
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
name: "middlewareActionTarget",
|
|
624
|
+
label: "Middleware Action Target",
|
|
625
|
+
filterOnly: false
|
|
626
|
+
},
|
|
627
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
628
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
629
|
+
{
|
|
630
|
+
name: "referrerHostname",
|
|
631
|
+
label: "Referrer Hostname",
|
|
632
|
+
filterOnly: false
|
|
633
|
+
},
|
|
634
|
+
{ name: "referrerUrl", label: "Referrer URL", filterOnly: false },
|
|
635
|
+
{ name: "requestHostname", label: "Request Hostname", filterOnly: false },
|
|
636
|
+
{ name: "requestMethod", label: "Request Method", filterOnly: false },
|
|
637
|
+
{ name: "requestPath", label: "Request Path", filterOnly: false }
|
|
638
|
+
],
|
|
639
|
+
measures: [
|
|
640
|
+
{ name: "count", label: "Count", unit: "count" },
|
|
641
|
+
{ name: "durationMs", label: "Duration", unit: "milliseconds" },
|
|
642
|
+
{
|
|
643
|
+
name: "fotInBytes",
|
|
644
|
+
label: "Incoming Fast Origin Transfer",
|
|
645
|
+
unit: "bytes"
|
|
646
|
+
},
|
|
647
|
+
{
|
|
648
|
+
name: "fotOutBytes",
|
|
649
|
+
label: "Outgoing Fast Origin Transfer",
|
|
650
|
+
unit: "bytes"
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
name: "fotTotalBytes",
|
|
654
|
+
label: "Total Fast Origin Transfer",
|
|
655
|
+
unit: "bytes"
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
name: "functionCpuTimeMs",
|
|
659
|
+
label: "Active CPU Time",
|
|
660
|
+
unit: "milliseconds"
|
|
661
|
+
},
|
|
662
|
+
{ name: "ttfbMs", label: "Time to First Byte", unit: "milliseconds" }
|
|
663
|
+
]
|
|
664
|
+
},
|
|
665
|
+
outgoingRequest: {
|
|
666
|
+
description: "External APIs",
|
|
667
|
+
dimensions: [
|
|
668
|
+
{ name: "cacheHostname", label: "Cache Hostname", filterOnly: true },
|
|
669
|
+
{ name: "cachePath", label: "Cache Path", filterOnly: true },
|
|
670
|
+
{ name: "deploymentId", label: "Deployment ID", filterOnly: false },
|
|
671
|
+
{ name: "edgeType", label: "Edge Type", filterOnly: true },
|
|
672
|
+
{ name: "environment", label: "Environment", filterOnly: false },
|
|
673
|
+
{ name: "errorCode", label: "Error Code", filterOnly: false },
|
|
674
|
+
{ name: "fetchIndex", label: "Fetch Index", filterOnly: true },
|
|
675
|
+
{ name: "fetchType", label: "Request Target", filterOnly: false },
|
|
676
|
+
{ name: "functionRegion", label: "Function Region", filterOnly: false },
|
|
677
|
+
{ name: "httpStatus", label: "HTTP Status", filterOnly: false },
|
|
678
|
+
{ name: "originHostname", label: "Function Hostname", filterOnly: false },
|
|
679
|
+
{ name: "originPath", label: "Function Path", filterOnly: false },
|
|
680
|
+
{ name: "originRoute", label: "Function Route", filterOnly: false },
|
|
681
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
682
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
683
|
+
{
|
|
684
|
+
name: "reason",
|
|
685
|
+
label: "Reason of failure for outgoing requests",
|
|
686
|
+
filterOnly: true
|
|
687
|
+
},
|
|
688
|
+
{ name: "requestApi", label: "Request API", filterOnly: true },
|
|
689
|
+
{ name: "requestHostname", label: "Request Hostname", filterOnly: false },
|
|
690
|
+
{ name: "requestId", label: "Request ID", filterOnly: true },
|
|
691
|
+
{ name: "requestMethod", label: "Request Method", filterOnly: false },
|
|
692
|
+
{ name: "requestPath", label: "Request Path", filterOnly: false },
|
|
693
|
+
{
|
|
694
|
+
name: "requestResolvedIp",
|
|
695
|
+
label: "Resolved Request IP",
|
|
696
|
+
filterOnly: true
|
|
697
|
+
},
|
|
698
|
+
{ name: "source", label: "edge vs lambda", filterOnly: true }
|
|
699
|
+
],
|
|
700
|
+
measures: [
|
|
701
|
+
{ name: "count", label: "Count", unit: "count" },
|
|
702
|
+
{
|
|
703
|
+
name: "requestDurationMs",
|
|
704
|
+
label: "Time to First Byte",
|
|
705
|
+
unit: "milliseconds"
|
|
706
|
+
}
|
|
707
|
+
]
|
|
708
|
+
},
|
|
709
|
+
queueOperation: {
|
|
710
|
+
description: "Queue operations for message processing",
|
|
711
|
+
dimensions: [
|
|
712
|
+
{ name: "consumerGroup", label: "Consumer Group", filterOnly: true },
|
|
713
|
+
{ name: "contentType", label: "Content Type", filterOnly: true },
|
|
714
|
+
{ name: "environment", label: "Environment", filterOnly: false },
|
|
715
|
+
{ name: "eventType", label: "Queue Event Type", filterOnly: true },
|
|
716
|
+
{ name: "messageId", label: "Message ID", filterOnly: true },
|
|
717
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
718
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
719
|
+
{ name: "queueName", label: "Queue Name", filterOnly: true }
|
|
720
|
+
],
|
|
721
|
+
measures: [{ name: "count", label: "Count", unit: "count" }]
|
|
722
|
+
},
|
|
723
|
+
speedInsightsMetric: {
|
|
724
|
+
description: "Core Web Vitals and performance metrics",
|
|
725
|
+
dimensions: [
|
|
726
|
+
{ name: "browserName", label: "Browser", filterOnly: true },
|
|
727
|
+
{ name: "country", label: "Country", filterOnly: true },
|
|
728
|
+
{ name: "deploymentId", label: "Deployment ID", filterOnly: false },
|
|
729
|
+
{ name: "deviceType", label: "Device Type", filterOnly: true },
|
|
730
|
+
{ name: "environment", label: "Environment", filterOnly: false },
|
|
731
|
+
{ name: "osName", label: "Operating System", filterOnly: true },
|
|
732
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
733
|
+
{ name: "requestHostname", label: "Request Hostname", filterOnly: false },
|
|
734
|
+
{ name: "requestPath", label: "Request Path", filterOnly: false },
|
|
735
|
+
{ name: "route", label: "Route", filterOnly: false }
|
|
736
|
+
],
|
|
737
|
+
measures: [
|
|
738
|
+
{ name: "cls", label: "Cumulative Layout Shift", unit: "ratio" },
|
|
739
|
+
{ name: "count", label: "Count", unit: "count" },
|
|
740
|
+
{ name: "fcp", label: "First Contentful Paint", unit: "milliseconds" },
|
|
741
|
+
{ name: "fid", label: "First Input Delay", unit: "milliseconds" },
|
|
742
|
+
{ name: "inp", label: "Interaction to Next Paint", unit: "milliseconds" },
|
|
743
|
+
{ name: "lcp", label: "Largest Contentful Paint", unit: "milliseconds" },
|
|
744
|
+
{ name: "ttfbMs", label: "Time to First Byte", unit: "milliseconds" }
|
|
745
|
+
]
|
|
746
|
+
},
|
|
747
|
+
workflowOperation: {
|
|
748
|
+
description: "Workflow Operations",
|
|
749
|
+
dimensions: [
|
|
750
|
+
{ name: "environment", label: "Environment", filterOnly: false },
|
|
751
|
+
{ name: "projectId", label: "Project", filterOnly: false },
|
|
752
|
+
{ name: "projectName", label: "Project", filterOnly: true },
|
|
753
|
+
{ name: "stepRunId", label: "Step Run ID", filterOnly: false },
|
|
754
|
+
{ name: "workflowEventType", label: "Event Type", filterOnly: false },
|
|
755
|
+
{ name: "workflowName", label: "Workflow Name", filterOnly: false },
|
|
756
|
+
{ name: "workflowRunId", label: "Run ID", filterOnly: false },
|
|
757
|
+
{ name: "workflowStatus", label: "Status", filterOnly: false },
|
|
758
|
+
{ name: "workflowStepName", label: "Step Name", filterOnly: false }
|
|
759
|
+
],
|
|
760
|
+
measures: [{ name: "count", label: "Count", unit: "count" }]
|
|
761
|
+
}
|
|
762
|
+
};
|
|
763
|
+
function getEventNames() {
|
|
764
|
+
return Object.keys(SCHEMA).sort();
|
|
765
|
+
}
|
|
766
|
+
function getEvent(name) {
|
|
767
|
+
return SCHEMA[name];
|
|
768
|
+
}
|
|
769
|
+
function getQueryEngineEventName(name) {
|
|
770
|
+
const event = getEvent(name);
|
|
771
|
+
return event?.queryEngineEvent ?? name;
|
|
772
|
+
}
|
|
773
|
+
function getDimensions(eventName) {
|
|
774
|
+
return getEvent(eventName)?.dimensions ?? [];
|
|
775
|
+
}
|
|
776
|
+
function getMeasures(eventName) {
|
|
777
|
+
return getEvent(eventName)?.measures ?? [];
|
|
778
|
+
}
|
|
779
|
+
function getDefaultAggregation(eventName, measureName) {
|
|
780
|
+
if (measureName === "count")
|
|
781
|
+
return "sum";
|
|
782
|
+
const event = getEvent(eventName);
|
|
783
|
+
if (!event)
|
|
784
|
+
return "sum";
|
|
785
|
+
const measure = event.measures.find((m) => m.name === measureName);
|
|
786
|
+
if (!measure)
|
|
787
|
+
return "sum";
|
|
788
|
+
switch (measure.unit) {
|
|
789
|
+
case "count":
|
|
790
|
+
case "bytes":
|
|
791
|
+
case "US dollars":
|
|
792
|
+
return "sum";
|
|
793
|
+
case "milliseconds":
|
|
794
|
+
case "seconds":
|
|
795
|
+
case "megabytes":
|
|
796
|
+
case "gigabyte hours":
|
|
797
|
+
case "ratio":
|
|
798
|
+
case "percent":
|
|
799
|
+
return "avg";
|
|
800
|
+
default:
|
|
801
|
+
return "sum";
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
function getAggregations(eventName, measureName) {
|
|
805
|
+
const event = getEvent(eventName);
|
|
806
|
+
if (!event) {
|
|
807
|
+
return [];
|
|
808
|
+
}
|
|
809
|
+
const measure = event.measures.find((m) => m.name === measureName);
|
|
810
|
+
if (!measure) {
|
|
811
|
+
return [];
|
|
812
|
+
}
|
|
813
|
+
if (measureName === "count") {
|
|
814
|
+
return COUNT_AGGREGATIONS;
|
|
815
|
+
}
|
|
816
|
+
return VALUE_AGGREGATIONS;
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
// src/commands/metrics/validation.ts
|
|
820
|
+
function validateEvent(event) {
|
|
821
|
+
if (getEvent(event)) {
|
|
822
|
+
return { valid: true };
|
|
823
|
+
}
|
|
824
|
+
return {
|
|
825
|
+
valid: false,
|
|
826
|
+
code: "UNKNOWN_EVENT",
|
|
827
|
+
message: `Unknown event "${event}".`,
|
|
828
|
+
allowedValues: getEventNames()
|
|
829
|
+
};
|
|
830
|
+
}
|
|
831
|
+
function validateMeasure(event, measure) {
|
|
832
|
+
const measures = getMeasures(event);
|
|
833
|
+
if (measures.some((m) => m.name === measure)) {
|
|
834
|
+
return { valid: true };
|
|
835
|
+
}
|
|
836
|
+
return {
|
|
837
|
+
valid: false,
|
|
838
|
+
code: "UNKNOWN_MEASURE",
|
|
839
|
+
message: `Measure "${measure}" is not available for event "${event}".`,
|
|
840
|
+
allowedValues: measures.map((m) => m.name)
|
|
841
|
+
};
|
|
842
|
+
}
|
|
843
|
+
function validateAggregation(event, measure, aggregation) {
|
|
844
|
+
const aggs = getAggregations(event, measure);
|
|
845
|
+
const found = aggs.find((agg) => agg === aggregation);
|
|
846
|
+
if (found) {
|
|
847
|
+
return { valid: true, value: found };
|
|
848
|
+
}
|
|
849
|
+
return {
|
|
850
|
+
valid: false,
|
|
851
|
+
code: "INVALID_AGGREGATION",
|
|
852
|
+
message: `Aggregation "${aggregation}" is not valid for measure "${measure}" on event "${event}".`,
|
|
853
|
+
allowedValues: [...aggs]
|
|
854
|
+
};
|
|
855
|
+
}
|
|
856
|
+
function validateGroupBy(event, dims) {
|
|
857
|
+
const dimensions = getDimensions(event);
|
|
858
|
+
for (const dim of dims) {
|
|
859
|
+
const found = dimensions.find((d) => d.name === dim);
|
|
860
|
+
if (!found) {
|
|
861
|
+
return {
|
|
862
|
+
valid: false,
|
|
863
|
+
code: "UNKNOWN_DIMENSION",
|
|
864
|
+
message: `Dimension "${dim}" is not available for event "${event}".`,
|
|
865
|
+
allowedValues: dimensions.map((d) => d.name)
|
|
866
|
+
};
|
|
867
|
+
}
|
|
868
|
+
if (found.filterOnly) {
|
|
869
|
+
return {
|
|
870
|
+
valid: false,
|
|
871
|
+
code: "FILTER_ONLY_DIMENSION",
|
|
872
|
+
message: `Dimension "${dim}" on event "${event}" is filter-only and cannot be used in --group-by.
|
|
873
|
+
Use it with --filter instead: --filter "${dim} eq '<value>'"`
|
|
874
|
+
};
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
return { valid: true };
|
|
878
|
+
}
|
|
879
|
+
function validateMutualExclusivity(all, project) {
|
|
880
|
+
return validateAllProjectMutualExclusivity(all, project);
|
|
881
|
+
}
|
|
882
|
+
function validateRequiredEvent(event) {
|
|
883
|
+
if (event) {
|
|
884
|
+
return { valid: true, value: event };
|
|
885
|
+
}
|
|
886
|
+
return {
|
|
887
|
+
valid: false,
|
|
888
|
+
code: "MISSING_EVENT",
|
|
889
|
+
message: "Missing required flag --event. Specify the event type to query.\n\nRun 'vercel metrics schema' to see available events."
|
|
890
|
+
};
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
// src/commands/metrics/output.ts
|
|
894
|
+
function getRollupColumnName(measure, aggregation) {
|
|
895
|
+
return `${measure}_${aggregation}`;
|
|
896
|
+
}
|
|
897
|
+
function formatQueryJson(query, response) {
|
|
898
|
+
return JSON.stringify(
|
|
899
|
+
{
|
|
900
|
+
query,
|
|
901
|
+
summary: response.summary ?? [],
|
|
902
|
+
data: response.data ?? [],
|
|
903
|
+
statistics: response.statistics ?? {}
|
|
904
|
+
},
|
|
905
|
+
null,
|
|
906
|
+
2
|
|
907
|
+
);
|
|
908
|
+
}
|
|
909
|
+
function formatSchemaDetailJson(event, aggregations) {
|
|
910
|
+
const dimensions = event.dimensions.map((d) => {
|
|
911
|
+
const obj = {
|
|
912
|
+
name: d.name,
|
|
913
|
+
label: d.label
|
|
914
|
+
};
|
|
915
|
+
if (d.filterOnly) {
|
|
916
|
+
obj.filterOnly = true;
|
|
917
|
+
}
|
|
918
|
+
return obj;
|
|
919
|
+
});
|
|
920
|
+
return JSON.stringify(
|
|
921
|
+
{
|
|
922
|
+
event: event.name,
|
|
923
|
+
description: event.description,
|
|
924
|
+
dimensions,
|
|
925
|
+
measures: event.measures.map((m) => ({
|
|
926
|
+
name: m.name,
|
|
927
|
+
label: m.label,
|
|
928
|
+
unit: m.unit
|
|
929
|
+
})),
|
|
930
|
+
aggregations: [...aggregations]
|
|
931
|
+
},
|
|
932
|
+
null,
|
|
933
|
+
2
|
|
934
|
+
);
|
|
935
|
+
}
|
|
936
|
+
function formatSchemaListJson(events) {
|
|
937
|
+
return JSON.stringify(events, null, 2);
|
|
938
|
+
}
|
|
939
|
+
function formatErrorJson(code, message, allowedValues) {
|
|
940
|
+
const error = {
|
|
941
|
+
code,
|
|
942
|
+
message
|
|
943
|
+
};
|
|
944
|
+
if (allowedValues && allowedValues.length > 0) {
|
|
945
|
+
error.allowedValues = allowedValues;
|
|
946
|
+
}
|
|
947
|
+
return JSON.stringify({ error }, null, 2);
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
export {
|
|
951
|
+
getEventNames,
|
|
952
|
+
getEvent,
|
|
953
|
+
getQueryEngineEventName,
|
|
954
|
+
getMeasures,
|
|
955
|
+
getDefaultAggregation,
|
|
956
|
+
getAggregations,
|
|
957
|
+
validateEvent,
|
|
958
|
+
validateMeasure,
|
|
959
|
+
validateAggregation,
|
|
960
|
+
validateGroupBy,
|
|
961
|
+
validateMutualExclusivity,
|
|
962
|
+
validateRequiredEvent,
|
|
963
|
+
getRollupColumnName,
|
|
964
|
+
formatQueryJson,
|
|
965
|
+
formatSchemaDetailJson,
|
|
966
|
+
formatSchemaListJson,
|
|
967
|
+
formatErrorJson
|
|
968
|
+
};
|