@grnsft/if 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/.commitlintrc.js +4 -7
  2. package/README.md +5 -1
  3. package/Refactor-migration-guide.md +342 -0
  4. package/build/{models/export-csv.d.ts → builtins/export-csv-raw.d.ts} +1 -1
  5. package/build/builtins/export-csv-raw.js +129 -0
  6. package/build/builtins/export-csv.d.ts +10 -0
  7. package/build/builtins/export-csv.js +86 -0
  8. package/build/builtins/export-log.js +18 -0
  9. package/build/builtins/export-yaml.js +27 -0
  10. package/build/builtins/group-by.d.ts +5 -0
  11. package/build/builtins/group-by.js +56 -0
  12. package/build/{models → builtins}/index.js +1 -1
  13. package/build/{models → builtins}/time-sync.d.ts +2 -2
  14. package/build/builtins/time-sync.js +304 -0
  15. package/build/config/config.js +2 -2
  16. package/build/config/params.js +56 -1
  17. package/build/config/strings.d.ts +4 -2
  18. package/build/config/strings.js +7 -9
  19. package/build/index.js +3 -1
  20. package/build/lib/aggregate.d.ts +1 -1
  21. package/build/lib/aggregate.js +4 -3
  22. package/build/lib/compute.js +9 -10
  23. package/build/lib/exhaust.js +8 -5
  24. package/build/lib/initialize.d.ts +2 -2
  25. package/build/lib/initialize.js +9 -5
  26. package/build/lib/load.d.ts +33 -2
  27. package/build/lib/load.js +4 -4
  28. package/build/lib/parameterize.d.ts +1 -1
  29. package/build/lib/parameterize.js +6 -4
  30. package/build/types/aggregation.d.ts +0 -1
  31. package/build/types/aggregation.js +1 -1
  32. package/build/types/compute.d.ts +3 -3
  33. package/build/types/compute.js +1 -1
  34. package/build/types/interface.d.ts +14 -1
  35. package/build/types/interface.js +6 -1
  36. package/build/types/manifest.d.ts +9 -40
  37. package/build/types/manifest.js +1 -1
  38. package/build/types/parameters.d.ts +2 -12
  39. package/build/types/parameters.js +1 -1
  40. package/build/types/plugin-storage.d.ts +6 -0
  41. package/build/types/plugin-storage.js +3 -0
  42. package/build/util/aggregation-helper.d.ts +1 -1
  43. package/build/util/aggregation-helper.js +11 -12
  44. package/build/util/errors.d.ts +1 -1
  45. package/build/util/errors.js +2 -2
  46. package/build/util/json.js +25 -5
  47. package/build/util/log-memoize.d.ts +3 -0
  48. package/build/util/log-memoize.js +19 -0
  49. package/build/util/logger.d.ts +1 -1
  50. package/build/util/logger.js +2 -3
  51. package/build/util/plugin-storage.d.ts +14 -0
  52. package/build/util/plugin-storage.js +34 -0
  53. package/build/util/validations.d.ts +144 -11
  54. package/build/util/validations.js +19 -17
  55. package/examples/manifests/asim-demo.yml +74 -0
  56. package/examples/manifests/basic-demo.yml +4 -9
  57. package/examples/manifests/boavizta-cloud.yml +20 -0
  58. package/examples/manifests/cim.yml +3 -3
  59. package/examples/manifests/divide.yml +38 -0
  60. package/examples/manifests/generics.yml +4 -4
  61. package/examples/manifests/group-by.yml +13 -13
  62. package/examples/manifests/mock-observation.yml +2 -2
  63. package/examples/manifests/nesting-demo.yml +2 -2
  64. package/examples/manifests/nesting.yml +16 -16
  65. package/examples/manifests/pipeline-demo-1.yml +4 -4
  66. package/examples/manifests/pipeline-demo-2.yml +9 -9
  67. package/examples/manifests/pipeline-demo.yml +10 -10
  68. package/examples/manifests/pipeline-teads-sci.yml +4 -4
  69. package/examples/manifests/pipeline-with-generics.yml +8 -8
  70. package/examples/manifests/pipeline-with-mocks.yml +10 -10
  71. package/examples/manifests/regex.yml +23 -0
  72. package/package.json +6 -3
  73. package/src/builtins/README.md +852 -0
  74. package/build/models/export-csv.js +0 -129
  75. package/build/models/export-log.js +0 -18
  76. package/build/models/export-yaml.js +0 -24
  77. package/build/models/group-by.d.ts +0 -11
  78. package/build/models/group-by.js +0 -56
  79. package/build/models/time-sync.js +0 -304
  80. package/build/types/initialize.d.ts +0 -4
  81. package/build/types/initialize.js +0 -3
  82. package/build/types/load.d.ts +0 -7
  83. package/build/types/load.js +0 -3
  84. package/src/models/README.md +0 -268
  85. /package/build/{models → builtins}/export-log.d.ts +0 -0
  86. /package/build/{models → builtins}/export-yaml.d.ts +0 -0
  87. /package/build/{models → builtins}/index.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validate = exports.validateManifest = void 0;
3
+ exports.validate = exports.validateManifest = exports.manifestSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const errors_1 = require("./errors");
6
6
  const aggregation_1 = require("../types/aggregation");
@@ -9,16 +9,24 @@ const { ManifestValidationError, InputValidationError } = errors_1.ERRORS;
9
9
  /**
10
10
  * Validation schema for manifests.
11
11
  */
