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
b77899626e
Merge branch 'main' into iain/web-2928-bull-queue-fails-silently-if-it-cannot-connect-to-a-redis
2025-04-15 07:45:10 +01:00
Iain Sproat
08f9ca1d64
chore(server/logging): more metadata to preview consumption log ( #4388 )
2025-04-14 06:25:16 +02: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
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
9c21e4c596
remove unused test
2025-03-26 09:12:00 +00:00
Iain Sproat
ccca51b70d
fix missing await
2025-03-26 09:03:52 +00:00
Iain Sproat
b82e0dd370
Merge branch 'main' into iain/preview-service-handle-errors
2025-03-26 08:50:37 +00:00
Iain Sproat
a555fc1c1a
Merge branch 'main' into iain/web-2811-new-preview-service-pods-stuck-on-terminating
2025-03-25 16:32:55 +00:00
Kristaps Fabians Geikins
f76a2c34d3
chore: add no floating promises lint rule ( #4249 )
...
* chore: add no floating promises lint rule
* minor cleanup
* fix test by only running if node 22 or greater
---------
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com >
2025-03-25 13:36:49 +02:00
Iain Sproat
2dc32094d0
feat(helm chart): can be configured to deploy preview service in cluster
2025-03-15 11:31:40 +00:00
Iain Sproat
6e170d0c4f
fix(docker compose): preview service can be used with docker compose
2025-03-15 10:43:40 +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
bb57e1a5fa
fix(preview service): handle errors and failures
2025-03-12 13:08:27 +00:00
Iain Sproat
5804ee4b50
fix(preview service): handle shutdown via terminus
2025-03-12 09:28:38 +00:00
Iain Sproat
6065a44890
Merge pull request #4162 from specklesystems/gergo/previewRenderMetrics
...
feat(preview-service): add load and render duration calculation to preview service
2025-03-12 09:20:50 +00:00
Iain Sproat
d2067f7e48
fix(preview service): attempt to prevent duplicate jobs ( #4155 )
...
* fix(preview service): attempt to prevent duplicate jobs
* fix test
* Incorporate review comments
* add tests
2025-03-11 17:17:52 +01: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
Iain Sproat
e795381bd2
fix(server): prometheus summary should be over rolling window
...
- currently it calculates based on all values from start, and should instead expire old buckets
https://github.com/siimon/prom-client?tab=readme-ov-file#configuration-2
2025-03-10 15:03:50 +00: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
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
5655b3e758
fix(metrics): pass registry in to modules ( #4113 )
...
- ensure metrics are added to the correct registry
2025-03-06 08:37:05 +00:00
Iain Sproat
ce08e5e02d
refactor(server): logging directory renamed to observability ( #4077 )
2025-02-28 08:43:54 +00:00
Iain Sproat
1c0b6e228d
chore(server/middleware): allow CORS to be configurable ( #4018 )
...
- renames corsMiddleware to corsMiddlewareFactory to follow naming convention
- optionally allow cors middleware to be configured
- amend direct calls of `cors` package to now use middleware factory
2025-02-18 13:50:34 +00:00
Iain Sproat
0ce23be6f3
chore(logging): log messages related to a request should include request ID ( #3945 )
...
- this requires passing the request logger through to the method invoking the logger
2025-02-06 16:04:51 +00:00
Kristaps Fabians Geikins
8d0cbad8b6
feat(server): multi region blob support ( #3653 )
...
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com >
2024-12-10 09:05:18 +00:00
Iain Sproat
a0d2831201
fix(server/logging): use structured message template not string formatting ( #3619 )
...
- string formatting causes high cardinality of messages in the logging system
2024-12-03 16:37:38 +00:00
Gergő Jedlicska
ef043ee234
gergo/web 2158 previews module multi region ( #3492 )
...
* feat(previews): multi region previews module
* feat(preview-service): talk multi region
* fix(preview-service): test helper await
* fix(preview-service): remove linting issue, this prob makes it worse
2024-11-19 16:35:39 +01:00
Kristaps Fabians Geikins
4cf520be06
chore(server): core IoC #92 - getFormattedObjectFactory
2024-10-18 16:14:45 +03:00
Kristaps Fabians Geikins
c35fb98d20
chore(server): core IoC #86 - remaining commits.js service
2024-10-18 16:12:47 +03:00
Kristaps Fabians Geikins
8bd5980889
chore(server): core IoC #85 - legacyGetPaginatedStreamCommits
2024-10-17 14:22:10 +03:00
Kristaps Fabians Geikins
5b5dd201e2
chore(server): IoC 29 - getStream(s)Factory
2024-10-09 10:39:00 +03:00
Fabis
5948359b09
chore(server): core IoC 23 - getObjectCommitsWithStreamIdsFactory
2024-10-07 18:03:16 +03:00
Iain Sproat
92712a3035
fix(server/previews): fix factory method which require getStreams as parameter ( #3157 )
...
* fix(server/previews): fix factory to use getStreams as required
- convert javascript to typescript
* convert ogImage.js to ogImage.ts
* allow undefined angle to be provided
2024-09-28 15:00:02 +02:00
Kristaps Fabians Geikins
ca4ca7847d
chore(server): core IoC 14 - getCommitById cleanup
2024-09-27 14:13:16 +03:00
Kristaps Fabians Geikins
1ed43e2c2f
chore(server): previews IoC 5 - listenForPreviewGenerationUpdatesFactory
2024-09-13 16:45:21 +03:00
Kristaps Fabians Geikins
3677304ee3
chore(server): previews IoC 4 - checkStreamPermissionsFactory
2024-09-13 16:38:13 +03:00
Kristaps Fabians Geikins
468ebac67e
chore(server): previews IoC 3 - sendObjectPreviewFactory
2024-09-13 16:33:53 +03:00
Kristaps Fabians Geikins
44348a3c13
chore(server): previews IoC 2 - getObjectPreviewBufferOrFilepathFactory
2024-09-13 16:21:51 +03:00
Kristaps Fabians Geikins
6e23fe05cc
chore(server): previews IoC 1 - index.js repo
2024-09-13 16:07:38 +03:00
Kristaps Fabians Geikins
a9266333b4
fix(fe2): preview images being cached for too long ( #2399 )
...
* fix(fe2): preview images being cached for too long
* allowing caching of error previews
* updating cachebust value earlier
2024-06-19 16:26:35 +02:00
Kristaps Fabians Geikins
c7fdc6acc2
chore: updating ws everywhere to resolve SNYK-JS-WS-7266574 ( #2385 )
...
* chore: updating ws in various ways
* puppeteer upgrade
* updating codegen deps
* workspaces cmd update
* various extra fixes
* minor preview-service troubleshooting improvements
* dockerfile fixes
* hopefully fixing docker build fe2
* try again
* try large again
2024-06-18 13:26:01 +03:00
Kristaps Fabians Geikins
83d8035dc2
chore: upgrade to eslint 9 ( #2348 )
...
* root + server
* frontend
* frontend-2
* dui3
* dui3
* tailwind theme
* ui-components
* preview service
* viewer
* viewer-sandbox
* fileimport-service
* webhook service
* objectloader
* shared
* ui-components-nuxt
* WIP full config
* WIP full linter
* eslint projectwide util
* minor fix
* removing redundant ci
* clean up test errors
* fixed prettier formatting
* CI improvements
* TSC lint fix
* 'buildBatch' needs to be async since some batch types (like Text) require it. Removed a disabled liniting rule from ObjLoader
* removed unnecessary void
---------
Co-authored-by: AlexandruPopovici <alexandrupopoviciioan@gmail.com >
2024-06-12 14:38:02 +03:00
Kristaps Fabians Geikins
19fcdfcdf6
feat(fe2): optimizing preview image loading for a better LCP score ( #2178 )
...
* feat(fe2): optimizing preview image loading for better LCP
* added requestIdleCallback polyfill
* feat(fe2): load previews directly w/o blob urls
* enabling direct previews & improving image caching/preloading
* minor extra optimization
* hydration mismatch fix
2024-04-01 15:03:28 +03:00
Kristaps Fabians Geikins
37d51072fb
feat(server): resource limits on app tokens ( #1959 )
...
* WIP new mutation arg
* limited resource token creation done
* token resource rule creation validation
* updated authorizeResolver implementation
* introduced resource access rule checks in authorizeResolver everywhere
* more checks added
* updated projects resolvers
* updated stream resolvers
* more checks added
* error page theme resolution fix
* WIP testss
* more tests
* implemented checks in REST auth pipeline
* REST API coverage & tests
* some tests fixed
* test fixess
* added tests
* feat(server): new automation result reporting scope (#1976 )
* feat(server): new automation result reporting scope
* tests fix
2024-01-19 18:14:49 +01:00
Gergő Jedlicska
c2085d6b13
Hotfix/2.17 ( #1955 )
...
* gergo/apolloQueryDuration (#1949 )
* add apollo query duration
* feat: add more details to apollo query logging
* fix: pr review
* feat: format log messages as clef (#1950 )
* fix(logging): pinoClef log levels must be a string
* chore(fe2): reducing log level for some spammy req logs
* minor adjustment
* more robust path resolution
* better req log text
* feat(fe2): improved and more thorough logging to help with observability (#1948 )
* better req log text
* minor improvements to server logging
* WIP FE2 req logging
* FE2 apollo operation logging
* undid apolloPlugin changes due to Gergos PR
* seq message templates introduced
* fix: request logs (#1964 )
* fix: request logs
* chore: remove comments
* feat: add graphql subscription metrics (#1970 )
* optimized preview msg resultListener
* fix(server): locking to avoid postgres notification listeners processing the same message multiple times (#1972 )
* fix(server): locking to avoid postgres notification listeners processing the same message multiple times
* optimized locking
* minor cleanup
* msg update
* log level adjustments
* reduce failsafe expiry
---------
Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com >
Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com >
Co-authored-by: Kristaps Fabians Geikins <fabians@speckle.systems >
2024-01-17 16:39:33 +01:00