|
58 | 58 | from keep.api.models.db.preset import * # pylint: disable=unused-wildcard-import
|
59 | 59 | from keep.api.models.db.provider import * # pylint: disable=unused-wildcard-import
|
60 | 60 | from keep.api.models.db.rule import * # pylint: disable=unused-wildcard-import
|
| 61 | +from keep.api.models.db.system import * # pylint: disable=unused-wildcard-import |
61 | 62 | from keep.api.models.db.tenant import * # pylint: disable=unused-wildcard-import
|
62 | 63 | from keep.api.models.db.topology import * # pylint: disable=unused-wildcard-import
|
63 | 64 | from keep.api.models.db.workflow import * # pylint: disable=unused-wildcard-import
|
@@ -4482,3 +4483,46 @@ def get_resource_ids_by_resource_type(
|
4482 | 4483 | # Execute the query and return results
|
4483 | 4484 | result = session.exec(query)
|
4484 | 4485 | return result.all()
|
| 4486 | + |
| 4487 | +def get_or_creat_posthog_instance_id( |
| 4488 | + session: Optional[Session] = None |
| 4489 | + ): |
| 4490 | + POSTHOG_INSTANCE_ID_KEY = "posthog_instance_id" |
| 4491 | + with Session(engine) as session: |
| 4492 | + system = session.exec(select(System).where(System.name == POSTHOG_INSTANCE_ID_KEY)).first() |
| 4493 | + if system: |
| 4494 | + return system.value |
| 4495 | + |
| 4496 | + system = System( |
| 4497 | + id=str(uuid4()), |
| 4498 | + name=POSTHOG_INSTANCE_ID_KEY, |
| 4499 | + value=str(uuid4()), |
| 4500 | + ) |
| 4501 | + session.add(system) |
| 4502 | + session.commit() |
| 4503 | + session.refresh(system) |
| 4504 | + return system.value |
| 4505 | + |
| 4506 | +def get_activity_report( |
| 4507 | + session: Optional[Session] = None |
| 4508 | + ): |
| 4509 | + from keep.api.models.db.user import User |
| 4510 | + |
| 4511 | + last_24_hours = datetime.utcnow() - timedelta(hours=24) |
| 4512 | + activity_report = {} |
| 4513 | + with Session(engine) as session: |
| 4514 | + activity_report['tenants_count'] = session.query(Tenant).count() |
| 4515 | + activity_report['providers_count'] = session.query(Provider).count() |
| 4516 | + activity_report['users_count'] = session.query(User).count() |
| 4517 | + activity_report['last_24_hours_incidents_count'] = session.query(Incident).filter( |
| 4518 | + Incident.creation_time >= last_24_hours).count() |
| 4519 | + activity_report['last_24_hours_alerts_count'] = session.query(Alert).filter( |
| 4520 | + Alert.timestamp >= last_24_hours).count() |
| 4521 | + activity_report['last_24_hours_rules_created'] = session.query(Rule).filter( |
| 4522 | + Rule.creation_time >= last_24_hours).count() |
| 4523 | + activity_report['last_24_hours_workflows_created'] = session.query(Workflow).filter( |
| 4524 | + Workflow.creation_time >= last_24_hours).count() |
| 4525 | + activity_report['last_24_hours_workflows_executed'] = session.query(WorkflowExecution).filter( |
| 4526 | + WorkflowExecution.started >= last_24_hours).count() |
| 4527 | + |
| 4528 | + return activity_report |
0 commit comments