def get_metrics()

in etl/glean.py [0:0]


    def get_metrics(self) -> List[GleanMetric]:
        data = _cache.get_json(GleanApp.METRICS_URL_TEMPLATE.format(self.app["v1_name"]))
        metrics = [
            (key, {**metricdict, "origin": self.app["app_name"]})
            for key, metricdict in data.items()
        ]
        for dependency in self.get_dependencies():
            if "v1_name" in dependency:
                dependency_metrics = _cache.get_json(
                    GleanApp.METRICS_URL_TEMPLATE.format(dependency["v1_name"])
                )
                # augment these dependency names with the library_name where they came from
                metrics += [
                    (d[0], {**d[1], "origin": dependency["library_name"]})
                    for d in dependency_metrics.items()
                ]

        ping_names = set(self._get_ping_data().keys())
        processed = []

        # deduplicate metrics
        metric_map = {}
        for metric in metrics:
            if (
                not metric_map.get(metric[0])
                or metric_map[metric[0]][1]["history"][-1]["dates"]["last"]
                < metric[1]["history"][-1]["dates"]["last"]
            ):
                metric_map[metric[0]] = metric

        for _id, defn in metric_map.values():
            metric = GleanMetric(_id, defn, ping_names=ping_names)
            processed.append(metric)

        return processed