Skip to content

parca-dev/parca-demo

Repository files navigation

parca-demo

This parca-demo repository contains a minikube virtual machine that runs Kubernetes with Parca and the agent. You can choose to deploy demo applications in various languages to that cluster to check out each language's support.

Languages

Compiled languages such as C/C++, Rust and Go are currently supported. (There are some requirements though, binaries should be compiled with frame pointers and debug symbols. There are planned improvements for loosening these requirements.**)

We're actively working on improving support for other languages. Here is a list of issues where we track the progress:

Create an issue to discuss support for yet another language!

Contributions

Contributions are welcome! If you're missing a language you're interested in, please just add a directory with a Dockerfile and deployment.yaml.

Installation

You need to install minikube and some virtual machine hypervisor (virtualbox is our default choice).

Check out the start.sh and see if there is any parameter like CPUs and memory you want to tweak for running the virutal machine.

If you're happy with the parameters, start the VM by running:

$ ./start.sh

Once minikube is up and running you can deploy Parca and monitoring stack:

$ ./deploy-infra.sh

After that you can deploy the demo applications by running:

$ ./deploy-apps.sh

Available deployments:
  1 [ ] c
  2 [ ] cpp
  3 [ ] dotnet
  4 [ ] go-cgo
  5 [ ] go
  6 [ ] java
  7 [ ] julia
  8 [ ] nextjs
  9 [ ] nodejs
 10 [ ] php
 11 [ ] python
 12 [ ] rust
Type to check deployments (again to uncheck, ENTER when done):

Type in the number/name of the demos you want to deploy:

Type to check deployments (again to uncheck, ENTER when done): cpp 6 rust
Available deployments:
  1 [ ] c
  2 [X] cpp
  3 [ ] dotnet
  4 [ ] go-cgo
  5 [ ] go
  6 [X] java
  7 [ ] julia
  8 [ ] nextjs
  9 [ ] nodejs
 10 [ ] php
 11 [ ] python
 12 [X] rust
Type to check deployments (again to uncheck, ENTER when done):

Note: This will take some time to pull down base images and build each language's demo.

At the end, you should have a demo for each language in the cluster.

Tip: You can also deploy the demos in one line: ./deploy-apps.sh cpp java rust

Usage

Access Parca by port-forwarding to it by running: kubectl port-forward -n parca svc/parca 7070. Open http://localhost:7070/

Once you have selected the profile type you want to see (currently only CPU Samples), you can query for languages by using these selectors:


namespace="parca", pod=~"go-.*"
namespace="parca", pod=~"rust-.*"
namespace="parca", pod=~"python-.*"
namespace="parca", pod=~"nodejs-.*"
namespace="parca", pod=~"java-.*"

**

About

A collection of languages and frameworks profiled by Parca and Parca agent

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published