Exemple #1
0
def get_statistics_for_exception_group(exception_group_id, days_back=0):

    exception_group_id = ServicesTools.convert_to_object_id(exception_group_id)
    statistics = Database.Instance().statistics()

    key_date = datetime.datetime.utcnow() - timedelta(days=days_back) - timedelta(hours=24)
    key_date_start = datetime.datetime(key_date.year, key_date.month, key_date.day, key_date.hour, 0, 0)

    key_date = datetime.datetime.utcnow()
    key_date_end = datetime.datetime(key_date.year, key_date.month, key_date.day, key_date.hour, 0, 0)

    results = list(statistics.find(
                                    {'exception_group_id': exception_group_id, 
                                     'date': {'$gt': key_date_start, '$lt': key_date_end } 
                                    }
                                  ).sort('date', -1))

    stats = []
    sd = key_date_start

    for i in range(0, 24):
        s = [r for r in results if r['date'] == sd]
        if s:
            stats.append({'date': sd, 'count': s[0]['count'] })
        else:
            stats.append({'date': sd, 'count': 0 })

        sd = sd + timedelta(hours=1)
   
    return stats
def get_exceptions_groups(
    key,
    application,
    severity=None,
    status=False,
    start=0,
    maxrecs=20,
    since=None,
    sort="last_seen_on",
    sort_direction=-1,
):

    exception_groups = Database.Instance().exception_groups()

    application = ServicesTools.convert_to_object_id(application)

    query = {"key": key, "application": application, "status": status}

    if severity is not None:
        query["severity"] = severity

    if since:
        if type(since) != type(datetime.datetime.utcnow()):
            raise Exception('The value for the "since" parameter must be a datetime object')

        query["last_seen_on"] = {"$gt": since}

    group_exceptions = exception_groups.find(query).sort(sort, sort_direction).skip(start).limit(maxrecs)

    return group_exceptions
def get_statistics_for_application(application_id, severity=1, days_back=0):

    application_id = ServicesTools.convert_to_object_id(application_id)
    statistics = Database.Instance().statistics()

    key_date = datetime.datetime.utcnow() - timedelta(days=days_back) - timedelta(hours=24)
    key_date_start = datetime.datetime(key_date.year, key_date.month, key_date.day, key_date.hour, 0, 0)

    key_date = datetime.datetime.utcnow()
    key_date_end = datetime.datetime(key_date.year, key_date.month, key_date.day, key_date.hour, 0, 0)

    results = list(
        statistics.find(
            {
                "application_id": application_id,
                "severity": severity,
                "date": {"$gt": key_date_start, "$lt": key_date_end},
            }
        ).sort("date", -1)
    )

    stats = []
    sd = key_date_start

    for i in range(0, 24):
        s = [r for r in results if r["date"] == sd]
        if s:
            stats.append({"date": sd, "count": s[0]["count"]})
        else:
            stats.append({"date": sd, "count": 0})

        sd = sd + timedelta(hours=1)

    return stats
def gex_exceptions_in_group(exception_group_id, start=0, maxrecs=10):

    exception_group_id = ServicesTools.convert_to_object_id(exception_group_id)

    exceptions = Database.Instance().exceptions()
    return (
        exceptions.find({"exception_group_id": exception_group_id}).skip(start).limit(maxrecs).sort("insert_date", -1)
    )
Exemple #5
0
def _validate_key(key):

    key = ServicesTools.convert_to_object_id(key)
    accounts = Database.Instance().accounts()
    account = accounts.find_one({'_id': key })

    if not account: return False

    return True
def get_application_by_id(key, application_id):
    applications = Database.Instance().applications()

    application_id = ServicesTools.convert_to_object_id(application_id)

    d = {'key': key, '_id': application_id }
    app = applications.find_one(d)

    if not app:
        return None

    return app
def insert_application(key, application):
    applications = Database.Instance().applications()

    d = {'key': key, 
         'application': application,
         'url_name': ServicesTools.normalize_text_for_url(application) 
        }

    app = applications.find_one(d)

    if not app:
        d['count'] = 1
        return applications.save(d)

    return app['_id']
def archive_all_exception_group(application_id):

    exception_groups = Database.Instance().exception_groups()

    application_id = ServicesTools.convert_to_object_id(application_id)

    exception_groups.update({"application": application_id, "status": False}, {"$set": {"status": True}}, multi=True)

    applications = Database.Instance().applications()

    application = applications.find_one({"_id": application_id})
    application["count"] = 0
    application["0"] = 0
    application["1"] = 0
    application["2"] = 0
    application["3"] = 0
    applications.save(application)
Exemple #9
0
def archive_all_exception_group(application_id):

    exception_groups = Database.Instance().exception_groups()
    
    application_id = ServicesTools.convert_to_object_id(application_id)


    exception_groups.update({
                            'application': application_id, 
                            'status': False 
                            }, 
                            {'$set': {'status': True}}, multi=True)

    applications = Database.Instance().applications()
    
    application = applications.find_one({'_id': application_id })
    application['count'] = 0
    application['0'] = 0
    application['1'] = 0
    application['2'] = 0
    application['3'] = 0
    applications.save(application)
Exemple #10
0
def get_exception_group(exception_group_id):

    exception_group_id = ServicesTools.convert_to_object_id(exception_group_id)

    exception_groups = Database.Instance().exception_groups()
    return exception_groups.find_one({'_id': exception_group_id})