OpenObserve® integration

  • dHENRY
  • 12/06/2023
  • (Reading time : 2 mn)

(**) Translated with

I’ve been interested for a while in the Zinc project, which has evolved into Openobserve, and allows you to store and analyze logs, traces and metrics from an infrastructure. We’ll talk more about capacity later, but I’ve already tested +7 million documents, and it’s going very fast (on X86_64).

Let’s move on to the Raspberry Pi 4 : Very complicated to find, like the raspberry PI, impossible to assemble the software on Raspberry PI4. OOMKilled at the end of the track. After several attempts, and for the POC, I ended up releasing the application web server part (web/dist), which is integrated directly into the executable, and it passed, obtaining a 66 MB executable.

I then had to build another container to serve the application content. Things done, I now have two containers that don’t deviate at all from the original source code, it’s just a bit of manipulation… and it works very well in the Kubernetes cluster (K8s on Raspberry PI4):

  • An API server container
  • A “container” to serve the web application, a simple command line “python3 -m http.server”, with a copy of the build (but without the static routes, for the moment…).

Installed 8 hours ago, and already +20000 Documents for the “System Logs” section (5 servers).

All ingestion is done via “Fluent-bit”.

It remains to be seen with the team to what extent they can (or cannot) find a solution for not embedding (as an option) the Web application source code in the executable…

P.S. : The Dockerfile.aarch64 (cross-compilation) doesn’t work on Rasbperry PI4, the compilation flags are not compatible with the Cortex-A72 CPU, and you get the “Illegal instruction” error at runtime.

For performance: 150 MB RAM and 50m CPU, with peaks at +400 Documents/second.

The entire discussion on Github +++

(**) Translated with

(*) Image Rendering Powered by