コード例 #1
0
 def __init__(self,
              health_checker,
              sandbox=None,
              interval_secs=10,
              initial_interval_secs=None,
              max_consecutive_failures=0,
              clock=time):
     self._health_checks = 0
     self._total_latency = 0
     self._stats_lock = threading.Lock()
     self._clock = clock
     self.threaded_health_checker = ThreadedHealthChecker(
         self._timing_wrapper(health_checker), sandbox, interval_secs,
         initial_interval_secs, max_consecutive_failures, clock)
     self.metrics.register(
         LambdaGauge(
             'consecutive_failures', lambda: self.threaded_health_checker.
             current_consecutive_failures))
     self.metrics.register(
         LambdaGauge('snoozed',
                     lambda: int(self.threaded_health_checker.snoozed)))
     self.metrics.register(
         LambdaGauge('total_latency_secs', lambda: self._total_latency))
     self.metrics.register(
         LambdaGauge('checks', lambda: self._health_checks))
コード例 #2
0
 def _init_metrics(self):
     self._session_expirations = AtomicGauge('session_expirations')
     self._connection_losses = AtomicGauge('connection_losses')
     self.metrics.register(self._session_expirations)
     self.metrics.register(self._connection_losses)
     self.metrics.register(
         LambdaGauge('session_id', lambda: self.session_id))
     self.metrics.register(
         LambdaGauge('live', lambda: int(self._live.is_set())))
コード例 #3
0
ファイル: varz.py プロジェクト: xianxu/pants
def register_diagnostics():
    import os, sys, time
    rm = RootMetrics().scope('sys')
    now = time.time()
    rm.register(LambdaGauge('uptime', lambda: time.time() - now))
    rm.register(Label('argv', repr(sys.argv)))
    rm.register(Label('path', repr(sys.path)))
    rm.register(LambdaGauge('modules', lambda: ', '.join(sys.modules.keys())))
    rm.register(Label('version', sys.version))
    rm.register(Label('platform', sys.platform))
    rm.register(Label('executable', sys.executable))
    rm.register(Label('prefix', sys.prefix))
    rm.register(Label('exec_prefix', sys.exec_prefix))
    rm.register(Label('uname', ' '.join(os.uname())))
コード例 #4
0
 def __init__(self, clock=time):
   self._clock = clock
   self._self = psutil.Process(os.getpid())
   self._orphan = False
   self.metrics.register(LambdaGauge('orphan', lambda: int(self._orphan)))
   self._metrics = dict((metric, MutatorGauge(metric, 0)) for metric in self.MUTATOR_METRICS)
   for metric in self._metrics.values():
     self.metrics.register(metric)
   ExceptionalThread.__init__(self)
   self.daemon = True
コード例 #5
0
 def __init__(self, client, path, timeout_secs, endpoint, additional=None, shard=None, name=None):
   self.__client = client
   self.__connect_event = client.start_async()
   self.__timeout_secs = timeout_secs
   self.__announcer = Announcer(ServerSet(client, path), endpoint, additional=additional,
       shard=shard)
   self.__name = name or self.DEFAULT_NAME
   self.__status = None
   self.start_event = threading.Event()
   self.metrics.register(LambdaGauge('disconnected_time', self.__announcer.disconnected_time))
コード例 #6
0
ファイル: kazoo_client.py プロジェクト: testvidya11/commons
 def __init__(self, *args, **kw):
     super(TwitterKazooClient, self).__init__(*args, **kw)
     self.connecting = threading.Event()
     self.__session_expirations = AtomicGauge('session_expirations')
     self.__connection_losses = AtomicGauge('connection_losses')
     self.__session_id = LambdaGauge('session_id', lambda:
                                     (self._session_id or 0))
     self.metrics.register(self.__session_expirations)
     self.metrics.register(self.__connection_losses)
     self.metrics.register(self.__session_id)
     self.add_listener(self._observable_listener)
コード例 #7
0
ファイル: diagnostics.py プロジェクト: isabella232/client-3
def register_diagnostics(metrics):
    rm = metrics.scope('sys')
    now = time.time()
    rm.register(LambdaGauge('uptime', lambda: time.time() - now))
    rm.register(Label('argv', repr(sys.argv)))
    rm.register(Label('path', repr(sys.path)))
    rm.register(Label('version', sys.version))
    rm.register(Label('platform', sys.platform))
    rm.register(Label('executable', sys.executable))
    rm.register(Label('prefix', sys.prefix))
    rm.register(Label('exec_prefix', sys.exec_prefix))
    rm.register(Label('uname', ' '.join(os.uname())))
コード例 #8
0
 def __init__(self,
              serverset,
              endpoint,
              additional=None,
              shard=None,
              name=None):
     self.__announcer = Announcer(serverset,
                                  endpoint,
                                  additional=additional,
                                  shard=shard)
     self.__name = name or self.DEFAULT_NAME
     self.metrics.register(
         LambdaGauge('disconnected_time',
                     self.__announcer.disconnected_time))
