Run Universal Profiling on self-hosted Elastic stack

edit

Run Universal Profiling on self-hosted Elastic stack

edit

This functionality is in beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features.

To run Universal Profiling on self-hosted Elastic stack, you need an appropriate license.

Here you’ll find information on running Universal Profiling when hosting the Elastic stack on your own infrastructure.

Universal Profiling consists of a client part (the Universal Profiling Agent) and a server part (the backend). This documentation focuses on the server part.

Prerequisites

edit
  • Elastic stack: minimum version 8.12.0, on any Linux distribution (x86_64 or ARM64 architectures), with a Kernel 4.x or higher.
  • ECE: minimum version 3.7.0, using the 8.12.0 stackpack or higher.
  • Kubernetes: version 1.22+, using Helm charts.

For Elastic Cloud on Kubernetes (ECK), the Universal Profiling backend can be installed using helm charts in standalone mode. Once installed, you can connect the profiling backend to an existing ECK-managed stack. Currently, we do not have Profiling Operators and the CRDs necessary for running the Profiling backend natively in ECK.

Supported platforms
edit

The following platforms were tested and successfully ran the Universal Profiling backend.

Platform OS Details

Linux x86_64, ARM64

Ubuntu 20.04 LTS

  • ✅ DEB package from the repository
  • ✅ Docker
  • ✅ Binary

Linux x86_64, ARM64

Ubuntu 22.04 LTS

  • ✅ DEB package from the repository
  • ✅ Docker
  • ✅ Binary

Linux x86_64, ARM64

Debian Bullseye

  • ✅ DEB package from the repository
  • ✅ Docker
  • ✅ Binary

Linux x86_64, ARM64

Debian Bookworm

  • ✅ DEB package from the repository
  • ✅ Docker
  • ✅ Binary

Linux x86_64, ARM64

Fedora 37

  • ✅ YUM package from the repository
  • ✅ Docker
  • ✅ Binary

Linux x86_64, ARM64

Fedora 38

  • ✅ YUM package from the repository
  • ✅ Docker
  • ✅ Binary

Linux x86_64, ARM64

RHEL 9.3

  • ✅ YUM package from the repository
  • ✅ Docker
  • ✅ Binary

Linux x86_64, ARM64

RHEL 8.9

  • ✅ YUM package from the repository
  • ✅ Docker
  • ✅ Binary

Linux x86_64, ARM64

openSUSE Leap

  • ✅ Docker
  • ✅ Binary

Linux x86_64, ARM64

SUSE Linux Enterprise 15

  • ✅ Docker
  • ✅ Binary

Kubernetes 1.25, 1.26, 1.27

Linux x86_64/ARM64

  • ✅ Helm charts

Architecture overview

edit

The backend is made up of two services: the collector and the symbolizer.

  • The collector receives profiling data from the Universal Profiling Agents and sends it to Elasticsearch. It listens on an HTTP server and serves a gRPC endpoint.
  • The symbolizer processes debug symbols that are not available on the Universal Profiling Agent, and symbolizes native frames from OS packages. It also listens on an HTTP server and serves an endpoint to upload private debug symbols. Refer to Adding symbols for more information on the importance of adding symbols.
profiling self managed ingestion architecture