示例#1
0
from apiserver.bll.util import get_server_uuid
from apiserver.bll.workers import WorkerStats, WorkerBLL
from apiserver.config_repo import config
from apiserver.config.info import get_deployment_type
from apiserver.database.model import Company, User
from apiserver.database.model.queue import Queue
from apiserver.database.model.task.task import Task
from apiserver.tools import safe_get
from apiserver.utilities.json import dumps
from apiserver.utilities.threads_manager import ThreadsManager
from apiserver.version import __version__ as current_version
from .resource_monitor import ResourceMonitor

log = config.logger(__file__)

worker_bll = WorkerBLL()


class StatisticsReporter:
    threads = ThreadsManager("Statistics", resource_monitor=ResourceMonitor)
    send_queue = queue.Queue()
    supported = config.get("apiserver.statistics.supported", True)

    @classmethod
    def start(cls):
        cls.start_sender()
        cls.start_reporter()

    @classmethod
    @threads.register("reporter", daemon=True)
    def start_reporter(cls):
示例#2
0
 def __init__(self, worker_bll: WorkerBLL = None, es: Elasticsearch = None):
     self.worker_bll = worker_bll or WorkerBLL()
     self.es = es or es_factory.connect("workers")
     self._metrics = QueueMetrics(self.es)