コード例 #9
0
    def _setup_metrics(self):
        self._metrics = self.Metrics()

        self._metrics.cluster_count = self.metrics.register(
            AtomicGauge('cluster_count', 0))

        # Total resources requested by the scheduler's clients. When a cluster is created its resources
        # are added to the total; when it's deleted its resources are subtracted from the total.
        # NOTE: These are 'requested' resources that are independent of resources offered by Mesos or
        # allocated to or used by Mysos tasks running on Mesos cluster.
        self._metrics.total_requested_cpus = self.metrics.register(
            MutatorGauge('total_requested_cpus', 0.))
        self._metrics.total_requested_mem_mb = self.metrics.register(
            MutatorGauge('total_requested_mem_mb', 0.))
        self._metrics.total_requested_disk_mb = self.metrics.register(
            MutatorGauge('total_requested_disk_mb', 0.))

        # 1: registered; 0: not registered.
        self._metrics.framework_registered = self.metrics.register(
            MutatorGauge('framework_registered', 0))

        self._startup_time = datetime.utcnow()
        self._metrics.uptime = self.metrics.register(
            LambdaGauge(
                'uptime', lambda:
                (datetime.utcnow() - self._startup_time).total_seconds()))

        # Counters for tasks in terminal states.
        self._metrics.tasks_lost = self.metrics.register(
            AtomicGauge('tasks_lost', 0))
        self._metrics.tasks_finished = self.metrics.register(
            AtomicGauge('tasks_finished', 0))
        self._metrics.tasks_failed = self.metrics.register(
            AtomicGauge('tasks_failed', 0))
        self._metrics.tasks_killed = self.metrics.register(
            AtomicGauge('tasks_killed', 0))

        self._metrics.resource_offers = self.metrics.register(
            AtomicGauge('resource_offers', 0))
        self._metrics.offers_incompatible_role = self.metrics.register(
            AtomicGauge('offers_incompatible_role', 0))

        self._metrics.tasks_launched = self.metrics.register(
            AtomicGauge('tasks_launched', 0))

        # 'offers_unused' are due to idle scheduler or resources don't fit, i.e.,
        # 'resource_offers' - 'tasks_launched' - 'offers_incompatible_role'.
        self._metrics.offers_unused = self.metrics.register(
            AtomicGauge('offers_unused', 0))
コード例 #10
0
 def __init__(self, clock=time):
   self._clock = clock
   self._self = psutil.Process(os.getpid())
   try:
     self._version = self.get_release_from_binary(
       os.path.join(self._self.cwd(), self._self.cmdline()[1]))
   except (IndexError, psutil.Error):
     self._version = 'UNKNOWN'
   self.metrics.register(NamedGauge('version', self._version))
   self._orphan = False
   self.metrics.register(LambdaGauge('orphan', lambda: int(self._orphan)))
   self._metrics = dict((metric, MutatorGauge(metric, 0)) for metric in self.MUTATOR_METRICS)
   for metric in self._metrics.values():
     self.metrics.register(metric)
   ExceptionalThread.__init__(self)
   self.daemon = True
コード例 #11
0
 def register_metrics(self):
     self.metrics.register(
         LambdaGauge('disk_used', lambda: self._disk_sample))
     self.metrics.register(
         LambdaGauge('disk_reserved', lambda: self._max_disk))
     self.metrics.register(
         LambdaGauge('disk_percent',
                     lambda: 1.0 * self._disk_sample / self._max_disk))
     self.metrics.register(
         LambdaGauge('cpu_used', lambda: self._ps_sample.rate))
     self.metrics.register(
         LambdaGauge('cpu_reserved', lambda: self._max_cpu))
     self.metrics.register(
         LambdaGauge('cpu_percent',
                     lambda: 1.0 * self._ps_sample.rate / self._max_cpu))
     self.metrics.register(
         LambdaGauge('ram_used', lambda: self._ps_sample.rss))
     self.metrics.register(
         LambdaGauge('ram_reserved', lambda: self._max_ram))
     self.metrics.register(
         LambdaGauge('ram_percent',
                     lambda: 1.0 * self._ps_sample.rss / self._max_ram))
コード例 #12
0
ファイル: kazoo_client.py プロジェクト: wcauchois/commons-1
  def __init__(self, *args, **kw):
    if 'connection_retry' not in kw:
      # The default backoff delay limit in kazoo is 3600 seconds, which is generally
      # too conservative for our use cases.  If not supplied by the caller, provide
      # a backoff that will truncate earlier.
      kw['connection_retry'] = KazooRetry(
          max_delay=DEFAULT_RETRY_MAX_DELAY_SECS, **DEFAULT_RETRY_DICT)

    super(TwitterKazooClient, self).__init__(*args, **kw)
    self.connecting = threading.Event()
    self.__session_expirations = AtomicGauge('session_expirations')
    self.__connection_losses = AtomicGauge('connection_losses')
    self.__session_id = LambdaGauge('session_id', lambda: (self._session_id or 0))
    self.metrics.register(self.__session_expirations)
    self.metrics.register(self.__connection_losses)
    self.metrics.register(self.__session_id)
    self.add_listener(self._observable_listener)