Esempio n. 1
0
def status_api():
    status = {}
    info = redis_connection.info()
    status['redis_used_memory'] = info['used_memory_human']
    status['version'] = __version__
    status['queries_count'] = models.Query.select().count()
    status['query_results_count'] = models.QueryResult.select().count()
    status['dashboards_count'] = models.Dashboard.select().count()
    status['widgets_count'] = models.Widget.select().count()

    status['workers'] = []

    manager_status = redis_connection.hgetall('redash:status')
    status['manager'] = manager_status
    status['manager']['queue_size'] = redis_connection.llen('queries') + redis_connection.llen('scheduled_queries')
    status['manager']['outdated_queries_count'] = models.Query.outdated_queries().count()

    queues = {}
    for ds in models.DataSource.select():
        for queue in (ds.queue_name, ds.scheduled_queue_name):
            queues.setdefault(queue, set())
            queues[queue].add(ds.name)

    status['manager']['queues'] = {}
    for queue, sources in queues.iteritems():
        status['manager']['queues'][queue] = {
            'data_sources': ', '.join(sources),
            'size': redis_connection.llen(queue)
        }

    return jsonify(status)
Esempio n. 2
0
def get_status():
    status = {}
    info = redis_connection.info()
    status['redis_used_memory'] = info['used_memory']
    status['redis_used_memory_human'] = info['used_memory_human']
    status['version'] = __version__
    status['queries_count'] = models.db.session.query(models.Query).count()
    if settings.FEATURE_SHOW_QUERY_RESULTS_COUNT:
        status['query_results_count'] = models.db.session.query(
            models.QueryResult).count()
        status['unused_query_results_count'] = models.QueryResult.unused(
        ).count()
    status['dashboards_count'] = models.Dashboard.query.count()
    status['widgets_count'] = models.Widget.query.count()

    status['workers'] = []

    status['manager'] = redis_connection.hgetall('redash:status')

    queues = {}
    for ds in models.DataSource.query:
        for queue in (ds.queue_name, ds.scheduled_queue_name):
            queues.setdefault(queue, set())
            queues[queue].add(ds.name)

    status['manager']['queues'] = {}
    for queue, sources in queues.iteritems():
        status['manager']['queues'][queue] = {
            'data_sources': ', '.join(sources),
            'size': redis_connection.llen(queue)
        }

    status['manager']['queues']['celery'] = {
        'size': redis_connection.llen('celery'),
        'data_sources': ''
    }

    status['database_metrics'] = []
    # have to include the fake FROM in the SQL to prevent an IndexError
    queries = [
        [
            'Query Results Size',
            "pg_size_pretty(pg_total_relation_size('query_results')) as size from (select 1) as a"
        ],
        [
            'Redash DB Size',
            "pg_size_pretty(pg_database_size('postgres')) as size from (select 1) as a"
        ]
    ]
    for query_name, query in queries:
        result = models.db.session.query(query).first()
        status['database_metrics'].append([query_name, result[0]])

    return status
Esempio n. 3
0
def get_queues_status():
    queues = get_queues()

    for queue, sources in queues.iteritems():
        queues[queue] = {
            'data_sources': ', '.join(sources),
            'size': redis_connection.llen(queue)
        }

    queues['celery'] = {
        'size': redis_connection.llen('celery'),
        'data_sources': ''
    }

    return queues
Esempio n. 4
0
def get_queues_status():
    queues = get_queues()

    for queue, sources in queues.iteritems():
        queues[queue] = {
            'data_sources': ', '.join(sources),
            'size': redis_connection.llen(queue)
        }
    
    queues['celery'] = {
        'size': redis_connection.llen('celery'),
        'data_sources': ''
    }

    return queues
