datadog-frontend-toolkit 1.0.35 → 1.0.37

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.
@@ -53,9 +53,8 @@ class ResourceProvisioner {
53
53
  result.monitors.push(...monitorResults.created);
54
54
  result.errors.push(...monitorResults.errors);
55
55
  }
56
- // SLOs (metric-based with custom RUM-generated metrics)
56
+ // SLOs (metric-based and time-slice)
57
57
  if (config.slos !== false) {
58
- await this.ensureRumMetrics();
59
58
  const sloResults = await this.provisionSlos(service, env, result.monitors, config.team, force);
60
59
  result.slos.push(...sloResults.created);
61
60
  result.errors.push(...sloResults.errors);
@@ -133,6 +132,9 @@ class ResourceProvisioner {
133
132
  if (template.query) {
134
133
  sloPayload.query = template.query;
135
134
  }
135
+ if (template.sli_specification) {
136
+ sloPayload.sli_specification = template.sli_specification;
137
+ }
136
138
  if (existing && force) {
137
139
  await this.apiRequest('PUT', `/v1/slo/${existing.id}`, sloPayload);
138
140
  created.push(existing);
@@ -220,36 +222,6 @@ class ResourceProvisioner {
220
222
  }
221
223
  return null;
222
224
  }
223
- /**
224
- * Ensures the RUM-generated metrics required by the SLOs exist.
225
- * Creates them via POST /api/v2/rum/config/metrics; silently ignores 409 (already exists).
226
- */
227
- async ensureRumMetrics() {
228
- for (const metric of slos_1.RUM_METRIC_DEFINITIONS) {
229
- try {
230
- await this.apiRequest('POST', '/v2/rum/config/metrics', {
231
- data: {
232
- type: 'rum_metrics',
233
- id: metric.id,
234
- attributes: {
235
- event_type: metric.event_type,
236
- compute: { aggregation_type: 'count' },
237
- filter: { query: metric.filter },
238
- group_by: metric.group_by,
239
- },
240
- },
241
- });
242
- }
243
- catch (err) {
244
- // 409 = metric already exists — that's fine
245
- if (err instanceof Error && err.message.includes('409'))
246
- continue;
247
- // Log but don't fail provisioning for metric creation errors
248
- // eslint-disable-next-line no-console
249
- console.warn(`⚠️ Could not create RUM metric ${metric.id}: ${err instanceof Error ? err.message : String(err)}`);
250
- }
251
- }
252
- }
253
225
  async apiRequest(method, path, body) {
254
226
  return (0, retry_1.withRetry)(async () => {
255
227
  const url = `${this.baseUrl}${path}`;
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceProvisioner.js","sourceRoot":"","sources":["../../../src/resources/ResourceProvisioner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResourceProvisioner.js","sourceRoot":"","sources":["../../../src/resources/ResourceProvisioner.ts"],"names":[],"mappings":";;;AACA,qDAA8D;AAC9D,mDAA6D;AAC7D,2CAAqD;AACrD,0CAA2C;AAS3C,MAAM,WAAW,GAAG,kCAAkC,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAa,mBAAmB;IACb,MAAM,CAAS;IACf,MAAM,CAAS;IACf,OAAO,CAAS;IAEjC,YAAY,MAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,eAAe,MAAM,CAAC,IAAI,IAAI,eAAe,MAAM,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CACb,OAAe,EACf,GAAW,EACX,MAA0B;QAE1B,MAAM,MAAM,GAAuB;YACjC,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;SACX,CAAC;QAEF,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAE7B,aAAa;QACb,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAClF,IAAI,SAAS;oBAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC9B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACjF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAED,qCAAqC;QACrC,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/F,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,OAAe,EACf,GAAW,EACX,IAAa,EACb,KAAe;QAEf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,IAAA,iCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAE1D,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,iBAAiB,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACvF,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,KAAK,EAAE,QAAQ,CAAC,KAAe;gBAC/B,GAAG,EAAE,QAAQ,CAAC,GAAG;aAClB,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QACzE,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAY;YACzB,KAAK,EAAE,QAAQ,CAAC,KAAe;YAC/B,GAAG,EAAE,QAAQ,CAAC,GAAa;SAC5B,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,OAAe,EACf,GAAW,EACX,MAA0B,EAC1B,KAAe;QAEf,MAAM,SAAS,GAAG,IAAA,gCAAqB,EACrC,OAAO,EACP,GAAG,EACH,MAAM,CAAC,oBAAoB,EAC3B,MAAM,CAAC,IAAI,CACZ,CAAC;QAEF,MAAM,OAAO,GAAmC,EAAE,CAAC;QACnD,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAE/D,MAAM,cAAc,GAAG;oBACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;iBAC1B,CAAC;gBAEF,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;oBACtB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe,QAAQ,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;oBAC3E,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvB,SAAS;gBACX,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvB,SAAS;gBACX,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;gBAC9E,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAc,EAAE,CAAC,CAAC;YAC7E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,IAAI,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,OAAe,EACf,GAAW,EACX,UAA0C,EAC1C,IAAa,EACb,KAAe;QAEf,MAAM,SAAS,GAAG,IAAA,wBAAiB,EAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACpE,MAAM,OAAO,GAAmC,EAAE,CAAC;QACnD,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAE3D,MAAM,UAAU,GAA4B;oBAC1C,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;iBACpB,CAAC;gBAEF,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACnB,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACpC,CAAC;gBACD,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;oBAC/B,UAAU,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;gBAC5D,CAAC;gBAED,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;oBACtB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,QAAQ,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;oBACnE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvB,SAAS;gBACX,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvB,SAAS;gBACX,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAEtE,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAkD,CAAC;gBACjF,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAW;oBACpD,IAAI,EAAE,QAAQ,CAAC,IAAI;iBACpB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,IAAI,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,OAAe,EACf,GAAW;QAEX,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAmC,CAAC;YAEjF,iEAAiE;YACjE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAC9B,CAAC,CAA0B,EAAE,EAAE,CAC7B,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;gBAC3B,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,OAAO,2BAA2B;oBACjD,CAAC,CAAC,KAAK,KAAK,GAAG,OAAO,KAAK,GAAG,4BAA4B,CAAC,CAC/D,CAAC;YAEF,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;oBACL,EAAE,EAAE,QAAQ,CAAC,EAAY;oBACzB,KAAK,EAAE,QAAQ,CAAC,KAAe;oBAC/B,GAAG,EAAE,cAAc,QAAQ,CAAC,EAAE,EAAE;iBACjC,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,IAAY;QAEZ,IAAI,CAAC;YACH,qCAAqC;YACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CACpC,KAAK,EACL,mBAAmB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CACrD,CAAC;YAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAC5B,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAChD,CAAC;YAEF,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAc,EAAE,CAAC;YACtE,CAAC;YAED,oGAAoG;YACpG,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CACxC,KAAK,EACL,oBAAoB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAC/C,CAAC;YACF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAC7B,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAChD,CAAC;YACF,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAY,EAAE,IAAI,EAAE,MAAM,CAAC,IAAc,EAAE,CAAC;YAClE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,IAAY;QAEZ,IAAI,CAAC;YACH,qCAAqC;YACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CACpC,KAAK,EACL,sBAAsB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CACxD,CAAC;YAEF,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAmC,CAAC;YACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAChD,CAAC;YAEF,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAc,EAAE,CAAC;YACtE,CAAC;YAED,yFAAyF;YACzF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAmC,CAAC;YAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CACzB,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAChD,CAAC;YACF,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAY,EAAE,IAAI,EAAE,MAAM,CAAC,IAAc,EAAE,CAAC;YAClE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,MAAc,EACd,IAAY,EACZ,IAAc;QAEd,OAAO,IAAA,iBAAS,EACd,KAAK,IAAI,EAAE;YACT,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;YACrC,MAAM,OAAO,GAA2B;gBACtC,cAAc,EAAE,kBAAkB;gBAClC,YAAY,EAAE,IAAI,CAAC,MAAM;gBACzB,oBAAoB,EAAE,IAAI,CAAC,MAAM;aAClC,CAAC;YAEF,MAAM,OAAO,GAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YACjD,IAAI,IAAI,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAE3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CACrD,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;QAC5D,CAAC,EACD;YACE,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;gBAC/B,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACzE,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACvE,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CACF,CAAC;IACJ,CAAC;CACF;AA5UD,kDA4UC"}
@@ -1,45 +1,18 @@
1
1
  "use strict";
2
2
  /**
3
3
  * SLO templates for Datadog API provisioning.
4
- * Uses metric-based SLOs with custom RUM-generated metrics.
4
+ * Uses only built-in RUM metrics so historical data is available immediately.
5
5
  *
6
- * Required generated metrics (created automatically by the toolkit):
7
- * - rum.frontend_toolkit.api_total — count of XHR/fetch resources
8
- * - rum.frontend_toolkit.api_errors — count of XHR/fetch resources with status >= 400
9
- * - rum.frontend_toolkit.good_lcp — count of views with LCP < 2.5 s
6
+ * SLO 1 Frontend Availability (metric-based, event SLO)
7
+ * good = error-free views, total = all views
8
+ * Pattern mirrors the classic (total − errors) / total used for backend APIs.
9
+ *
10
+ * SLO 2 — Core Web Vitals / LCP (time-slice SLO)
11
+ * Measures % of 5-min windows where p75 LCP < 2.5 s (Google "good" threshold).
12
+ * Uses the existing rum.measure.view.largest_contentful_paint distribution metric.
10
13
  */
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RUM_METRIC_DEFINITIONS = void 0;
13
15
  exports.buildSloTemplates = buildSloTemplates;
14
- exports.RUM_METRIC_DEFINITIONS = [
15
- {
16
- id: 'rum.frontend_toolkit.api_total',
17
- event_type: 'resource',
18
- filter: '@resource.type:(xhr OR fetch)',
19
- group_by: [
20
- { path: 'service', tag_name: 'service' },
21
- { path: 'env', tag_name: 'env' },
22
- ],
23
- },
24
- {
25
- id: 'rum.frontend_toolkit.api_errors',
26
- event_type: 'resource',
27
- filter: '@resource.type:(xhr OR fetch) @resource.status_code:>=400',
28
- group_by: [
29
- { path: 'service', tag_name: 'service' },
30
- { path: 'env', tag_name: 'env' },
31
- ],
32
- },
33
- {
34
- id: 'rum.frontend_toolkit.good_lcp',
35
- event_type: 'view',
36
- filter: '@view.largest_contentful_paint:<2500000000',
37
- group_by: [
38
- { path: 'service', tag_name: 'service' },
39
- { path: 'env', tag_name: 'env' },
40
- ],
41
- },
42
- ];
43
16
  function buildSloTemplates(service, env, _monitorIds, team) {
44
17
  const tags = [
45
18
  `service:${service}`,
@@ -48,13 +21,39 @@ function buildSloTemplates(service, env, _monitorIds, team) {
48
21
  ...(team ? [`team:${team}`] : []),
49
22
  ];
50
23
  return [
24
+ // SLO 1: API Availability — % of 5-min windows where API success rate > 99%
25
+ // Uses RUM resource events directly (same data source as dashboard endpoint widgets)
51
26
  {
52
27
  name: `${service} (${env}) - API Availability`,
53
- description: 'Measures API request availability as the ratio of successful API calls (XHR/fetch with status < 400) to total API calls. Pattern: good = total − errors. Managed by datadog-frontend-toolkit.',
54
- type: 'metric',
55
- query: {
56
- numerator: `sum:rum.frontend_toolkit.api_total{service:${service},env:${env}}.as_count() - sum:rum.frontend_toolkit.api_errors{service:${service},env:${env}}.as_count()`,
57
- denominator: `sum:rum.frontend_toolkit.api_total{service:${service},env:${env}}.as_count()`,
28
+ description: 'Measures API request availability as the ratio of successful XHR/fetch calls (status < 400) to total calls, evaluated per 5-minute window. Managed by datadog-frontend-toolkit.',
29
+ type: 'time_slice',
30
+ sli_specification: {
31
+ time_slice: {
32
+ query: {
33
+ formulas: [{ formula: '1 - (query2 / query1)' }],
34
+ queries: [
35
+ {
36
+ data_source: 'rum',
37
+ name: 'query1',
38
+ compute: { aggregation: 'count' },
39
+ search: { query: `service:${service} env:${env} @type:resource @resource.type:(xhr OR fetch)` },
40
+ indexes: ['*'],
41
+ group_by: [],
42
+ },
43
+ {
44
+ data_source: 'rum',
45
+ name: 'query2',
46
+ compute: { aggregation: 'count' },
47
+ search: { query: `service:${service} env:${env} @type:resource @resource.type:(xhr OR fetch) @resource.status_code:>=400` },
48
+ indexes: ['*'],
49
+ group_by: [],
50
+ },
51
+ ],
52
+ },
53
+ comparator: '>',
54
+ threshold: 0.99,
55
+ query_interval_seconds: 300,
56
+ },
58
57
  },
59
58
  thresholds: [
60
59
  { timeframe: '7d', target: 99.5, warning: 99.9 },
@@ -62,13 +61,27 @@ function buildSloTemplates(service, env, _monitorIds, team) {
62
61
  ],
63
62
  tags,
64
63
  },
64
+ // SLO 2: Core Web Vitals (LCP) — % of 5-min windows with p75 LCP < 2.5 s
65
65
  {
66
66
  name: `${service} (${env}) - Core Web Vitals (LCP)`,
67
- description: 'Measures the percentage of page views with good Largest Contentful Paint (< 2.5 s). Target aligned with Google Core Web Vitals "good" threshold (75 %). Managed by datadog-frontend-toolkit.',
68
- type: 'metric',
69
- query: {
70
- numerator: `sum:rum.frontend_toolkit.good_lcp{service:${service},env:${env}}.as_count()`,
71
- denominator: `sum:rum.measure.view{service:${service},env:${env}}.as_count()`,
67
+ description: 'Measures the percentage of time where p75 Largest Contentful Paint stays below 2.5 s (Google Core Web Vitals "good" threshold). Managed by datadog-frontend-toolkit.',
68
+ type: 'time_slice',
69
+ sli_specification: {
70
+ time_slice: {
71
+ query: {
72
+ formulas: [{ formula: 'query1' }],
73
+ queries: [
74
+ {
75
+ data_source: 'metrics',
76
+ name: 'query1',
77
+ query: `p75:rum.measure.view.largest_contentful_paint{service:${service},env:${env}}`,
78
+ },
79
+ ],
80
+ },
81
+ comparator: '<',
82
+ threshold: 2500000000,
83
+ query_interval_seconds: 300,
84
+ },
72
85
  },
73
86
  thresholds: [
74
87
  { timeframe: '7d', target: 75, warning: 90 },
@@ -1 +1 @@
1
- {"version":3,"file":"slos.js","sourceRoot":"","sources":["../../../../src/resources/templates/slos.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAuDH,8CA6CC;AA3EY,QAAA,sBAAsB,GAA0B;IAC3D;QACE,EAAE,EAAE,gCAAgC;QACpC,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,+BAA+B;QACvC,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjC;KACF;IACD;QACE,EAAE,EAAE,iCAAiC;QACrC,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,2DAA2D;QACnE,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjC;KACF;IACD;QACE,EAAE,EAAE,+BAA+B;QACnC,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,4CAA4C;QACpD,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjC;KACF;CACF,CAAC;AAEF,SAAgB,iBAAiB,CAC/B,OAAe,EACf,GAAW,EACX,WAA2C,EAC3C,IAAa;IAEb,MAAM,IAAI,GAAG;QACX,WAAW,OAAO,EAAE;QACpB,OAAO,GAAG,EAAE;QACZ,kCAAkC;QAClC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAC;IAEF,OAAO;QACL;YACE,IAAI,EAAE,GAAG,OAAO,KAAK,GAAG,sBAAsB;YAC9C,WAAW,EACT,+LAA+L;YACjM,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACL,SAAS,EAAE,8CAA8C,OAAO,QAAQ,GAAG,8DAA8D,OAAO,QAAQ,GAAG,cAAc;gBACzK,WAAW,EAAE,8CAA8C,OAAO,QAAQ,GAAG,cAAc;aAC5F;YACD,UAAU,EAAE;gBACV,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAChD,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;aAClD;YACD,IAAI;SACL;QACD;YACE,IAAI,EAAE,GAAG,OAAO,KAAK,GAAG,2BAA2B;YACnD,WAAW,EACT,8LAA8L;YAChM,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACL,SAAS,EAAE,6CAA6C,OAAO,QAAQ,GAAG,cAAc;gBACxF,WAAW,EAAE,gCAAgC,OAAO,QAAQ,GAAG,cAAc;aAC9E;YACD,UAAU,EAAE;gBACV,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC5C,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;aAC9C;YACD,IAAI;SACL;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"slos.js","sourceRoot":"","sources":["../../../../src/resources/templates/slos.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAeH,8CAqFC;AArFD,SAAgB,iBAAiB,CAC/B,OAAe,EACf,GAAW,EACX,WAA2C,EAC3C,IAAa;IAEb,MAAM,IAAI,GAAG;QACX,WAAW,OAAO,EAAE;QACpB,OAAO,GAAG,EAAE;QACZ,kCAAkC;QAClC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAC;IAEF,OAAO;QACL,4EAA4E;QAC5E,qFAAqF;QACrF;YACE,IAAI,EAAE,GAAG,OAAO,KAAK,GAAG,sBAAsB;YAC9C,WAAW,EACT,iLAAiL;YACnL,IAAI,EAAE,YAAY;YAClB,iBAAiB,EAAE;gBACjB,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;wBAChD,OAAO,EAAE;4BACP;gCACE,WAAW,EAAE,KAAK;gCAClB,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;gCACjC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,OAAO,QAAQ,GAAG,+CAA+C,EAAE;gCAC/F,OAAO,EAAE,CAAC,GAAG,CAAC;gCACd,QAAQ,EAAE,EAAE;6BACb;4BACD;gCACE,WAAW,EAAE,KAAK;gCAClB,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;gCACjC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,OAAO,QAAQ,GAAG,2EAA2E,EAAE;gCAC3H,OAAO,EAAE,CAAC,GAAG,CAAC;gCACd,QAAQ,EAAE,EAAE;6BACb;yBACF;qBACF;oBACD,UAAU,EAAE,GAAG;oBACf,SAAS,EAAE,IAAI;oBACf,sBAAsB,EAAE,GAAG;iBAC5B;aACF;YACD,UAAU,EAAE;gBACV,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAChD,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;aAClD;YACD,IAAI;SACL;QACD,yEAAyE;QACzE;YACE,IAAI,EAAE,GAAG,OAAO,KAAK,GAAG,2BAA2B;YACnD,WAAW,EACT,sKAAsK;YACxK,IAAI,EAAE,YAAY;YAClB,iBAAiB,EAAE;gBACjB,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;wBACjC,OAAO,EAAE;4BACP;gCACE,WAAW,EAAE,SAAS;gCACtB,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,yDAAyD,OAAO,QAAQ,GAAG,GAAG;6BACtF;yBACF;qBACF;oBACD,UAAU,EAAE,GAAG;oBACf,SAAS,EAAE,UAAU;oBACrB,sBAAsB,EAAE,GAAG;iBAC5B;aACF;YACD,UAAU,EAAE;gBACV,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC5C,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;aAC9C;YACD,IAAI;SACL;KACF,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { buildDashboardPayload } from './templates/dashboard';
2
2
  import { buildMonitorTemplates } from './templates/monitors';
3
- import { buildSloTemplates, RUM_METRIC_DEFINITIONS } from './templates/slos';
3
+ import { buildSloTemplates } from './templates/slos';
4
4
  import { withRetry } from '../utils/retry';
5
5
  const MANAGED_TAG = 'managed:datadog-frontend-toolkit';
6
6
  /**
@@ -50,9 +50,8 @@ export class ResourceProvisioner {
50
50
  result.monitors.push(...monitorResults.created);
51
51
  result.errors.push(...monitorResults.errors);
52
52
  }
53
- // SLOs (metric-based with custom RUM-generated metrics)
53
+ // SLOs (metric-based and time-slice)
54
54
  if (config.slos !== false) {
55
- await this.ensureRumMetrics();
56
55
  const sloResults = await this.provisionSlos(service, env, result.monitors, config.team, force);
57
56
  result.slos.push(...sloResults.created);
58
57
  result.errors.push(...sloResults.errors);
@@ -130,6 +129,9 @@ export class ResourceProvisioner {
130
129
  if (template.query) {
131
130
  sloPayload.query = template.query;
132
131
  }
132
+ if (template.sli_specification) {
133
+ sloPayload.sli_specification = template.sli_specification;
134
+ }
133
135
  if (existing && force) {
134
136
  await this.apiRequest('PUT', `/v1/slo/${existing.id}`, sloPayload);
135
137
  created.push(existing);
@@ -217,36 +219,6 @@ export class ResourceProvisioner {
217
219
  }
218
220
  return null;
219
221
  }
220
- /**
221
- * Ensures the RUM-generated metrics required by the SLOs exist.
222
- * Creates them via POST /api/v2/rum/config/metrics; silently ignores 409 (already exists).
223
- */
224
- async ensureRumMetrics() {
225
- for (const metric of RUM_METRIC_DEFINITIONS) {
226
- try {
227
- await this.apiRequest('POST', '/v2/rum/config/metrics', {
228
- data: {
229
- type: 'rum_metrics',
230
- id: metric.id,
231
- attributes: {
232
- event_type: metric.event_type,
233
- compute: { aggregation_type: 'count' },
234
- filter: { query: metric.filter },
235
- group_by: metric.group_by,
236
- },
237
- },
238
- });
239
- }
240
- catch (err) {
241
- // 409 = metric already exists — that's fine
242
- if (err instanceof Error && err.message.includes('409'))
243
- continue;
244
- // Log but don't fail provisioning for metric creation errors
245
- // eslint-disable-next-line no-console
246
- console.warn(`⚠️ Could not create RUM metric ${metric.id}: ${err instanceof Error ? err.message : String(err)}`);
247
- }
248
- }
249
- }
250
222
  async apiRequest(method, path, body) {
251
223
  return withRetry(async () => {
252
224
  const url = `${this.baseUrl}${path}`;
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceProvisioner.js","sourceRoot":"","sources":["../../../src/resources/ResourceProvisioner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResourceProvisioner.js","sourceRoot":"","sources":["../../../src/resources/ResourceProvisioner.ts"],"names":[],"mappings":"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"}
@@ -1,41 +1,15 @@
1
1
  /**
2
2
  * SLO templates for Datadog API provisioning.
3
- * Uses metric-based SLOs with custom RUM-generated metrics.
3
+ * Uses only built-in RUM metrics so historical data is available immediately.
4
4
  *
5
- * Required generated metrics (created automatically by the toolkit):
6
- * - rum.frontend_toolkit.api_total — count of XHR/fetch resources
7
- * - rum.frontend_toolkit.api_errors — count of XHR/fetch resources with status >= 400
8
- * - rum.frontend_toolkit.good_lcp — count of views with LCP < 2.5 s
5
+ * SLO 1 Frontend Availability (metric-based, event SLO)
6
+ * good = error-free views, total = all views
7
+ * Pattern mirrors the classic (total − errors) / total used for backend APIs.
8
+ *
9
+ * SLO 2 — Core Web Vitals / LCP (time-slice SLO)
10
+ * Measures % of 5-min windows where p75 LCP < 2.5 s (Google "good" threshold).
11
+ * Uses the existing rum.measure.view.largest_contentful_paint distribution metric.
9
12
  */
10
- export const RUM_METRIC_DEFINITIONS = [
11
- {
12
- id: 'rum.frontend_toolkit.api_total',
13
- event_type: 'resource',
14
- filter: '@resource.type:(xhr OR fetch)',
15
- group_by: [
16
- { path: 'service', tag_name: 'service' },
17
- { path: 'env', tag_name: 'env' },
18
- ],
19
- },
20
- {
21
- id: 'rum.frontend_toolkit.api_errors',
22
- event_type: 'resource',
23
- filter: '@resource.type:(xhr OR fetch) @resource.status_code:>=400',
24
- group_by: [
25
- { path: 'service', tag_name: 'service' },
26
- { path: 'env', tag_name: 'env' },
27
- ],
28
- },
29
- {
30
- id: 'rum.frontend_toolkit.good_lcp',
31
- event_type: 'view',
32
- filter: '@view.largest_contentful_paint:<2500000000',
33
- group_by: [
34
- { path: 'service', tag_name: 'service' },
35
- { path: 'env', tag_name: 'env' },
36
- ],
37
- },
38
- ];
39
13
  export function buildSloTemplates(service, env, _monitorIds, team) {
40
14
  const tags = [
41
15
  `service:${service}`,
@@ -44,13 +18,39 @@ export function buildSloTemplates(service, env, _monitorIds, team) {
44
18
  ...(team ? [`team:${team}`] : []),
45
19
  ];
46
20
  return [
21
+ // SLO 1: API Availability — % of 5-min windows where API success rate > 99%
22
+ // Uses RUM resource events directly (same data source as dashboard endpoint widgets)
47
23
  {
48
24
  name: `${service} (${env}) - API Availability`,
49
- description: 'Measures API request availability as the ratio of successful API calls (XHR/fetch with status < 400) to total API calls. Pattern: good = total − errors. Managed by datadog-frontend-toolkit.',
50
- type: 'metric',
51
- query: {
52
- numerator: `sum:rum.frontend_toolkit.api_total{service:${service},env:${env}}.as_count() - sum:rum.frontend_toolkit.api_errors{service:${service},env:${env}}.as_count()`,
53
- denominator: `sum:rum.frontend_toolkit.api_total{service:${service},env:${env}}.as_count()`,
25
+ description: 'Measures API request availability as the ratio of successful XHR/fetch calls (status < 400) to total calls, evaluated per 5-minute window. Managed by datadog-frontend-toolkit.',
26
+ type: 'time_slice',
27
+ sli_specification: {
28
+ time_slice: {
29
+ query: {
30
+ formulas: [{ formula: '1 - (query2 / query1)' }],
31
+ queries: [
32
+ {
33
+ data_source: 'rum',
34
+ name: 'query1',
35
+ compute: { aggregation: 'count' },
36
+ search: { query: `service:${service} env:${env} @type:resource @resource.type:(xhr OR fetch)` },
37
+ indexes: ['*'],
38
+ group_by: [],
39
+ },
40
+ {
41
+ data_source: 'rum',
42
+ name: 'query2',
43
+ compute: { aggregation: 'count' },
44
+ search: { query: `service:${service} env:${env} @type:resource @resource.type:(xhr OR fetch) @resource.status_code:>=400` },
45
+ indexes: ['*'],
46
+ group_by: [],
47
+ },
48
+ ],
49
+ },
50
+ comparator: '>',
51
+ threshold: 0.99,
52
+ query_interval_seconds: 300,
53
+ },
54
54
  },
55
55
  thresholds: [
56
56
  { timeframe: '7d', target: 99.5, warning: 99.9 },
@@ -58,13 +58,27 @@ export function buildSloTemplates(service, env, _monitorIds, team) {
58
58
  ],
59
59
  tags,
60
60
  },
61
+ // SLO 2: Core Web Vitals (LCP) — % of 5-min windows with p75 LCP < 2.5 s
61
62
  {
62
63
  name: `${service} (${env}) - Core Web Vitals (LCP)`,
63
- description: 'Measures the percentage of page views with good Largest Contentful Paint (< 2.5 s). Target aligned with Google Core Web Vitals "good" threshold (75 %). Managed by datadog-frontend-toolkit.',
64
- type: 'metric',
65
- query: {
66
- numerator: `sum:rum.frontend_toolkit.good_lcp{service:${service},env:${env}}.as_count()`,
67
- denominator: `sum:rum.measure.view{service:${service},env:${env}}.as_count()`,
64
+ description: 'Measures the percentage of time where p75 Largest Contentful Paint stays below 2.5 s (Google Core Web Vitals "good" threshold). Managed by datadog-frontend-toolkit.',
65
+ type: 'time_slice',
66
+ sli_specification: {
67
+ time_slice: {
68
+ query: {
69
+ formulas: [{ formula: 'query1' }],
70
+ queries: [
71
+ {
72
+ data_source: 'metrics',
73
+ name: 'query1',
74
+ query: `p75:rum.measure.view.largest_contentful_paint{service:${service},env:${env}}`,
75
+ },
76
+ ],
77
+ },
78
+ comparator: '<',
79
+ threshold: 2500000000,
80
+ query_interval_seconds: 300,
81
+ },
68
82
  },
69
83
  thresholds: [
70
84
  { timeframe: '7d', target: 75, warning: 90 },
@@ -1 +1 @@
1
- {"version":3,"file":"slos.js","sourceRoot":"","sources":["../../../../src/resources/templates/slos.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyBH,MAAM,CAAC,MAAM,sBAAsB,GAA0B;IAC3D;QACE,EAAE,EAAE,gCAAgC;QACpC,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,+BAA+B;QACvC,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjC;KACF;IACD;QACE,EAAE,EAAE,iCAAiC;QACrC,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,2DAA2D;QACnE,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjC;KACF;IACD;QACE,EAAE,EAAE,+BAA+B;QACnC,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,4CAA4C;QACpD,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjC;KACF;CACF,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,GAAW,EACX,WAA2C,EAC3C,IAAa;IAEb,MAAM,IAAI,GAAG;QACX,WAAW,OAAO,EAAE;QACpB,OAAO,GAAG,EAAE;QACZ,kCAAkC;QAClC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAC;IAEF,OAAO;QACL;YACE,IAAI,EAAE,GAAG,OAAO,KAAK,GAAG,sBAAsB;YAC9C,WAAW,EACT,+LAA+L;YACjM,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACL,SAAS,EAAE,8CAA8C,OAAO,QAAQ,GAAG,8DAA8D,OAAO,QAAQ,GAAG,cAAc;gBACzK,WAAW,EAAE,8CAA8C,OAAO,QAAQ,GAAG,cAAc;aAC5F;YACD,UAAU,EAAE;gBACV,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAChD,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;aAClD;YACD,IAAI;SACL;QACD;YACE,IAAI,EAAE,GAAG,OAAO,KAAK,GAAG,2BAA2B;YACnD,WAAW,EACT,8LAA8L;YAChM,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACL,SAAS,EAAE,6CAA6C,OAAO,QAAQ,GAAG,cAAc;gBACxF,WAAW,EAAE,gCAAgC,OAAO,QAAQ,GAAG,cAAc;aAC9E;YACD,UAAU,EAAE;gBACV,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC5C,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;aAC9C;YACD,IAAI;SACL;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"slos.js","sourceRoot":"","sources":["../../../../src/resources/templates/slos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAeH,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,GAAW,EACX,WAA2C,EAC3C,IAAa;IAEb,MAAM,IAAI,GAAG;QACX,WAAW,OAAO,EAAE;QACpB,OAAO,GAAG,EAAE;QACZ,kCAAkC;QAClC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAC;IAEF,OAAO;QACL,4EAA4E;QAC5E,qFAAqF;QACrF;YACE,IAAI,EAAE,GAAG,OAAO,KAAK,GAAG,sBAAsB;YAC9C,WAAW,EACT,iLAAiL;YACnL,IAAI,EAAE,YAAY;YAClB,iBAAiB,EAAE;gBACjB,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;wBAChD,OAAO,EAAE;4BACP;gCACE,WAAW,EAAE,KAAK;gCAClB,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;gCACjC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,OAAO,QAAQ,GAAG,+CAA+C,EAAE;gCAC/F,OAAO,EAAE,CAAC,GAAG,CAAC;gCACd,QAAQ,EAAE,EAAE;6BACb;4BACD;gCACE,WAAW,EAAE,KAAK;gCAClB,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;gCACjC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,OAAO,QAAQ,GAAG,2EAA2E,EAAE;gCAC3H,OAAO,EAAE,CAAC,GAAG,CAAC;gCACd,QAAQ,EAAE,EAAE;6BACb;yBACF;qBACF;oBACD,UAAU,EAAE,GAAG;oBACf,SAAS,EAAE,IAAI;oBACf,sBAAsB,EAAE,GAAG;iBAC5B;aACF;YACD,UAAU,EAAE;gBACV,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAChD,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;aAClD;YACD,IAAI;SACL;QACD,yEAAyE;QACzE;YACE,IAAI,EAAE,GAAG,OAAO,KAAK,GAAG,2BAA2B;YACnD,WAAW,EACT,sKAAsK;YACxK,IAAI,EAAE,YAAY;YAClB,iBAAiB,EAAE;gBACjB,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;wBACjC,OAAO,EAAE;4BACP;gCACE,WAAW,EAAE,SAAS;gCACtB,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,yDAAyD,OAAO,QAAQ,GAAG,GAAG;6BACtF;yBACF;qBACF;oBACD,UAAU,EAAE,GAAG;oBACf,SAAS,EAAE,UAAU;oBACrB,sBAAsB,EAAE,GAAG;iBAC5B;aACF;YACD,UAAU,EAAE;gBACV,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC5C,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;aAC9C;YACD,IAAI;SACL;KACF,CAAC;AACJ,CAAC"}
@@ -50,9 +50,8 @@ class ResourceProvisioner {
50
50
  result.monitors.push(...monitorResults.created);
51
51
  result.errors.push(...monitorResults.errors);
52
52
  }
53
- // SLOs (metric-based with custom RUM-generated metrics)
53
+ // SLOs (metric-based and time-slice)
54
54
  if (config.slos !== false) {
55
- await this.ensureRumMetrics();
56
55
  const sloResults = await this.provisionSlos(service, env, result.monitors, config.team, force);
57
56
  result.slos.push(...sloResults.created);
58
57
  result.errors.push(...sloResults.errors);
@@ -130,6 +129,9 @@ class ResourceProvisioner {
130
129
  if (template.query) {
131
130
  sloPayload.query = template.query;
132
131
  }
132
+ if (template.sli_specification) {
133
+ sloPayload.sli_specification = template.sli_specification;
134
+ }
133
135
  if (existing && force) {
134
136
  await this.apiRequest('PUT', `/v1/slo/${existing.id}`, sloPayload);
135
137
  created.push(existing);
@@ -217,36 +219,6 @@ class ResourceProvisioner {
217
219
  }
218
220
  return null;
219
221
  }
220
- /**
221
- * Ensures the RUM-generated metrics required by the SLOs exist.
222
- * Creates them via POST /api/v2/rum/config/metrics; silently ignores 409 (already exists).
223
- */
224
- async ensureRumMetrics() {
225
- for (const metric of slos_1.RUM_METRIC_DEFINITIONS) {
226
- try {
227
- await this.apiRequest('POST', '/v2/rum/config/metrics', {
228
- data: {
229
- type: 'rum_metrics',
230
- id: metric.id,
231
- attributes: {
232
- event_type: metric.event_type,
233
- compute: { aggregation_type: 'count' },
234
- filter: { query: metric.filter },
235
- group_by: metric.group_by,
236
- },
237
- },
238
- });
239
- }
240
- catch (err) {
241
- // 409 = metric already exists — that's fine
242
- if (err instanceof Error && err.message.includes('409'))
243
- continue;
244
- // Log but don't fail provisioning for metric creation errors
245
- // eslint-disable-next-line no-console
246
- console.warn(`⚠️ Could not create RUM metric ${metric.id}: ${err instanceof Error ? err.message : String(err)}`);
247
- }
248
- }
249
- }
250
222
  async apiRequest(method, path, body) {
251
223
  return (0, retry_1.withRetry)(async () => {
252
224
  const url = `${this.baseUrl}${path}`;
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceProvisioner.js","sourceRoot":"","sources":["../../src/resources/ResourceProvisioner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResourceProvisioner.js","sourceRoot":"","sources":["../../src/resources/ResourceProvisioner.ts"],"names":[],"mappings":"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"}
@@ -1,45 +1,18 @@
1
1
  "use strict";
2
2
  /**
3
3
  * SLO templates for Datadog API provisioning.
4
- * Uses metric-based SLOs with custom RUM-generated metrics.
4
+ * Uses only built-in RUM metrics so historical data is available immediately.
5
5
  *
6
- * Required generated metrics (created automatically by the toolkit):
7
- * - rum.frontend_toolkit.api_total — count of XHR/fetch resources
8
- * - rum.frontend_toolkit.api_errors — count of XHR/fetch resources with status >= 400
9
- * - rum.frontend_toolkit.good_lcp — count of views with LCP < 2.5 s
6
+ * SLO 1 Frontend Availability (metric-based, event SLO)
7
+ * good = error-free views, total = all views
8
+ * Pattern mirrors the classic (total − errors) / total used for backend APIs.
9
+ *
10
+ * SLO 2 — Core Web Vitals / LCP (time-slice SLO)
11
+ * Measures % of 5-min windows where p75 LCP < 2.5 s (Google "good" threshold).
12
+ * Uses the existing rum.measure.view.largest_contentful_paint distribution metric.
10
13
  */
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RUM_METRIC_DEFINITIONS = void 0;
13
15
  exports.buildSloTemplates = buildSloTemplates;
14
- exports.RUM_METRIC_DEFINITIONS = [
15
- {
16
- id: 'rum.frontend_toolkit.api_total',
17
- event_type: 'resource',
18
- filter: '@resource.type:(xhr OR fetch)',
19
- group_by: [
20
- { path: 'service', tag_name: 'service' },
21
- { path: 'env', tag_name: 'env' },
22
- ],
23
- },
24
- {
25
- id: 'rum.frontend_toolkit.api_errors',
26
- event_type: 'resource',
27
- filter: '@resource.type:(xhr OR fetch) @resource.status_code:>=400',
28
- group_by: [
29
- { path: 'service', tag_name: 'service' },
30
- { path: 'env', tag_name: 'env' },
31
- ],
32
- },
33
- {
34
- id: 'rum.frontend_toolkit.good_lcp',
35
- event_type: 'view',
36
- filter: '@view.largest_contentful_paint:<2500000000',
37
- group_by: [
38
- { path: 'service', tag_name: 'service' },
39
- { path: 'env', tag_name: 'env' },
40
- ],
41
- },
42
- ];
43
16
  function buildSloTemplates(service, env, _monitorIds, team) {
44
17
  const tags = [
45
18
  `service:${service}`,
@@ -48,13 +21,39 @@ function buildSloTemplates(service, env, _monitorIds, team) {
48
21
  ...(team ? [`team:${team}`] : []),
49
22
  ];
50
23
  return [
24
+ // SLO 1: API Availability — % of 5-min windows where API success rate > 99%
25
+ // Uses RUM resource events directly (same data source as dashboard endpoint widgets)
51
26
  {
52
27
  name: `${service} (${env}) - API Availability`,
53
- description: 'Measures API request availability as the ratio of successful API calls (XHR/fetch with status < 400) to total API calls. Pattern: good = total − errors. Managed by datadog-frontend-toolkit.',
54
- type: 'metric',
55
- query: {
56
- numerator: `sum:rum.frontend_toolkit.api_total{service:${service},env:${env}}.as_count() - sum:rum.frontend_toolkit.api_errors{service:${service},env:${env}}.as_count()`,
57
- denominator: `sum:rum.frontend_toolkit.api_total{service:${service},env:${env}}.as_count()`,
28
+ description: 'Measures API request availability as the ratio of successful XHR/fetch calls (status < 400) to total calls, evaluated per 5-minute window. Managed by datadog-frontend-toolkit.',
29
+ type: 'time_slice',
30
+ sli_specification: {
31
+ time_slice: {
32
+ query: {
33
+ formulas: [{ formula: '1 - (query2 / query1)' }],
34
+ queries: [
35
+ {
36
+ data_source: 'rum',
37
+ name: 'query1',
38
+ compute: { aggregation: 'count' },
39
+ search: { query: `service:${service} env:${env} @type:resource @resource.type:(xhr OR fetch)` },
40
+ indexes: ['*'],
41
+ group_by: [],
42
+ },
43
+ {
44
+ data_source: 'rum',
45
+ name: 'query2',
46
+ compute: { aggregation: 'count' },
47
+ search: { query: `service:${service} env:${env} @type:resource @resource.type:(xhr OR fetch) @resource.status_code:>=400` },
48
+ indexes: ['*'],
49
+ group_by: [],
50
+ },
51
+ ],
52
+ },
53
+ comparator: '>',
54
+ threshold: 0.99,
55
+ query_interval_seconds: 300,
56
+ },
58
57
  },
59
58
  thresholds: [
60
59
  { timeframe: '7d', target: 99.5, warning: 99.9 },
@@ -62,13 +61,27 @@ function buildSloTemplates(service, env, _monitorIds, team) {
62
61
  ],
63
62
  tags,
64
63
  },
64
+ // SLO 2: Core Web Vitals (LCP) — % of 5-min windows with p75 LCP < 2.5 s
65
65
  {
66
66
  name: `${service} (${env}) - Core Web Vitals (LCP)`,
67
- description: 'Measures the percentage of page views with good Largest Contentful Paint (< 2.5 s). Target aligned with Google Core Web Vitals "good" threshold (75 %). Managed by datadog-frontend-toolkit.',
68
- type: 'metric',
69
- query: {
70
- numerator: `sum:rum.frontend_toolkit.good_lcp{service:${service},env:${env}}.as_count()`,
71
- denominator: `sum:rum.measure.view{service:${service},env:${env}}.as_count()`,
67
+ description: 'Measures the percentage of time where p75 Largest Contentful Paint stays below 2.5 s (Google Core Web Vitals "good" threshold). Managed by datadog-frontend-toolkit.',
68
+ type: 'time_slice',
69
+ sli_specification: {
70
+ time_slice: {
71
+ query: {
72
+ formulas: [{ formula: 'query1' }],
73
+ queries: [
74
+ {
75
+ data_source: 'metrics',
76
+ name: 'query1',
77
+ query: `p75:rum.measure.view.largest_contentful_paint{service:${service},env:${env}}`,
78
+ },
79
+ ],
80
+ },
81
+ comparator: '<',
82
+ threshold: 2500000000,
83
+ query_interval_seconds: 300,
84
+ },
72
85
  },
73
86
  thresholds: [
74
87
  { timeframe: '7d', target: 75, warning: 90 },
@@ -1 +1 @@
1
- {"version":3,"file":"slos.js","sourceRoot":"","sources":["../../../src/resources/templates/slos.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAuDH,8CA6CC;AA3EY,QAAA,sBAAsB,GAA0B;IAC3D;QACE,EAAE,EAAE,gCAAgC;QACpC,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,+BAA+B;QACvC,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjC;KACF;IACD;QACE,EAAE,EAAE,iCAAiC;QACrC,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,2DAA2D;QACnE,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjC;KACF;IACD;QACE,EAAE,EAAE,+BAA+B;QACnC,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,4CAA4C;QACpD,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjC;KACF;CACF,CAAC;AAEF,SAAgB,iBAAiB,CAC/B,OAAe,EACf,GAAW,EACX,WAA2C,EAC3C,IAAa;IAEb,MAAM,IAAI,GAAG;QACX,WAAW,OAAO,EAAE;QACpB,OAAO,GAAG,EAAE;QACZ,kCAAkC;QAClC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAC;IAEF,OAAO;QACL;YACE,IAAI,EAAE,GAAG,OAAO,KAAK,GAAG,sBAAsB;YAC9C,WAAW,EACT,+LAA+L;YACjM,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACL,SAAS,EAAE,8CAA8C,OAAO,QAAQ,GAAG,8DAA8D,OAAO,QAAQ,GAAG,cAAc;gBACzK,WAAW,EAAE,8CAA8C,OAAO,QAAQ,GAAG,cAAc;aAC5F;YACD,UAAU,EAAE;gBACV,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAChD,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;aAClD;YACD,IAAI;SACL;QACD;YACE,IAAI,EAAE,GAAG,OAAO,KAAK,GAAG,2BAA2B;YACnD,WAAW,EACT,8LAA8L;YAChM,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACL,SAAS,EAAE,6CAA6C,OAAO,QAAQ,GAAG,cAAc;gBACxF,WAAW,EAAE,gCAAgC,OAAO,QAAQ,GAAG,cAAc;aAC9E;YACD,UAAU,EAAE;gBACV,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC5C,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;aAC9C;YACD,IAAI;SACL;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"slos.js","sourceRoot":"","sources":["../../../src/resources/templates/slos.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAeH,8CAqFC;AArFD,SAAgB,iBAAiB,CAC/B,OAAe,EACf,GAAW,EACX,WAA2C,EAC3C,IAAa;IAEb,MAAM,IAAI,GAAG;QACX,WAAW,OAAO,EAAE;QACpB,OAAO,GAAG,EAAE;QACZ,kCAAkC;QAClC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAC;IAEF,OAAO;QACL,4EAA4E;QAC5E,qFAAqF;QACrF;YACE,IAAI,EAAE,GAAG,OAAO,KAAK,GAAG,sBAAsB;YAC9C,WAAW,EACT,iLAAiL;YACnL,IAAI,EAAE,YAAY;YAClB,iBAAiB,EAAE;gBACjB,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;wBAChD,OAAO,EAAE;4BACP;gCACE,WAAW,EAAE,KAAK;gCAClB,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;gCACjC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,OAAO,QAAQ,GAAG,+CAA+C,EAAE;gCAC/F,OAAO,EAAE,CAAC,GAAG,CAAC;gCACd,QAAQ,EAAE,EAAE;6BACb;4BACD;gCACE,WAAW,EAAE,KAAK;gCAClB,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;gCACjC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,OAAO,QAAQ,GAAG,2EAA2E,EAAE;gCAC3H,OAAO,EAAE,CAAC,GAAG,CAAC;gCACd,QAAQ,EAAE,EAAE;6BACb;yBACF;qBACF;oBACD,UAAU,EAAE,GAAG;oBACf,SAAS,EAAE,IAAI;oBACf,sBAAsB,EAAE,GAAG;iBAC5B;aACF;YACD,UAAU,EAAE;gBACV,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAChD,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;aAClD;YACD,IAAI;SACL;QACD,yEAAyE;QACzE;YACE,IAAI,EAAE,GAAG,OAAO,KAAK,GAAG,2BAA2B;YACnD,WAAW,EACT,sKAAsK;YACxK,IAAI,EAAE,YAAY;YAClB,iBAAiB,EAAE;gBACjB,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;wBACjC,OAAO,EAAE;4BACP;gCACE,WAAW,EAAE,SAAS;gCACtB,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,yDAAyD,OAAO,QAAQ,GAAG,GAAG;6BACtF;yBACF;qBACF;oBACD,UAAU,EAAE,GAAG;oBACf,SAAS,EAAE,UAAU;oBACrB,sBAAsB,EAAE,GAAG;iBAC5B;aACF;YACD,UAAU,EAAE;gBACV,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC5C,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;aAC9C;YACD,IAAI;SACL;KACF,CAAC;AACJ,CAAC"}
@@ -40,11 +40,6 @@ export declare class ResourceProvisioner {
40
40
  private findExistingDashboard;
41
41
  private findExistingMonitor;
42
42
  private findExistingSlo;
43
- /**
44
- * Ensures the RUM-generated metrics required by the SLOs exist.
45
- * Creates them via POST /api/v2/rum/config/metrics; silently ignores 409 (already exists).
46
- */
47
- private ensureRumMetrics;
48
43
  private apiRequest;
49
44
  }
50
45
  export {};
@@ -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;YAsChB,kBAAkB;YA8BlB,iBAAiB;YAkDjB,aAAa;YAqDb,qBAAqB;YA6BrB,mBAAmB;YAqCnB,eAAe;IAkC7B;;;OAGG;YACW,gBAAgB;YAyBhB,UAAU;CAwCzB"}
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;YAqChB,kBAAkB;YA8BlB,iBAAiB;YAkDjB,aAAa;YAwDb,qBAAqB;YA6BrB,mBAAmB;YAqCnB,eAAe;YAkCf,UAAU;CAwCzB"}
@@ -1,20 +1,24 @@
1
1
  /**
2
2
  * SLO templates for Datadog API provisioning.
3
- * Uses metric-based SLOs with custom RUM-generated metrics.
3
+ * Uses only built-in RUM metrics so historical data is available immediately.
4
4
  *
5
- * Required generated metrics (created automatically by the toolkit):
6
- * - rum.frontend_toolkit.api_total — count of XHR/fetch resources
7
- * - rum.frontend_toolkit.api_errors — count of XHR/fetch resources with status >= 400
8
- * - rum.frontend_toolkit.good_lcp — count of views with LCP < 2.5 s
5
+ * SLO 1 Frontend Availability (metric-based, event SLO)
6
+ * good = error-free views, total = all views
7
+ * Pattern mirrors the classic (total − errors) / total used for backend APIs.
8
+ *
9
+ * SLO 2 — Core Web Vitals / LCP (time-slice SLO)
10
+ * Measures % of 5-min windows where p75 LCP < 2.5 s (Google "good" threshold).
11
+ * Uses the existing rum.measure.view.largest_contentful_paint distribution metric.
9
12
  */
10
13
  export interface SloTemplate {
11
14
  name: string;
12
15
  description: string;
13
- type: string;
16
+ type: 'metric' | 'time_slice';
14
17
  query?: {
15
18
  numerator: string;
16
19
  denominator: string;
17
20
  };
21
+ sli_specification?: Record<string, unknown>;
18
22
  thresholds: Array<{
19
23
  timeframe: string;
20
24
  target: number;
@@ -22,20 +26,6 @@ export interface SloTemplate {
22
26
  }>;
23
27
  tags: string[];
24
28
  }
25
- /**
26
- * Definitions for the RUM-generated metrics the SLOs depend on.
27
- * Each entry maps to a POST /api/v2/rum/config/metrics call.
28
- */
29
- export interface RumMetricDefinition {
30
- id: string;
31
- event_type: string;
32
- filter: string;
33
- group_by: Array<{
34
- path: string;
35
- tag_name: string;
36
- }>;
37
- }
38
- export declare const RUM_METRIC_DEFINITIONS: RumMetricDefinition[];
39
29
  export declare function buildSloTemplates(service: string, env: string, _monitorIds: {
40
30
  id: number;
41
31
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"slos.d.ts","sourceRoot":"","sources":["../../../../src/resources/templates/slos.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,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;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,EA4BvD,CAAC;AAEF,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,CAwCf"}
1
+ {"version":3,"file":"slos.d.ts","sourceRoot":"","sources":["../../../../src/resources/templates/slos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;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,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,CAgFf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datadog-frontend-toolkit",
3
- "version": "1.0.35",
3
+ "version": "1.0.37",
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",