Local Observability
Configure observability hooks when creating a flow:Available Hooks
Flow-Level Hooks
| Hook | Trigger | Context |
|---|---|---|
onFlowStart | Flow execution begins | flowId, executionId, input, metadata |
onFlowEnd | Flow completes successfully | duration, output, stats, traceContext |
onFlowError | Flow fails | error, errorCode, failedAtStepIndex |
Step-Level Hooks
| Hook | Trigger | Context |
|---|---|---|
onStepStart | Step execution begins | stepId, stepIndex, stepType, provider, model |
onStepEnd | Step completes successfully | duration, output, usage, cost |
onStepError | Step fails | error, willRetry, retryAttempt |
Consensus Hooks
| Hook | Trigger | Context |
|---|---|---|
onConsensusStart | Consensus voting begins | runsPlanned, strategy |
onConsensusRunComplete | Individual run completes | runIndex, output, status |
onConsensusComplete | All runs complete | agreement, agreedOutput, totalCost |
Batch/forEach Hooks
| Hook | Trigger | Context |
|---|---|---|
onBatchStart | forEach begins | totalItems, batchId |
onBatchItemEnd | Single item processed | itemIndex, result, status |
onBatchEnd | All items processed | successfulItems, failedItems |
Provider-Level Hooks
| Hook | Trigger | Context |
|---|---|---|
onProviderRequest | API request sent | provider, model, input |
onProviderResponse | API response received | output, usage, cost, httpStatusCode |
onProviderRetry | Request will retry | error, attemptNumber, nextRetryDelay |
Cloud Observability
Send execution events to the Doclo Cloud dashboard for monitoring and analytics.Using createCloudObservability
Configuration Options
| Option | Type | Default | Description |
|---|---|---|---|
client | DocloClient | Required | Doclo client instance |
flowId | string | Required | Flow ID for tracking |
flowVersion | string | - | Flow version |
mode | 'stream' | 'batch-at-end' | 'stream' | When to send events |
flushIntervalMs | number | 5000 | Flush interval (0 = immediate) |
batchSize | number | 50 | Events before auto-flush |
maxRetries | number | 3 | Retry attempts for failed sends |
retryDelayMs | number | 1000 | Base retry delay |
maxBufferSize | number | 1000 | Max buffered events |
includeInputs | boolean | false | Include input data in events |
includeOutputs | boolean | false | Include output data in events |
onError | function | - | Called when events are dropped |
Transport Modes
Stream Mode (Default)
Events are sent periodically during execution for real-time dashboard updates:flushIntervalMs: 0 for immediate per-event sending:
Batch-at-End Mode
Events are collected and sent only whenflush() is called: