aboutsummaryrefslogtreecommitdiff
path: root/src/scripts
diff options
context:
space:
mode:
authorCédric Bonhomme <cedric@cedricbonhomme.org>2015-12-17 13:05:26 +0100
committerCédric Bonhomme <cedric@cedricbonhomme.org>2015-12-17 13:05:26 +0100
commit0312e25586d381cc53935c2fd4912378cd292d6e (patch)
treeb04ad1a26edd4c67701d0d704c8ce8c554b2ae42 /src/scripts
parentUpdated link to Heroku deploy button on the About page. (diff)
parenthandling failing feed link (diff)
downloadnewspipe-0312e25586d381cc53935c2fd4912378cd292d6e.tar.gz
newspipe-0312e25586d381cc53935c2fd4912378cd292d6e.tar.bz2
newspipe-0312e25586d381cc53935c2fd4912378cd292d6e.zip
Merge pull request #24 from jaesivsm/master
moving the root of source code from / to /src/
Diffstat (limited to 'src/scripts')
-rw-r--r--src/scripts/__init__.py0
-rw-r--r--src/scripts/probes.py74
2 files changed, 74 insertions, 0 deletions
diff --git a/src/scripts/__init__.py b/src/scripts/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/src/scripts/__init__.py
diff --git a/src/scripts/probes.py b/src/scripts/probes.py
new file mode 100644
index 00000000..94ca25fc
--- /dev/null
+++ b/src/scripts/probes.py
@@ -0,0 +1,74 @@
+#!/usr/bin/python3
+import sys
+from datetime import datetime, timedelta
+from flask.ext.script import Command, Option
+
+from web.controllers \
+ import UserController, FeedController, ArticleController
+DEFAULT_HEADERS = {'Content-Type': 'application/json', 'User-Agent': 'munin'}
+LATE_AFTER = 60
+FETCH_RATE = 3
+
+
+class AbstractMuninPlugin(Command):
+ urn = None
+
+ def execute(self):
+ raise NotImplementedError()
+
+ def config(self):
+ raise NotImplementedError()
+
+ def get_options(self):
+ if sys.argv[-1] == 'config':
+ return [Option(dest='config', default=sys.argv[-1] == 'config')]
+ return []
+
+ def run(self, config=False):
+ if config:
+ self.config()
+ else:
+ self.execute()
+
+
+class FeedProbe(AbstractMuninPlugin):
+
+ def config(self):
+ print("graph_title PyAgg - Feeds counts")
+ print("graph_vlabel feeds")
+ print("feeds.label Late feeds")
+ print("feeds_total.label Total feeds")
+ print("feeds.warning 15")
+ print("feeds.critical 30")
+ print("graph_category web")
+ print("graph_scale yes")
+
+ def execute(self):
+ delta = datetime.now() - timedelta(minutes=LATE_AFTER + FETCH_RATE + 1)
+ total = FeedController().read().count()
+
+ print("feeds.value %d"
+ % len(FeedController().list_late(delta, limit=total)))
+ print("feeds_total.value %d" % FeedController().read().count())
+
+
+class ArticleProbe(AbstractMuninPlugin):
+
+ def config(self):
+ print("graph_title Pyagg - Articles adding rate")
+ print("graph_vlabel Articles per sec")
+ print("articles.label Overall rate")
+ print("articles.type DERIVE")
+ print("articles.min 0")
+ for id_ in sorted(user.id for user in UserController().read()):
+ print("articles_user_%s.label Rate for user %s" % (id_, id_))
+ print("articles_user_%s.type DERIVE" % id_)
+ print("articles_user_%s.min 0" % id_)
+ print("graph_category web")
+ print("graph_scale yes")
+
+ def execute(self):
+ counts = ArticleController().count_by_user_id()
+ print("articles.value %s" % sum(counts.values()))
+ for user, count in counts.items():
+ print("articles_user_%s.value %s" % (user, count))
bgstack15