def get_queue_stats(queue_metrics): for queue in get_rabbit_stats(): queue_metrics[metric].labels(hostname, queue['name']).set(queue[metric]) def create_queue_metrics(): metrics = {} metrics['consumers'] = Gauge('rabbit_consumers_count', 'Number of consumers for this queue', ['host', 'queue']) metrics['count'] = Gauge('rabbit_messages_count', 'Number of messages in this queue', ['host', 'queue']) return metrics queue_metrics = create_queue_metrics() while True: with rabbit_poll_time.labels(hostname).time(): get_queue_stats(base_url, queue_metrics) time.sleep(interval)