Skip to content

Commit

Permalink
Hot fix: fix queues rate stats KeyError
Browse files Browse the repository at this point in the history
  • Loading branch information
kodless committed Mar 18, 2024
1 parent 22fc980 commit 83cc1df
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions app/leek/api/control/stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,17 @@ def get_fanout_queue_drift(index_alias, app_name, app_env):
return result, 200


def get_rate_or_zero(message_stats, rate_type):
"""
RabbitMQ sometimes does not return messages rates for some queues
:return: rate if reported otherwise 0
"""
try:
return message_stats[rate_type]["rate"]
except KeyError:
return 0


def get_subscription_queues(app_name, app_env, hide_pid_boxes=True):
# Retrieve subscription
found, subscription = lookup_subscription(app_name, app_env)
Expand Down Expand Up @@ -153,9 +164,9 @@ def get_subscription_queues(app_name, app_env, hide_pid_boxes=True):
if "message_stats" in q:
queue.update({
"rates": {
"incoming": q["message_stats"]["publish_details"]["rate"],
"deliver_get": q["message_stats"]["deliver_get_details"]["rate"],
"ack": q["message_stats"]["ack_details"]["rate"],
"incoming": get_rate_or_zero(q["message_stats"], "publish_details"),
"deliver_get": get_rate_or_zero(q["message_stats"], "deliver_get_details"),
"ack": get_rate_or_zero(q["message_stats"], "ack_details"),
}
})
else:
Expand Down

0 comments on commit 83cc1df

Please sign in to comment.