예제 #1
0
  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)
예제 #2
0
 def setUpStatsServer(self, port):
     return stats_server.StatsServer(port)