def testPrometheusIntegration(self): registry = prometheus_client.CollectorRegistry(auto_describe=True) def MakeCollector(metadatas): return prometheus_stats_collector.PrometheusStatsCollector( metadatas, registry) with self.SetUpStatsCollector(MakeCollector): counter = metrics.Counter("foobars") counter.Increment(42) port = portpicker.pick_unused_port() with mock.patch.object(stats_server.StatsServerHandler, "registry", registry): server = stats_server.StatsServer(port) server.Start() self.addCleanup(server.Stop) res = requests.get("http://localhost:{}/metrics".format(port)) text_fd = io.StringIO(res.text) families = prometheus_parser.text_fd_to_metric_families(text_fd) families = {family.name: family for family in families} self.assertIn("foobars", families) self.assertEqual(families["foobars"].samples[0].value, 42)
def setUpStatsServer(self, port): return stats_server.StatsServer(port)