Commit Graph

69 Commits

Author SHA1 Message Date
Kristaps Fabians Geikins 9688ef68ea fix(fe2): more fixes and performance improvements (#5281)
* fix(fe2): further preview image cleanup/optimization

* server log streaming

* more hydration mismatch fixes

* lint fix
2025-08-21 09:57:47 +03:00
Iain Sproat b960ba6f2a fix(preview service): relative import should use alias (#5075) 2025-07-15 12:22:03 +01:00
Daniel Gak Anagrov e6cd2ab441 feat(preview-service): re introduce preview service acceptance test (#5049)
* feat: basic structure for running tests

* feat: added test to ci

* feat: added server test (wip)

* refactor: restuctured entrypoint

* feat: added supertest

* fix: missing deps

* fix: test example ci

* fix: updated default envs

* feat: debug ci

* feat: switch browser

* fix: superadmin ci

* feat: try another image

* fix: try another image with node

* fix: mr comments

* fix: ci job

* chore: workaround to push the image

* chore: try with new base image

* chore: retry

* chore: retry

* chore: retry

* chore: retry

* chore: retry

* fix: test via debug

* fix: envbar

* chore: wrapped up changes, cleaned mr

* chore: fix linter and skiped puppeteer download

* fix: removed paralelism

* fix: paralelism issues
2025-07-15 10:56:09 +02:00
Iain Sproat 4a58e66d99 feat(file importer): send skp to rhino parser (#4973) 2025-06-23 13:45:26 +01:00
Kristaps Fabians Geikins b406d0e32d chore(server): node16 & export maps support for server (#4698)
* chore(server): node16 & export maps support for server

* moar cleanup

* lint fixc
2025-05-12 14:27:34 +03:00
Gergő Jedlicska 2fdcf1bd1d refactor(shared): unified queue handling (#4691)
* feat(shared): unified queue initialization in shared

* feat(queues): use the new queue creation everywhere

* chore(shared): move to redis module

* chore(shared): fix export maps

* chore(fileimport): add deps properly

* fix(shared): import fix

* fix(everything): moear imports

* fix(server): cjs imports
2025-05-08 16:58:43 +02:00
Iain Sproat 6c8b715365 chore(shared): refactor previews in to worker directory
- add file imports to worker directory
2025-05-07 18:35:56 +02:00
Iain Sproat ee4218b870 fix(preview service): remove reference to library it cannot access 2025-04-22 14:42:13 +01:00
Iain Sproat 2adf7a97ae Merge pull request #4499 from specklesystems/iain/likes-time_ms
chore(readable code): use TIME_MS for readable durations
2025-04-22 09:48:19 +01:00
Iain Sproat 920099c39f chore(readable code): use TIME_MS for readable durations
- we recently added TIME_MS helper; this applies it to existing durations
2025-04-18 17:51:43 +01:00
Iain Sproat 66f3f6ff74 Gracefully handle preview-service shutdown 2025-04-11 13:33:30 +01:00
Iain Sproat 188518dd8c chore(preview service): include redis readiness check in healthcheck 2025-04-11 13:28:05 +01:00
Iain Sproat 2071a36e5d fix(previews): disable previews is previews Redis is not reachable
- exit preview-service process if Redis is not reachable
- improve server healthcheck to include Redis client readiness check
2025-04-11 13:25:19 +01:00
Iain Sproat af1acf3983 fix(preview service): check bull queue is ready before processing 2025-04-11 12:02:03 +01:00
Alexandru Popovici c1958d199d chore(preview-service): Chrome's passed args are logged (#4381)
* chore(preview-service): Chrome's passed args are logged

* improve log lines produced by preview service

---------

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2025-04-11 11:08:43 +03:00
Iain Sproat 1b18786281 chore(preview service): use gl-egl over vulkan 2025-04-08 18:05:24 +01:00
Iain Sproat 5fc2d5c089 Merge pull request #4180 from specklesystems/iain/preview-service-handle-errors
fix(preview service): handle errors and failures
2025-04-08 17:55:49 +01:00
Iain Sproat 35c83d62a8 Revert change already in another PR 2025-04-08 15:13:40 +01:00
Iain Sproat b66b19e1ac Remove duplication of browser close 2025-04-08 15:10:39 +01:00
Iain Sproat 58ed9fc58b Merge branch 'main' into iain/preview-service-handle-errors 2025-04-08 15:08:00 +01:00
Iain Sproat be9bbc234f Disable unnecessary chromium components 2025-04-08 14:56:05 +01:00
Iain Sproat bbadd643b9 chore(preview service): improve logging 2025-04-08 10:57:12 +01:00
Iain Sproat 65564acc5a feat(preview service): enable GPU rendering via Puppeteer 2025-04-07 17:34:31 +01:00
Iain Sproat 2433380a1c feat(helm chart): separate helm chart for preview service 2025-03-31 18:19:44 +01:00
Iain Sproat 33e32ed02c Add comments about role of shutdown process managing browser closure 2025-03-28 10:43:43 +00:00
Iain Sproat 0caaa7a264 SIGTERM could close browser before parent, resulting in race
- SIGTERM is no longer handled by puppeteer
2025-03-27 17:13:49 +00:00
Iain Sproat 3c753b5609 Use specific type 2025-03-27 15:49:16 +00:00
Iain Sproat 954d6d8871 Ensure browser is always closed 2025-03-27 15:46:57 +00:00
Iain Sproat 269b25d1a2 fix by using const 2025-03-27 15:32:54 +00:00
Iain Sproat d788253f92 fix 2025-03-27 14:52:06 +00:00
Iain Sproat d4c3ccd548 Use zod to split job id 2025-03-27 14:22:12 +00:00
Iain Sproat cab78143c2 Log as warning if app is shutting down 2025-03-27 13:35:53 +00:00
Iain Sproat dfd328f236 log job attempts made 2025-03-27 11:57:41 +00:00
Iain Sproat b82e0dd370 Merge branch 'main' into iain/preview-service-handle-errors 2025-03-26 08:50:37 +00:00
Iain Sproat 894cc16ac9 Merge branch 'main' into iain/web-2811-new-preview-service-pods-stuck-on-terminating 2025-03-13 11:27:03 +00:00
Iain Sproat f033953d33 Update objectpreview on error
- use const with explanatory variable names
2025-03-13 09:15:41 +00:00
Iain Sproat e06bad327f fix(preview service): use correct units for metrics (#4173) 2025-03-12 15:06:18 +01:00
Iain Sproat 8d81d65440 fix(preview service): ensure variables are defined within puppeteer scope 2025-03-12 12:01:34 +00:00
Iain Sproat 70a30e0795 fix(preview service): remove need for speckle shared in frontend (#4169)
* fix(preview service): remove need for speckle shared in frontend

* Add status for error logs
2025-03-12 12:28:54 +01:00
Iain Sproat 5804ee4b50 fix(preview service): handle shutdown via terminus 2025-03-12 09:28:38 +00:00
Iain Sproat e9a90717a4 Observe load and render times in metrics
- makes new durations optional (so requests in flight aren't dropped during deployment)
- Adds durations as a label to existing metric
- Attempt to produce durations in error cases (so we can see long load times etc..)
2025-03-11 12:56:21 +00:00
Gergő Jedlicska 3fc61c2dbd feat(preview-service): add load and render duration calculation to preview service 2025-03-11 12:59:50 +01:00
Iain Sproat 05d7a8fbe2 fix(preview service): expose metrics port via helm chart (#4150)
- remove obsolete references to metricsPort
- allow listen Host to be configured
2025-03-10 19:53:10 +01:00
Iain Sproat cfef333a0c feat(preview service): introduce /metrics endpoint for Prometheus (#4127) 2025-03-10 10:48:29 +00:00
Gergő Jedlicska a900aa3c7b fix(previews): logging and promise fixes (#4137) 2025-03-10 10:22:02 +01:00
Gergő Jedlicska fb0e67f136 fix(preview-service): timeout was already in milis (#4129) 2025-03-06 19:58:48 +01:00
Gergő Jedlicska 990a5fa056 fix(previews): add proper timeout, remove some leftover crap (#4128) 2025-03-06 17:40:26 +01:00
Gergő Jedlicska 61609de97e gergo/previews (#3765)
* feat(preview-generator): add new preview generator webapp

* wip(preview-service): reworking the preview service backend

* feat(previews): logging

* feat(preview-service): streamline payloads

* fix(preview-service): do not log the full payload

* feat(preview-service): build new preview service

* feat(preview-service): add separate response queue

* feat(previews): integrate preview queues with the server

* feat(previews): use module alias

* chore(previews): remove old preview service code

* feat(previews): log stuff on job statuses

* fix(previews): add missing deps and scripts

* fix(previews): package deps fix

* fix(server): moar typing fixes

* Metrics related to jobs: total count, request failures, response errors & durations

* duration should include unit.
- histogram metric should be summary
- error responses include duration in seconds
- attempt to remove metric before adding it (prevent errors with duplicate metrics)

* fix(server, frontend): some ts fixes

* fixes

* fix(frontend): remove unneeded ts-expect-error

* chore(preview-service): eslint

* TS fix

* feat(previews): more smoal fixes

* fix(preview-service): alias loading

* feat(helm): updates for new preview service queue setup

* feat(preview-service): launch new browser for each job

* feat(preview-service): add timeout, fix liveliness

* fix(helm): add access to new secret in service accounts

* tidy metrics into a separate file

* Remove broken preview service acceptance test

* fix broken import

* Add metrics to test

* feat(preview-service): handle preview service shutdown properly

* fix(previews): merge bork

---------

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
2025-03-06 14:26:56 +01:00
Iain Sproat 947f8fd4fa fix(server/database streams): remove event listener on batch completion (#3938) 2025-02-05 15:16:22 +00:00
Iain Sproat a4521d46a1 fix(logging): user-input issues should not be logged as error level (#3935)
* fix(logging): reduce user-input issues being logged as error

* error logging middleware should better handle caught errors
2025-02-05 15:08:10 +00:00