Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Propogate context for better span correlation of recording viewing #49142

Merged
merged 1 commit into from
Nov 21, 2024

Conversation

rosstimothy
Copy link
Contributor

Traces generated from playing back session recordings were incomplete due to the correct context not being used at various levels of the events and player code. This attempts to rectify that by setting the correct context.Context along the way.

@rosstimothy
Copy link
Contributor Author

rosstimothy commented Nov 18, 2024

Trace prior to this change:
image

Trace with this change:
image

@rosstimothy rosstimothy force-pushed the tross/playback_tracing branch from 9ee8754 to 76107ea Compare November 19, 2024 14:04
Traces generated from playing back session recordings were
incomplete due to the correct context not being used at various
levels of the events and player code. This attempts to rectify that
by setting the correct context.Context along the way.
@rosstimothy rosstimothy force-pushed the tross/playback_tracing branch from 76107ea to 0431952 Compare November 19, 2024 14:05
@rosstimothy rosstimothy marked this pull request as ready for review November 19, 2024 14:19
@rosstimothy rosstimothy added no-changelog Indicates that a PR does not require a changelog entry backport/branch/v15 backport/branch/v16 backport/branch/v17 labels Nov 19, 2024
@github-actions github-actions bot added audit-log Issues related to Teleports Audit Log size/sm labels Nov 19, 2024
Comment on lines +144 to +148
ctx := context.Background()
if cfg.Context != nil {
ctx = cfg.Context
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't it better to pass it as a first argument to New? I get New shouldn't get context, but it shouldn't start goroutines either. At least it'd be clearer it does something beyond creation. Or while changing the signature (adding a new argument) possibly renaming to Start or something is an option.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree the better approach would probably be to separate creating the Player from starting the playback. However, I wasn't sure that making such changes here was wise.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought Start(ctx context.Context, cfg *Config) (*Player, error) could both create and start the Player (same as New does now). Would it be a big change to replace New with that?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not really sure that's much better. I think I'd prefer splitting initialization of the player and starting the play back, though that has idempotency concerns.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree splitting this would be ideal, but I think we don't share the same concern. My worry is that there is a chance someone will forget to pass the context again. But let's not drill this any longer.

@rosstimothy rosstimothy added this pull request to the merge queue Nov 21, 2024
Merged via the queue into master with commit beec948 Nov 21, 2024
42 of 43 checks passed
@rosstimothy rosstimothy deleted the tross/playback_tracing branch November 21, 2024 13:55
@public-teleport-github-review-bot

@rosstimothy See the table below for backport results.

Branch Result
branch/v15 Failed
branch/v16 Failed
branch/v17 Create PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
audit-log Issues related to Teleports Audit Log backport/branch/v15 backport/branch/v16 backport/branch/v17 no-changelog Indicates that a PR does not require a changelog entry size/sm
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants