Пример #1
0
def get_tag_names(domain):
    """Returns a list of all tag names.
    """
    if not authorized(request, domain, 'r'):
        return 'Forbidden', 403, []

    return (json.dumps({'results':
                        [name for name in datastore.get_tag_names(domain)]}), 200, [])
Пример #2
0
def add_datapoints(domain):
    """Records metric data points.
    """
    if not authorized(request, domain, 'w'):
        return 'Forbidden', 403, []

    for dps in DataPointSet.from_json_object(request.get_json()):
        datastore.put_data_points(dps, domain)
    return '', 204, []
Пример #3
0
def query_metric_tags(domain):
    """Same as the query but it leaves off the data and just returns the tag
      information.
    """
    if not authorized(request, domain, 'r'):
        return 'Forbidden', 403, []

    return (json.dumps({'results': [{
                'name': query.name,
                'tags': datastore.query_metric_tags(query, domain)
            } for query in QueryMetric.from_json_object(request.get_json())]}), 200, [])
Пример #4
0
def query_database(domain):
    """Returns a list of metric values based on a set of criteria. Also returns a
      set of all tag names and values that are found across the data points.
    """
    if not authorized(request, domain, 'r'):
        return 'Forbidden', 403, []

    # spawn all threads
    gather_threads = [datastore.query_database(query, QueryMetric.create_callback(query), domain) \
                      for query in QueryMetric.from_json_object(request.get_json())]

    return (json.dumps({'queries': [{
                'sample_size': result.sample_size,
                'results': result.results
            } for result in [t.get_result() for t in gather_threads]]}), 200, [])