Skip to content

Commit e66e9b9

Browse files
committed
Include workflow instance and task id for task errors
1 parent badb1bf commit e66e9b9

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

internal/worker/workflow.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/cschleiden/go-workflows/backend/history"
1313
"github.com/cschleiden/go-workflows/backend/metrics"
1414
"github.com/cschleiden/go-workflows/core"
15+
"github.com/cschleiden/go-workflows/internal/log"
1516
"github.com/cschleiden/go-workflows/internal/metrickeys"
1617
im "github.com/cschleiden/go-workflows/internal/metrics"
1718
"github.com/cschleiden/go-workflows/internal/workflow"
@@ -63,6 +64,8 @@ func (wtw *WorkflowTaskWorker) Start(ctx context.Context) error {
6364

6465
// Complete implements TaskWorker.
6566
func (wtw *WorkflowTaskWorker) Complete(ctx context.Context, result *workflow.ExecutionResult, t *backend.WorkflowTask) error {
67+
logger := wtw.taskLogger(t)
68+
6669
state := result.State
6770
if state == core.WorkflowInstanceStateFinished || state == core.WorkflowInstanceStateContinuedAsNew {
6871
if t.WorkflowInstanceState != state {
@@ -76,7 +79,7 @@ func (wtw *WorkflowTaskWorker) Complete(ctx context.Context, result *workflow.Ex
7679
// Workflow is finished, explicitly evict from cache (if one is used)
7780
if wtw.cache != nil {
7881
if err := wtw.cache.Evict(ctx, t.WorkflowInstance); err != nil {
79-
wtw.logger.ErrorContext(ctx, "could not evict workflow executor from cache", "error", err)
82+
logger.ErrorContext(ctx, "could not evict workflow executor from cache", "error", err)
8083
}
8184
}
8285
}
@@ -85,7 +88,7 @@ func (wtw *WorkflowTaskWorker) Complete(ctx context.Context, result *workflow.Ex
8588

8689
if err := wtw.backend.CompleteWorkflowTask(
8790
ctx, t, t.WorkflowInstance, state, result.Executed, result.ActivityEvents, result.TimerEvents, result.WorkflowEvents); err != nil {
88-
wtw.logger.ErrorContext(ctx, "could not complete workflow task", "error", err)
91+
logger.ErrorContext(ctx, "could not complete workflow task", "error", err)
8992
return fmt.Errorf("completing workflow task: %w", err)
9093
}
9194

@@ -156,7 +159,7 @@ func (wtw *WorkflowTaskWorker) getExecutor(ctx context.Context, t *backend.Workf
156159

157160
if !ok {
158161
executor, err = workflow.NewExecutor(
159-
wtw.backend.Logger(),
162+
wtw.taskLogger(t),
160163
wtw.backend.Tracer(),
161164
wtw.registry,
162165
wtw.backend.Converter(),
@@ -178,3 +181,11 @@ func (wtw *WorkflowTaskWorker) getExecutor(ctx context.Context, t *backend.Workf
178181

179182
return executor, nil
180183
}
184+
185+
func (wtw *WorkflowTaskWorker) taskLogger(t *backend.WorkflowTask) *slog.Logger {
186+
return wtw.logger.With(
187+
slog.String(log.TaskIDKey, t.ID),
188+
slog.String(log.InstanceIDKey, t.WorkflowInstance.InstanceID),
189+
slog.String(log.ExecutionIDKey, t.WorkflowInstance.ExecutionID),
190+
)
191+
}

0 commit comments

Comments
 (0)