Ejemplo n.º 1
0
    def page_context(self):
        count = int(self.request.GET.get('changes', 1000))
        changes = list(get_recent_changes(get_db(), count))
        domain_counts = defaultdict(lambda: 0)
        doc_type_counts = defaultdict(lambda: 0)
        for change in changes:
            domain_counts[change['domain']] += 1
            doc_type_counts[change['doc_type']] += 1

        def _to_chart_data(data_dict):
            return [{
                'label': l,
                'value': v
            } for l, v in sorted(
                list(data_dict.items()), key=lambda tup: tup[1], reverse=True)
                    ][:20]

        return {
            'count': count,
            'recent_changes': changes,
            'domain_data': {
                'key': 'domains',
                'values': _to_chart_data(domain_counts)
            },
            'doc_type_data': {
                'key': 'doc types',
                'values': _to_chart_data(doc_type_counts)
            },
        }
Ejemplo n.º 2
0
def view_recent_changes(request):
    count = int(request.GET.get("changes", 1000))
    changes = list(get_recent_changes(get_db(), count))
    domain_counts = defaultdict(lambda: 0)
    doc_type_counts = defaultdict(lambda: 0)
    for change in changes:
        domain_counts[change["domain"]] += 1
        doc_type_counts[change["doc_type"]] += 1

    def _to_chart_data(data_dict):
        return [{"label": l, "value": v} for l, v in sorted(data_dict.items(), key=lambda tup: tup[1], reverse=True)][
            :20
        ]

    return render(
        request,
        "hqadmin/couch_changes.html",
        {
            "count": count,
            "recent_changes": changes,
            "domain_data": {"key": "domains", "values": _to_chart_data(domain_counts)},
            "doc_type_data": {"key": "doc types", "values": _to_chart_data(doc_type_counts)},
            "hide_filters": True,
        },
    )
Ejemplo n.º 3
0
def system_info(request):
    environment = settings.SERVER_ENVIRONMENT

    context = get_hqadmin_base_context(request)
    context['couch_update'] = request.GET.get('couch_update', 5000)
    context['celery_update'] = request.GET.get('celery_update', 10000)
    context['celery_flower_url'] = getattr(settings, 'CELERY_FLOWER_URL', None)

    # recent changes
    recent_changes = int(request.GET.get('changes', 50))
    context['recent_changes'] = get_recent_changes(get_db(), recent_changes)
    context['rabbitmq_url'] = get_rabbitmq_management_url()
    context['hide_filters'] = True
    context['current_system'] = socket.gethostname()
    context['last_deploy'] = HqDeploy.get_latest(environment)
    context['snapshot'] = context['last_deploy'].code_snapshot if context[
        'last_deploy'] else {}

    context.update(check_redis())
    context.update(check_rabbitmq())
    context.update(check_celery_health())
    context.update(check_memcached())
    context.update(check_es_cluster_health())

    return render(request, "hqadmin/system_info.html", context)
Ejemplo n.º 4
0
def get_last_change_for_doc_class(doc_class):
    """
    return _id and _rev of the last doc of `doc_type` in changes feed

    raise StopIteration if not found in last 100 changes
    """
    db = doc_class.get_db()
    doc_type = doc_class._doc_type
    return next((change['id'], change['rev'])
                for change in get_recent_changes(db, 100)
                if change['doc_type'] == doc_type)
Ejemplo n.º 5
0
def get_last_change_for_doc_class(doc_class):
    """
    return _id and _rev of the last doc of `doc_type` in changes feed

    raise StopIteration if not found in last 100 changes
    """
    db = doc_class.get_db()
    doc_type = doc_class._doc_type
    return (
        (change["id"], change["rev"]) for change in get_recent_changes(db, 100) if change["doc_type"] == doc_type
    ).next()
Ejemplo n.º 6
0
def system_info(request):

    def human_bytes(bytes):
        #source: https://github.com/bartTC/django-memcache-status
        bytes = float(bytes)
        if bytes >= 1073741824:
            gigabytes = bytes / 1073741824
            size = '%.2fGB' % gigabytes
        elif bytes >= 1048576:
            megabytes = bytes / 1048576
            size = '%.2fMB' % megabytes
        elif bytes >= 1024:
            kilobytes = bytes / 1024
            size = '%.2fKB' % kilobytes
        else:
            size = '%.2fB' % bytes
        return size

    context = get_hqadmin_base_context(request)
    context['couch_update'] = request.GET.get('couch_update', 5000)
    context['celery_update'] = request.GET.get('celery_update', 10000)
    context['celery_flower_url'] = getattr(settings, 'CELERY_FLOWER_URL', None)

    # recent changes
    recent_changes = int(request.GET.get('changes', 50))
    context['recent_changes'] = get_recent_changes(get_db(), recent_changes)


    context['rabbitmq_url'] = get_rabbitmq_management_url()

    context['hide_filters'] = True
    context['current_system'] = socket.gethostname()

    environment = settings.SERVER_ENVIRONMENT
    context['last_deploy'] = HqDeploy.get_latest(environment)

    context['snapshot'] = context['last_deploy'].code_snapshot if context['last_deploy'] else {}

    #redis status
    redis_status = ""
    redis_results = ""
    if 'redis' in settings.CACHES:
        rc = cache.get_cache('redis')
        try:
            import redis
            redis_api = redis.StrictRedis.from_url('redis://%s' % rc._server)
            info_dict = redis_api.info()
            redis_status = "Online"
            redis_results = "Used Memory: %s" % info_dict['used_memory_human']
        except Exception, ex:
            redis_status = "Offline"
            redis_results = "Redis connection error: %s" % ex
