From 5e02c4d32062675e7b5b90df1a4ebad212dcb978 Mon Sep 17 00:00:00 2001
From: sqozz <sqozz@geekify.de>
Date: Fri, 11 May 2018 23:08:18 +0200
Subject: [PATCH] Add food metric

---
 schlafana.py | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/schlafana.py b/schlafana.py
index 26e8815..b882ef9 100644
--- a/schlafana.py
+++ b/schlafana.py
@@ -55,6 +55,36 @@ class BotMassGaugeCollector(object):
         yield c
 
 
+class BotFoodCarrionCollector(object):
+    def collect(self):
+        c = CounterMetricFamily("carrion_food", "Carrion food consumed", labels=["name", "snake_id", "code_id"])
+        for user in game.users.users:
+            user = game.users.users.get(user)
+            rev = user.revs.get(user.current_rev)
+            c.add_metric([user.name, str(user.current_worm), str(user.current_rev)], rev.carrion_food_consumed)
+        yield c
+
+
+class BotFoodNaturalCollector(object):
+    def collect(self):
+        c = CounterMetricFamily("natural_food", "Natural food consumed", labels=["name", "snake_id", "code_id"])
+        for user in game.users.users:
+            user = game.users.users.get(user)
+            rev = user.revs.get(user.current_rev)
+            c.add_metric([user.name, str(user.current_worm), str(user.current_rev)], rev.natural_food_consumed)
+        yield c
+
+
+class BotFoodHuntedCollector(object):
+    def collect(self):
+        c = CounterMetricFamily("hunted_food", "Hunted food consumed", labels=["name", "snake_id", "code_id"])
+        for user in game.users.users:
+            user = game.users.users.get(user)
+            rev = user.revs.get(user.current_rev)
+            c.add_metric([user.name, str(user.current_worm), str(user.current_rev)], rev.hunted_food_consumed)
+        yield c
+
+
 def main():
     global game
     game = Game()
@@ -73,6 +103,9 @@ def main():
     REGISTRY.register(BotKillCollector())
     REGISTRY.register(BotRevisionCountCollector())
     REGISTRY.register(BotMassGaugeCollector())
+    REGISTRY.register(BotFoodCarrionCollector())
+    REGISTRY.register(BotFoodNaturalCollector())
+    REGISTRY.register(BotFoodHuntedCollector())
     start_http_server(9000)
     logger.info("Start prometheus scrape endpoint")