Skip to content

fix: stream provisioner logs #7712

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

Merged
merged 3 commits into from
May 31, 2023
Merged

Conversation

spikecurtis
Copy link
Contributor

fixes #7371

now that the pubsub gives in-order messages, and reports errors we can greatly simplify our code for streaming provisioner logs. We query for any historical logs, then wait for a kick from the pubsub to query for new logs or end the stream.

One other change while I was in this code is to switch the websocket to use the underlying message-oriented API for sending our JSON-encoded logs. This requires less processing (rather than running a byte stream over websocket message frames), and the Javascript clients assume that an entire log object is in a single frame, which is something we don't strictly guarantee in the old code, so it's less fragile.

Signed-off-by: Spike Curtis <spike@coder.com>
Signed-off-by: Spike Curtis <spike@coder.com>
Copy link
Member

@deansheather deansheather left a comment

Choose a reason for hiding this comment

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

I'm unsure about the guarantee of postgres subscriptions being active immediately when subscribing but I'm sure you've explored it to know it's reliable.

Signed-off-by: Spike Curtis <spike@coder.com>
@spikecurtis spikecurtis enabled auto-merge (squash) May 31, 2023 06:07
@spikecurtis spikecurtis merged commit 7c3dbbb into main May 31, 2023
@spikecurtis spikecurtis deleted the spike/7371-stream-provisioner-logs branch May 31, 2023 06:16
ammario pushed a commit that referenced this pull request Jun 1, 2023
* stream provisioner logs

Signed-off-by: Spike Curtis <spike@coder.com>

* Fix imports

Signed-off-by: Spike Curtis <spike@coder.com>

* Better logging, naming, arg order

Signed-off-by: Spike Curtis <spike@coder.com>

---------

Signed-off-by: Spike Curtis <spike@coder.com>
ammario pushed a commit to goodspark/coder that referenced this pull request Jun 1, 2023
* stream provisioner logs

Signed-off-by: Spike Curtis <spike@coder.com>

* Fix imports

Signed-off-by: Spike Curtis <spike@coder.com>

* Better logging, naming, arg order

Signed-off-by: Spike Curtis <spike@coder.com>

---------

Signed-off-by: Spike Curtis <spike@coder.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

regression: querying logs while job is running can miss some
2 participants