Ejemplo n.º 7
0
    def page_context(self):
        count = int(self.request.GET.get('changes', 1000))
        changes = list(get_recent_changes(get_db(), count))
        domain_counts = defaultdict(lambda: 0)
        doc_type_counts = defaultdict(lambda: 0)
        for change in changes:
            domain_counts[change['domain']] += 1
            doc_type_counts[change['doc_type']] += 1

        def _to_chart_data(data_dict):
            return [
                {'label': l, 'value': v} for l, v in sorted(list(data_dict.items()), key=lambda tup: tup[1], reverse=True)
            ][:20]

        return {
            'count': count,
            'recent_changes': changes,
            'domain_data': {'key': 'domains', 'values': _to_chart_data(domain_counts)},
            'doc_type_data': {'key': 'doc types', 'values': _to_chart_data(doc_type_counts)},
        }
Ejemplo n.º 8
0
def view_recent_changes(request):
    count = int(request.GET.get('changes', 1000))
    changes = list(get_recent_changes(get_db(), count))
    domain_counts = defaultdict(lambda: 0)
    doc_type_counts = defaultdict(lambda: 0)
    for change in changes:
        domain_counts[change['domain']] += 1
        doc_type_counts[change['doc_type']] += 1

    def _to_chart_data(data_dict):
        return [
            {'label': l, 'value': v} for l, v in sorted(data_dict.items(), key=lambda tup: tup[1], reverse=True)
        ][:20]

    return render(request, 'hqadmin/couch_changes.html', {
        'count': count,
        'recent_changes': changes,
        'domain_data': {'key': 'domains', 'values': _to_chart_data(domain_counts)},
        'doc_type_data': {'key': 'doc types', 'values': _to_chart_data(doc_type_counts)},
        'hide_filters': True,
    })
Ejemplo n.º 9
0
def view_recent_changes(request):
    count = int(request.GET.get('changes', 1000))
    changes = list(get_recent_changes(get_db(), count))
    domain_counts = defaultdict(lambda: 0)
    doc_type_counts = defaultdict(lambda: 0)
    for change in changes:
        domain_counts[change['domain']] += 1
        doc_type_counts[change['doc_type']] += 1

    def _to_chart_data(data_dict):
        return [
            {'label': l, 'value': v} for l, v in sorted(data_dict.items(), key=lambda tup: tup[1], reverse=True)
        ][:20]

    return render(request, 'hqadmin/couch_changes.html', {
        'count': count,
        'recent_changes': changes,
        'domain_data': {'key': 'domains', 'values': _to_chart_data(domain_counts)},
        'doc_type_data': {'key': 'doc types', 'values': _to_chart_data(doc_type_counts)},
        'hide_filters': True,
    })
Ejemplo n.º 10
0
def system_info(request):
    environment = settings.SERVER_ENVIRONMENT

    context = get_hqadmin_base_context(request)
    context['couch_update'] = request.GET.get('couch_update', 5000)
    context['celery_update'] = request.GET.get('celery_update', 10000)
    context['celery_flower_url'] = getattr(settings, 'CELERY_FLOWER_URL', None)

    # recent changes
    recent_changes = int(request.GET.get('changes', 50))
    context['recent_changes'] = get_recent_changes(get_db(), recent_changes)
    context['rabbitmq_url'] = get_rabbitmq_management_url()
    context['hide_filters'] = True
    context['current_system'] = socket.gethostname()
    context['deploy_history'] = HqDeploy.get_latest(environment, limit=5)

    context.update(check_redis())
    context.update(check_rabbitmq())
    context.update(check_celery_health())
    context.update(check_memcached())
    context.update(check_es_cluster_health())

    return render(request, "hqadmin/system_info.html", context)
Ejemplo n.º 11
0
 def handle(self, *args, **options):
     limit = int(args[0]) if args else 500
     for row in get_recent_changes(get_db(), limit):
         print '{domain},{doc_type},{id},{rev}'.format(**row)