Мониторинг Workflows
Система мониторинга Temporal workflows предоставляет отслеживание выполнения бизнес-процессов (биллинг, ассистенты, компании, обмен сообщениями, инфраструктура).
Навигация
Standalone-страница Workflows в sidebar-группе System:
| Страница | URL | Описание |
|---|---|---|
| Workflows | /admin/workflows | Список всех workflow executions |
| Workflow Detail | /admin/workflows/:workflowId | Детали конкретного workflow |
Также workflows встроены как вкладки в связанные сущности:
| Сущность | URL | Описание |
|---|---|---|
| Subscription | /admin/subscriptions/:id/workflows | Workflows подписки |
| Company | /admin/companies/:id/workflows | Workflows компании |
| Assistant | /admin/assistants/:id/workflows | Workflows ассистента |
Интерфейсы
IWorkflowSummary
interface IWorkflowSummary {
workflowId: string;
runId: string;
workflowType: string; // "BillingLifecycleWorkflow" и др.
status: string; // RUNNING | COMPLETED | FAILED | CANCELLED | TERMINATED | TIMED_OUT
category: string; // billing | assistant | company | messaging | infrastructure
startTime: string;
closeTime?: string;
executionDurationMs?: number;
taskQueue: string;
extractedEntityId?: string;
extractedEntityType?: string;
}IWorkflowDetail
interface IWorkflowDetail extends IWorkflowSummary {
historyLength: number;
searchAttributes: Record<string, unknown>;
pendingActivities: IPendingActivity[];
input: unknown;
output: unknown;
failure?: Record<string, unknown>;
}IPendingActivity
interface IPendingActivity {
activityId: string;
activityType: string;
state: string;
attempt: number;
scheduledTime?: string;
lastFailure?: string;
}IWorkflowEvent
interface IWorkflowEvent {
eventId: string;
eventType: string;
timestamp: string;
details: Record<string, unknown>;
}IWorkflowStats
interface IWorkflowStats {
totalRunning: number;
totalFailed: number;
totalCompleted: number;
failedLast24h: number;
billingLifecycleRunning: number;
}Список Workflows
URL: /admin/workflows
Sidebar-list с фильтрацией по:
- Status — RUNNING, COMPLETED, FAILED, CANCELLED, TERMINATED, TIMED_OUT
- Category — billing, assistant, company, messaging, infrastructure
Поддерживает deep linking через query parameter status (например, /admin/workflows?status=FAILED).
Sidebar-элементы отображают workflow type с цветным badge статуса.
Детальная страница Workflow
URL: /admin/workflows/:workflowId
Содержит три вкладки:
Overview
Основная информация о workflow execution:
- Workflow ID, Run ID, Type, Status
- Task Queue
- Start Time, Close Time, Duration
- Extracted Entity (тип + ID)
- Pending Activities (если есть)
- Failure info (если workflow failed)
Timeline
Хронология всех событий выполнения (IWorkflowEvent[]):
- Event ID, Type, Timestamp
- Event details
I/O
Входные и выходные данные workflow:
- Input — параметры, с которыми был запущен workflow
- Output — результат выполнения (или ошибка)
WorkflowsService
@Injectable({ providedIn: "root" })
export class WorkflowsService {
private readonly api = inject(ApiService);
// Список workflows с фильтрами
getWorkflows(params?);
// Фильтры: workflowType, status, category, startTimeFrom, startTimeTo, entityId
// Детали workflow
getById(workflowId);
// История событий workflow
getHistory(workflowId);
// Workflows для конкретной бизнес-сущности
getByEntity(entityType, entityId, params?);
// Статистика
getStats();
// Billing lifecycle workflows
getBillingLifecycle(params?);
}Встроенные Workflow-вкладки
Компоненты SubscriptionWorkflowsComponent, CompanyWorkflowsComponent, AssistantWorkflowsComponent используют WorkflowsService.getByEntity() для отображения workflows конкретной сущности. Каждый workflow в списке кликабелен и ведёт на /admin/workflows/:workflowId.
Status Variants
getWorkflowStatusVariant(status: string)| Статус | Вариант |
|---|---|
| RUNNING | info |
| COMPLETED | success |
| FAILED | error |
| CANCELLED, TERMINATED, TIMED_OUT | warning |
Следующие шаги
- Биллинг — управление биллингом
- Интеграции — управление интеграциями