in src/backend/inventory/canary.lambda.ts [140:186]
await metricScope((metrics) => () => {
// Clear out default dimensions as we don't need those. See https://github.com/awslabs/aws-embedded-metrics-node/issues/73.
metrics.setDimensions();
const missingMetadata = new Array<string>();
const missingAssembly = new Array<string>();
const missingTarball = new Array<string>();
const uninstallable = new Array<string>();
const unknownObjects = new Array<string>();
const submodules = new Array<string>();
for (const [name, status] of indexedPackages.entries()) {
if (!status.metadataPresent) {
missingMetadata.push(name);
}
if (!status.assemblyPresent) {
missingAssembly.push(name);
}
if (!status.tarballPresent) {
missingTarball.push(name);
}
if (status.uninstallable) {
uninstallable.push(name);
}
if (status.unknownObjects?.length ?? 0 > 0) {
unknownObjects.push(...status.unknownObjects!);
}
for (const submodule of status.submodules ?? []) {
submodules.push(submodule);
}
}
metrics.setProperty('detail', { missingMetadata, missingAssembly, missingTarball, unknownObjects });
metrics.putMetric(MetricName.UNINSTALLABLE_PACKAGE_COUNT, uninstallable.length, Unit.Count);
metrics.putMetric(MetricName.MISSING_METADATA_COUNT, missingMetadata.length, Unit.Count);
metrics.putMetric(MetricName.MISSING_ASSEMBLY_COUNT, missingAssembly.length, Unit.Count);
metrics.putMetric(MetricName.MISSING_TARBALL_COUNT, missingTarball.length, Unit.Count);
metrics.putMetric(MetricName.PACKAGE_COUNT, packageNames.size, Unit.Count);
metrics.putMetric(MetricName.PACKAGE_MAJOR_COUNT, packageMajorVersions.size, Unit.Count);
metrics.putMetric(MetricName.PACKAGE_VERSION_COUNT, indexedPackages.size, Unit.Count);
metrics.putMetric(MetricName.SUBMODULE_COUNT, submodules.length, Unit.Count);
metrics.putMetric(MetricName.UNKNOWN_OBJECT_COUNT, unknownObjects.length, Unit.Count);
createReport(constants.UNINSTALLABLE_PACKAGES_REPORT, uninstallable);
})();