Eclipse Che 6.15, 6.16, and 6.17 Release Notes
Monitoring and tracing; CORS configuration; update Factory and Containers plugins; New stacks
Happy New Year to everyone from the Eclipse Che community! The development team has been hard at work and we have had three regularly scheduled releases in the last few weeks. Here are the highlights from those releases.
Combined the releases bring a number of improvements to security, monitoring and plugins:
- Improvements and more metrics for tracing and monitoring
- New framework for configuring Cross-Origin Resource Sharing (CORS)
- Updated version of Tomcat for the Che Server
- New Factory and Container plug-in releases
- New PostgreSQL + NodeJS stack
Che is a cloud IDE and containerized workspace server — get started on:
- Kubernetes (single-user or multi-user)
- OpenShift (single-user or multi-user)
- Docker (single-user or multi-user)
- Try Eclipse Che live at https://che.openshift.io
Learn more in our documentation and start using a shared Che server or local instance today.
Tracing and Monitoring Improvements
Exposing Che Metrics to Prometheus (v6.15)
Metrics from the Che server can now be exposed in a format which can be consumed by Prometheus, a powerful and popular monitoring and alerting toolkit for Kubernetes.
To enable this feature, set the environment variable
CHE_METRICS_ENABLED=true for the Che deployment. A variety of metrics will then be exposed from the JVM, class loader, and Tomcat server.
We have also added the support for collecting tracing data by deploying Jaeger in the Eclipse Che Helm chart. This gives the Che administrator the ability to get fine-grained information about the state of workspaces on the server.
Since the 6.14 release, Che has exposed tracing data about REST requests made to the workspace master server. This capability has been greatly enhanced in 6.15, with detailed information and reports about the progress of workspace operations, including timings of asynchronous jobs. This enables the server operators to gain more insight into the performance characteristics of the Che server and allows for better troubleshooting.
Prometheus and Grafana Deployed in Che Helm Chart (v6.16)
The Eclipse Che server has been emitting a number of metrics since the 6.15 release. To enable easier visualization of these metrics, the Helm chart for the Che server now also deploys a Prometheus server configured to scrape Che’s metrics and a Grafana server pre-configured with a sample dashboard.
To try it out, install Che’s Helm chart with
New Metrics for Workspace Status and Failures (v6.17)
The Prometheus metrics exposed by the Che server now include the
che_workspace_failure_total metrics, allowing users to track the count of workspaces per status, and the total number of failed workspaces. Server operators can see when workspaces are failing by using a
while tag, which recognizes
STOPPING values respectively. These new metrics enable operators to proactively identify when there are issues with workspaces.
Update /activity REST Endpoint (v6.16)
/activity REST endpoint for the workspace server can now return a set of workspace IDs that have been in certain state for a certain amount of time, enabling gathering of workspace activity metrics. This information is available only to users with a new
Related Pull Requests:
- Metrics Proof of Concept: https://github.com/eclipse/che/pull/11990
- Introducing Jaeger tracing support to the Che Helm chart: https://github.com/eclipse/che/pull/12049
- Workspace tracing: https://github.com/eclipse/che/pull/11924
- Publicize the number of workspaces per state as a Prometheus metric: https://github.com/eclipse/che/pull/12270
- Add filter ti track 5xx errors in Prometheus: https://github.com/eclipse/che/pull/12284
- Add Prometheus and Grafana to the Helm chart: https://github.com/eclipse/che/pull/12088
- Workspace activity metrics: https://github.com/eclipse/che/pull/12177
Preparing for CORS Changes
CORS stands for Cross-Origin Resource Sharing. It is a mechanism which is used to allow one domain to dynamically request resources from another domain in a secure manner. Typically, if a web front-end requests a file from another domain, browsers prevent this access, to keep users safe from cross-site scripting attacks. However, the owner of the website can signal to the browser that certain domains can be accessed from scripts by including a CORS header in the HTTP request.
Alterable CORS Configuration (v6.15)
To prepare for a major change in the handling of CORS in the next release of Che, we added the ability to change CORS configuration through environment variables at deployment time, and to enable testing of configuration which will be compatible with Tomcat 8.5.35.
The environment variables available for configuration are:
CHE_CORS_ALLOW__CREDENTIALS- "cors.support.credentials". Default value is 'true'
CHE_CORS_ALLOWED__ORIGINS- "cors.allowed.origins". Default value is '*'
CHE_CORS_ENABLED- toggle to turn CORS on or off on WS Master. True by default
CHE_WSAGENT_CORS_ALLOWED__ORIGINS- This variable can be used to automatically propagate
CHE_CORS_ALLOWED__ORIGINSfor ws agents. It is created for easier testing of intended configuration.
Upgrade Tomcat, and Change CORS Configuration (v6.16)
We upgraded the Eclipse Che Server’s embedded Tomcat version to 8.5.35, which required some changes to our CORS configuration. This change adds some properties to allow communication between the IDE and the workspace agent, while requesting resources from the workspace master.
Related Pull Requests:
New NodeJS and PostgreSQL Stack (6.16)
We added a new stack to support multi-container NodeJS applications using PostgreSQL as the database. To try out this stack, you can use the
nodejs-rest-http-crud sample application with the
Nodejs and Postgres Stack when creating a new workspace in the user dashboard.
Related Pull Requests:
Use New Factory and Containers Plugins (v6.17)
The Factory and Containers plug-ins for Theia have received updates, and this release of Eclipse Che used the new releases of these plug-ins. The Containers plug-in enables a developer to see a list of containers in a developer workspace, with their status, and provides the ability to open a terminal for a selected container. The Factory plug-in enables Theia to retrieve a factory definition, check out the right branch of the source code, and perform any post-initialization actions once the workspace has been initialized by the Che workspace manager.
We have also evolved the Factory capability of Eclipse Che to use the new
devfile format, which is a new and improved way to define a developer workspace for Che and other developer workspace managers.
Related Pull Requests:
The Che team has made over 160 changes in these three releases, touching every part of the project. It is difficult to do them justice here, you can read the full ChangeLog in the project’s source code repository.
The Eclipse Che project is always looking for user feedback and new contributors! Find out how you can get involved and help make Che even better.