Portal Community

ProcessEngine / Flow Studio Metrics

Metric NameTypeLabelsDescription
bizfirst_workflow_executions_totalCountertenant_id, status (success|failed|timeout|cancelled)Total workflow executions by outcome
bizfirst_workflow_execution_duration_secondsHistogramtenant_id, workflow_idEnd-to-end workflow execution duration
bizfirst_active_executionsGaugetenant_idCurrently running workflow executions
bizfirst_node_executions_totalCountertenant_id, node_type, statusTotal node executions by type and outcome
bizfirst_node_execution_duration_secondsHistogramtenant_id, node_typeNode execution duration by type
bizfirst_node_errors_totalCountertenant_id, node_type, error_typeNode execution errors categorized by type

HIL (Human-in-the-Loop) Metrics

Metric NameTypeLabelsDescription
bizfirst_hil_pending_countGaugetenant_idCurrent HIL tasks awaiting human action
bizfirst_hil_suspensions_totalCountertenant_idTotal HIL suspension events
bizfirst_hil_suspension_duration_secondsHistogramtenant_id, outcome (approved|rejected|timeout)Time workflow was suspended waiting for human
bizfirst_hil_overdue_countGaugetenant_idHIL tasks past their SLA deadline

EdgeStream Metrics

Metric NameTypeLabelsDescription
bizfirst_edgestream_messages_totalCountertopic, tenant_id, statusTotal messages processed by EdgeStream
bizfirst_edgestream_delivery_duration_secondsHistogramtopic, tenant_idMessage delivery latency
bizfirst_edgestream_subscriber_countGaugetopicActive subscriber connections per topic
bizfirst_edgestream_queue_depthGaugetopicMessages in queue awaiting delivery

Octopus Agent Metrics

Metric NameTypeLabelsDescription
bizfirst_octopus_llm_calls_totalCountertenant_id, model, statusTotal LLM API calls
bizfirst_octopus_llm_duration_secondsHistogramtenant_id, modelLLM call duration
bizfirst_octopus_tokens_totalCountertenant_id, model, type (input|output)Token usage for cost tracking
bizfirst_octopus_memory_operations_totalCountertenant_id, memory_type, operationMemory store read/write operations
bizfirst_octopus_active_agentsGaugetenant_idCurrently active agent sessions

Adding Custom Metrics to Executors

Custom ExecutionNode executors can record additional metrics via the node execution context:

// In a custom executor — record a domain-specific metric
public override async Task<NodeResult> ExecuteAsync(NodeExecutionContext ctx)
{
    var stopwatch = Stopwatch.StartNew();

    // ... business logic ...

    // Record custom metric
    ctx.Metrics.Record("bizfirst.custom.invoice.processing.duration",
        stopwatch.Elapsed.TotalSeconds,
        new KeyValuePair<string, object?>("invoice.type", invoiceType),
        new KeyValuePair<string, object?>("tenant_id", ctx.TenantId));

    // Increment a custom counter
    ctx.Metrics.Add("bizfirst.custom.invoices.processed",
        1,
        new KeyValuePair<string, object?>("status", "success"));
}