Skip to content

Commit

Permalink
add blog post about the release v0.50.0
Browse files Browse the repository at this point in the history
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
  • Loading branch information
Nexucis committed Jan 15, 2025
1 parent 6ff89d4 commit e421680
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 0 deletions.
Binary file added docs/assets/images/blog/v050/reorder-columns.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file added docs/blog/index.md
Empty file.
64 changes: 64 additions & 0 deletions docs/blog/posts/v0.50.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
date: 2025-01-15
categories:
- release
---

# Release v0.50.0

## Migration

One of the greatest content of this release is the migration that has been drastically improved.

Since the beginning of the project, we have been willing to provide an easy way to migrate dashboards from Grafana to
Perses. As a reminder you can migrate a Grafana dashboard using the HTTP endpoint `/api/migrate` or the UI or the CLI
that consumes this endpoint.

The big issue with this feature was the memory leak that was hidden and not that easy to trigger.
(See [issue #2039](https://github.com/perses/perses/issues/2039))

This was a big blocker for the migration and one of the main reasons why Amadeus was not able to migrate to Perses.
Amadeus has a huge amount of dashboards, and the memory leak was too important to be ignored.
To give you an idea, the memory leak was about **40GB** after migrating **3000 dashboards**. (~ 3MB per dashboard)

As you may know, we are using Cuelang for the Perses plugin validation, and at first we implemented a complete way to
migrate using Cuelang only.
The idea behind was to append every migration script (one for each panel, variable, queries) to the main one.
Then the Grafana JSON was converted to a Cuelang value, and we were applying the migration script to this value.

With the v0.50.0, we are changing deeply and only internally the way it's working. It doesn't change anything for the
user, but it's a huge improvement for the maintainability and the performance of the migration.

We have entirely rewritten the migration process. It is now using a hybrid system partially written in Golang and the
rest in Cuelang when the plugins are involved. Thanks to this new system, the Cuelang files written to migrate the
panels, the variables and the queries can be validated and tested before the migration is applied.

Thanks to this change, we are happy to announce the memory leak has been fixed and the migration is now working
perfectly. We perform some benchmarks through the Amadeus infrastructure, now we are able to migrate their 3000
dashboards **without exceeding 1.5GB of memory**

// TODO add a screenshot showing the memory consumption

Finally, we’ve also addressed numerous updates to the migration process itself, incorporating fixes and enhancements to
better cover use cases raised by the community - thank you for your contributions!

## Status History panel

Thanks to [Alexander Belyakin](https://github.com/abelyakin) from the community, Perses is supporting a new Panel: the
Status History Panel.

The Status History panel provides a visual representation of the status of various metrics over time.
It allows users to track changes in the status of different metrics, making it easier to identify patterns, trends, and
anomalies.
This panel is particularly useful for monitoring the health and performance of systems, as it can display status changes
in a clear and concise manner.
The panel can be customized to show different statuses, such as up, down, warning, or any other user-defined states, and
it supports various visualization options to enhance the readability of the data.

And of course, this panel is fully compatible with the migration process.

![Status History panel](../../assets/images/blog/v050/status-history-panel.png)

## Table Panel improvements

![Table Panel reordering columns](../../assets/images/blog/v050/reorder-columns.gif)
3 changes: 3 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ extra:
# Multi repo support
plugins:
- search
- blog
- multirepo:
# (optional) tells multirepo to cleanup the temporary directory after site is built.
cleanup: true
Expand All @@ -93,6 +94,8 @@ plugins:
imports: [docs/*]
nav:
- 'Home': 'index.md'
- 'Blog':
- blog/index.md
- 'Docs':
- 'API':
- 'Introduction': 'perses/docs/api/README.md'
Expand Down

0 comments on commit e421680

Please sign in to comment.