tangled
alpha
login
or
join now
edavis.dev
/
bsky-tools
0
fork
atom
this repo has no description
0
fork
atom
overview
issues
pulls
pipelines
Prometheus counter for feed requests
Eric Davis
2 years ago
374d641f
b19b27a5
+10
1 changed file
expand all
collapse all
unified
split
feedweb.py
+10
feedweb.py
···
1
1
#!/usr/bin/env python3
2
2
3
3
from flask import Flask, request, jsonify
4
4
+
from prometheus_client import Counter, make_wsgi_app
5
5
+
from werkzeug.middleware.dispatcher import DispatcherMiddleware
4
6
from werkzeug.datastructures import LanguageAccept
5
7
6
8
from feed_manager import feed_manager
7
9
from feeds.rapidfire import RapidFireFeed
8
10
from feeds.popular import PopularFeed
11
11
+
12
12
+
feed_requests = Counter('feed_requests', 'requests by feed URI', ['feed'])
9
13
10
14
app = Flask(__name__)
11
15
···
26
30
else:
27
31
feed_uri = request.args['feed']
28
32
33
33
+
feed_requests.labels(feed_uri).inc()
34
34
+
29
35
langs = request.accept_languages
30
36
31
37
if request.args.get('debug', '0') == '1':
···
41
47
offset += len(posts)
42
48
43
49
return dict(cursor=str(offset), feed=[dict(post=uri) for uri in posts])
50
50
+
51
51
+
app.wsgi_app = DispatcherMiddleware(app.wsgi_app, {
52
52
+
'/metrics': make_wsgi_app()
53
53
+
})
44
54
45
55
if __name__ == '__main__':
46
56
from feedweb_utils import did_doc