12
- const manifestValidation = zod_1.z.object({
12
+ exports.manifestSchema = zod_1.z.object({
13
13
  name: zod_1.z.string(),
14
- 'if-version': zod_1.z.string().optional().nullable(),
15
- description: zod_1.z.string().nullable().default(''),
14
+ description: zod_1.z.string().optional().nullable(),
15
+ tags: zod_1.z
16
+ .object({
17
+ kind: zod_1.z.string().optional().nullable(),
18
+ complexity: zod_1.z.string().optional().nullable(),
19
+ category: zod_1.z.string().optional().nullable(),
20
+ })
21
+ .optional()
22
+ .nullable(),
16
23
  aggregation: zod_1.z
17
24
  .object({
18
25
  metrics: zod_1.z.array(zod_1.z.string()),
19
26
  type: zod_1.z.enum(aggregation_1.AGGREGATION_METHODS),
20
27
  })
21
- .optional(),
28
+ .optional()
29
+ .nullable(),
22
30
  params: zod_1.z
23
31
  .array(zod_1.z.object({
24
32
  name: zod_1.z.string(),
@@ -28,14 +36,6 @@ const manifestValidation = zod_1.z.object({
28
36
  }))
29
37
  .optional()
30
38
  .nullable(),
31
- tags: zod_1.z
32
- .object({
33
- kind: zod_1.z.string().optional(),
34
- complexity: zod_1.z.string().optional(),
35
- category: zod_1.z.string().optional(),
36
- })
37
- .nullable()
38
- .default({}),
39
39
  initialize: zod_1.z.object({
40
40
  plugins: zod_1.z.record(zod_1.z.string(), zod_1.z.object({
41
41
  path: zod_1.z.string(),
@@ -45,13 +45,12 @@ const manifestValidation = zod_1.z.object({
45
45
  outputs: zod_1.z.array(zod_1.z.string()).optional(),
46
46
  }),
47
47
  tree: zod_1.z.record(zod_1.z.string(), zod_1.z.any()),
48
+ 'if-version': zod_1.z.string().optional().nullable(),
48
49
  });
49
50
  /**
50
51
  * Validates given `manifest` object to match pattern.
51
52
  */
52
- const validateManifest = (manifest) => {
53
- return (0, exports.validate)(manifestValidation, manifest, ManifestValidationError);
54
- };
53
+ const validateManifest = (manifest) => (0, exports.validate)(exports.manifestSchema, manifest, ManifestValidationError);
55
54
  exports.validateManifest = validateManifest;
56
55
  /**
57
56
  * Validates given `object` with given `schema`.
@@ -64,6 +63,9 @@ const validate = (schema, object, errorConstructor = InputValidationError) => {
64
63
  return validationResult.data;
65
64
  };
66
65
  exports.validate = validate;
66
+ /**
67
+ * Beautify error message from zod issue.
68
+ */
67
69
  const prettifyErrorMessage = (issues) => {
68
70
  const issuesArray = JSON.parse(issues);
69
71
  return issuesArray.map((issue) => {
@@ -76,4 +78,4 @@ const prettifyErrorMessage = (issues) => {
76
78
  return `"${fullPath}" parameter is ${message.toLowerCase()}. Error code: ${code}.`;
77
79
  });
78
80
  };
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC92YWxpZGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBMkM7QUFFM0MscUNBQWdDO0FBRWhDLHNEQUF5RDtBQUN6RCxvREFBc0Q7QUFHdEQsTUFBTSxFQUFDLHVCQUF1QixFQUFFLG9CQUFvQixFQUFDLEdBQUcsZUFBTSxDQUFDO0FBRS9EOztHQUVHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLFlBQVksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzlDLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUM5QyxXQUFXLEVBQUUsT0FBQztTQUNYLE1BQU0sQ0FBQztRQUNOLE9BQU8sRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixJQUFJLEVBQUUsT0FBQyxDQUFDLElBQUksQ0FBQyxpQ0FBbUIsQ0FBQztLQUNsQyxDQUFDO1NBQ0QsUUFBUSxFQUFFO0lBQ2IsTUFBTSxFQUFFLE9BQUM7U0FDTixLQUFLLENBQ0osT0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNQLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1FBQ2hCLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1FBQ3ZCLFdBQVcsRUFBRSxPQUFDLENBQUMsSUFBSSxDQUFDLDhCQUFpQixDQUFDO1FBQ3RDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0tBQ2pCLENBQUMsQ0FDSDtTQUNBLFFBQVEsRUFBRTtTQUNWLFFBQVEsRUFBRTtJQUNiLElBQUksRUFB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LENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1pvZElzc3VlLCBab2RTY2hlbWEsIHp9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7RVJST1JTfSBmcm9tICcuL2Vycm9ycyc7XG5cbmltcG9ydCB7QUdHUkVHQVRJT05fTUVUSE9EU30gZnJvbSAnLi4vdHlwZXMvYWdncmVnYXRpb24nO1xuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnLi4vdHlwZXMvcGFyYW1ldGVycyc7XG5pbXBvcnQge01hbmlmZXN0fSBmcm9tICcuLi90eXBlcy9tYW5pZmVzdCc7XG5cbmNvbnN0IHtNYW5pZmVzdFZhbGlkYXRpb25FcnJvciwgSW5wdXRWYWxpZGF0aW9uRXJyb3J9ID0gRVJST1JTO1xuXG4vKipcbiAqIFZhbGlkYXRpb24gc2NoZW1hIGZvciBtYW5pZmVzdHMuXG4gKi9cbmNvbnN0IG1hbmlmZXN0VmFsaWRhdGlvbiA9IHoub2JqZWN0KHtcbiAgbmFtZTogei5zdHJpbmcoKSxcbiAgJ2lmLXZlcnNpb24nOiB6LnN0cmluZygpLm9wdGlvbmFsKCkubnVsbGFibGUoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkubnVsbGFibGUoKS5kZWZhdWx0KCcnKSxcbiAgYWdncmVnYXRpb246IHpcbiAgICAub2JqZWN0KHtcbiAgICAgIG1ldHJpY3M6IHouYXJyYXkoei5zdHJpbmcoKSksXG4gICAgICB0eXBlOiB6LmVudW0oQUdHUkVHQVRJT05fTUVUSE9EUyksXG4gICAgfSlcbiAgICAub3B0aW9uYWwoKSxcbiAgcGFyYW1zOiB6XG4gICAgLmFycmF5KFxuICAgICAgei5vYmplY3Qoe1xuICAgICAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgICAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKSxcbiAgICAgICAgYWdncmVnYXRpb246IHouZW51bShBR0dSRUdBVElPTl9UWVBFUyksXG4gICAgICAgIHVuaXQ6IHouc3RyaW5nKCksXG4gICAgICB9KVxuICAgIClcbiAgICAub3B0aW9uYWwoKVxuICAgIC5udWxsYWJsZSgpLFxuICB0YWdzOiB6XG4gICAgLm9iamVjdCh7XG4gICAgICBraW5kOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICBjb21wbGV4aXR5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICBjYXRlZ29yeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIH0pXG4gICAgLm51bGxhYmxlKClcbiAgICAuZGVmYXVsdCh7fSksXG4gIGluaXRpYWxpemU6IHoub2JqZWN0KHtcbiAgICBwbHVnaW5zOiB6LnJlY29yZChcbiAgICAgIHouc3RyaW5nKCksXG4gICAgICB6Lm9iamVjdCh7XG4gICAgICAgIHBhdGg6IHouc3RyaW5nKCksXG4gICAgICAgIG1ldGhvZDogei5zdHJpbmcoKSxcbiAgICAgICAgJ2dsb2JhbC1jb25maWcnOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LmFueSgpKS5vcHRpb25hbCgpLFxuICAgICAgfSlcbiAgICApLFxuICAgIG91dHB1dHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgfSksXG4gIHRyZWU6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLFxufSk7XG5cbi8qKlxuICogVmFsaWRhdGVzIGdpdmVuIGBtYW5pZmVzdGAgb2JqZWN0IHRvIG1hdGNoIHBhdHRlcm4uXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU1hbmlmZXN0ID0gKG1hbmlmZXN0OiBNYW5pZmVzdCkgPT4ge1xuICByZXR1cm4gdmFsaWRhdGUobWFuaWZlc3RWYWxpZGF0aW9uLCBtYW5pZmVzdCwgTWFuaWZlc3RWYWxpZGF0aW9uRXJyb3IpO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZXMgZ2l2ZW4gYG9iamVjdGAgd2l0aCBnaXZlbiBgc2NoZW1hYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlID0gPFQ+KFxuICBzY2hlbWE6IFpvZFNjaGVtYTxUPixcbiAgb2JqZWN0OiBhbnksXG4gIGVycm9yQ29uc3RydWN0b3I6IEVycm9yQ29uc3RydWN0b3IgPSBJbnB1dFZhbGlkYXRpb25FcnJvclxuKSA9PiB7XG4gIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBzY2hlbWEuc2FmZVBhcnNlKG9iamVjdCk7XG5cbiAgaWYgKCF2YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JDb25zdHJ1Y3RvcihcbiAgICAgIHByZXR0aWZ5RXJyb3JNZXNzYWdlKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZSlcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHQuZGF0YTtcbn07XG5cbmNvbnN0IHByZXR0aWZ5RXJyb3JNZXNzYWdlID0gKGlzc3Vlczogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGlzc3Vlc0FycmF5ID0gSlNPTi5wYXJzZShpc3N1ZXMpO1xuXG4gIHJldHVybiBpc3N1ZXNBcnJheS5tYXAoKGlzc3VlOiBab2RJc3N1ZSkgPT4ge1xuICAgIGNvbnN0IHtjb2RlLCBwYXRoLCBtZXNzYWdlfSA9IGlzc3VlO1xuICAgIGNvbnN0IGZsYXR0ZW5QYXRoID0gcGF0aC5tYXAocGFydCA9PlxuICAgICAgdHlwZW9mIHBhcnQgPT09ICdudW1iZXInID8gYFske3BhcnR9XWAgOiBwYXJ0XG4gICAgKTtcbiAgICBjb25zdCBmdWxsUGF0aCA9IGZsYXR0ZW5QYXRoLmpvaW4oJy4nKTtcblxuICAgIGlmIChjb2RlID09PSAnY3VzdG9tJykge1xuICAgICAgcmV0dXJuIGAke21lc3NhZ2UudG9Mb3dlckNhc2UoKX0uIEVycm9yIGNvZGU6ICR7Y29kZX0uYDtcbiAgICB9XG4gICAgcmV0dXJuIGBcIiR7ZnVsbFBhdGh9XCIgcGFyYW1ldGVyIGlzICR7bWVzc2FnZS50b0xvd2VyQ2FzZSgpfS4gRXJyb3IgY29kZTogJHtjb2RlfS5gO1xuICB9KTtcbn07XG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC92YWxpZGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBMkM7QUFFM0MscUNBQWdDO0FBRWhDLHNEQUF5RDtBQUN6RCxvREFBc0Q7QUFFdEQsTUFBTSxFQUFDLHVCQUF1QixFQUFFLG9CQUFvQixFQUFDLEdBQUcsZUFBTSxDQUFDO0FBRS9EOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxJQUFJLEVBQUUsT0FBQztTQUNKLE1BQU0sQ0FBQztRQUNOLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQ3RDLFVBQVUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQzVDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQzNDLENBQUM7U0FDRCxRQUFRLEVBQUU7U0FDVixRQUFRLEVBQUU7SUFDYixXQUFXLEVBQUUsT0FBQztTQUNYLE1BQU0sQ0FBQztRQUNOLE9BQU8sRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixJQUFJLEVBQUUsT0FBQyxDQUFDLElBQUksQ0FBQyxpQ0FBbUIsQ0FBQztLQUNsQyxDQUFDO1NBQ0QsUUFBUSxFQUFFO1NBQ1YsUUFBUSxFQUFFO0lBQ2IsTUFBTSxFQUFFLE9BQUM7U0FDTixLQUFLLENBQ0osT0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNQ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QUksR0FBRyxDQUFDO0lBQ3JGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtab2RJc3N1ZSwgWm9kU2NoZW1hLCB6fSBmcm9tICd6b2QnO1xuXG5pbXBvcnQge0VSUk9SU30gZnJvbSAnLi9lcnJvcnMnO1xuXG5pbXBvcnQge0FHR1JFR0FUSU9OX01FVEhPRFN9IGZyb20gJy4uL3R5cGVzL2FnZ3JlZ2F0aW9uJztcbmltcG9ydCB7QUdHUkVHQVRJT05fVFlQRVN9IGZyb20gJy4uL3R5cGVzL3BhcmFtZXRlcnMnO1xuXG5jb25zdCB7TWFuaWZlc3RWYWxpZGF0aW9uRXJyb3IsIElucHV0VmFsaWRhdGlvbkVycm9yfSA9IEVSUk9SUztcblxuLyoqXG4gKiBWYWxpZGF0aW9uIHNjaGVtYSBmb3IgbWFuaWZlc3RzLlxuICovXG5leHBvcnQgY29uc3QgbWFuaWZlc3RTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIG5hbWU6IHouc3RyaW5nKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCkubnVsbGFibGUoKSxcbiAgdGFnczogelxuICAgIC5vYmplY3Qoe1xuICAgICAga2luZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLm51bGxhYmxlKCksXG4gICAgICBjb21wbGV4aXR5OiB6LnN0cmluZygpLm9wdGlvbmFsKCkubnVsbGFibGUoKSxcbiAgICAgIGNhdGVnb3J5OiB6LnN0cmluZygpLm9wdGlvbmFsKCkubnVsbGFibGUoKSxcbiAgICB9KVxuICAgIC5vcHRpb25hbCgpXG4gICAgLm51bGxhYmxlKCksXG4gIGFnZ3JlZ2F0aW9uOiB6XG4gICAgLm9iamVjdCh7XG4gICAgICBtZXRyaWNzOiB6LmFycmF5KHouc3RyaW5nKCkpLFxuICAgICAgdHlwZTogei5lbnVtKEFHR1JFR0FUSU9OX01FVEhPRFMpLFxuICAgIH0pXG4gICAgLm9wdGlvbmFsKClcbiAgICAubnVsbGFibGUoKSxcbiAgcGFyYW1zOiB6XG4gICAgLmFycmF5KFxuICAgICAgei5vYmplY3Qoe1xuICAgICAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgICAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKSxcbiAgICAgICAgYWdncmVnYXRpb246IHouZW51bShBR0dSRUdBVElPTl9UWVBFUyksXG4gICAgICAgIHVuaXQ6IHouc3RyaW5nKCksXG4gICAgICB9KVxuICAgIClcbiAgICAub3B0aW9uYWwoKVxuICAgIC5udWxsYWJsZSgpLFxuICBpbml0aWFsaXplOiB6Lm9iamVjdCh7XG4gICAgcGx1Z2luczogei5yZWNvcmQoXG4gICAgICB6LnN0cmluZygpLFxuICAgICAgei5vYmplY3Qoe1xuICAgICAgICBwYXRoOiB6LnN0cmluZygpLFxuICAgICAgICBtZXRob2Q6IHouc3RyaW5nKCksXG4gICAgICAgICdnbG9iYWwtY29uZmlnJzogei5yZWNvcmQoei5zdHJpbmcoKSwgei5hbnkoKSkub3B0aW9uYWwoKSxcbiAgICAgIH0pXG4gICAgKSxcbiAgICBvdXRwdXRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIH0pLFxuICB0cmVlOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LmFueSgpKSxcbiAgJ2lmLXZlcnNpb24nOiB6LnN0cmluZygpLm9wdGlvbmFsKCkubnVsbGFibGUoKSxcbn0pO1xuXG4vKipcbiAqIFZhbGlkYXRlcyBnaXZlbiBgbWFuaWZlc3RgIG9iamVjdCB0byBtYXRjaCBwYXR0ZXJuLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVNYW5pZmVzdCA9IChtYW5pZmVzdDogYW55KSA9PlxuICB2YWxpZGF0ZShtYW5pZmVzdFNjaGVtYSwgbWFuaWZlc3QsIE1hbmlmZXN0VmFsaWRhdGlvbkVycm9yKTtcblxuLyoqXG4gKiBWYWxpZGF0ZXMgZ2l2ZW4gYG9iamVjdGAgd2l0aCBnaXZlbiBgc2NoZW1hYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlID0gPFQ+KFxuICBzY2hlbWE6IFpvZFNjaGVtYTxUPixcbiAgb2JqZWN0OiBhbnksXG4gIGVycm9yQ29uc3RydWN0b3I6IEVycm9yQ29uc3RydWN0b3IgPSBJbnB1dFZhbGlkYXRpb25FcnJvclxuKSA9PiB7XG4gIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBzY2hlbWEuc2FmZVBhcnNlKG9iamVjdCk7XG5cbiAgaWYgKCF2YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JDb25zdHJ1Y3RvcihcbiAgICAgIHByZXR0aWZ5RXJyb3JNZXNzYWdlKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZSlcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHQuZGF0YTtcbn07XG5cbi8qKlxuICogQmVhdXRpZnkgZXJyb3IgbWVzc2FnZSBmcm9tIHpvZCBpc3N1ZS5cbiAqL1xuY29uc3QgcHJldHRpZnlFcnJvck1lc3NhZ2UgPSAoaXNzdWVzOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgaXNzdWVzQXJyYXkgPSBKU09OLnBhcnNlKGlzc3Vlcyk7XG5cbiAgcmV0dXJuIGlzc3Vlc0FycmF5Lm1hcCgoaXNzdWU6IFpvZElzc3VlKSA9PiB7XG4gICAgY29uc3Qge2NvZGUsIHBhdGgsIG1lc3NhZ2V9ID0gaXNzdWU7XG4gICAgY29uc3QgZmxhdHRlblBhdGggPSBwYXRoLm1hcChwYXJ0ID0+XG4gICAgICB0eXBlb2YgcGFydCA9PT0gJ251bWJlcicgPyBgWyR7cGFydH1dYCA6IHBhcnRcbiAgICApO1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gZmxhdHRlblBhdGguam9pbignLicpO1xuXG4gICAgaWYgKGNvZGUgPT09ICdjdXN0b20nKSB7XG4gICAgICByZXR1cm4gYCR7bWVzc2FnZS50b0xvd2VyQ2FzZSgpfS4gRXJyb3IgY29kZTogJHtjb2RlfS5gO1xuICAgIH1cblxuICAgIHJldHVybiBgXCIke2Z1bGxQYXRofVwiIHBhcmFtZXRlciBpcyAke21lc3NhZ2UudG9Mb3dlckNhc2UoKX0uIEVycm9yIGNvZGU6ICR7Y29kZX0uYDtcbiAgfSk7XG59O1xuIl19
@@ -0,0 +1,74 @@
1
+ name: My Manifest File
2
+ description: My First Manifest File 💚
3
+ # aggregation:
4
+ # metrics:
5
+ # - 'carbon'
6
+ # type: 'both'
7
+ initialize:
8
+ outputs: ['yaml', 'csv']
9
+ plugins:
10
+ group-by:
11
+ path: 'builtin'
12
+ method: GroupBy
13
+ operational-carbon:
14
+ path: '@grnsft/if-plugins'
15
+ method: Multiply
16
+ global-config:
17
+ input-parameters: ['cpu/energy', 'grid/carbon-intensity']
18
+ output-parameter: 'carbon'
19
+ watttime:
20
+ path: '@grnsft/if-unofficial-plugins'
21
+ method: WattTimeGridEmissions
22
+ teads-curve:
23
+ path: '@grnsft/if-unofficial-plugins'
24
+ method: TeadsCurve
25
+ global-config:
26
+ interpolation: spline
27
+ cloud-metadata:
28
+ method: CloudMetadata
29
+ path: "@grnsft/if-plugins"
30
+ mock-observations:
31
+ path: '@grnsft/if-plugins'
32
+ method: MockObservations
33
+ global-config:
34
+ timestamp-from: '2024-03-05T00:00:00.000Z'
35
+ timestamp-to: '2024-03-05T00:01:00.000Z'
36
+ duration: 10
37
+ components:
38
+ - name: server-1
39
+ cloud/instance-type: Standard_E64_v3
40
+ cloud/region: westus3
41
+ - name: server-2
42
+ cloud/instance-type: Standard_E64_v3
43
+ cloud/region: westus3
44
+ generators:
45
+ common:
46
+ cloud/vendor: azure
47
+ randint:
48
+ cpu/utilization:
49
+ min: 1
50
+ max: 99
51
+ 'time-sync':
52
+ method: TimeSync
53
+ path: "builtin"
54
+ global-config:
55
+ start-time: '2024-03-05T00:00:00.000Z'
56
+ end-time: '2024-03-05T00:01:00.000Z'
57
+ interval: 5
58
+ allow-padding: true
59
+ tree:
60
+ pipeline:
61
+ - mock-observations
62
+ - group-by
63
+ - time-sync
64
+ - cloud-metadata
65
+ - watttime
66
+ - teads-curve
67
+ - operational-carbon
68
+ defaults:
69
+ config:
70
+ group-by:
71
+ group:
72
+ - cloud/region
73
+ - name
74
+ inputs: null
@@ -31,7 +31,7 @@ initialize:
31
31
  path: "builtin"
32
32
  method: GroupBy
33
33
  cloud-metadata:
34
- method: CloudInstanceMetadata
34
+ method: CloudMetadata
35
35
  path: "@grnsft/if-plugins"
36
36
  operational-carbon:
37
37
  path: "@grnsft/if-plugins"
@@ -42,11 +42,6 @@ initialize:
42
42
  watttime:
43
43
  path: "@grnsft/if-unofficial-plugins"
44
44
  method: WattTimeGridEmissions
45
- global-config:
46
- # username: ENV_WATT_TIME_USERNAME
47
- # password: ENV_WATT_TIME_PASSWORD
48
- username: manushak
49
- password: "@watt-time17"
50
45
  tree:
51
46
  children:
52
47
  application:
@@ -59,7 +54,7 @@ tree:
59
54
  - operational-carbon
60
55
  defaults:
61
56
  grid/carbon-intensity: 250
62
- geolocation: 37.7749,-122.4194
57
+ geolocation: 48.8567,2.3522
63
58
  # config:
64
59
  # group-by:
65
60
  # group:
@@ -70,6 +65,6 @@ tree:
70
65
  duration: 60
71
66
  cloud/instance-type: Standard_A1_v2
72
67
  cloud/vendor: azure
73
- cloud/region: uk-west
74
- geolocation: 37.7749,-122.4194
68
+ cloud/region: francesouth
69
+ geolocation: 48.8567,2.3522
75
70
  cpu/utilization: 15
@@ -0,0 +1,20 @@
1
+ name: boavizta cloud demo
2
+ description: calls boavizta api
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ "boavizta-cloud":
7
+ method: BoaviztaCloudOutput
8
+ path: "@grnsft/if-unofficial-plugins"
9
+ tree:
10
+ children:
11
+ child:
12
+ pipeline:
13
+ - boavizta-cloud
14
+ defaults:
15
+ instance-type: r6g.medium
16
+ provider: aws
17
+ inputs:
18
+ - timestamp: "2021-01-01T00:00:00Z"
19
+ duration: 15 # Secs
20
+ cpu/utilization: 34
@@ -3,14 +3,14 @@ description: example impl invoking Cloud Instance Metadata plugin
3
3
  tags:
4
4
  initialize:
5
5
  plugins:
6
- cloud-instance-metadata:
7
- method: CloudInstanceMetadata
6
+ cloud-metadata:
7
+ method: CloudMetadata
8
8
  path: "@grnsft/if-plugins"
9
9
  tree:
10
10
  children:
11
11
  child:
12
12
  pipeline:
13
- - cloud-instance-metadata
13
+ - cloud-metadata
14
14
  config:
15
15
  inputs:
16
16
  - timestamp: 2023-07-06T00:00 # [KEYWORD] [NO-SUBFIELDS] time when measurement occurred
@@ -0,0 +1,38 @@
1
+ name: divide-demo
2
+ description:
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ cloud-metadata:
7
+ method: CloudMetadata
8
+ path: "@grnsft/if-plugins"
9
+ divide:
10
+ method: Divide
11
+ path: "@grnsft/if-plugins"
12
+ global-config:
13
+ numerator: vcpus-allocated
14
+ denominator: 2
15
+ output: cpu/number-cores
16
+ boavizta-cpu:
17
+ method: BoaviztaCpuOutput
18
+ path: "@grnsft/if-unofficial-plugins"
19
+ global-config:
20
+ allocation: LINEAR
21
+ verbose: true
22
+ tree:
23
+ children:
24
+ child:
25
+ pipeline:
26
+ - cloud-metadata
27
+ - divide
28
+ - boavizta-cpu
29
+ config:
30
+ divide:
31
+ defaults:
32
+ cloud/vendor: aws
33
+ cloud/instance-type: m5n.large
34
+ cpu/name: Intel® Core™ i7-1185G7
35
+ inputs:
36
+ - timestamp: 2023-08-06T00:00
37
+ duration: 3600
38
+ cpu/utilization: 80
@@ -42,7 +42,7 @@ tree:
42
42
  cpu/thermal-design-power: 100
43
43
  inputs:
44
44
  - timestamp: "2023-12-12T00:00:00.000Z"
45
- instance-type: A1
45
+ cloud/instance-type: A1
46
46
  region: uk-west
47
47
  duration: 1
48
48
  cpu/utilization: 50
@@ -51,20 +51,20 @@ tree:
51
51
  - timestamp: "2023-12-12T00:00:01.000Z"
52
52
  duration: 5
53
53
  cpu/utilization: 20
54
- instance-type: A1
54
+ cloud/instance-type: A1
55
55
  region: uk-west
56
56
  network/energy: 10
57
57
  energy: 5
58
58
  - timestamp: "2023-12-12T00:00:06.000Z"
59
59
  duration: 7
60
60
  cpu/utilization: 15
61
- instance-type: A1
61
+ cloud/instance-type: A1
62
62
  region: uk-west
63
63
  network/energy: 10
64
64
  energy: 5
65
65
  - timestamp: "2023-12-12T00:00:13.000Z"
66
66
  duration: 30
67
- instance-type: A1
67
+ cloud/instance-type: A1
68
68
  region: uk-west
69
69
  cpu/utilization: 15
70
70
  network/energy: 10
@@ -14,35 +14,35 @@ tree:
14
14
  group-by:
15
15
  group:
16
16
  - region
17
- - instance-type
17
+ - cloud/instance-type
18
18
  inputs:
19
19
  - timestamp: 2023-07-06T00:00
20
20
  duration: 300
21
- instance-type: A1
21
+ cloud/instance-type: A1
22
22
  region: uk-west
23
- cpu-util: 99
23
+ cpu/utilization: 99
24
24
  - timestamp: 2023-07-06T05:00
25
25
  duration: 300
26
- instance-type: A1
26
+ cloud/instance-type: A1
27
27
  region: uk-west
28
- cpu-util: 23
28
+ cpu/utilization: 23
29
29
  - timestamp: 2023-07-06T10:00
30
30
  duration: 300
31
- instance-type: A1
31
+ cloud/instance-type: A1
32
32
  region: uk-west
33
- cpu-util: 12
33
+ cpu/utilization: 12
34
34
  - timestamp: 2023-07-06T00:00 # note this time restarts at the start timstamp
35
35
  duration: 300
36
- instance-type: B1
36
+ cloud/instance-type: B1
37
37
  region: uk-west
38
- cpu-util: 11
38
+ cpu/utilization: 11
39
39
  - timestamp: 2023-07-06T05:00
40
40
  duration: 300
41
- instance-type: B1
41
+ cloud/instance-type: B1
42
42
  region: uk-west
43
- cpu-util: 67
43
+ cpu/utilization: 67
44
44
  - timestamp: 2023-07-06T10:00
45
45
  duration: 300
46
- instance-type: B1
46
+ cloud/instance-type: B1
47
47
  region: uk-west
48
- cpu-util: 1
48
+ cpu/utilization: 1
@@ -12,8 +12,8 @@ initialize:
12
12
  timestamp-to: 2023-07-06T00:10
13
13
  duration: 60
14
14
  components:
15
- - instance-type: A1
16
- - instance-type: B1
15
+ - cloud/instance-type: A1
16
+ - cloud/instance-type: B1
17
17
  generators:
18
18
  common:
19
19
  region: uk-west
@@ -59,7 +59,7 @@ tree:
59
59
  - time-sync
60
60
  - sci
61
61
  inputs:
62
- - timestamp: 2023-12-12T00:00
62
+ - timestamp: "2023-12-12T00:00:00.000Z"
63
63
  duration: 10
64
64
  cpu/utilization: 50
65
65
  network/energy: 1
@@ -82,7 +82,7 @@ tree:
82
82
  - time-sync
83
83
  - sci
84
84
  inputs:
85
- - timestamp: 2023-12-12T00:00
85
+ - timestamp: "2023-12-12T00:00:00.000Z"
86
86
  duration: 10
87
87
  cpu/utilization: 30
88
88
  network/energy: 1
@@ -65,7 +65,7 @@ tree:
65
65
  - sci
66
66
  inputs:
67
67
  - timestamp: "2023-12-12T00:00:00.000Z"
68
- instance-type: A1
68
+ cloud/instance-type: A1
69
69
  region: uk-west
70
70
  duration: 1
71
71
  cpu/utilization: 50
@@ -73,18 +73,18 @@ tree:
73
73
  - timestamp: "2023-12-12T00:00:01.000Z"
74
74
  duration: 5
75
75
  cpu/utilization: 20
76
- instance-type: A1
76
+ cloud/instance-type: A1
77
77
  region: uk-west
78
78
  network/energy: 0.000001
79
79
  - timestamp: "2023-12-12T00:00:06.000Z"
80
80
  duration: 7
81
81
  cpu/utilization: 15
82
- instance-type: A1
82
+ cloud/instance-type: A1
83
83
  region: uk-west
84
84
  network/energy: 0.000001
85
85
  - timestamp: "2023-12-12T00:00:13.000Z"
86
86
  duration: 30
87
- instance-type: A1
87
+ cloud/instance-type: A1
88
88
  region: uk-west
89
89
  cpu/utilization: 15
90
90
  network/energy: 0.000001
@@ -106,7 +106,7 @@ tree:
106
106
  - sci
107
107
  inputs:
108
108
  - timestamp: "2023-12-12T00:00:00.000Z"
109
- instance-type: A1
109
+ cloud/instance-type: A1
110
110
  region: uk-west
111
111
  duration: 1
112
112
  cpu/utilization: 50
@@ -114,18 +114,18 @@ tree:
114
114
  - timestamp: "2023-12-12T00:00:01.000Z"
115
115
  duration: 5
116
116
  cpu/utilization: 20
117
- instance-type: A1
117
+ cloud/instance-type: A1
118
118
  region: uk-west
119
119
  network/energy: 0.000001
120
120
  - timestamp: "2023-12-12T00:00:06.000Z"
121
121
  duration: 7
122
122
  cpu/utilization: 15
123
- instance-type: A1
123
+ cloud/instance-type: A1
124
124
  region: uk-west
125
125
  network/energy: 0.000001
126
126
  - timestamp: "2023-12-12T00:00:13.000Z"
127
127
  duration: 30
128
- instance-type: A1
128
+ cloud/instance-type: A1
129
129
  region: uk-west
130
130
  cpu/utilization: 15
131
131
  network/energy: 0.000001
@@ -149,7 +149,7 @@ tree:
149
149
  - sci
150
150
  inputs:
151
151
  - timestamp: "2023-12-12T00:00:00.000Z"
152
- instance-type: A1
152
+ cloud/instance-type: A1
153
153
  region: uk-west
154
154
  duration: 1
155
155
  cpu/utilization: 50
@@ -157,18 +157,18 @@ tree:
157
157
  - timestamp: "2023-12-12T00:00:01.000Z"
158
158
  duration: 5
159
159
  cpu/utilization: 20
160
- instance-type: A1
160
+ cloud/instance-type: A1
161
161
  region: uk-west
162
162
  network/energy: 0.000001
163
163
  - timestamp: "2023-12-12T00:00:06.000Z"
164
164
  duration: 7
165
165
  cpu/utilization: 15
166
- instance-type: A1
166
+ cloud/instance-type: A1
167
167
  region: uk-west
168
168
  network/energy: 0.000001
169
169
  - timestamp: "2023-12-12T00:00:13.000Z"
170
170
  duration: 30
171
- instance-type: A1
171
+ cloud/instance-type: A1
172
172
  region: uk-west
173
173
  cpu/utilization: 15
174
174
  network/energy: 0.000001
@@ -190,7 +190,7 @@ tree:
190
190
  - sci
191
191
  inputs:
192
192
  - timestamp: "2023-12-12T00:00:00.000Z"
193
- instance-type: A1
193
+ cloud/instance-type: A1
194
194
  region: uk-west
195
195
  duration: 1
196
196
  cpu/utilization: 50
@@ -198,18 +198,18 @@ tree:
198
198
  - timestamp: "2023-12-12T00:00:01.000Z"
199
199
  duration: 5
200
200
  cpu/utilization: 20
201
- instance-type: A1
201
+ cloud/instance-type: A1
202
202
  region: uk-west
203
203
  network/energy: 0.000001
204
204
  - timestamp: "2023-12-12T00:00:06.000Z"
205
205
  duration: 7
206
206
  cpu/utilization: 15
207
- instance-type: A1
207
+ cloud/instance-type: A1
208
208
  region: uk-west
209
209
  network/energy: 0.000001
210
210
  - timestamp: "2023-12-12T00:00:13.000Z"
211
211
  duration: 30
212
- instance-type: A1
212
+ cloud/instance-type: A1
213
213
  region: uk-west
214
214
  cpu/utilization: 15
215
215
  network/energy: 0.000001
@@ -60,7 +60,7 @@ tree:
60
60
  cpu/name: Intel® Core™ i7-1185G7
61
61
  inputs:
62
62
  - timestamp: "2023-12-12T00:00:00.000Z"
63
- instance-type: A1
63
+ cloud/instance-type: A1
64
64
  region: uk-west
65
65
  duration: 1
66
66
  cpu/utilization: 50
@@ -68,18 +68,18 @@ tree:
68
68
  - timestamp: "2023-12-12T00:00:01.000Z"
69
69
  duration: 5
70
70
  cpu/utilization: 20
71
- instance-type: A1
71
+ cloud/instance-type: A1
72
72
  region: uk-west
73
73
  network/energy: 0.000001
74
74
  - timestamp: "2023-12-12T00:00:06.000Z"
75
75
  duration: 7
76
76
  cpu/utilization: 15
77
- instance-type: A1
77
+ cloud/instance-type: A1
78
78
  region: uk-west
79
79
  network/energy: 0.000001
80
80
  - timestamp: "2023-12-12T00:00:13.000Z"
81
81
  duration: 30
82
- instance-type: A1
82
+ cloud/instance-type: A1
83
83
  region: uk-west
84
84
  cpu/utilization: 15
85
85
  network/energy: 0.000001
@@ -57,7 +57,7 @@ tree:
57
57
  group-by:
58
58
  group:
59
59
  - region
60
- - instance-type
60
+ - cloud/instance-type
61
61
  defaults:
62
62
  cpu/thermal-design-power: 100
63
63
  grid/carbon-intensity: 800
@@ -69,7 +69,7 @@ tree:
69
69
  functional-unit-time: "1 min"
70
70
  inputs:
71
71
  - timestamp: "2023-12-12T00:00:00.000Z"
72
- instance-type: A1
72
+ cloud/instance-type: A1
73
73
  region: uk-west
74
74
  duration: 1
75
75
  cpu/utilization: 10
@@ -78,20 +78,20 @@ tree:
78
78
  - timestamp: "2023-12-12T00:00:01.000Z"
79
79
  duration: 5
80
80
  cpu/utilization: 20
81
- instance-type: A1
81
+ cloud/instance-type: A1
82
82
  region: uk-west
83
83
  network/energy: 10
84
84
  energy: 5
85
85
  - timestamp: "2023-12-12T00:00:06.000Z"
86
86
  duration: 7
87
87
  cpu/utilization: 15
88
- instance-type: A1
88
+ cloud/instance-type: A1
89
89
  region: uk-west
90
90
  network/energy: 10
91
91
  energy: 5
92
92
  - timestamp: "2023-12-12T00:00:13.000Z"
93
93
  duration: 30
94
- instance-type: A1
94
+ cloud/instance-type: A1
95
95
  region: uk-west
96
96
  cpu/utilization: 15
97
97
  network/energy: 10
@@ -122,28 +122,28 @@ tree:
122
122
  - timestamp: "2023-12-12T00:00:00.000Z"
123
123
  duration: 1
124
124
  cpu/utilization: 30
125
- instance-type: A1
125
+ cloud/instance-type: A1
126
126
  region: uk-west
127
127
  network/energy: 10
128
128
  energy: 5
129
129
  - timestamp: "2023-12-12T00:00:01.000Z"
130
130
  duration: 5
131
131
  cpu/utilization: 28
132
- instance-type: A1
132
+ cloud/instance-type: A1
133
133
  region: uk-west
134
134
  network/energy: 10
135
135
  energy: 5
136
136
  - timestamp: "2023-12-12T00:00:06.000Z"
137
137
  duration: 7
138
138
  cpu/utilization: 40
139
- instance-type: A1
139
+ cloud/instance-type: A1
140
140
  region: uk-west
141
141
  network/energy: 10
142
142
  energy: 5
143
143
  - timestamp: "2023-12-12T00:00:13.000Z"
144
144
  duration: 30
145
145
  cpu/utilization: 33
146
- instance-type: A1
146
+ cloud/instance-type: A1
147
147
  region: uk-west
148
148
  network/energy: 10
149
149
  energy: 5