diff --git a/authentik/enterprise/tasks.py b/authentik/enterprise/tasks.py index df5fa54e7d..0d5a537a8d 100644 --- a/authentik/enterprise/tasks.py +++ b/authentik/enterprise/tasks.py @@ -1,6 +1,7 @@ """Enterprise tasks""" from authentik.enterprise.models import LicenseKey +from authentik.events.models import TaskStatus from authentik.events.system_tasks import SystemTask, prefill_task from authentik.root.celery import CELERY_APP @@ -10,3 +11,4 @@ from authentik.root.celery import CELERY_APP def enterprise_update_usage(self: SystemTask): """Update enterprise license status""" LicenseKey.get_total().record_usage() + self.set_status(TaskStatus.SUCCESSFUL) diff --git a/authentik/events/apps.py b/authentik/events/apps.py index a5ca9375a9..fdad4f9aa3 100644 --- a/authentik/events/apps.py +++ b/authentik/events/apps.py @@ -18,7 +18,7 @@ GAUGE_TASKS = Gauge( SYSTEM_TASK_TIME = Histogram( "authentik_system_tasks_time_seconds", "Runtime of system tasks", - ["tenant"], + ["tenant", "task_name", "task_uid"], ) SYSTEM_TASK_STATUS = Gauge( "authentik_system_tasks_status", diff --git a/authentik/events/models.py b/authentik/events/models.py index 5d78a3aa12..179d9edf29 100644 --- a/authentik/events/models.py +++ b/authentik/events/models.py @@ -651,6 +651,8 @@ class SystemTask(SerializerModel, ExpiringModel): ).set(self.duration) SYSTEM_TASK_TIME.labels( tenant=connection.schema_name, + task_name=self.name, + task_uid=self.uid or "", ).observe(self.duration) SYSTEM_TASK_STATUS.labels( tenant=connection.schema_name, diff --git a/authentik/events/system_tasks.py b/authentik/events/system_tasks.py index 2140128232..26535da80c 100644 --- a/authentik/events/system_tasks.py +++ b/authentik/events/system_tasks.py @@ -24,7 +24,7 @@ class SystemTask(TenantTask): # For tasks that should only be listed if they failed, set this to False save_on_success: bool - _status: Optional[TaskStatus] + _status: TaskStatus _messages: list[str] _uid: Optional[str] @@ -34,6 +34,7 @@ class SystemTask(TenantTask): def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) + self._status = TaskStatus.SUCCESSFUL self.save_on_success = True self._uid = None self._status = None