8000 feat(api): add tracing on getWorkflowRunHandler (#4329) · ovh/cds@3ef1e77 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Commit 3ef1e77

Browse files
fsaminyesnault
authored andcommitted
feat(api): add tracing on getWorkflowRunHandler (#4329 8000 )
1 parent 254a451 commit 3ef1e77

File tree

4 files changed

+23
-19
lines changed

4 files changed

+23
-19
lines changed

engine/api/api_routes.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ func (api *API) InitRouter() {
234234
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/latest", r.GET(api.getLatestWorkflowRunHandler))
235235
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/tags", r.GET(api.getWorkflowRunTagsHandler))
236236
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/num", r.GET(api.getWorkflowRunNumHandler), r.POST(api.postWorkflowRunNumHandler))
237-
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/{number}", r.GET(api.getWorkflowRunHandler, AllowServices(true)))
237+
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/{number}", r.GET(api.getWorkflowRunHandler, AllowServices(true), EnableTracing()))
238238
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/{number}/stop", r.POSTEXECUTE(api.stopWorkflowRunHandler, EnableTracing()))
239239
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/{number}/vcs/resync", r.POSTEXECUTE(api.postResyncVCSWorkflowRunHandler))
240240
r.Handle("/project/{key}/workflows/{permWorkflowName}/runs/{number}/resync", r.POST(api.resyncWorkflowRunHandler))

engine/api/workflow/dao_run.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ type LoadRunOptions struct {
4242
WithLightTests bool
4343
WithVulnerabilities bool
4444
DisableDetailledNodeRun bool
45-
Language string
45+
Language string
4646
}
4747

4848
// insertWorkflowRun inserts in table "workflow_run""
@@ -262,7 +262,13 @@ func LoadRunIDsWithOldModel(db gorp.SqlExecutor) ([]int64, error) {
262262
}
263263

264264
// LoadRun returns a specific run
265-
func LoadRun(db gorp.SqlExecutor, projectkey, workflowname string, number int64, loadOpts LoadRunOptions) (*sdk.WorkflowRun, error) {
265+
func LoadRun(ctx context.Context, db gorp.SqlExecutor, projectkey, workflowname string, number int64, loadOpts LoadRunOptions) (*sdk.WorkflowRun, error) {
266+
_, end := observability.Span(ctx, "workflow.LoadRun",
267+
observability.Tag(observability.TagProjectKey, projectkey),
268+
observability.Tag(observability.TagWorkflow, workflowname),
269+
observability.Tag(observability.TagWorkflowRun, number),
270+
)
271+
defer end()
266272
query := fmt.Sprintf(`select %s
267273
from workflow_run
268274
join project on workflow_run.project_id = project.id

engine/api/workflow_hook.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ func (api *API) postWorkflowJobHookCallbackHandler() service.Handler {
248248
if errP != nil {
249249
return sdk.WrapError(errP, "postWorkflowJobHookCallbackHandler> Cannot load project")
250250
}
251-
wr, err := workflow.LoadRun(tx, key, workflowName, number, workflow.LoadRunOptions{
251+
wr, err := workflow.LoadRun(ctx, tx, key, workflowName, number, workflow.LoadRunOptions{
252252
DisableDetailledNodeRun: true,
253253
})
254254
if err != nil {
@@ -302,7 +302,7 @@ func (api *API) getWorkflowJobHookDetailsHandler() service.Handler {
302302

303303
db := api.mustDB()
304304

305-
wr, err := workflow.LoadRun(db, key, workflowName, number, workflow.LoadRunOptions{
305+
wr, err := workflow.LoadRun(ctx, db, key, workflowName, number, workflow.LoadRunOptions{
306306
DisableDetailledNodeRun: true,
307307
})
308308
if err != nil {

engine/api/workflow_run.go

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ func (api *API) resyncWorkflowRunHandler() service.Handler {
278278
return sdk.WrapError(err, "unable to load projet")
279279
}
280280

281-
run, err := workflow.LoadRun(api.mustDB(), key, name, number, workflow.LoadRunOptions{})
281+
run, err := workflow.LoadRun(ctx, api.mustDB(), key, name, number, workflow.LoadRunOptions{})
282282
if err != nil {
283283
return sdk.WrapError(err, "Unable to load last workflow run [%s/%d]", name, number)
284284
}
@@ -311,12 +311,12 @@ func (api *API) getWorkflowRunHandler() service.Handler {
311311

312312
// loadRun, DisableDetailledNodeRun = false for calls from CDS Service
313313
// as hook service. It's needed to have the buildParameters.
314-
run, err := workflow.LoadRun(api.mustDB(), key, name, number,
314+
run, err := workflow.LoadRun(ctx, api.mustDB(), key, name, number,
315315
workflow.LoadRunOptions{
316316
WithArtifacts: true,
317317
WithLightTests: true,
318318
DisableDetailledNodeRun: getService(ctx) == nil,
319-
Language: r.Header.Get("Accept-Language"),
319+
Language: r.Header.Get("Accept-Language"),
320320
},
321321
)
322322
if err != nil {
@@ -338,7 +338,7 @@ func (api *API) stopWorkflowRunHandler() service.Handler {
338338
return err
339339
}
340340

341-
run, errL := workflow.LoadRun(api.mustDB(), key, name, number, workflow.LoadRunOptions{})
341+
run, errL := workflow.LoadRun(ctx, api.mustDB(), key, name, number, workflow.LoadRunOptions{})
342342
if errL != nil {
343343
return sdk.WrapError(errL, "stopWorkflowRunHandler> Unable to load last workflow run")
344344
}
@@ -440,7 +440,7 @@ func stopWorkflowRun(ctx context.Context, dbFunc func() *gorp.DbMap, store cache
440440
targetProject := wnr.OutgoingHook.Config[sdk.HookConfigTargetProject].Value
441441
targetWorkflow := wnr.OutgoingHook.Config[sdk.HookConfigTargetWorkflow].Value
442442

443-
targetRun, errL := workflow.LoadRun(dbFunc(), targetProject, targetWorkflow, *wnr.Callback.WorkflowRunNumber, workflow.LoadRunOptions{})
443+
targetRun, errL := workflow.LoadRun(ctx, dbFunc(), targetProject, targetWorkflow, *wnr.Callback.WorkflowRunNumber, workflow.LoadRunOptions{})
444444
if errL != nil {
445445
log.Error("stopWorkflowRun> Unable to load last workflow run: %v", errL)
446446
continue
@@ -501,7 +501,7 @@ func updateParentWorkflowRun(ctx context.Context, dbFunc func() *gorp.DbMap, sto
501501
return sdk.WrapError(err, "updateParentWorkflowRun> Cannot load project")
502502
}
503503

504-
parentWR, err := workflow.LoadRun(
504+
parentWR, err := workflow.LoadRun(ctx,
505505
dbFunc(),
506506
run.RootRun().HookEvent.ParentWorkflow.Key,
507507
run.RootRun().HookEvent.ParentWorkflow.Name,
@@ -534,7 +534,7 @@ func (api *API) getWorkflowNodeRunHistoryHandler() service.Handler {
534534
return err
535535
}
536536

537-
run, errR := workflow.LoadRun(api.mustDB(), key, name, number, workflow.LoadRunOptions{DisableDetailledNodeRun: true})
537+
run, errR := workflow.LoadRun(ctx, api.mustDB(), key, name, number, workflow.LoadRunOptions{DisableDetailledNodeRun: true})
538538
if errR != nil {
539539
return sdk.WrapError(errR, "getWorkflowNodeRunHistoryHandler")
540540
}
@@ -568,7 +568,7 @@ func (api *API) getWorkflowCommitsHandler() service.Handler {
568568
}
569569

570570
var wf *sdk.Workflow
571-
wfRun, errW := workflow.LoadRun(api.mustDB(), key, name, number, workflow.LoadRunOptions{DisableDetailledNodeRun: true})
571+
wfRun, errW := workflow.LoadRun(ctx, api.mustDB(), key, name, number, workflow.LoadRunOptions{DisableDetailledNodeRun: true})
572572
if errW != nil {
573573
wf, errW = workflow.Load(ctx, api.mustDB(), api.Cache, proj, name, deprecatedGetUser(ctx), workflow.LoadOptions{})
574574
if errW != nil {
@@ -692,7 +692,7 @@ func (api *API) stopWorkflowNodeRun(ctx context.Context, dbFunc func() *gorp.DbM
692692
return nil, sdk.WrapError(errS, "stopWorkflowNodeRunHandler> Unable to stop workflow node run")
693693
}
694694

695-
wr, errLw := workflow.LoadRun(tx, p.Key, workflowName, nodeRun.Number, workflow.LoadRunOptions{})
695+
wr, errLw := workflow.LoadRun(ctx, tx, p.Key, workflowName, nodeRun.Number, workflow.LoadRunOptions{})
696696
if errLw != nil {
697697
return nil, sdk.WrapError(errLw, "stopWorkflowNodeRunHandler> Unable to load workflow run %s", workflowName)
698698
}
@@ -802,9 +802,7 @@ func (api *API) postWorkflowRunHandler() service.Handler {
802802
var lastRun *sdk.WorkflowRun
803803
if opts.Number != nil {
804804
var errlr error
805-
_, next := observability.Span(ctx, "workflow.LoadRun")
806-
lastRun, errlr = workflow.LoadRun(api.mustDB(), key, name, *opts.Number, workflow.LoadRunOptions{})
807-
next()
805+
lastRun, errlr = workflow.LoadRun(ctx, api.mustDB(), key, name, *opts.Number, workflow.LoadRunOptions{})
808806
if errlr != nil {
809807
return sdk.WrapError(errlr, "postWorkflowRunHandler> Unable to load workflow run")
810808
}
@@ -1092,7 +1090,7 @@ func (api *API) getWorkflowRunArtifactsHandler() service.Handler {
10921090
return sdk.WrapError(errNu, "getWorkflowJobArtifactsHandler> Invalid node job run ID")
10931091
}
10941092

1095-
wr, errW := workflow.LoadRun(api.mustDB(), key, name, number, workflow.LoadRunOptions{WithArtifacts: true})
1093+
wr, errW := workflow.LoadRun(ctx, api.mustDB(), key, name, number, workflow.LoadRunOptions{WithArtifacts: true})
10961094
if errW != nil {
10971095
return errW
10981096
}
@@ -1290,7 +1288,7 @@ func (api *API) postResyncVCSWorkflowRunHandler() service.Handler {
12901288
return sdk.WrapError(errP, "postResyncVCSWorkflowRunHandler> Cannot load project")
12911289
}
12921290

1293-
wfr, errW := workflow.LoadRun(db, key, name, number, workflow.LoadRunOptions{DisableDetailledNodeRun: true})
1291+
wfr, errW := workflow.LoadRun(ctx, db, key, name, number, workflow.LoadRunOptions{DisableDetailledNodeRun: true})
12941292
if errW != nil {
12951293
return sdk.WrapError(errW, "postResyncVCSWorkflowRunHandler> Cannot load workflow run")
12961294
}

0 commit comments

Comments
 (0)
0