Dec 14 | 7 min read
Updates on Opstrace Integration into GitLab
Updates on Opstrace Integration into GitLab
Updates on Opstrace Integration into GitLab
This blog post and linked pages contain information related to upcoming products, features, and functionality.
It is important to note that the information presented is for informational purposes only. Please do not rely on this information for purchasing or planning purposes.
As with all projects, the items mentioned in this blog post and linked pages are subject to change or delay. The development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.
Observability is critical to running a successful DevOps practice, and we plan to add this capability into GitLab, The DevOps Platform. As a follow-up to the acquisition announcement in December, we wanted to share an update on our integration plans to help make open source observability more accessible for developers and organizations by creating an end-to-end tested and secure observability solution. We want to cover two key updates:
We are starting a new open source project to build a new observability user interface (UI), GitLab Observability UI. The project will be based on a fork of the last Apache-licensed branch (7.5.x) of Grafana. This approach will allow us to ensure that GitLab Observability UI is usable by a wide community of developers in a variety of scenarios such as embedding it into one's product to create custom tools or support embedding dashboards easily.
We are going to unify the backend for metrics, logs and traces on ClickHouse. Having them in different systems has been too limiting in trying to create a truly integrated experience. This is a point we will touch on a bit further down but will mainly develop in a future blog post. It is one of the main reasons for building our own UI, to be able to support future use cases and applications based on having all the data in a single queryable backend.
We’re excited to share progress on the Opstrace integration and how we are striving to be the first to include an integrated open source observability solution within a DevOps Platform. More details on these two changes are below:
New Observability User Interface
Why are we building a new observability UI?
The GitLab Observability UI will allow us to have a solid base to build upon and create a place where we can rapidly iterate on new use cases and ways to query and display data regardless of the type.
Additional features and functionality will include:
- Apache License, Version 2.0: Enables the UI to be embedded in GitLab and other companies’ existing products.
- Prometheus focused: Native Alerts and rules for Alert Manager.
- User Interface/User Experience (UI/UX) Features: Allows Opstrace to explore new UI/UX features without worrying about retro compatibility.
- Keyboard Driven: Ability to navigate with keyboard commands, shortcuts, keystrokes in addition to using the mouse/trackpad.
- Grafana Dashboard: Basic Grafana dashboard compatibility.
- Integration: Ease of integration into GitLab and ability to embed in other UIs.
- Innovation: The monitor and observability landscape for DevOps has evolved over the years with new user and business needs. GitLab Observability UI will allow for a unified experience around metrics, logs, traces and any other kind of observability event.
Why use Grafana as a base?
In the spirit of iteration, we focused on developing a usable, open source UI and getting it out to the community as soon as possible to allow users to contribute to the project. A fork of the last Apache-licensed branch (7.5.x) of Grafana is a great starting point as it includes key base features such as its plugin architecture. We believe this choice will allow us to innovate faster benefiting everyone in the community. Additionally, we will keep the Prometheus code, the explore view, and the dashboard system. We will also utilize the existing multi-user/tenant code that the Grafana fork contains.
Did you consider alternatives?
Yes, we considered writing a completely new code base from scratch, and also considered using other projects such as the OpenSearch dashboards project as a base. However, we decided to move forward with a Grafana fork Grafana as the base. We want to focus on metrics before logs and believe it will be more efficient than rewriting this functionality. Using an existing base allows us to move quickly and focus on an improved UX right away while being compatible with a wide range of existing Prometheus dashboards.
How about joining similar projects?
There are a few projects out there with similar goals but different approaches. We are starting with a project we can iterate on quickly for ours and our users’ needs. Eventually it will make sense to collaborate with other similar projects in the space.
What features will you implement first?
We will include basic functionality with the new GitLab Observability UI code base and explore view and dashboards for Prometheus backends. Additionally, we plan to add alerting and rules management for Alert Manager.
How is the new UI different from Opstrace?
This will be the default UI for Opstrace, we will add our own modules and features when this UI runs in an Opstrace/GitLab environment. The simplest way to take advantage of this will be with Opstrace but it can be run standalone or embedded into existing products.
When running in Opstrace, the UI will automatically be connected to a Prometheus backend and have modules for all existing Opstrace features like integrations. The configuration will be able to be Git-backed to allow for deeper integration with the GitLab DevOps Platform features.
ClickHouse Backend
What about logging or tracing?
Opstrace previously used Loki for its logging backend. We have removed Loki from our distribution since it’s not compatible with our license model. We are now developing our own Apache-licensed logging backend on top of ClickHouse. More details to come, please contribute any feedback or ideas to this early issue: https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/1584.
We have started with early support for tracing in Opstrace, using ClickHouse as a backend for Jaeger. This feature will enable anyone to use the OpenTelemetry collector to send tracing data into Opstrace. We have put together a demo video showing how it works, including how users can navigate traces sent to Optrace from the Kubernetes cluster running on a Raspberry PI. Nicholas Parker became a maintainer of the ClickHouse backend for Jaeger too.
You can follow the work here: https://gitlab.com/groups/gitlab-org/opstrace/-/epics/10
Timeline
Once we have a solid base that can be used for basic Prometheus tasks, we will start UX overhauls. We will provide more details on these overhauls in the project issues and in the Opstrace documentation.
There are a lot of goals with this project but one very important one is to get to the point where we have a single UI part of our single GitLab interface.
More to come on ClickHouse backend work for metrics, logs and traces in a future blog post.
Who can contribute?
Everyone can contribute! We encourage the community to contribute as the codebase is just starting: https://gitlab.com/gitlab-org/opstrace/opstrace-ui You can follow the work in https://gitlab.com/gitlab-org/opstrace and learn more in the FAQ in our community forum.