await metricScope()

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);

  })();