datadog-frontend-toolkit 1.0.77 → 1.0.79
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 +15 -13
- package/dist/cjs/resources/ResourceProvisioner.js +5 -3
- package/dist/cjs/resources/ResourceProvisioner.js.map +1 -1
- package/dist/cjs/resources/templates/dashboard.js +10 -20
- package/dist/cjs/resources/templates/dashboard.js.map +1 -1
- package/dist/cjs/resources/templates/monitors.js +4 -108
- package/dist/cjs/resources/templates/monitors.js.map +1 -1
- package/dist/cjs/resources/templates/slos.js +7 -0
- package/dist/cjs/resources/templates/slos.js.map +1 -1
- package/dist/cli/commands/setup.js +4 -7
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/esm/resources/ResourceProvisioner.js +5 -3
- package/dist/esm/resources/ResourceProvisioner.js.map +1 -1
- package/dist/esm/resources/templates/dashboard.js +10 -20
- package/dist/esm/resources/templates/dashboard.js.map +1 -1
- package/dist/esm/resources/templates/monitors.js +4 -108
- package/dist/esm/resources/templates/monitors.js.map +1 -1
- package/dist/esm/resources/templates/slos.js +7 -0
- package/dist/esm/resources/templates/slos.js.map +1 -1
- package/dist/resources/ResourceProvisioner.js +5 -3
- package/dist/resources/ResourceProvisioner.js.map +1 -1
- package/dist/resources/templates/dashboard.js +10 -20
- package/dist/resources/templates/dashboard.js.map +1 -1
- package/dist/resources/templates/monitors.js +4 -108
- package/dist/resources/templates/monitors.js.map +1 -1
- package/dist/resources/templates/slos.js +7 -0
- package/dist/resources/templates/slos.js.map +1 -1
- package/dist/types/resources/ResourceProvisioner.d.ts.map +1 -1
- package/dist/types/resources/templates/dashboard.d.ts.map +1 -1
- package/dist/types/resources/templates/monitors.d.ts +0 -15
- package/dist/types/resources/templates/monitors.d.ts.map +1 -1
- package/dist/types/resources/templates/slos.d.ts +8 -0
- package/dist/types/resources/templates/slos.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -10,41 +10,29 @@ exports.LOAD_SIZE_LABELS = {
|
|
|
10
10
|
};
|
|
11
11
|
exports.THRESHOLDS_BY_LOAD = {
|
|
12
12
|
low: {
|
|
13
|
-
errorRate: { critical: 10, warning: 5, window: '15m' },
|
|
14
13
|
jsSpike: { critical: 25, warning: 10, window: '15m' },
|
|
15
|
-
logAnomaly: { critical: 50, warning: 25, window: '15m' },
|
|
16
14
|
failedApiCalls: { critical: 15, warning: 5, window: '15m' },
|
|
17
|
-
backend404: { critical: 20, warning: 10, window: '15m' },
|
|
18
15
|
lcpWindow: '4h',
|
|
19
16
|
clsWindow: '4h',
|
|
20
17
|
pageLoadWindow: '4h',
|
|
21
18
|
},
|
|
22
19
|
medium: {
|
|
23
|
-
errorRate: { critical: 50, warning: 25, window: '10m' },
|
|
24
20
|
jsSpike: { critical: 100, warning: 50, window: '10m' },
|
|
25
|
-
logAnomaly: { critical: 200, warning: 100, window: '15m' },
|
|
26
21
|
failedApiCalls: { critical: 75, warning: 30, window: '10m' },
|
|
27
|
-
backend404: { critical: 50, warning: 25, window: '10m' },
|
|
28
22
|
lcpWindow: '1h',
|
|
29
23
|
clsWindow: '1h',
|
|
30
24
|
pageLoadWindow: '1h',
|
|
31
25
|
},
|
|
32
26
|
high: {
|
|
33
|
-
errorRate: { critical: 200, warning: 100, window: '5m' },
|
|
34
27
|
jsSpike: { critical: 500, warning: 200, window: '5m' },
|
|
35
|
-
logAnomaly: { critical: 500, warning: 250, window: '10m' },
|
|
36
28
|
failedApiCalls: { critical: 300, warning: 150, window: '5m' },
|
|
37
|
-
backend404: { critical: 150, warning: 75, window: '5m' },
|
|
38
29
|
lcpWindow: '30m',
|
|
39
30
|
clsWindow: '30m',
|
|
40
31
|
pageLoadWindow: '30m',
|
|
41
32
|
},
|
|
42
33
|
'very-high': {
|
|
43
|
-
errorRate: { critical: 500, warning: 250, window: '5m' },
|
|
44
34
|
jsSpike: { critical: 1000, warning: 500, window: '5m' },
|
|
45
|
-
logAnomaly: { critical: 2000, warning: 1000, window: '10m' },
|
|
46
35
|
failedApiCalls: { critical: 750, warning: 350, window: '5m' },
|
|
47
|
-
backend404: { critical: 500, warning: 250, window: '5m' },
|
|
48
36
|
lcpWindow: '15m',
|
|
49
37
|
clsWindow: '15m',
|
|
50
38
|
pageLoadWindow: '15m',
|
|
@@ -110,45 +98,11 @@ function buildMonitorTemplates(service, env, channels = [], team, loadSize = 'lo
|
|
|
110
98
|
rumErrorTracking: `https://app.datadoghq.com/rum/error-tracking?query=${baseQuery}`,
|
|
111
99
|
rumPerformance: `https://app.datadoghq.com/rum/performance-monitoring?query=${baseQuery}`,
|
|
112
100
|
logErrors: `https://app.datadoghq.com/logs?query=${baseQuery}%20status%3Aerror`,
|
|
113
|
-
logPatterns: `https://app.datadoghq.com/logs/patterns?query=${baseQuery}%20status%3Aerror`,
|
|
114
101
|
rumResources: `https://app.datadoghq.com/rum/explorer?query=${baseQuery}%20%40type%3Aresource%20%40resource.status_code%3A%3E%3D400`,
|
|
115
|
-
rumResources404: `https://app.datadoghq.com/rum/explorer?query=${baseQuery}%20%40type%3Aresource%20%40resource.status_code%3A404`,
|
|
116
|
-
log404: `https://app.datadoghq.com/logs?query=${baseQuery}%20%40http.status_code%3A404`,
|
|
117
102
|
events: `https://app.datadoghq.com/event/explorer?query=${svcEnc}`,
|
|
118
103
|
bitsAi: `https://app.datadoghq.com/bits-ai/monitors/supported`,
|
|
119
104
|
};
|
|
120
105
|
return [
|
|
121
|
-
// High Error Rate Monitor
|
|
122
|
-
{
|
|
123
|
-
name: `${service} (${env}) - High Frontend Error Rate`,
|
|
124
|
-
type: 'rum alert',
|
|
125
|
-
query: `rum("service:${service} env:${env} @type:error").rollup("count").last("${t.errorRate.window}") > ${t.errorRate.critical}`,
|
|
126
|
-
message: `## High Frontend Error Rate\n\n**Monitor:** {{monitor_name}}\n**Service:** ${service}\n**Environment:** ${env}\n**Load Profile:** ${loadSize}\n**Triggered Value:** {{value}} errors (threshold: {{threshold}})\n\nThe frontend error rate has exceeded the threshold of ${t.errorRate.critical} errors in ${t.errorRate.window}.\n\n### Common Causes\n- **Failed API calls** — backend returning 4xx/5xx responses that the frontend doesn't handle gracefully\n- **Broken deployment** — a recent release introduced a regression (check recent deploys)\n- **Third-party script failure** — analytics, ads, or chat widgets throwing uncaught errors\n- **Network issues** — users on unstable connections causing fetch/XHR failures\n- **Missing resources** — 404s on assets (JS, CSS, images) after a deployment or CDN purge\n\nPlease investigate the error source in the [RUM Error Tracking](https://app.datadoghq.com/rum/error-tracking?query=service%3A${service}%20env%3A${env}).
|
|
127
|
-
|
|
128
|
-
### 📋 Recommended Actions
|
|
129
|
-
1. **Check recent deployments** — open [Event Explorer](${links.events}) and look for deploys in the last 30 min. If a deploy correlates, consider a rollback.
|
|
130
|
-
2. **Identify the top errors** — open [RUM Error Tracking](${links.rumErrorTracking}) and sort by count. Focus on the error with the highest volume.
|
|
131
|
-
3. **Read the stack trace** — click the top error to see the full stack trace, affected pages, and browser breakdown.
|
|
132
|
-
4. **Check if it's backend-related** — open [Log Explorer](${links.logErrors}) and look for 4xx/5xx responses at the same timeframe.
|
|
133
|
-
5. **Check third-party scripts** — if the error originates from an external domain, check if a third-party SDK (analytics, chat, ads) is failing.
|
|
134
|
-
6. **Reproduce locally** — use the error details (URL, browser, user action) to reproduce in a local/staging environment.
|
|
135
|
-
7. **Fix and verify** — deploy the fix and monitor this alert for recovery.
|
|
136
|
-
|
|
137
|
-
### 🔍 Investigate
|
|
138
|
-
- [RUM Error Tracking](${links.rumErrorTracking}) — grouped errors with stack traces
|
|
139
|
-
- [RUM Explorer (errors)](${links.rumErrors}) — raw error events with full context
|
|
140
|
-
- [Log Explorer (errors)](${links.logErrors}) — correlated backend error logs
|
|
141
|
-
- [Event Explorer](${links.events}) — recent deploys, config changes, and incidents
|
|
142
|
-
- [Bits AI SRE](${links.bitsAi}) — AI-powered root cause analysis${notify}`,
|
|
143
|
-
tags,
|
|
144
|
-
options: {
|
|
145
|
-
thresholds: { critical: t.errorRate.critical, warning: t.errorRate.warning },
|
|
146
|
-
notify_no_data: false,
|
|
147
|
-
renotify_interval: 30,
|
|
148
|
-
escalation_message: `Error rate still elevated for ${service} (${env})`,
|
|
149
|
-
include_tags: true,
|
|
150
|
-
},
|
|
151
|
-
},
|
|
152
106
|
// Poor LCP Monitor
|
|
153
107
|
{
|
|
154
108
|
name: `${service} (${env}) - Poor LCP Performance`,
|
|
@@ -238,42 +192,13 @@ function buildMonitorTemplates(service, env, channels = [], team, loadSize = 'lo
|
|
|
238
192
|
include_tags: true,
|
|
239
193
|
},
|
|
240
194
|
},
|
|
241
|
-
//
|
|
242
|
-
|
|
243
|
-
name: `${service} (${env}) - Error Log Anomaly`,
|
|
244
|
-
type: 'log alert',
|
|
245
|
-
query: `logs("service:${service} env:${env} status:error").index("*").rollup("count").last("${t.logAnomaly.window}") > ${t.logAnomaly.critical}`,
|
|
246
|
-
message: `## Error Log Anomaly\n\n**Monitor:** {{monitor_name}}\n**Service:** ${service}\n**Environment:** ${env}\n**Load Profile:** ${loadSize}\n**Triggered Value:** {{value}} error logs (threshold: {{threshold}})\n\nAn unusual number of error logs have been detected.\n\n### Common Causes\n- **Upstream service failure** — a backend dependency is down or returning errors\n- **Configuration change** — environment variables, feature flags, or config files changed incorrectly\n- **Database issues** — connection pool exhaustion, query timeouts, or migration failures\n- **Infrastructure problems** — container restarts, memory pressure, or disk space exhaustion\n- **Authentication/authorization failures** — expired tokens, revoked keys, or permission changes\n- **Rate limiting** — hitting API rate limits from third-party services\n\nCheck [Log Explorer](https://app.datadoghq.com/logs?query=service%3A${service}%20env%3A${env}%20status%3Aerror) for details.
|
|
247
|
-
|
|
248
|
-
### 📋 Recommended Actions
|
|
249
|
-
1. **Check log patterns** — open [Log Patterns](${links.logPatterns}) to quickly identify the most frequent error messages. Focus on the new or growing patterns.
|
|
250
|
-
2. **Read the top error logs** — open [Log Explorer](${links.logErrors}), sort by time, and read the most recent error messages and stack traces.
|
|
251
|
-
3. **Correlate with deploys/changes** — open [Event Explorer](${links.events}) to check if a deploy, config change, or infrastructure event happened recently.
|
|
252
|
-
4. **Check upstream services** — if the logs reference external API calls or database queries, verify those dependencies are healthy.
|
|
253
|
-
5. **Check frontend impact** — open [RUM Explorer](${links.rumErrors}) to see if the backend errors are causing visible frontend errors for users.
|
|
254
|
-
6. **Check for resource exhaustion** — look for patterns like connection pool exhaustion, memory pressure, or disk space in the log messages.
|
|
255
|
-
7. **Use Bits AI SRE** — this monitor type is supported by [Bits AI SRE](${links.bitsAi}). Click "Investigate with Bits AI SRE" on the monitor page for automated root cause analysis.
|
|
256
|
-
|
|
257
|
-
### 🔍 Investigate
|
|
258
|
-
- [Log Explorer (errors)](${links.logErrors}) — error logs with full message and attributes
|
|
259
|
-
- [Log Patterns](${links.logPatterns}) — auto-clustered error patterns to spot trends
|
|
260
|
-
- [RUM Explorer (errors)](${links.rumErrors}) — correlated frontend errors
|
|
261
|
-
- [Event Explorer](${links.events}) — recent deploys, config changes, and incidents
|
|
262
|
-
- [Bits AI SRE](${links.bitsAi}) — AI-powered root cause analysis (✅ supported for log monitors)${notify}`,
|
|
263
|
-
tags,
|
|
264
|
-
options: {
|
|
265
|
-
thresholds: { critical: t.logAnomaly.critical, warning: t.logAnomaly.warning },
|
|
266
|
-
notify_no_data: false,
|
|
267
|
-
renotify_interval: 30,
|
|
268
|
-
include_tags: true,
|
|
269
|
-
},
|
|
270
|
-
},
|
|
271
|
-
// Failed API Calls Monitor (RUM)
|
|
195
|
+
// Failed API Calls Monitor (RUM) — excludes 404 (handled separately when noisy by design,
|
|
196
|
+
// e.g. endpoints that return 404 for "no data" rather than a real failure).
|
|
272
197
|
{
|
|
273
198
|
name: `${service} (${env}) - Failed API Calls (4xx/5xx)`,
|
|
274
199
|
type: 'rum alert',
|
|
275
|
-
query: `rum("service:${service} env:${env} @type:resource @resource.type:(xhr OR fetch) @resource.status_code
|
|
276
|
-
message: `## Failed API Calls (4xx/5xx)\n\n**Monitor:** {{monitor_name}}\n**Service:** ${service}\n**Environment:** ${env}\n**Load Profile:** ${loadSize}\n**Triggered Value:** {{value}} failed calls (threshold: {{threshold}})\n\nThe number of failed API calls (HTTP 4xx/5xx from XHR/fetch) has exceeded ${t.failedApiCalls.critical} in ${t.failedApiCalls.window}.\n\n### Common Causes\n- **Backend deployment regression** — a new backend release returning unexpected errors\n- **Expired or invalid auth tokens** — 401/403 responses from session/token issues\n- **
|
|
200
|
+
query: `rum("service:${service} env:${env} @type:resource @resource.type:(xhr OR fetch) @resource.status_code:(400 OR 401 OR 402 OR 403 OR >404)").rollup("count").last("${t.failedApiCalls.window}") > ${t.failedApiCalls.critical}`,
|
|
201
|
+
message: `## Failed API Calls (4xx/5xx)\n\n**Monitor:** {{monitor_name}}\n**Service:** ${service}\n**Environment:** ${env}\n**Load Profile:** ${loadSize}\n**Triggered Value:** {{value}} failed calls (threshold: {{threshold}})\n\nThe number of failed API calls (HTTP 4xx/5xx from XHR/fetch, excluding 404) has exceeded ${t.failedApiCalls.critical} in ${t.failedApiCalls.window}.\n\n### Common Causes\n- **Backend deployment regression** — a new backend release returning unexpected errors\n- **Expired or invalid auth tokens** — 401/403 responses from session/token issues\n- **Rate limiting** — 429 responses from hitting API or third-party rate limits\n- **Server overload** — 500/502/503 from backend capacity issues\n- **Network/infrastructure issues** — DNS, CDN, or load balancer misconfigurations\n
|
|
277
202
|
### 📋 Recommended Actions
|
|
278
203
|
1. **Check the status code breakdown** — open [RUM Resources](${links.rumResources}) and group by \`@resource.status_code\` to understand if it's mostly 4xx or 5xx.
|
|
279
204
|
2. **Identify the failing endpoints** — in [RUM Resources](${links.rumResources}), group by \`@resource.url\` to see which API endpoints are failing.
|
|
@@ -281,7 +206,6 @@ function buildMonitorTemplates(service, env, channels = [], team, loadSize = 'lo
|
|
|
281
206
|
4. **Check for recent deploys** — open [Event Explorer](${links.events}) for backend or frontend deployments that correlate.
|
|
282
207
|
5. **Check auth flows** — if 401/403 are dominant, investigate session expiry, token refresh, or permission changes.
|
|
283
208
|
6. **Check for rate limiting** — if 429 is present, review API quotas and implement backoff/retry strategies.
|
|
284
|
-
7. **Verify endpoint contracts** — if 404 is dominant, check if the backend removed or renamed endpoints.
|
|
285
209
|
|
|
286
210
|
### 🔍 Investigate
|
|
287
211
|
- [RUM Resources (4xx/5xx)](${links.rumResources}) — failed API calls with URL, status code, and timing
|
|
@@ -296,34 +220,6 @@ function buildMonitorTemplates(service, env, channels = [], team, loadSize = 'lo
|
|
|
296
220
|
include_tags: true,
|
|
297
221
|
},
|
|
298
222
|
},
|
|
299
|
-
// Repeated 404 on API Endpoints (RUM)
|
|
300
|
-
{
|
|
301
|
-
name: `${service} (${env}) - Repeated 404 on API Endpoints`,
|
|
302
|
-
type: 'rum alert',
|
|
303
|
-
query: `rum("service:${service} env:${env} @type:resource @resource.type:(xhr OR fetch) @resource.status_code:404").rollup("count").last("${t.backend404.window}") > ${t.backend404.critical}`,
|
|
304
|
-
message: `## Repeated 404 on API Endpoints\n\n**Monitor:** {{monitor_name}}\n**Service:** ${service}\n**Environment:** ${env}\n**Load Profile:** ${loadSize}\n**Triggered Value:** {{value}} 404 responses (threshold: {{threshold}})\n\nAPI endpoints are returning HTTP 404 (Not Found) repeatedly — ${t.backend404.critical}+ hits in ${t.backend404.window}.\n\n### Common Causes\n- **Removed or renamed API routes** — a backend deployment removed or changed a URL that the frontend still calls\n- **Misconfigured routing** — reverse proxy, load balancer, or API gateway routing rules changed\n- **Feature flag mismatch** — frontend expects an endpoint that's behind a feature flag not enabled in this environment\n- **CDN/cache purge** — assets or API responses cached at a URL that no longer exists\n- **Database-driven routes** — dynamic routes that depend on deleted or unpublished records\n\n### 📋 Recommended Actions
|
|
305
|
-
1. **Identify which endpoints are 404ing** — open [RUM Resources (404)](${links.rumResources404}) and group by \`@resource.url\` to see the most affected endpoints.
|
|
306
|
-
2. **Check affected users** — in the RUM Explorer, check which views/sessions are hitting the 404 endpoints.
|
|
307
|
-
3. **Correlate with deploys** — open [Event Explorer](${links.events}) and check if a recent backend deploy removed or renamed the endpoint.
|
|
308
|
-
4. **Check routing config** — verify API gateway, reverse proxy, or load balancer rules haven't changed.
|
|
309
|
-
5. **Verify feature flags** — ensure the endpoint isn't gated behind a flag that's disabled in this environment.
|
|
310
|
-
6. **Check backend logs** — open [Log Explorer](${links.logErrors}) to see if the backend is logging the 404 responses with additional context.
|
|
311
|
-
7. **Fix the mismatch** — either restore the endpoint, add a redirect, or update the frontend to use the new URL.
|
|
312
|
-
|
|
313
|
-
### 🔍 Investigate
|
|
314
|
-
- [RUM Resources (404)](${links.rumResources404}) — 404 API calls with URL, timing, and user context
|
|
315
|
-
- [RUM Resources (all errors)](${links.rumResources}) — all failed API calls for broader context
|
|
316
|
-
- [Log Explorer (errors)](${links.logErrors}) — correlated backend error logs
|
|
317
|
-
- [Event Explorer](${links.events}) — recent deploys, config changes, and incidents
|
|
318
|
-
- [Bits AI SRE](${links.bitsAi}) — AI-powered root cause analysis${notify}`,
|
|
319
|
-
tags,
|
|
320
|
-
options: {
|
|
321
|
-
thresholds: { critical: t.backend404.critical, warning: t.backend404.warning },
|
|
322
|
-
notify_no_data: false,
|
|
323
|
-
renotify_interval: 30,
|
|
324
|
-
include_tags: true,
|
|
325
|
-
},
|
|
326
|
-
},
|
|
327
223
|
// Slow Page Load Monitor
|
|
328
224
|
{
|
|
329
225
|
name: `${service} (${env}) - Slow Page Load`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitors.js","sourceRoot":"","sources":["../../../src/resources/templates/monitors.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"monitors.js","sourceRoot":"","sources":["../../../src/resources/templates/monitors.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,9 @@ exports.BURN_RATE_ALERTS = [
|
|
|
25
25
|
short_window: '5m',
|
|
26
26
|
critical: 14.4,
|
|
27
27
|
warning: 7.2,
|
|
28
|
+
// Aggressive: page when sustained consumption is at 90% of the theoretical maximum
|
|
29
|
+
maxFractionCritical: 0.9,
|
|
30
|
+
maxFractionWarning: 0.45,
|
|
28
31
|
message: '## 🔥 SLO High Burn Rate\n\nThe error budget is being consumed **14× faster** than sustainable. At this rate the entire 30-day budget will be exhausted in ~2 days.\n\n**Action required:** Investigate immediately — this usually signals a deployment regression or upstream outage.',
|
|
29
32
|
},
|
|
30
33
|
{
|
|
@@ -33,6 +36,10 @@ exports.BURN_RATE_ALERTS = [
|
|
|
33
36
|
short_window: '30m',
|
|
34
37
|
critical: 6,
|
|
35
38
|
warning: 3,
|
|
39
|
+
// Conservative: ticket when sustained consumption is at 40% of max — kept below
|
|
40
|
+
// the High caps so the two alerts remain meaningfully different on low-target SLOs
|
|
41
|
+
maxFractionCritical: 0.4,
|
|
42
|
+
maxFractionWarning: 0.2,
|
|
36
43
|
message: '## ⚠️ SLO Slow Burn Rate\n\nThe error budget is being consumed **6× faster** than sustainable. At this rate the entire 30-day budget will be exhausted in ~5 days.\n\n**Action required:** Create a ticket and investigate within 24 hours — this usually signals a gradual degradation.',
|
|
37
44
|
},
|
|
38
45
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slos.js","sourceRoot":"","sources":["../../../src/resources/templates/slos.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;
|
|
1
|
+
{"version":3,"file":"slos.js","sourceRoot":"","sources":["../../../src/resources/templates/slos.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceProvisioner.d.ts","sourceRoot":"","sources":["../../../src/resources/ResourceProvisioner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAM1D,UAAU,kBAAkB;IAC1B,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzD,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAID;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,kBAAkB;IAMtC;;;OAGG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC;YAiDhB,kBAAkB;YA+BlB,iBAAiB;YA0DjB,aAAa;IA2D3B;;;;;OAKG;YACW,uBAAuB;
|
|
1
|
+
{"version":3,"file":"ResourceProvisioner.d.ts","sourceRoot":"","sources":["../../../src/resources/ResourceProvisioner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAM1D,UAAU,kBAAkB;IAC1B,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzD,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAID;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,kBAAkB;IAMtC;;;OAGG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC;YAiDhB,kBAAkB;YA+BlB,iBAAiB;YA0DjB,aAAa;IA2D3B;;;;;OAKG;YACW,uBAAuB;IAgFrC;;;OAGG;IACG,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;YAmErC,qBAAqB;YA6BrB,mBAAmB;YAqCnB,eAAe;YAkCf,UAAU;CAwCzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../../src/resources/templates/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK5D,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../../src/resources/templates/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK5D,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgsCzB"}
|
|
@@ -14,31 +14,16 @@ import type { NotificationChannel } from '../../types/config';
|
|
|
14
14
|
export type LoadSize = 'low' | 'medium' | 'high' | 'very-high';
|
|
15
15
|
export declare const LOAD_SIZE_LABELS: Record<LoadSize, string>;
|
|
16
16
|
interface MonitorThresholds {
|
|
17
|
-
errorRate: {
|
|
18
|
-
critical: number;
|
|
19
|
-
warning: number;
|
|
20
|
-
window: string;
|
|
21
|
-
};
|
|
22
17
|
jsSpike: {
|
|
23
18
|
critical: number;
|
|
24
19
|
warning: number;
|
|
25
20
|
window: string;
|
|
26
21
|
};
|
|
27
|
-
logAnomaly: {
|
|
28
|
-
critical: number;
|
|
29
|
-
warning: number;
|
|
30
|
-
window: string;
|
|
31
|
-
};
|
|
32
22
|
failedApiCalls: {
|
|
33
23
|
critical: number;
|
|
34
24
|
warning: number;
|
|
35
25
|
window: string;
|
|
36
26
|
};
|
|
37
|
-
backend404: {
|
|
38
|
-
critical: number;
|
|
39
|
-
warning: number;
|
|
40
|
-
window: string;
|
|
41
|
-
};
|
|
42
27
|
lcpWindow: string;
|
|
43
28
|
clsWindow: string;
|
|
44
29
|
pageLoadWindow: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitors.d.ts","sourceRoot":"","sources":["../../../../src/resources/templates/monitors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D;;;GAGG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE/D,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKrD,CAAC;AAEF,UAAU,iBAAiB;IACzB,
|
|
1
|
+
{"version":3,"file":"monitors.d.ts","sourceRoot":"","sources":["../../../../src/resources/templates/monitors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D;;;GAGG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE/D,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKrD,CAAC;AAEF,UAAU,iBAAiB;IACzB,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,cAAc,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CA6BlE,CAAC;AAyBF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAqBD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,mBAAmB,EAAO,EACpC,IAAI,CAAC,EAAE,MAAM,EACb,QAAQ,GAAE,QAAgB,GACzB,eAAe,EAAE,CAqLnB"}
|
|
@@ -32,6 +32,12 @@ export interface SloTemplate {
|
|
|
32
32
|
/**
|
|
33
33
|
* Burn-rate alert definitions created after SLOs are provisioned.
|
|
34
34
|
* Based on the Google SRE multi-window, multi-burn-rate approach.
|
|
35
|
+
*
|
|
36
|
+
* `maxFractionCritical` / `maxFractionWarning` cap the burn rate as a fraction of
|
|
37
|
+
* `maxBurnRate = 1 / (1 - target)`. For high-target SLOs (e.g. 99.5%) the standard
|
|
38
|
+
* Google values (14.4× / 6×) sit well below the cap and are used as-is. For lower-
|
|
39
|
+
* target SLOs (e.g. 75% time-slice for LCP, where maxBurnRate is only 4) the caps
|
|
40
|
+
* keep High and Slow asymmetric so they don't collapse to the same threshold.
|
|
35
41
|
*/
|
|
36
42
|
export interface BurnRateAlertTemplate {
|
|
37
43
|
nameSuffix: string;
|
|
@@ -39,6 +45,8 @@ export interface BurnRateAlertTemplate {
|
|
|
39
45
|
short_window: string;
|
|
40
46
|
critical: number;
|
|
41
47
|
warning: number;
|
|
48
|
+
maxFractionCritical: number;
|
|
49
|
+
maxFractionWarning: number;
|
|
42
50
|
message: string;
|
|
43
51
|
}
|
|
44
52
|
/** Standard multi-window burn-rate alerts (Google SRE playbook). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slos.d.ts","sourceRoot":"","sources":["../../../../src/resources/templates/slos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,KAAK,CAAC,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,UAAU,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED
|
|
1
|
+
{"version":3,"file":"slos.d.ts","sourceRoot":"","sources":["../../../../src/resources/templates/slos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,KAAK,CAAC,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,UAAU,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,EAAE,qBAAqB,EA0BnD,CAAC;AAQF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,WAAW,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3C,IAAI,CAAC,EAAE,MAAM,GACZ,WAAW,EAAE,CAgEf"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "datadog-frontend-toolkit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.79",
|
|
4
4
|
"description": "Enterprise-grade, framework-agnostic frontend observability toolkit for Datadog. Auto-instruments RUM, Logs, Error Tracking, Performance Monitoring, and provisions Dashboards, Monitors & SLOs.",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|