EclipseFdn / EclipseFdn/open-vsx.org
ensure SLO for server availability
- Dominant language
- TypeScript
- Stars
- 394
- Forks
- 145
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 3
Description
Please consider implement request duration and failure rate metrics for OpenVSX server to ensure availability.
In our experience [RED metrics]( https://www.weave.works/blog/the-red-method-key-metrics-for-microservices-architecture/) are good fit for this. @amvanbaren suggested to use [spring-metrics](https://docs.spring.io/spring-metrics/docs/current/public/prometheus) to collect data for prometheus.
At Gitpod we rely on OpenVSX server responsiveness while users starting workspaces. If a request to OpenVSX fails then workspace is mostly unusable since VS Code frontend times out in 1 min. We have been working on SLO of 99% of extensions availability and built a caching proxy which allows us to serve 70%-90% of requests for 3 days while OpenVSX is down.
But it is not enough to achieve the goal though. We need to ensure that the issue gets recognised and addressed in OpenVSX itself before users notice it. In the past it was not a case, i.e. https://www.eclipsestatus.io/ usually did not get updated before some Gitpod user ping us and then we reach out to @eclipsewebmaster. Usually we already have a full blown incident by this moment. Unfortunately it is tricky for us to figure out whether there is a real issue with upstream from the proxy, since we are not only client and a request failure can be caused by the proxy itself. The OpenVSX server looks to be a proper place to address the issue.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the OpenVSX server request-handling entry points and any existing metrics configuration. Review the linked RED metrics and Prometheus references to determine how request duration and failure rate should be collected. Done means these metrics support recognizing availability problems before users report them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- prometheus, typescript
- Domain
- backend, observability
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100