Exemple #1
0
class VarsEndpoint(object):
    """
    Wrap a MetricSampler to export the /vars endpoint for applications that register
    exported variables.
  """
    def __init__(self, period=None):
        self._metrics = RootMetrics()
        if period is not None:
            self._monitor = MetricSampler(self._metrics, period)
        else:
            self._monitor = MetricSampler(self._metrics)
        self._monitor.start()

    @HttpServer.route("/vars")
    @HttpServer.route("/vars/:var")
    def handle_vars(self, var=None):
        HttpServer.set_content_type('text/plain; charset=iso-8859-1')
        samples = self._monitor.sample()

        if var is None:
            return '\n'.join('%s %s' % (key, val)
                             for key, val in sorted(samples.items()))
        else:
            if var in samples:
                return samples[var]
            else:
                HttpServer.abort(404, 'Unknown exported variable')

    @HttpServer.route("/vars.json")
    def handle_vars_json(self, var=None, value=None):
        return self._monitor.sample()

    def shutdown(self):
        self._monitor.shutdown()
        self._monitor.join()
Exemple #2
0
class VarsEndpoint(object):
    """
    Wrap a MetricSampler to export the /vars endpoint for applications that register
    exported variables.
  """
    def __init__(self, period=None):
        self._metrics = RootMetrics()
        if period is not None:
            self._monitor = MetricSampler(self._metrics, period)
        else:
            self._monitor = MetricSampler(self._metrics)
        self._monitor.start()

    @HttpServer.route("/vars")
    @HttpServer.route("/vars/:var")
    def handle_vars(self, var=None):
        samples = self._monitor.sample()

        if var is None:
            body = '<br>'.join('%s %s' % (key, val)
                               for key, val in samples.items())
            return '<html><body><pre>%s</pre></body></html>' % body
        else:
            if var in samples:
                return samples[var]
            else:
                HttpServer.abort(404, 'Unknown exported variable')

    @HttpServer.route("/vars.json")
    def handle_vars_json(self, var=None, value=None):
        return self._monitor.sample()

    def shutdown(self):
        self._monitor.shutdown()
        self._monitor.join()
Exemple #3
0
class VarsEndpoint(object):
    """
    Wrap a MetricSampler to export the /vars endpoint for applications that register
    exported variables.
  """
    def __init__(self, period=None, stats_filter=None):
        self._metrics = RootMetrics()
        self._stats_filter = stats_filter
        if period is not None:
            self._monitor = MetricSampler(self._metrics, period)
        else:
            self._monitor = MetricSampler(self._metrics)
        self._monitor.start()

    @HttpServer.route("/vars")
    @HttpServer.route("/vars/:var")
    def handle_vars(self, var=None):
        HttpServer.set_content_type('text/plain; charset=iso-8859-1')
        filtered = self._parse_filtered_arg()
        samples = self._monitor.sample()

        if var is None and filtered and self._stats_filter:
            return '\n'.join('%s %s' % (key, val)
                             for key, val in sorted(samples.items())
                             if not self._stats_filter.match(key))
        elif var is None:
            return '\n'.join('%s %s' % (key, val)
                             for key, val in sorted(samples.items()))
        else:
            if var in samples:
                return samples[var]
            else:
                HttpServer.abort(404, 'Unknown exported variable')

    @HttpServer.route("/vars.json")
    def handle_vars_json(self, var=None, value=None):
        filtered = self._parse_filtered_arg()
        sample = self._monitor.sample()
        if filtered and self._stats_filter:
            return dict((key, val) for key, val in sample.items()
                        if not self._stats_filter.match(key))
        else:
            return sample

    def shutdown(self):
        self._monitor.shutdown()
        self._monitor.join()

    def _parse_filtered_arg(self):
        return request.GET.get('filtered', '') in ('true', '1')
Exemple #4
0
class VarsEndpoint(object):
  """
    Wrap a MetricSampler to export the /vars endpoint for applications that register
    exported variables.
  """

  def __init__(self, period=None, stats_filter=None):
    self._metrics = RootMetrics()
    self._stats_filter = stats_filter
    if period is not None:
      self._monitor = MetricSampler(self._metrics, period)
    else:
      self._monitor = MetricSampler(self._metrics)
    self._monitor.start()

  @HttpServer.route("/vars")
  @HttpServer.route("/vars/:var")
  def handle_vars(self, var=None):
    HttpServer.set_content_type('text/plain; charset=iso-8859-1')
    filtered = self._parse_filtered_arg()
    samples = self._monitor.sample()

    if var is None and filtered and self._stats_filter:
      return '\n'.join(
          '%s %s' % (key, val) for key, val in sorted(samples.items())
          if not self._stats_filter.match(key))
    elif var is None:
      return '\n'.join(
          '%s %s' % (key, val) for key, val in sorted(samples.items()))
    else:
      if var in samples:
        return samples[var]
      else:
        HttpServer.abort(404, 'Unknown exported variable')

  @HttpServer.route("/vars.json")
  def handle_vars_json(self, var=None, value=None):
    filtered = self._parse_filtered_arg()
    sample = self._monitor.sample()
    if filtered and self._stats_filter:
      return dict((key, val) for key, val in sample.items() if not self._stats_filter.match(key))
    else:
      return sample

  def shutdown(self):
    self._monitor.shutdown()
    self._monitor.join()

  def _parse_filtered_arg(self):
    return request.GET.get('filtered', '') in ('true', '1')
Exemple #5
0
class VarsEndpoint(object):
  """
    Wrap a MetricSampler to export the /vars endpoint for applications that register
    exported variables.
  """

  def __init__(self, period=None):
    self._metrics = RootMetrics()
    if period is not None:
      self._monitor = MetricSampler(self._metrics, period)
    else:
      self._monitor = MetricSampler(self._metrics)
    self._monitor.start()

  @HttpServer.route("/vars")
  @HttpServer.route("/vars/:var")
  def handle_vars(self, var=None):
    HttpServer.set_content_type('text/plain; charset=iso-8859-1')
    samples = self._monitor.sample()

    if var is None:
      return '\n'.join(
        '%s %s' % (key, val) for key, val in sorted(samples.items()))
    else:
      if var in samples:
        return samples[var]
      else:
        HttpServer.abort(404, 'Unknown exported variable')

  @HttpServer.route("/vars.json")
  def handle_vars_json(self, var=None, value=None):
    return self._monitor.sample()

  def shutdown(self):
    self._monitor.shutdown()
    self._monitor.join()
Exemple #6
0
class VarsEndpoint(object):
  """
    Wrap a MetricSampler to export the /vars endpoint for applications that register
    exported variables.
  """

  def __init__(self, period=None):
    self._metrics = RootMetrics()
    if period is not None:
      self._monitor = MetricSampler(self._metrics, period)
    else:
      self._monitor = MetricSampler(self._metrics)
    self._monitor.start()

  @HttpServer.route("/vars")
  @HttpServer.route("/vars/:var")
  def handle_vars(self, var = None):
    samples = self._monitor.sample()

    if var is None:
      body='<br>'.join(
        '%s %s' % (key, val) for key, val in samples.iteritems())
      return '<html><body><pre>%s</pre></body></html>' % body
    else:
      if var in samples:
        return samples[var]
      else:
        HttpServer.abort(404, 'Unknown exported variable')

  @HttpServer.route("/vars.json")
  def handle_vars_json(self, var = None, value = None):
    return self._monitor.sample()

  def shutdown(self):
    self._monitor.shutdown()
    self._monitor.join()