@grnsft/if 0.4.0 → 0.5.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +4 -5
- package/README.md +14 -33
- package/Refactor-migration-guide.md +5 -6
- package/build/builtins/coefficient/index.d.ts +1 -2
- package/build/builtins/coefficient/index.js +18 -4
- package/build/builtins/copy-param/index.d.ts +2 -0
- package/build/builtins/copy-param/index.js +68 -0
- package/build/builtins/csv-lookup/index.d.ts +1 -1
- package/build/builtins/csv-lookup/index.js +44 -37
- package/build/builtins/divide/index.d.ts +1 -1
- package/build/builtins/divide/index.js +22 -11
- package/build/builtins/exponent/index.d.ts +1 -2
- package/build/builtins/exponent/index.js +9 -23
- package/build/builtins/export-csv-raw.d.ts +4 -2
- package/build/builtins/export-csv-raw.js +7 -7
- package/build/builtins/export-csv.js +8 -11
- package/build/builtins/export-log.js +1 -1
- package/build/builtins/export-yaml.js +6 -6
- package/build/builtins/group-by.d.ts +1 -1
- package/build/builtins/group-by.js +5 -5
- package/build/builtins/index.d.ts +1 -0
- package/build/builtins/index.js +4 -2
- package/build/builtins/interpolation/index.d.ts +1 -1
- package/build/builtins/interpolation/index.js +10 -8
- package/build/builtins/mock-observations/helpers/common-generator.d.ts +2 -2
- package/build/builtins/mock-observations/helpers/common-generator.js +10 -13
- package/build/builtins/mock-observations/helpers/rand-int-generator.d.ts +2 -2
- package/build/builtins/mock-observations/helpers/rand-int-generator.js +14 -24
- package/build/builtins/mock-observations/index.d.ts +1 -2
- package/build/builtins/mock-observations/index.js +2 -4
- package/build/builtins/multiply/index.d.ts +1 -2
- package/build/builtins/multiply/index.js +10 -16
- package/build/builtins/regex/index.d.ts +1 -2
- package/build/builtins/regex/index.js +8 -12
- package/build/builtins/sci/index.d.ts +1 -2
- package/build/builtins/sci/index.js +23 -22
- package/build/builtins/sci-embodied/index.d.ts +1 -1
- package/build/builtins/sci-embodied/index.js +16 -17
- package/build/builtins/shell/index.d.ts +1 -2
- package/build/builtins/shell/index.js +4 -4
- package/build/builtins/subtract/index.d.ts +1 -2
- package/build/builtins/subtract/index.js +7 -23
- package/build/builtins/sum/index.d.ts +1 -2
- package/build/builtins/sum/index.js +14 -11
- package/build/builtins/time-sync.d.ts +1 -2
- package/build/builtins/time-sync.js +62 -67
- package/build/check.d.ts +2 -0
- package/build/check.js +85 -0
- package/build/config/config.d.ts +13 -1
- package/build/config/config.js +61 -1
- package/build/config/params.js +1 -6
- package/build/config/strings.d.ts +41 -5
- package/build/config/strings.js +46 -9
- package/build/diff.js +2 -2
- package/build/env.d.ts +2 -0
- package/build/env.js +38 -0
- package/build/lib/aggregate.js +1 -1
- package/build/lib/compute.js +1 -1
- package/build/lib/exhaust.js +4 -4
- package/build/lib/initialize.js +20 -24
- package/build/lib/load.js +4 -4
- package/build/types/compute.d.ts +1 -1
- package/build/types/compute.js +1 -1
- package/build/types/if-env.d.ts +8 -0
- package/build/types/if-env.js +3 -0
- package/build/types/interface.d.ts +1 -19
- package/build/types/interface.js +1 -1
- package/build/types/npm.d.ts +9 -0
- package/build/types/npm.js +3 -0
- package/build/types/process-args.d.ts +9 -0
- package/build/types/process-args.js +1 -1
- package/build/util/aggregation-helper.d.ts +1 -1
- package/build/util/aggregation-helper.js +5 -5
- package/build/util/args.d.ts +23 -1
- package/build/util/args.js +91 -14
- package/build/util/fs.d.ts +20 -0
- package/build/util/fs.js +94 -0
- package/build/util/helpers.d.ts +25 -5
- package/build/util/helpers.js +110 -15
- package/build/util/npm.d.ts +28 -0
- package/build/util/npm.js +152 -0
- package/build/util/plugin-storage.js +4 -4
- package/build/util/validations.js +4 -4
- package/jest.config.js +1 -1
- package/manifests/bugs/aggregation-error-wrong-metric.yml +73 -23
- package/manifests/bugs/azure-importer-ignoring-defaults.yml +6 -3
- package/manifests/bugs/azure-importer-incorrect-calculation.yml +6 -3
- package/manifests/bugs/initialize-error-no-config.yml +4 -5
- package/manifests/bugs/initialize-error-no-path.yml +9 -5
- package/manifests/bugs/input-error-missing-duration.yml +10 -6
- package/manifests/bugs/pipeline-error-naming-mismatch.yml +8 -4
- package/manifests/bugs/pipeline-error-uninitialized-plugin.yml +9 -5
- package/manifests/bugs/pipeline-ordering-error.yml +43 -34
- package/manifests/examples/copy.yaml +20 -0
- package/manifests/examples/generics.yml +48 -13
- package/manifests/examples/instance-metadata.yml +4 -4
- package/manifests/examples/mock-cpu-util-to-carbon.yml +8 -2
- package/manifests/examples/nesting.yml +82 -35
- package/manifests/examples/pipeline-teads-sci.yml +54 -18
- package/manifests/examples/pipeline-with-aggregate.yml +66 -24
- package/manifests/examples/pipeline-with-mocks.yml +65 -22
- package/manifests/examples/region-metadata.yml +26 -0
- package/manifests/examples/tdp-finder.yml +23 -0
- package/manifests/examples/zeros.yaml +130 -0
- package/manifests/features/{aggregate-failure-inalid-metrics.yml → aggregate-failure-invalid-metrics.yml} +9 -3
- package/manifests/features/aggregate-failure-missing-metric-in-inputs.yml +9 -3
- package/manifests/features/aggregate-horizontal.yml +8 -2
- package/manifests/features/aggregate-vertical.yml +8 -2
- package/manifests/features/aggregate.yml +8 -2
- package/manifests/integrations/{cloud-metadata-divide-boavizta.yml → cloud-metadata-divide.yml} +8 -9
- package/manifests/integrations/instance-metadata/failure-invalid-instance-type.yaml +33 -0
- package/manifests/integrations/instance-metadata/failure-invalid-provider.yaml +33 -0
- package/manifests/integrations/instance-metadata/failure-missing-queried-input.yml +33 -0
- package/manifests/integrations/instance-metadata/success.yml +33 -0
- package/manifests/integrations/mock-obs-group-by-cloud-meta.yml +8 -2
- package/manifests/integrations/mock-obs-time-sync.yml +50 -5
- package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/failure-invalid-instance-type.yaml +9 -3
- package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/failure-invalid-vendor.yaml +8 -2
- package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/failure-missing-cloud-vendor.yml +9 -3
- package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/success.yml +8 -2
- package/manifests/plugins/csv-lookup/{success.yml → region-metadata/success.yml} +1 -1
- package/manifests/plugins/csv-lookup/tdp-finder/failure-missing-input-param.yml +23 -0
- package/manifests/plugins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yml +24 -0
- package/manifests/plugins/csv-lookup/tdp-finder/success.yml +24 -0
- package/manifests/plugins/divide/failure-denominator-equal-zero.yml +8 -9
- package/manifests/plugins/divide/failure-invalid-config-denominator.yml +8 -9
- package/manifests/plugins/divide/failure-missing-numerator.yml +8 -9
- package/manifests/plugins/divide/success.yml +9 -10
- package/manifests/plugins/exponent/success.yml +26 -0
- package/manifests/plugins/interpolation/success.yml +24 -0
- package/manifests/plugins/sci/failure-missing-input-param.yml +2 -6
- package/manifests/plugins/sci/success.yml +0 -3
- package/manifests/plugins/subtract/success.yml +25 -0
- package/manifests/plugins/sum/success.yml +1 -1
- package/package.json +10 -4
- package/src/__mocks__/mock-manifest.yaml +72 -0
- package/src/builtins/README.md +1 -1
- package/src/builtins/coefficient/README.md +19 -1
- package/src/builtins/copy-param/README.md +104 -0
- package/src/builtins/csv-lookup/README.md +39 -1
- package/src/builtins/divide/README.md +29 -3
- package/src/builtins/exponent/README.md +21 -1
- package/src/builtins/interpolation/README.md +29 -1
- package/src/builtins/mock-observations/README.md +1 -1
- package/src/builtins/multiply/README.md +16 -1
- package/src/builtins/regex/README.md +32 -2
- package/src/builtins/sci/README.md +24 -1
- package/src/builtins/sci-embodied/README.md +15 -1
- package/src/builtins/shell/README.md +12 -1
- package/src/builtins/subtract/README.md +12 -1
- package/src/builtins/sum/README.md +28 -1
- package/src/config/env-template.yml +24 -0
- package/build/builtins/coefficient/types.d.ts +0 -5
- package/build/builtins/coefficient/types.js +0 -3
- package/build/builtins/exponent/types.d.ts +0 -5
- package/build/builtins/exponent/types.js +0 -3
- package/build/builtins/interpolation/types.d.ts +0 -5
- package/build/builtins/interpolation/types.js +0 -10
- package/build/builtins/mock-observations/types.d.ts +0 -13
- package/build/builtins/mock-observations/types.js +0 -3
- package/build/builtins/multiply/types.d.ts +0 -4
- package/build/builtins/multiply/types.js +0 -3
- package/build/builtins/subtract/types.d.ts +0 -4
- package/build/builtins/subtract/types.js +0 -3
- package/build/builtins/sum/types.d.ts +0 -4
- package/build/builtins/sum/types.js +0 -3
- package/build/types/common.d.ts +0 -4
- package/build/types/common.js +0 -3
- package/build/types/group-by.d.ts +0 -3
- package/build/types/group-by.js +0 -3
- package/build/types/helpers.d.ts +0 -4
- package/build/types/helpers.js +0 -3
- package/build/util/errors.d.ts +0 -6
- package/build/util/errors.js +0 -33
- package/manifests/examples/basic.yml +0 -28
- package/manifests/plugins/tdp-finder/failure-missing-input-param.yml +0 -18
- package/manifests/plugins/tdp-finder/failure-unsupported-physical-processor.yml +0 -19
- package/manifests/plugins/tdp-finder/success.yml +0 -19
- /package/manifests/plugins/csv-lookup/{failure-missing-column.yml → region-metadata/failure-missing-column.yml} +0 -0
- /package/manifests/plugins/csv-lookup/{failure-missing-output.yml → region-metadata/failure-missing-output.yml} +0 -0
- /package/manifests/plugins/csv-lookup/{success-renaming.yml → region-metadata/success-renaming.yml} +0 -0
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validate = exports.validateManifest = exports.manifestSchema = exports.allDefined = exports.atLeastOneDefined = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
-
const
|
|
5
|
+
const utils_1 = require("@grnsft/if-core/utils");
|
|
6
|
+
const strings_1 = require("../config/strings");
|
|
6
7
|
const aggregation_1 = require("../types/aggregation");
|
|
7
8
|
const parameters_1 = require("../types/parameters");
|
|
8
|
-
const
|
|
9
|
-
const { ManifestValidationError, InputValidationError } = errors_1.ERRORS;
|
|
9
|
+
const { ManifestValidationError, InputValidationError } = utils_1.ERRORS;
|
|
10
10
|
const { VALIDATING_MANIFEST } = strings_1.STRINGS;
|
|
11
11
|
/**
|
|
12
12
|
* At least one property defined handler.
|
|
@@ -121,4 +121,4 @@ const flattenPath = (path) => {
|
|
|
121
121
|
const flattenPath = path.map(part => typeof part === 'number' ? `[${part}]` : part);
|
|
122
122
|
return flattenPath.join('.');
|
|
123
123
|
};
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC92YWxpZGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBeUQ7QUFFekQscUNBQWdDO0FBRWhDLHNEQUF5RDtBQUN6RCxvREFBc0Q7QUFFdEQsK0NBQTBDO0FBRTFDLE1BQU0sRUFBQyx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUMvRCxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsR0FBRyxpQkFBTyxDQUFDO0FBRXRDOztHQUVHO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixHQUE4QyxFQUM5QyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7QUFGdEMsUUFBQSxpQkFBaUIscUJBRXFCO0FBRW5EOztHQUVHO0FBQ0ksTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUE4QyxFQUFFLEVBQUUsQ0FDM0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7QUFEcEMsUUFBQSxVQUFVLGNBQzBCO0FBRWpEOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxJQUFJLEVBQUUsT0FBQztTQUNKLE1BQU0sQ0FBQztRQUNOLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQ3RDLFVBQVUs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QUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUM1QztRQUVELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxPQUFPLElBQUksUUFBUSxrQkFBa0IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLGlCQUFpQixpQkFBaUIsSUFBSSxHQUFHLENBQUM7SUFDekcsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBeUIsRUFBVSxFQUFFO0lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlDLENBQUM7SUFFRixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtab2RJc3N1ZSwgWm9kSXNzdWVDb2RlLCBab2RTY2hlbWEsIHp9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7RVJST1JTfSBmcm9tICcuL2Vycm9ycyc7XG5cbmltcG9ydCB7QUdHUkVHQVRJT05fTUVUSE9EU30gZnJvbSAnLi4vdHlwZXMvYWdncmVnYXRpb24nO1xuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnLi4vdHlwZXMvcGFyYW1ldGVycyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnL3N0cmluZ3MnO1xuXG5jb25zdCB7TWFuaWZlc3RWYWxpZGF0aW9uRXJyb3IsIElucHV0VmFsaWRhdGlvbkVycm9yfSA9IEVSUk9SUztcbmNvbnN0IHtWQUxJREFUSU5HX01BTklGRVNUfSA9IFNUUklOR1M7XG5cbi8qKlxuICogQXQgbGVhc3Qgb25lIHByb3BlcnR5IGRlZmluZWQgaGFuZGxlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGF0TGVhc3RPbmVEZWZpbmVkID0gKFxuICBvYmo6IFJlY29yZDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHVua25vd24+XG4pID0+IE9iamVjdC52YWx1ZXMob2JqKS5zb21lKHYgPT4gdiAhPT0gdW5kZWZpbmVkKTtcblxuLyoqXG4gKiBBbGwgcHJvcGVydGllcyBhcmUgZGVmaW5lZCBoYW5kbGVyLlxuICovXG5leHBvcnQgY29uc3QgYWxsRGVmaW5lZCA9IChvYmo6IFJlY29yZDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHVua25vd24+KSA9PlxuICBPYmplY3QudmFsdWVzKG9iaikuZXZlcnkodiA9PiB2ICE9PSB1bmRlZmluZWQpO1xuXG4vKipcbiAqIFZhbGlkYXRpb24gc2NoZW1hIGZvciBtYW5pZmVzdHMuXG4gKi9cbmV4cG9ydCBjb25zdCBtYW5pZmVzdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgbmFtZTogei5zdHJpbmcoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKS5udWxsYWJsZSgpLFxuICB0YWdzOiB6XG4gICAgLm9iamVjdCh7XG4gICAgICBraW5kOiB6LnN0cmluZygpLm9wdGlvbmFsKCkubnVsbGFibGUoKSxcbiAgICAgIGNvbXBsZXhpdHk6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5udWxsYWJsZSgpLFxuICAgICAgY2F0ZWdvcnk6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5udWxsYWJsZSgpLFxuICAgIH0pXG4gICAgLm9wdGlvbmFsKClcbiAgICAubnVsbGFibGUoKSxcbiAgYWdncmVnYXRpb246IHpcbiAgICAub2JqZWN0KHtcbiAgICAgIG1ldHJpY3M6IHouYXJyYXkoei5zdHJpbmcoKSksXG4gICAgICB0eXBlOiB6LmVudW0oQUdHUkVHQVRJT05fTUVUSE9EUyksXG4gICAgfSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5udWxsYWJsZSgpLFxuICBwYXJhbXM6IHpcbiAgICAuYXJyYXkoXG4gICAgICB6Lm9iamVjdCh7XG4gICAgICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLFxuICAgICAgICBhZ2dyZWdhdGlvbjogei5lbnVtKEFHR1JFR0FUSU9OX1RZUEVTKSxcbiAgICAgICAgdW5pdDogei5zdHJpbmcoKSxcbiAgICAgIH0pXG4gICAgKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLm51bGxhYmxlKCksXG4gIGluaXRpYWxpemU6IHoub2JqZWN0KHtcbiAgICBwbHVnaW5zOiB6LnJlY29yZChcbiAgICAgIHouc3RyaW5nKCksXG4gICAgICB6Lm9iamVjdCh7XG4gICAgICAgIHBhdGg6IHouc3RyaW5nKCksXG4gICAgICAgIG1ldGhvZDogei5zdHJpbmcoKSxcbiAgICAgICAgJ2dsb2JhbC1jb25maWcnOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LmFueSgpKS5vcHRpb25hbCgpLFxuICAgICAgfSlcbiAgICApLFxuICAgIG91dHB1dHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgfSksXG4gIGV4ZWN1dGlvbjogelxuICAgIC5vYmplY3Qoe1xuICAgICAgY29tbWFuZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgZW52aXJvbm1lbnQ6IHpcbiAgICAgICAgLm9iamVjdCh7XG4gICAgICAgICAgJ2lmLXZlcnNpb24nOiB6LnN0cmluZygpLFxuICAgICAgICAgIG9zOiB6LnN0cmluZygpLFxuICAgICAgICAgICdvcy12ZXJzaW9uJzogei5zdHJpbmcoKSxcbiAgICAgICAgICAnbm9kZS12ZXJzaW9uJzogei5zdHJpbmcoKSxcbiAgICAgICAgICAnZGF0ZS10aW1lJzogei5zdHJpbmcoKSxcbiAgICAgICAgICBkZXBlbmRlbmNpZXM6IHouYXJyYXkoei5zdHJpbmcoKSksXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb25hbCgpLFxuICAgICAgc3RhdHVzOiB6LnN0cmluZygpLFxuICAgICAgZXJyb3I6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICB9KVxuICAgIC5vcHRpb25hbCgpLFxuICB0cmVlOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LmFueSgpKSxcbn0pO1xuXG4vKipcbiAqIFZhbGlkYXRlcyBnaXZlbiBgbWFuaWZlc3RgIG9iamVjdCB0byBtYXRjaCBwYXR0ZXJuLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVNYW5pZmVzdCA9IChtYW5pZmVzdDogYW55KSA9PiB7XG4gIGNvbnNvbGUuZGVidWcoVkFMSURBVElOR19NQU5JRkVTVCk7XG5cbiAgcmV0dXJuIHZhbGlkYXRlKG1hbmlmZXN0U2NoZW1hLCBtYW5pZmVzdCwgdW5kZWZpbmVkLCBNYW5pZmVzdFZhbGlkYXRpb25FcnJvcik7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRlcyBnaXZlbiBgb2JqZWN0YCB3aXRoIGdpdmVuIGBzY2hlbWFgLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGUgPSA8VD4oXG4gIHNjaGVtYTogWm9kU2NoZW1hPFQ+LFxuICBvYmplY3Q6IGFueSxcbiAgaW5kZXg/OiBudW1iZXIsXG4gIGVycm9yQ29uc3RydWN0b3I6IEVycm9yQ29uc3RydWN0b3IgPSBJbnB1dFZhbGlkYXRpb25FcnJvclxuKSA9PiB7XG4gIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBzY2hlbWEuc2FmZVBhcnNlKG9iamVjdCk7XG5cbiAgaWYgKCF2YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JDb25zdHJ1Y3RvcihcbiAgICAgIHByZXR0aWZ5RXJyb3JNZXNzYWdlKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZSwgaW5kZXgpXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0LmRhdGE7XG59O1xuXG4vKipcbiAqIEVycm9yIG1lc3NhZ2UgZm9ybWF0dGVyIGZvciB6b2QgaXNzdWVzLlxuICovXG5jb25zdCBwcmV0dGlmeUVycm9yTWVzc2FnZSA9IChpc3N1ZXM6IHN0cmluZywgaW5kZXg/OiBudW1iZXIpID0+IHtcbiAgY29uc3QgaXNzdWVzQXJyYXkgPSBKU09OLnBhcnNlKGlzc3Vlcyk7XG5cbiAgcmV0dXJuIGlzc3Vlc0FycmF5Lm1hcCgoaXNzdWU6IFpvZElzc3VlKSA9PiB7XG4gICAgY29uc3QgY29kZSA9IGlzc3VlLmNvZGU7XG4gICAgbGV0IHtwYXRoLCBtZXNzYWdlfSA9IGlzc3VlO1xuXG4gICAgY29uc3QgaW5kZXhFcnJvck1lc3NhZ2UgPSBpbmRleCAhPT0gdW5kZWZpbmVkID8gYCBhdCBpbmRleCAke2luZGV4fWAgOiAnJztcblxuICAgIGlmIChpc3N1ZS5jb2RlID09PSBab2RJc3N1ZUNvZGUuaW52YWxpZF91bmlvbikge1xuICAgICAgbWVzc2FnZSA9IGlzc3VlLnVuaW9uRXJyb3JzWzBdLmlzc3Vlc1swXS5tZXNzYWdlO1xuICAgICAgcGF0aCA9IGlzc3VlLnVuaW9uRXJyb3JzWzBdLmlzc3Vlc1swXS5wYXRoO1xuICAgIH1cblxuICAgIGNvbnN0IGZ1bGxQYXRoID0gZmxhdHRlblBhdGgocGF0aCk7XG5cbiAgICBpZiAoIWZ1bGxQYXRoKSB7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYFwiJHtmdWxsUGF0aH1cIiBwYXJhbWV0ZXIgaXMgJHttZXNzYWdlLnRvTG93ZXJDYXNlKCl9JHtpbmRleEVycm9yTWVzc2FnZX0uIEVycm9yIGNvZGU6ICR7Y29kZX0uYDtcbiAgfSk7XG59O1xuXG4vKipcbiAqIEZsYXR0ZW5zIGFuIGFycmF5IHJlcHJlc2VudGluZyBhIG5lc3RlZCBwYXRoIGludG8gYSBzdHJpbmcuXG4gKi9cbmNvbnN0IGZsYXR0ZW5QYXRoID0gKHBhdGg6IChzdHJpbmcgfCBudW1iZXIpW10pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBmbGF0dGVuUGF0aCA9IHBhdGgubWFwKHBhcnQgPT5cbiAgICB0eXBlb2YgcGFydCA9PT0gJ251bWJlcicgPyBgWyR7cGFydH1dYCA6IHBhcnRcbiAgKTtcblxuICByZXR1cm4gZmxhdHRlblBhdGguam9pbignLicpO1xufTtcbiJdfQ==
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC92YWxpZGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBeUQ7QUFDekQsaURBQTZDO0FBRTdDLCtDQUEwQztBQUUxQyxzREFBeUQ7QUFDekQsb0RBQXNEO0FBRXRELE1BQU0sRUFBQyx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUMvRCxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsR0FBRyxpQkFBTyxDQUFDO0FBRXRDOztHQUVHO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixHQUE4QyxFQUM5QyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7QUFGdEMsUUFBQSxpQkFBaUIscUJBRXFCO0FBRW5EOztHQUVHO0FBQ0ksTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUE4QyxFQUFFLEVBQUUsQ0FDM0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7QUFEcEMsUUFBQSxVQUFVLGNBQzBCO0FBRWpEOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxJQUFJLEVBQUUsT0FBQztTQUNKLE1BQU0sQ0FBQztRQUNOLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQ3RDLFVBQVUs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QUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUM1QztRQUVELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxPQUFPLElBQUksUUFBUSxrQkFBa0IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLGlCQUFpQixpQkFBaUIsSUFBSSxHQUFHLENBQUM7SUFDekcsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBeUIsRUFBVSxFQUFFO0lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlDLENBQUM7SUFFRixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtab2RJc3N1ZSwgWm9kSXNzdWVDb2RlLCBab2RTY2hlbWEsIHp9IGZyb20gJ3pvZCc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcvc3RyaW5ncyc7XG5cbmltcG9ydCB7QUdHUkVHQVRJT05fTUVUSE9EU30gZnJvbSAnLi4vdHlwZXMvYWdncmVnYXRpb24nO1xuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnLi4vdHlwZXMvcGFyYW1ldGVycyc7XG5cbmNvbnN0IHtNYW5pZmVzdFZhbGlkYXRpb25FcnJvciwgSW5wdXRWYWxpZGF0aW9uRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge1ZBTElEQVRJTkdfTUFOSUZFU1R9ID0gU1RSSU5HUztcblxuLyoqXG4gKiBBdCBsZWFzdCBvbmUgcHJvcGVydHkgZGVmaW5lZCBoYW5kbGVyLlxuICovXG5leHBvcnQgY29uc3QgYXRMZWFzdE9uZURlZmluZWQgPSAoXG4gIG9iajogUmVjb3JkPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgdW5rbm93bj5cbikgPT4gT2JqZWN0LnZhbHVlcyhvYmopLnNvbWUodiA9PiB2ICE9PSB1bmRlZmluZWQpO1xuXG4vKipcbiAqIEFsbCBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIGhhbmRsZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBhbGxEZWZpbmVkID0gKG9iajogUmVjb3JkPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgdW5rbm93bj4pID0+XG4gIE9iamVjdC52YWx1ZXMob2JqKS5ldmVyeSh2ID0+IHYgIT09IHVuZGVmaW5lZCk7XG5cbi8qKlxuICogVmFsaWRhdGlvbiBzY2hlbWEgZm9yIG1hbmlmZXN0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IG1hbmlmZXN0U2NoZW1hID0gei5vYmplY3Qoe1xuICBuYW1lOiB6LnN0cmluZygpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLm51bGxhYmxlKCksXG4gIHRhZ3M6IHpcbiAgICAub2JqZWN0KHtcbiAgICAgIGtpbmQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5udWxsYWJsZSgpLFxuICAgICAgY29tcGxleGl0eTogei5zdHJpbmcoKS5vcHRpb25hbCgpLm51bGxhYmxlKCksXG4gICAgICBjYXRlZ29yeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLm51bGxhYmxlKCksXG4gICAgfSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5udWxsYWJsZSgpLFxuICBhZ2dyZWdhdGlvbjogelxuICAgIC5vYmplY3Qoe1xuICAgICAgbWV0cmljczogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICAgIHR5cGU6IHouZW51bShBR0dSRUdBVElPTl9NRVRIT0RTKSxcbiAgICB9KVxuICAgIC5vcHRpb25hbCgpXG4gICAgLm51bGxhYmxlKCksXG4gIHBhcmFtczogelxuICAgIC5hcnJheShcbiAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCksXG4gICAgICAgIGFnZ3JlZ2F0aW9uOiB6LmVudW0oQUdHUkVHQVRJT05fVFlQRVMpLFxuICAgICAgICB1bml0OiB6LnN0cmluZygpLFxuICAgICAgfSlcbiAgICApXG4gICAgLm9wdGlvbmFsKClcbiAgICAubnVsbGFibGUoKSxcbiAgaW5pdGlhbGl6ZTogei5vYmplY3Qoe1xuICAgIHBsdWdpbnM6IHoucmVjb3JkKFxuICAgICAgei5zdHJpbmcoKSxcbiAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgcGF0aDogei5zdHJpbmcoKSxcbiAgICAgICAgbWV0aG9kOiB6LnN0cmluZygpLFxuICAgICAgICAnZ2xvYmFsLWNvbmZpZyc6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLm9wdGlvbmFsKCksXG4gICAgICB9KVxuICAgICksXG4gICAgb3V0cHV0czogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICB9KSxcbiAgZXhlY3V0aW9uOiB6XG4gICAgLm9iamVjdCh7XG4gICAgICBjb21tYW5kOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICBlbnZpcm9ubWVudDogelxuICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICAnaWYtdmVyc2lvbic6IHouc3RyaW5nKCksXG4gICAgICAgICAgb3M6IHouc3RyaW5nKCksXG4gICAgICAgICAgJ29zLXZlcnNpb24nOiB6LnN0cmluZygpLFxuICAgICAgICAgICdub2RlLXZlcnNpb24nOiB6LnN0cmluZygpLFxuICAgICAgICAgICdkYXRlLXRpbWUnOiB6LnN0cmluZygpLFxuICAgICAgICAgIGRlcGVuZGVuY2llczogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbmFsKCksXG4gICAgICBzdGF0dXM6IHouc3RyaW5nKCksXG4gICAgICBlcnJvcjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIH0pXG4gICAgLm9wdGlvbmFsKCksXG4gIHRyZWU6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLFxufSk7XG5cbi8qKlxuICogVmFsaWRhdGVzIGdpdmVuIGBtYW5pZmVzdGAgb2JqZWN0IHRvIG1hdGNoIHBhdHRlcm4uXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU1hbmlmZXN0ID0gKG1hbmlmZXN0OiBhbnkpID0+IHtcbiAgY29uc29sZS5kZWJ1ZyhWQUxJREFUSU5HX01BTklGRVNUKTtcblxuICByZXR1cm4gdmFsaWRhdGUobWFuaWZlc3RTY2hlbWEsIG1hbmlmZXN0LCB1bmRlZmluZWQsIE1hbmlmZXN0VmFsaWRhdGlvbkVycm9yKTtcbn07XG5cbi8qKlxuICogVmFsaWRhdGVzIGdpdmVuIGBvYmplY3RgIHdpdGggZ2l2ZW4gYHNjaGVtYWAuXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZSA9IDxUPihcbiAgc2NoZW1hOiBab2RTY2hlbWE8VD4sXG4gIG9iamVjdDogYW55LFxuICBpbmRleD86IG51bWJlcixcbiAgZXJyb3JDb25zdHJ1Y3RvcjogRXJyb3JDb25zdHJ1Y3RvciA9IElucHV0VmFsaWRhdGlvbkVycm9yXG4pID0+IHtcbiAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IHNjaGVtYS5zYWZlUGFyc2Uob2JqZWN0KTtcblxuICBpZiAoIXZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgIHRocm93IG5ldyBlcnJvckNvbnN0cnVjdG9yKFxuICAgICAgcHJldHRpZnlFcnJvck1lc3NhZ2UodmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlLCBpbmRleClcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHQuZGF0YTtcbn07XG5cbi8qKlxuICogRXJyb3IgbWVzc2FnZSBmb3JtYXR0ZXIgZm9yIHpvZCBpc3N1ZXMuXG4gKi9cbmNvbnN0IHByZXR0aWZ5RXJyb3JNZXNzYWdlID0gKGlzc3Vlczogc3RyaW5nLCBpbmRleD86IG51bWJlcikgPT4ge1xuICBjb25zdCBpc3N1ZXNBcnJheSA9IEpTT04ucGFyc2UoaXNzdWVzKTtcblxuICByZXR1cm4gaXNzdWVzQXJyYXkubWFwKChpc3N1ZTogWm9kSXNzdWUpID0+IHtcbiAgICBjb25zdCBjb2RlID0gaXNzdWUuY29kZTtcbiAgICBsZXQge3BhdGgsIG1lc3NhZ2V9ID0gaXNzdWU7XG5cbiAgICBjb25zdCBpbmRleEVycm9yTWVzc2FnZSA9IGluZGV4ICE9PSB1bmRlZmluZWQgPyBgIGF0IGluZGV4ICR7aW5kZXh9YCA6ICcnO1xuXG4gICAgaWYgKGlzc3VlLmNvZGUgPT09IFpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uKSB7XG4gICAgICBtZXNzYWdlID0gaXNzdWUudW5pb25FcnJvcnNbMF0uaXNzdWVzWzBdLm1lc3NhZ2U7XG4gICAgICBwYXRoID0gaXNzdWUudW5pb25FcnJvcnNbMF0uaXNzdWVzWzBdLnBhdGg7XG4gICAgfVxuXG4gICAgY29uc3QgZnVsbFBhdGggPSBmbGF0dGVuUGF0aChwYXRoKTtcblxuICAgIGlmICghZnVsbFBhdGgpIHtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIHJldHVybiBgXCIke2Z1bGxQYXRofVwiIHBhcmFtZXRlciBpcyAke21lc3NhZ2UudG9Mb3dlckNhc2UoKX0ke2luZGV4RXJyb3JNZXNzYWdlfS4gRXJyb3IgY29kZTogJHtjb2RlfS5gO1xuICB9KTtcbn07XG5cbi8qKlxuICogRmxhdHRlbnMgYW4gYXJyYXkgcmVwcmVzZW50aW5nIGEgbmVzdGVkIHBhdGggaW50byBhIHN0cmluZy5cbiAqL1xuY29uc3QgZmxhdHRlblBhdGggPSAocGF0aDogKHN0cmluZyB8IG51bWJlcilbXSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGZsYXR0ZW5QYXRoID0gcGF0aC5tYXAocGFydCA9PlxuICAgIHR5cGVvZiBwYXJ0ID09PSAnbnVtYmVyJyA/IGBbJHtwYXJ0fV1gIDogcGFydFxuICApO1xuXG4gIHJldHVybiBmbGF0dGVuUGF0aC5qb2luKCcuJyk7XG59O1xuIl19
|
package/jest.config.js
CHANGED
|
@@ -12,8 +12,8 @@ module.exports = {
|
|
|
12
12
|
},
|
|
13
13
|
modulePathIgnorePatterns: [
|
|
14
14
|
'./build',
|
|
15
|
-
'./src/__tests__/unit/lib/manifest',
|
|
16
15
|
'./src/__tests__/integration/helpers',
|
|
17
16
|
'./src/__tests__/integration/test-data',
|
|
18
17
|
],
|
|
18
|
+
coveragePathIgnorePatterns: ['src/config', 'src/types'],
|
|
19
19
|
};
|
|
@@ -7,26 +7,62 @@ aggregation:
|
|
|
7
7
|
type: "both"
|
|
8
8
|
initialize:
|
|
9
9
|
plugins:
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
"interpolate":
|
|
11
|
+
method: Interpolation
|
|
12
|
+
path: 'builtin'
|
|
13
13
|
global-config:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
method: linear
|
|
15
|
+
x: [0, 10, 50, 100]
|
|
16
|
+
y: [0.12, 0.32, 0.75, 1.02]
|
|
17
|
+
input-parameter: 'cpu/utilization'
|
|
18
|
+
output-parameter: 'cpu-factor'
|
|
19
|
+
"cpu-factor-to-wattage":
|
|
20
|
+
method: Multiply
|
|
21
|
+
path: builtin
|
|
22
|
+
global-config:
|
|
23
|
+
input-parameters: ["cpu-factor", "cpu/thermal-design-power"]
|
|
24
|
+
output-parameter: "cpu-wattage"
|
|
25
|
+
"wattage-times-duration":
|
|
26
|
+
method: Multiply
|
|
27
|
+
path: builtin
|
|
28
|
+
global-config:
|
|
29
|
+
input-parameters: ["cpu-wattage", "duration"]
|
|
30
|
+
output-parameter: "cpu-wattage-times-duration"
|
|
31
|
+
"wattage-to-energy-kwh":
|
|
32
|
+
method: Divide
|
|
33
|
+
path: "builtin"
|
|
34
|
+
global-config:
|
|
35
|
+
numerator: cpu-wattage-times-duration
|
|
36
|
+
denominator: 3600000
|
|
37
|
+
output: cpu-energy-raw
|
|
38
|
+
"calculate-vcpu-ratio":
|
|
39
|
+
method: Divide
|
|
40
|
+
path: "builtin"
|
|
41
|
+
global-config:
|
|
42
|
+
numerator: vcpus-total
|
|
43
|
+
denominator: vcpus-allocated
|
|
44
|
+
output: vcpu-ratio
|
|
45
|
+
"correct-cpu-energy-for-vcpu-ratio":
|
|
46
|
+
method: Divide
|
|
47
|
+
path: "builtin"
|
|
48
|
+
global-config:
|
|
49
|
+
numerator: cpu-energy-raw
|
|
50
|
+
denominator: vcpu-ratio
|
|
51
|
+
output: cpu-energy-kwh
|
|
18
52
|
"sci-embodied":
|
|
19
53
|
path: "builtin"
|
|
20
54
|
method: SciEmbodied
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
55
|
+
"operational-carbon":
|
|
56
|
+
method: Multiply
|
|
57
|
+
path: builtin
|
|
58
|
+
global-config:
|
|
59
|
+
input-parameters: ["cpu-energy-kwh", "grid/carbon-intensity"]
|
|
60
|
+
output-parameter: "carbon"
|
|
24
61
|
"sci":
|
|
25
62
|
path: "builtin"
|
|
26
63
|
method: Sci
|
|
27
64
|
global-config:
|
|
28
65
|
functional-unit: "requests"
|
|
29
|
-
functional-unit-time: "1 minute"
|
|
30
66
|
"time-sync":
|
|
31
67
|
method: TimeSync
|
|
32
68
|
path: "builtin"
|
|
@@ -42,10 +78,14 @@ tree:
|
|
|
42
78
|
children:
|
|
43
79
|
child-1:
|
|
44
80
|
pipeline:
|
|
45
|
-
-
|
|
46
|
-
-
|
|
81
|
+
- interpolate
|
|
82
|
+
- cpu-factor-to-wattage
|
|
83
|
+
- wattage-times-duration
|
|
84
|
+
- wattage-to-energy-kwh
|
|
85
|
+
- calculate-vcpu-ratio
|
|
86
|
+
- correct-cpu-energy-for-vcpu-ratio
|
|
47
87
|
- sci-embodied
|
|
48
|
-
-
|
|
88
|
+
- operational-carbon
|
|
49
89
|
- time-sync
|
|
50
90
|
- sci
|
|
51
91
|
config:
|
|
@@ -59,36 +99,43 @@ tree:
|
|
|
59
99
|
device/emissions-embodied: 1533.120 # gCO2eq
|
|
60
100
|
time-reserved: 3600 # 1hr in seconds
|
|
61
101
|
device/expected-lifespan: 94608000 # 3 years in seconds
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
functional-unit-time: "1 min"
|
|
102
|
+
vcpus-allocated: 1
|
|
103
|
+
vcpus-total: 8
|
|
65
104
|
inputs:
|
|
66
105
|
- timestamp: "2023-12-12T00:00:00.000Z"
|
|
67
106
|
cloud/instance-type: A1
|
|
68
107
|
cloud/region: uk-west
|
|
69
108
|
duration: 1
|
|
70
109
|
cpu/utilization: 10
|
|
110
|
+
requests: 100
|
|
71
111
|
- timestamp: "2023-12-12T00:00:01.000Z"
|
|
72
112
|
duration: 5
|
|
73
113
|
cpu/utilization: 20
|
|
74
114
|
cloud/instance-type: A1
|
|
75
115
|
cloud/region: uk-west
|
|
116
|
+
requests: 100
|
|
76
117
|
- timestamp: "2023-12-12T00:00:06.000Z"
|
|
77
118
|
duration: 7
|
|
78
119
|
cpu/utilization: 15
|
|
79
120
|
cloud/instance-type: A1
|
|
80
121
|
cloud/region: uk-west
|
|
122
|
+
requests: 100
|
|
81
123
|
- timestamp: "2023-12-12T00:00:13.000Z"
|
|
82
124
|
duration: 30
|
|
83
125
|
cloud/instance-type: A1
|
|
84
126
|
cloud/region: uk-west
|
|
85
127
|
cpu/utilization: 15
|
|
128
|
+
requests: 100
|
|
86
129
|
child-2:
|
|
87
130
|
pipeline:
|
|
88
|
-
-
|
|
89
|
-
-
|
|
131
|
+
- interpolate
|
|
132
|
+
- cpu-factor-to-wattage
|
|
133
|
+
- wattage-times-duration
|
|
134
|
+
- wattage-to-energy-kwh
|
|
135
|
+
- calculate-vcpu-ratio
|
|
136
|
+
- correct-cpu-energy-for-vcpu-ratio
|
|
90
137
|
- sci-embodied
|
|
91
|
-
-
|
|
138
|
+
- operational-carbon
|
|
92
139
|
- time-sync
|
|
93
140
|
- sci
|
|
94
141
|
config:
|
|
@@ -102,27 +149,30 @@ tree:
|
|
|
102
149
|
device/emissions-embodied: 1533.120 # gCO2eq
|
|
103
150
|
time-reserved: 3600 # 1hr in seconds
|
|
104
151
|
device/expected-lifespan: 94608000 # 3 years in seconds
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
functional-unit-time: "1 min"
|
|
152
|
+
vcpus-allocated: 1
|
|
153
|
+
vcpus-total: 8
|
|
108
154
|
inputs:
|
|
109
155
|
- timestamp: "2023-12-12T00:00:00.000Z"
|
|
110
156
|
duration: 1
|
|
111
157
|
cpu/utilization: 30
|
|
112
158
|
cloud/instance-type: A1
|
|
113
159
|
cloud/region: uk-west
|
|
160
|
+
requests: 100
|
|
114
161
|
- timestamp: "2023-12-12T00:00:01.000Z"
|
|
115
162
|
duration: 5
|
|
116
163
|
cpu/utilization: 28
|
|
117
164
|
cloud/instance-type: A1
|
|
118
165
|
cloud/region: uk-west
|
|
166
|
+
requests: 100
|
|
119
167
|
- timestamp: "2023-12-12T00:00:06.000Z"
|
|
120
168
|
duration: 7
|
|
121
169
|
cpu/utilization: 40
|
|
122
170
|
cloud/instance-type: A1
|
|
123
171
|
cloud/region: uk-west
|
|
172
|
+
requests: 100
|
|
124
173
|
- timestamp: "2023-12-12T00:00:13.000Z"
|
|
125
174
|
duration: 30
|
|
126
175
|
cpu/utilization: 33
|
|
127
176
|
cloud/instance-type: A1
|
|
128
177
|
cloud/region: uk-west
|
|
178
|
+
requests: 100
|
|
@@ -28,9 +28,12 @@ initialize:
|
|
|
28
28
|
input-parameter: network/energy
|
|
29
29
|
coefficient: 1000
|
|
30
30
|
output-parameter: network/energy
|
|
31
|
-
"
|
|
32
|
-
method:
|
|
33
|
-
path:
|
|
31
|
+
"operational-carbon":
|
|
32
|
+
method: Multiply
|
|
33
|
+
path: builtin
|
|
34
|
+
global-config:
|
|
35
|
+
input-parameters: ["energy", "grid/carbon-intensity"]
|
|
36
|
+
output-parameter: "carbon-operational"
|
|
34
37
|
"group-by":
|
|
35
38
|
path: "builtin"
|
|
36
39
|
method: GroupBy
|
|
@@ -20,9 +20,12 @@ initialize:
|
|
|
20
20
|
input-parameter: network/energy
|
|
21
21
|
coefficient: 1000
|
|
22
22
|
output-parameter: network/energy
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
"operational-carbon":
|
|
24
|
+
method: Multiply
|
|
25
|
+
path: builtin
|
|
26
|
+
global-config:
|
|
27
|
+
input-parameters: ["energy", "grid/carbon-intensity"]
|
|
28
|
+
output-parameter: "carbon-operational"
|
|
26
29
|
group-by:
|
|
27
30
|
path: builtin
|
|
28
31
|
method: GroupBy
|
|
@@ -3,18 +3,17 @@ description: a negative test case that fails due to plugin initialization missin
|
|
|
3
3
|
tags:
|
|
4
4
|
initialize:
|
|
5
5
|
plugins:
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
"interpolate":
|
|
7
|
+
method: Interpolation
|
|
8
|
+
path: 'builtin'
|
|
9
9
|
global-config:
|
|
10
|
-
outputs: ['yaml']
|
|
11
10
|
tree:
|
|
12
11
|
children:
|
|
13
12
|
child-0:
|
|
14
13
|
defaults:
|
|
15
14
|
cpu/thermal-design-power: 100
|
|
16
15
|
pipeline:
|
|
17
|
-
-
|
|
16
|
+
- interpolate
|
|
18
17
|
inputs:
|
|
19
18
|
- timestamp: 2023-07-06T00:00
|
|
20
19
|
duration: 1
|
|
@@ -3,19 +3,23 @@ description: a negative test case that fails because the path is mising in a plu
|
|
|
3
3
|
tags:
|
|
4
4
|
initialize:
|
|
5
5
|
plugins:
|
|
6
|
-
|
|
6
|
+
"interpolate":
|
|
7
|
+
method: Interpolation
|
|
7
8
|
path:
|
|
8
|
-
method: TeadsCurve
|
|
9
9
|
global-config:
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
method: linear
|
|
11
|
+
x: [0, 10, 50, 100]
|
|
12
|
+
y: [0.12, 0.32, 0.75, 1.02]
|
|
13
|
+
input-parameter: 'cpu/utilization'
|
|
14
|
+
output-parameter: 'cpu-factor'
|
|
15
|
+
# outputs: ['yaml']
|
|
12
16
|
tree:
|
|
13
17
|
children:
|
|
14
18
|
child-0:
|
|
15
19
|
defaults:
|
|
16
20
|
cpu/thermal-design-power: 100
|
|
17
21
|
pipeline:
|
|
18
|
-
-
|
|
22
|
+
- interpolate
|
|
19
23
|
inputs:
|
|
20
24
|
- timestamp: 2023-07-06T00:00
|
|
21
25
|
duration: 1
|
|
@@ -3,19 +3,23 @@ description: a negative test case that fails due to the required `duration` fiel
|
|
|
3
3
|
tags:
|
|
4
4
|
initialize:
|
|
5
5
|
plugins:
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
"interpolate":
|
|
7
|
+
method: Interpolation
|
|
8
|
+
path: builtin
|
|
9
9
|
global-config:
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
method: linear
|
|
11
|
+
x: [0, 10, 50, 100]
|
|
12
|
+
y: [0.12, 0.32, 0.75, 1.02]
|
|
13
|
+
input-parameter: 'cpu/utilization'
|
|
14
|
+
output-parameter: 'cpu-factor'
|
|
15
|
+
# outputs: ['yaml']
|
|
12
16
|
tree:
|
|
13
17
|
children:
|
|
14
18
|
child-0:
|
|
15
19
|
defaults:
|
|
16
20
|
cpu/thermal-design-power: 100
|
|
17
21
|
pipeline:
|
|
18
|
-
-
|
|
22
|
+
- interpolate
|
|
19
23
|
inputs:
|
|
20
24
|
- timestamp: 2023-07-06T00:00
|
|
21
25
|
cpu/utilization: 20
|
|
@@ -3,11 +3,15 @@ description: a negative test case that fails due to the plugin name in the pipel
|
|
|
3
3
|
tags:
|
|
4
4
|
initialize:
|
|
5
5
|
plugins:
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
"interpolate":
|
|
7
|
+
method: Interpolation
|
|
8
|
+
path: builtin
|
|
9
9
|
global-config:
|
|
10
|
-
|
|
10
|
+
method: linear
|
|
11
|
+
x: [0, 10, 50, 100]
|
|
12
|
+
y: [0.12, 0.32, 0.75, 1.02]
|
|
13
|
+
input-parameter: 'cpu/utilization'
|
|
14
|
+
output-parameter: 'cpu-factor'
|
|
11
15
|
outputs: ['yaml']
|
|
12
16
|
tree:
|
|
13
17
|
children:
|
|
@@ -4,18 +4,22 @@ tags:
|
|
|
4
4
|
initialize:
|
|
5
5
|
# outputs: ['yaml']
|
|
6
6
|
plugins:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
"interpolate":
|
|
8
|
+
method: Interpolation
|
|
9
|
+
path: builtin
|
|
10
10
|
global-config:
|
|
11
|
-
|
|
11
|
+
method: linear
|
|
12
|
+
x: [0, 10, 50, 100]
|
|
13
|
+
y: [0.12, 0.32, 0.75, 1.02]
|
|
14
|
+
input-parameter: 'cpu/utilization'
|
|
15
|
+
output-parameter: 'cpu-factor'
|
|
12
16
|
tree:
|
|
13
17
|
children:
|
|
14
18
|
child-0:
|
|
15
19
|
defaults:
|
|
16
20
|
cpu/thermal-design-power: 100
|
|
17
21
|
pipeline:
|
|
18
|
-
-
|
|
22
|
+
- interpolate
|
|
19
23
|
- multiply
|
|
20
24
|
inputs:
|
|
21
25
|
- timestamp: 2023-07-06T00:00
|
|
@@ -3,49 +3,58 @@ description: a negative test case that fails because sci-o is invoked too early
|
|
|
3
3
|
tags:
|
|
4
4
|
initialize:
|
|
5
5
|
plugins:
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
"interpolate":
|
|
7
|
+
method: Interpolation
|
|
8
|
+
path: 'builtin'
|
|
9
9
|
global-config:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
method: linear
|
|
11
|
+
x: [0, 10, 50, 100]
|
|
12
|
+
y: [0.12, 0.32, 0.75, 1.02]
|
|
13
|
+
input-parameter: 'cpu/utilization'
|
|
14
|
+
output-parameter: 'cpu-factor'
|
|
15
|
+
"cpu-factor-to-wattage":
|
|
16
|
+
method: Multiply
|
|
17
|
+
path: builtin
|
|
18
|
+
global-config:
|
|
19
|
+
input-parameters: ["cpu-factor", "cpu/thermal-design-power"]
|
|
20
|
+
output-parameter: "cpu-wattage"
|
|
21
|
+
"wattage-times-duration":
|
|
22
|
+
method: Multiply
|
|
23
|
+
path: builtin
|
|
14
24
|
global-config:
|
|
15
|
-
input-parameters:
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"sci-embodied":
|
|
25
|
+
input-parameters: ["cpu-wattage", "duration"]
|
|
26
|
+
output-parameter: "cpu-wattage-times-duration"
|
|
27
|
+
"wattage-to-energy-kwh":
|
|
28
|
+
method: Divide
|
|
20
29
|
path: "builtin"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
30
|
+
global-config:
|
|
31
|
+
numerator: cpu-wattage-times-duration
|
|
32
|
+
denominator: 3600000
|
|
33
|
+
output: cpu-energy-raw
|
|
34
|
+
"calculate-vcpu-ratio":
|
|
35
|
+
method: Divide
|
|
26
36
|
path: "builtin"
|
|
27
|
-
method: Sci
|
|
28
37
|
global-config:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
38
|
+
numerator: vcpus-total
|
|
39
|
+
denominator: vcpus-allocated
|
|
40
|
+
output: vcpu-ratio
|
|
41
|
+
"correct-cpu-energy-for-vcpu-ratio":
|
|
42
|
+
method: Divide
|
|
33
43
|
path: "builtin"
|
|
34
44
|
global-config:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
allow-padding: true
|
|
45
|
+
numerator: cpu-energy-raw
|
|
46
|
+
denominator: vcpu-ratio
|
|
47
|
+
output: cpu-energy-kwh
|
|
39
48
|
tree:
|
|
40
49
|
children:
|
|
41
50
|
child-1:
|
|
42
51
|
pipeline:
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
52
|
+
- interpolate
|
|
53
|
+
- correct-cpu-energy-for-vcpu-ratio
|
|
54
|
+
- calculate-vcpu-ratio
|
|
55
|
+
- cpu-factor-to-wattage
|
|
56
|
+
- wattage-times-duration
|
|
57
|
+
- wattage-to-energy-kwh
|
|
49
58
|
config:
|
|
50
59
|
defaults:
|
|
51
60
|
cpu/thermal-design-power: 100
|
|
@@ -53,8 +62,8 @@ tree:
|
|
|
53
62
|
device/emissions-embodied: 1533.120 # gCO2eq
|
|
54
63
|
time-reserved: 3600 # 1hr in seconds
|
|
55
64
|
device/expected-lifespan: 94608000 # 3 years in seconds
|
|
56
|
-
|
|
57
|
-
|
|
65
|
+
vcpus-allocated: 1
|
|
66
|
+
vcpus-total: 8
|
|
58
67
|
inputs:
|
|
59
68
|
- timestamp: "2023-12-12T00:00:00.000Z"
|
|
60
69
|
cloud/instance-type: A1
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: copy-param
|
|
2
|
+
description:
|
|
3
|
+
tags:
|
|
4
|
+
initialize:
|
|
5
|
+
plugins:
|
|
6
|
+
copy-param:
|
|
7
|
+
path: builtin
|
|
8
|
+
method: Copy
|
|
9
|
+
global-config:
|
|
10
|
+
keep-existing: true
|
|
11
|
+
from: original
|
|
12
|
+
to: copy
|
|
13
|
+
tree:
|
|
14
|
+
children:
|
|
15
|
+
child-1:
|
|
16
|
+
pipeline:
|
|
17
|
+
- copy-param
|
|
18
|
+
inputs:
|
|
19
|
+
- timestamp: "2023-12-12T00:00:00.000Z"
|
|
20
|
+
original: 'hello'
|
|
@@ -3,24 +3,53 @@ description: a pipeline that does arbitrary calculations using our generic arith
|
|
|
3
3
|
tags:
|
|
4
4
|
initialize:
|
|
5
5
|
plugins:
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
"interpolate":
|
|
7
|
+
method: Interpolation
|
|
8
|
+
path: 'builtin'
|
|
9
9
|
global-config:
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
method: linear
|
|
11
|
+
x: [0, 10, 50, 100]
|
|
12
|
+
y: [0.12, 0.32, 0.75, 1.02]
|
|
13
|
+
input-parameter: 'cpu/utilization'
|
|
14
|
+
output-parameter: 'cpu-factor'
|
|
15
|
+
"cpu-factor-to-wattage":
|
|
16
|
+
method: Multiply
|
|
17
|
+
path: builtin
|
|
18
|
+
global-config:
|
|
19
|
+
input-parameters: ["cpu-factor", "cpu/thermal-design-power"]
|
|
20
|
+
output-parameter: "cpu-wattage"
|
|
21
|
+
"wattage-times-duration":
|
|
22
|
+
method: Multiply
|
|
23
|
+
path: builtin
|
|
24
|
+
global-config:
|
|
25
|
+
input-parameters: ["cpu-wattage", "duration"]
|
|
26
|
+
output-parameter: "cpu-wattage-times-duration"
|
|
27
|
+
"wattage-to-energy-kwh":
|
|
28
|
+
method: Divide
|
|
29
|
+
path: "builtin"
|
|
30
|
+
global-config:
|
|
31
|
+
numerator: cpu-wattage-times-duration
|
|
32
|
+
denominator: 3600000
|
|
33
|
+
output: cpu-energy-raw
|
|
34
|
+
"calculate-vcpu-ratio":
|
|
35
|
+
method: Divide
|
|
36
|
+
path: "builtin"
|
|
37
|
+
global-config:
|
|
38
|
+
numerator: vcpus-total
|
|
39
|
+
denominator: vcpus-allocated
|
|
40
|
+
output: vcpu-ratio
|
|
41
|
+
"correct-cpu-energy-for-vcpu-ratio":
|
|
42
|
+
method: Divide
|
|
12
43
|
path: "builtin"
|
|
13
|
-
method: Sum
|
|
14
44
|
global-config:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
output-parameter: energy-sum
|
|
45
|
+
numerator: cpu-energy-raw
|
|
46
|
+
denominator: vcpu-ratio
|
|
47
|
+
output: cpu-energy-kwh
|
|
19
48
|
"coefficient":
|
|
20
49
|
path: "builtin"
|
|
21
50
|
method: Coefficient
|
|
22
51
|
global-config:
|
|
23
|
-
input-parameter: energy
|
|
52
|
+
input-parameter: cpu-energy-kwh
|
|
24
53
|
coefficient: 2
|
|
25
54
|
output-parameter: energy-doubled
|
|
26
55
|
"multiply":
|
|
@@ -33,13 +62,19 @@ tree:
|
|
|
33
62
|
children:
|
|
34
63
|
child-1:
|
|
35
64
|
pipeline:
|
|
36
|
-
-
|
|
37
|
-
-
|
|
65
|
+
- interpolate
|
|
66
|
+
- cpu-factor-to-wattage
|
|
67
|
+
- wattage-times-duration
|
|
68
|
+
- wattage-to-energy-kwh
|
|
69
|
+
- calculate-vcpu-ratio
|
|
70
|
+
- correct-cpu-energy-for-vcpu-ratio
|
|
38
71
|
- coefficient
|
|
39
72
|
- multiply
|
|
40
73
|
config:
|
|
41
74
|
defaults:
|
|
42
75
|
cpu/thermal-design-power: 100
|
|
76
|
+
vcpus-allocated: 1
|
|
77
|
+
vcpus-total: 8
|
|
43
78
|
inputs:
|
|
44
79
|
- timestamp: "2023-12-12T00:00:00.000Z"
|
|
45
80
|
cloud/instance-type: A1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
name: csv-demo
|
|
2
|
-
description:
|
|
3
|
-
tags:
|
|
2
|
+
description:
|
|
3
|
+
tags:
|
|
4
4
|
initialize:
|
|
5
5
|
plugins:
|
|
6
6
|
cloud-instance-metadata:
|
|
@@ -19,8 +19,8 @@ initialize:
|
|
|
19
19
|
parameter: cpu-model-name
|
|
20
20
|
match: /^([^,])+/g
|
|
21
21
|
output: cpu/name
|
|
22
|
-
outputs:
|
|
23
|
-
|
|
22
|
+
# outputs:
|
|
23
|
+
# - yaml
|
|
24
24
|
tree:
|
|
25
25
|
children:
|
|
26
26
|
child:
|