Esempio n. 5
0
def get_status():
    status = {}
    info = redis_connection.info()
    status['redis_used_memory'] = info['used_memory_human']
    status['version'] = __version__
    status['queries_count'] = models.db.session.query(models.Query).count()
    if settings.FEATURE_SHOW_QUERY_RESULTS_COUNT:
        status['query_results_count'] = models.db.session.query(models.QueryResult).count()
        status['unused_query_results_count'] = models.QueryResult.unused().count()
    status['dashboards_count'] = models.Dashboard.query.count()
    status['widgets_count'] = models.Widget.query.count()

    status['workers'] = []

    status['manager'] = redis_connection.hgetall('redash:status')

    queues = {}
    for ds in models.DataSource.query:
        for queue in (ds.queue_name, ds.scheduled_queue_name):
            queues.setdefault(queue, set())
            queues[queue].add(ds.name)

    status['manager']['queues'] = {}
    for queue, sources in queues.iteritems():
        status['manager']['queues'][queue] = {
            'data_sources': ', '.join(sources),
            'size': redis_connection.llen(queue)
        }

    return status
Esempio n. 6
0
def get_status():
    status = {}
    info = redis_connection.info()
    status['redis_used_memory'] = info['used_memory_human']
    status['version'] = __version__
    status['queries_count'] = models.Query.select().count()
    status['query_results_count'] = models.QueryResult.select().count()
    status['unused_query_results_count'] = models.QueryResult.unused().count()
    status['dashboards_count'] = models.Dashboard.select().count()
    status['widgets_count'] = models.Widget.select().count()

    status['workers'] = []

    manager_status = redis_connection.hgetall('redash:status')
    status['manager'] = manager_status
    status['manager']['outdated_queries_count'] = len(
        models.Query.outdated_queries())

    queues = {}
    for ds in models.DataSource.select():
        for queue in (ds.queue_name, ds.scheduled_queue_name):
            queues.setdefault(queue, set())
            queues[queue].add(ds.name)

    status['manager']['queues'] = {}
    for queue, sources in queues.iteritems():
        status['manager']['queues'][queue] = {
            'data_sources': ', '.join(sources),
            'size': redis_connection.llen(queue)
        }

    return status
Esempio n. 7
0
def get_queues_status():
    queues = {}

    for queue in get_queues():
        queues[queue] = {'size': redis_connection.llen(queue)}

    return queues
Esempio n. 8
0
def get_status():
    status = {}
    info = redis_connection.info()
    status['Redis使用内存'] = info['used_memory_human']
    status['版本号'] = __version__
    status['查询数'] = models.db.session.query(models.Query).count()
    if settings.FEATURE_SHOW_QUERY_RESULTS_COUNT:
        status['查询结果数'] = models.db.session.query(models.QueryResult).count()
        status['未使用查询结果数'] = models.QueryResult.unused().count()
    status['仪表盘数'] = models.Dashboard.query.count()
    status['控件数'] = models.Widget.query.count()

    status['workers'] = []

    manager_status = redis_connection.hgetall('redash:status')
    status['manager'] = manager_status
    status['manager']['outdated_queries_count'] = len(
        models.Query.outdated_queries())

    queues = {}
    for ds in models.DataSource.query:
        for queue in (ds.queue_name, ds.scheduled_queue_name):
            queues.setdefault(queue, set())
            queues[queue].add(ds.name)

    status['manager']['queues'] = {}
    for queue, sources in queues.iteritems():
        status['manager']['queues'][queue] = {
            'data_sources': ', '.join(sources),
            'size': redis_connection.llen(queue)
        }

    return status
Esempio n. 9
0
def get_queues_status():
    queues = {}

    for queue in get_queues():
        queues[queue] = {
            'size': redis_connection.llen(queue)
        }

    return queues
Esempio n. 10
0
def get_queues_status():
    return {
        **{
            queue: {
                "size": redis_connection.llen(queue)
            }
            for queue in get_celery_queues()
        },
        **{
            queue.name: {
                "size": len(queue)
            }
            for queue in Queue.all(connection=rq_redis_connection)
        },
    }
Esempio n. 11
0
def get_queues_status():
    return dict({queue: {'size': redis_connection.llen(queue)} for queue in get_celery_queues()}.items() +
                {queue.name: {'size': len(queue)} for queue in Queue.all(connection=redis_connection)}.items())