Skip to content

Мониторинг 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/workflowsWorkflows подписки
Company/admin/companies/:id/workflowsWorkflows компании
Assistant/admin/assistants/:id/workflowsWorkflows ассистента

Интерфейсы

IWorkflowSummary

typescript
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

typescript
interface IWorkflowDetail extends IWorkflowSummary {
	historyLength: number;
	searchAttributes: Record<string, unknown>;
	pendingActivities: IPendingActivity[];
	input: unknown;
	output: unknown;
	failure?: Record<string, unknown>;
}

IPendingActivity

typescript
interface IPendingActivity {
	activityId: string;
	activityType: string;
	state: string;
	attempt: number;
	scheduledTime?: string;
	lastFailure?: string;
}

IWorkflowEvent

typescript
interface IWorkflowEvent {
	eventId: string;
	eventType: string;
	timestamp: string;
	details: Record<string, unknown>;
}

IWorkflowStats

typescript
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

typescript
@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

typescript
getWorkflowStatusVariant(status: string)
СтатусВариант
RUNNINGinfo
COMPLETEDsuccess
FAILEDerror
CANCELLED, TERMINATED, TIMED_OUTwarning

Следующие шаги

SaaS Admin Documentation