Page MenuHomeSoftware Heritage

D1311.id4148.diff
No OneTemporary

D1311.id4148.diff

diff --git a/swh/storage/api/server.py b/swh/storage/api/server.py
--- a/swh/storage/api/server.py
+++ b/swh/storage/api/server.py
@@ -13,11 +13,26 @@
from swh.core.api import (SWHServerAPIApp, decode_request,
error_handler,
encode_data_server as encode_data)
+from swh.core.statsd import statsd
+
app = SWHServerAPIApp(__name__)
storage = None
+def timed(f):
+ """Time that function!
+
+ """
+ def time_and_count_function(*a, **kw):
+ statsd.increment('swh_storage_request_count',
+ tags={'endpoint': f.__name__})
+ with statsd.timed('swh_storage_request_duration_seconds',
+ tags={'endpoint': f.__name__}):
+ return f(*a, **kw)
+ return time_and_count_function
+
+
@app.errorhandler(Exception)
def my_error_handler(exception):
return error_handler(exception, encode_data)
@@ -31,6 +46,7 @@
return storage
+@timed
@app.route('/')
def index():
return '''<html>
@@ -45,49 +61,58 @@
</html>'''
+@timed
@app.route('/check_config', methods=['POST'])
def check_config():
return encode_data(get_storage().check_config(**decode_request(request)))
+@timed
@app.route('/content/missing', methods=['POST'])
def content_missing():
return encode_data(get_storage().content_missing(
**decode_request(request)))
+@timed
@app.route('/content/missing/sha1', methods=['POST'])
def content_missing_per_sha1():
return encode_data(get_storage().content_missing_per_sha1(
**decode_request(request)))
+@timed
@app.route('/content/present', methods=['POST'])
def content_find():
return encode_data(get_storage().content_find(**decode_request(request)))
+@timed
@app.route('/content/add', methods=['POST'])
def content_add():
return encode_data(get_storage().content_add(**decode_request(request)))
+@timed
@app.route('/content/update', methods=['POST'])
def content_update():
return encode_data(get_storage().content_update(**decode_request(request)))
+@timed
@app.route('/content/data', methods=['POST'])
def content_get():
return encode_data(get_storage().content_get(**decode_request(request)))
+@timed
@app.route('/content/metadata', methods=['POST'])
def content_get_metadata():
return encode_data(get_storage().content_get_metadata(
**decode_request(request)))
+@timed
@app.route('/content/range', methods=['POST'])
def content_get_range():
return encode_data(get_storage().content_get_range(
@@ -100,264 +125,310 @@
**decode_request(request)))
+@timed
@app.route('/directory/add', methods=['POST'])
def directory_add():
return encode_data(get_storage().directory_add(**decode_request(request)))
+@timed
@app.route('/directory/path', methods=['POST'])
def directory_entry_get_by_path():
return encode_data(get_storage().directory_entry_get_by_path(
**decode_request(request)))
+@timed
@app.route('/directory/ls', methods=['POST'])
def directory_ls():
return encode_data(get_storage().directory_ls(
**decode_request(request)))
+@timed
@app.route('/revision/add', methods=['POST'])
def revision_add():
return encode_data(get_storage().revision_add(**decode_request(request)))
+@timed
@app.route('/revision', methods=['POST'])
def revision_get():
return encode_data(get_storage().revision_get(**decode_request(request)))
+@timed
@app.route('/revision/log', methods=['POST'])
def revision_log():
return encode_data(get_storage().revision_log(**decode_request(request)))
+@timed
@app.route('/revision/shortlog', methods=['POST'])
def revision_shortlog():
return encode_data(get_storage().revision_shortlog(
**decode_request(request)))
+@timed
@app.route('/revision/missing', methods=['POST'])
def revision_missing():
return encode_data(get_storage().revision_missing(
**decode_request(request)))
+@timed
@app.route('/release/add', methods=['POST'])
def release_add():
return encode_data(get_storage().release_add(**decode_request(request)))
+@timed
@app.route('/release', methods=['POST'])
def release_get():
return encode_data(get_storage().release_get(**decode_request(request)))
+@timed
@app.route('/release/missing', methods=['POST'])
def release_missing():
return encode_data(get_storage().release_missing(
**decode_request(request)))
+@timed
@app.route('/object/find_by_sha1_git', methods=['POST'])
def object_find_by_sha1_git():
return encode_data(get_storage().object_find_by_sha1_git(
**decode_request(request)))
+@timed
@app.route('/snapshot/add', methods=['POST'])
def snapshot_add():
return encode_data(get_storage().snapshot_add(**decode_request(request)))
+@timed
@app.route('/snapshot', methods=['POST'])
def snapshot_get():
return encode_data(get_storage().snapshot_get(**decode_request(request)))
+@timed
@app.route('/snapshot/by_origin_visit', methods=['POST'])
def snapshot_get_by_origin_visit():
return encode_data(get_storage().snapshot_get_by_origin_visit(
**decode_request(request)))
+@timed
@app.route('/snapshot/latest', methods=['POST'])
def snapshot_get_latest():
return encode_data(get_storage().snapshot_get_latest(
**decode_request(request)))
+@timed
@app.route('/snapshot/count_branches', methods=['POST'])
def snapshot_count_branches():
return encode_data(get_storage().snapshot_count_branches(
**decode_request(request)))
+@timed
@app.route('/snapshot/get_branches', methods=['POST'])
def snapshot_get_branches():
return encode_data(get_storage().snapshot_get_branches(
**decode_request(request)))
+@timed
@app.route('/origin/get', methods=['POST'])
def origin_get():
return encode_data(get_storage().origin_get(**decode_request(request)))
+@timed
@app.route('/origin/get_range', methods=['POST'])
def origin_get_range():
return encode_data(get_storage().origin_get_range(
**decode_request(request)))
+@timed
@app.route('/origin/search', methods=['POST'])
def origin_search():
return encode_data(get_storage().origin_search(**decode_request(request)))
+@timed
@app.route('/origin/count', methods=['POST'])
def origin_count():
return encode_data(get_storage().origin_count(**decode_request(request)))
+@timed
@app.route('/origin/add_multi', methods=['POST'])
def origin_add():
return encode_data(get_storage().origin_add(**decode_request(request)))
+@timed
@app.route('/origin/add', methods=['POST'])
def origin_add_one():
return encode_data(get_storage().origin_add_one(**decode_request(request)))
+@timed
@app.route('/origin/visit/get', methods=['POST'])
def origin_visit_get():
return encode_data(get_storage().origin_visit_get(
**decode_request(request)))
+@timed
@app.route('/origin/visit/getby', methods=['POST'])
def origin_visit_get_by():
return encode_data(
get_storage().origin_visit_get_by(**decode_request(request)))
+@timed
@app.route('/origin/visit/add', methods=['POST'])
def origin_visit_add():
return encode_data(get_storage().origin_visit_add(
**decode_request(request)))
+@timed
@app.route('/origin/visit/update', methods=['POST'])
def origin_visit_update():
return encode_data(get_storage().origin_visit_update(
**decode_request(request)))
+@timed
@app.route('/person', methods=['POST'])
def person_get():
return encode_data(get_storage().person_get(**decode_request(request)))
+@timed
@app.route('/fetch_history', methods=['GET'])
def fetch_history_get():
return encode_data(get_storage().fetch_history_get(request.args['id']))
+@timed
@app.route('/fetch_history/start', methods=['POST'])
def fetch_history_start():
return encode_data(
get_storage().fetch_history_start(**decode_request(request)))
+@timed
@app.route('/fetch_history/end', methods=['POST'])
def fetch_history_end():
return encode_data(
get_storage().fetch_history_end(**decode_request(request)))
+@timed
@app.route('/entity/add', methods=['POST'])
def entity_add():
return encode_data(
get_storage().entity_add(**decode_request(request)))
+@timed
@app.route('/entity/get', methods=['POST'])
def entity_get():
return encode_data(
get_storage().entity_get(**decode_request(request)))
+@timed
@app.route('/entity', methods=['GET'])
def entity_get_one():
return encode_data(get_storage().entity_get_one(request.args['uuid']))
+@timed
@app.route('/entity/from_lister_metadata', methods=['POST'])
def entity_from_lister_metadata():
return encode_data(get_storage().entity_get_from_lister_metadata(
**decode_request(request)))
+@timed
@app.route('/tool/data', methods=['POST'])
def tool_get():
return encode_data(get_storage().tool_get(
**decode_request(request)))
+@timed
@app.route('/tool/add', methods=['POST'])
def tool_add():
return encode_data(get_storage().tool_add(
**decode_request(request)))
+@timed
@app.route('/origin/metadata/add', methods=['POST'])
def origin_metadata_add():
return encode_data(get_storage().origin_metadata_add(**decode_request(
request)))
+@timed
@app.route('/origin/metadata/get', methods=['POST'])
def origin_metadata_get_by():
return encode_data(get_storage().origin_metadata_get_by(**decode_request(
request)))
+@timed
@app.route('/provider/add', methods=['POST'])
def metadata_provider_add():
return encode_data(get_storage().metadata_provider_add(**decode_request(
request)))
-
+@timed
@app.route('/provider/get', methods=['POST'])
def metadata_provider_get():
return encode_data(get_storage().metadata_provider_get(**decode_request(
request)))
+@timed
@app.route('/provider/getby', methods=['POST'])
def metadata_provider_get_by():
return encode_data(get_storage().metadata_provider_get_by(**decode_request(
request)))
+@timed
@app.route('/stat/counters', methods=['GET'])
def stat_counters():
return encode_data(get_storage().stat_counters())
+@timed
@app.route('/algos/diff_directories', methods=['POST'])
def diff_directories():
return encode_data(get_storage().diff_directories(
**decode_request(request)))
+@timed
@app.route('/algos/diff_revisions', methods=['POST'])
def diff_revisions():
return encode_data(get_storage().diff_revisions(**decode_request(request)))
+@timed
@app.route('/algos/diff_revision', methods=['POST'])
def diff_revision():
return encode_data(get_storage().diff_revision(**decode_request(request)))
diff --git a/swh/storage/storage.py b/swh/storage/storage.py
--- a/swh/storage/storage.py
+++ b/swh/storage/storage.py
@@ -25,6 +25,7 @@
from swh.objstorage import get_objstorage
from swh.objstorage.exc import ObjNotFoundError
+
# Max block size of contents to return
BULK_BLOCK_CONTENT_LEN_MAX = 10000

File Metadata

Mime Type
text/plain
Expires
Dec 20 2024, 11:26 PM (11 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3218571

Event Timeline