From 8bac14360d0e05e6130dac38c93bca9adabf3f96 Mon Sep 17 00:00:00 2001 From: Dmitry Filimonov Date: Tue, 18 Jul 2023 09:30:21 -0700 Subject: [PATCH] chore: deletes old files (#2015) --- og/benchmark/Dockerfile | 44 - og/benchmark/README.md | 80 - og/benchmark/architecture.svg | 4 - og/benchmark/cmd/command/banner.go | 26 - og/benchmark/cmd/command/ci-report.go | 93 - og/benchmark/cmd/command/command.go | 10 - og/benchmark/cmd/command/loadgen.go | 24 - og/benchmark/cmd/command/log.go | 11 - og/benchmark/cmd/command/queryprom.go | 40 - og/benchmark/cmd/command/root.go | 68 - og/benchmark/cmd/logging.go | 9 - og/benchmark/cmd/main.go | 16 - og/benchmark/config.env | 26 - og/benchmark/dangerfile.js | 8 - og/benchmark/docker-compose.ci.yml | 1 - og/benchmark/docker-compose.dev.yml | 23 - og/benchmark/docker-compose.yml | 91 - og/benchmark/grafana/dashboards/main.json | 1821 ------------- og/benchmark/grafana/dashboards/main.yml | 8 - .../grafana/datasources/prometheus.yml | 13 - og/benchmark/grafana/grafana.ini | 975 ------- og/benchmark/internal/cireport/cireport.go | 1 - .../internal/cireport/cireport_test.go | 16 - og/benchmark/internal/cireport/imagereport.go | 194 -- og/benchmark/internal/cireport/metareport.go | 117 - .../internal/cireport/metareport_test.go | 63 - .../cireport/resources/image-report.gotpl | 10 - .../cireport/resources/meta-report.gotpl | 14 - .../internal/cireport/resources/pr.gotpl | 19 - .../internal/cireport/screenshotter.go | 164 -- .../internal/cireport/screenshotter_test.go | 125 - og/benchmark/internal/cireport/tablereport.go | 170 -- .../internal/cireport/tablereport_test.go | 95 - .../cireport/testdata/metareport.golden | 5 - .../cireport/testdata/tablereport.golden | 11 - og/benchmark/internal/cireport/upload.go | 82 - og/benchmark/internal/config/config.go | 82 - og/benchmark/internal/config/interface.go | 18 - og/benchmark/internal/loadgen/loadgen.go | 327 --- og/benchmark/internal/loadgen/render.go | 56 - og/benchmark/internal/promquery/promquery.go | 59 - og/benchmark/internal/server/server.go | 85 - og/benchmark/package.json | 10 - og/benchmark/prometheus/prometheus.yml | 32 - og/benchmark/pyrobench-entrypoint.sh | 22 - og/benchmark/queries.yml | 15 - og/benchmark/server-entrypoint.sh | 17 - og/benchmark/server.yml | 11 - og/benchmark/start.sh | 12 - og/benchmark/yarn.lock | 1562 ------------ og/docs/agent_protocol.md | 2 - og/hacks/metrics-comparison/README.md | 13 - .../metrics-comparison/docker-compose.yml | 65 - og/hacks/metrics-comparison/golang/Dockerfile | 13 - og/hacks/metrics-comparison/golang/main.go | 43 - .../dashboards/comparing-dashboard.json | 2258 ----------------- .../grafana-provisioning/dashboards/main.yml | 8 - .../datasources/datasources.yml | 10 - .../metrics-comparison/grafana/grafana.ini | 975 ------- .../prometheus/prometheus.yml | 32 - 60 files changed, 10204 deletions(-) delete mode 100644 og/benchmark/Dockerfile delete mode 100644 og/benchmark/README.md delete mode 100755 og/benchmark/architecture.svg delete mode 100644 og/benchmark/cmd/command/banner.go delete mode 100644 og/benchmark/cmd/command/ci-report.go delete mode 100644 og/benchmark/cmd/command/command.go delete mode 100644 og/benchmark/cmd/command/loadgen.go delete mode 100644 og/benchmark/cmd/command/log.go delete mode 100644 og/benchmark/cmd/command/queryprom.go delete mode 100644 og/benchmark/cmd/command/root.go delete mode 100644 og/benchmark/cmd/logging.go delete mode 100644 og/benchmark/cmd/main.go delete mode 100644 og/benchmark/config.env delete mode 100644 og/benchmark/dangerfile.js delete mode 100644 og/benchmark/docker-compose.ci.yml delete mode 100644 og/benchmark/docker-compose.dev.yml delete mode 100644 og/benchmark/docker-compose.yml delete mode 100644 og/benchmark/grafana/dashboards/main.json delete mode 100644 og/benchmark/grafana/dashboards/main.yml delete mode 100644 og/benchmark/grafana/datasources/prometheus.yml delete mode 100644 og/benchmark/grafana/grafana.ini delete mode 100644 og/benchmark/internal/cireport/cireport.go delete mode 100644 og/benchmark/internal/cireport/cireport_test.go delete mode 100644 og/benchmark/internal/cireport/imagereport.go delete mode 100644 og/benchmark/internal/cireport/metareport.go delete mode 100644 og/benchmark/internal/cireport/metareport_test.go delete mode 100644 og/benchmark/internal/cireport/resources/image-report.gotpl delete mode 100644 og/benchmark/internal/cireport/resources/meta-report.gotpl delete mode 100644 og/benchmark/internal/cireport/resources/pr.gotpl delete mode 100644 og/benchmark/internal/cireport/screenshotter.go delete mode 100644 og/benchmark/internal/cireport/screenshotter_test.go delete mode 100644 og/benchmark/internal/cireport/tablereport.go delete mode 100644 og/benchmark/internal/cireport/tablereport_test.go delete mode 100644 og/benchmark/internal/cireport/testdata/metareport.golden delete mode 100644 og/benchmark/internal/cireport/testdata/tablereport.golden delete mode 100644 og/benchmark/internal/cireport/upload.go delete mode 100644 og/benchmark/internal/config/config.go delete mode 100644 og/benchmark/internal/config/interface.go delete mode 100644 og/benchmark/internal/loadgen/loadgen.go delete mode 100644 og/benchmark/internal/loadgen/render.go delete mode 100644 og/benchmark/internal/promquery/promquery.go delete mode 100644 og/benchmark/internal/server/server.go delete mode 100644 og/benchmark/package.json delete mode 100644 og/benchmark/prometheus/prometheus.yml delete mode 100755 og/benchmark/pyrobench-entrypoint.sh delete mode 100644 og/benchmark/queries.yml delete mode 100755 og/benchmark/server-entrypoint.sh delete mode 100644 og/benchmark/server.yml delete mode 100755 og/benchmark/start.sh delete mode 100644 og/benchmark/yarn.lock delete mode 100644 og/docs/agent_protocol.md delete mode 100644 og/hacks/metrics-comparison/README.md delete mode 100644 og/hacks/metrics-comparison/docker-compose.yml delete mode 100644 og/hacks/metrics-comparison/golang/Dockerfile delete mode 100644 og/hacks/metrics-comparison/golang/main.go delete mode 100644 og/hacks/metrics-comparison/grafana-provisioning/dashboards/comparing-dashboard.json delete mode 100644 og/hacks/metrics-comparison/grafana-provisioning/dashboards/main.yml delete mode 100644 og/hacks/metrics-comparison/grafana-provisioning/datasources/datasources.yml delete mode 100644 og/hacks/metrics-comparison/grafana/grafana.ini delete mode 100644 og/hacks/metrics-comparison/prometheus/prometheus.yml diff --git a/og/benchmark/Dockerfile b/og/benchmark/Dockerfile deleted file mode 100644 index 8068e5361c..0000000000 --- a/og/benchmark/Dockerfile +++ /dev/null @@ -1,44 +0,0 @@ -# _ _ -# | | | | -# _ __ _ _ _ __ ___ | |__ ___ _ __ ___| |__ -# | '_ \| | | | '__/ _ \| '_ \ / _ \ '_ \ / __| '_ \ -# | |_) | |_| | | | (_) | |_) | __/ | | | (__| | | | -# | .__/ \__, |_| \___/|_.__/ \___|_| |_|\___|_| |_| -# | | __/ | -# |_| |___/ -# - -FROM golang:1.17 as builder - -WORKDIR /go/src/app - -COPY go.mod go.sum ./ -RUN go mod download - -COPY ./pkg pkg -COPY ./webapp webapp -COPY ./benchmark benchmark - -RUN go build -o pyrobench ./benchmark/cmd - -USER pyrobench -CMD ["./pyrobench"] - -FROM ubuntu:latest - -WORKDIR /var/lib/pyrobench - -RUN apt-get update && apt-get install ca-certificates -y && update-ca-certificates -RUN apt-get update && apt-get install -y curl - -RUN curl https://pyroscope-public.s3.amazonaws.com/benchmark/fixtures.tgz | tar -xzv - -# Create a group and user -#RUN addgroup -S pyrobench && adduser -S pyrobench -G pyrobench -RUN useradd -ms /bin/bash pyrobench - - -COPY --from=builder /go/src/app/pyrobench pyrobench - -USER pyrobench -CMD ["./pyrobench"] diff --git a/og/benchmark/README.md b/og/benchmark/README.md deleted file mode 100644 index 99c62f9725..0000000000 --- a/og/benchmark/README.md +++ /dev/null @@ -1,80 +0,0 @@ -## What is this? - -This is a benchmark suite. It is used to benchmark pyroscope server against various workloads, particularly data ingestion from clients in push mode and data retrieval from clients in pull mode. - -You can use it locally to test hypothetical scenarios, or you can use it to compare the performance of different versions of pyroscope. - -It uses a docker-compose file to run the whole benchmark suite. It uses multiple `docker-compose.yml` files (`*.dev.yml`, `*.ci.yml`) to augment the suite for development or ci environments. - -Here's an overview diagram of the whole system: -[![architecture](./architecture.svg)](./architecture.svg) - -## Prerequisites -* You'll need `docker-compose` installed. -* Ideally you want to be running this on a large enough machine (> 4 cores, 16 GB of RAM), otherwise services might run out of memory. See Troubleshooting guide below for more info. - -## Usage - -To start benchmark locally run: -``` -./start.sh -``` - -## Configuration - -All of configuration is done with `config.env` file. - -To configure the benchmarking parameters, edit `config.env` file. It contains variables that are used by pyroscope and pyrobench. - -For example, the following config can be used to only test pull mode: -``` -PYROBENCH_APPS=0 -PYROBENCH_NO_EXIT_WHEN_DONE=true -``` - -You can find documentation for all of the possible flags [here](https://github.com/pyroscope-io/pyroscope/blob/3fab8a8949b3538e98af051598edf514b14eaafe/benchmark/internal/config/config.go#L14-L39) - -## Browsing results -To view results open http://localhost:8080/d/tsWRL6ReZQkirFirmyvnWX1akHXJeHT8I8emjGJo/main?orgId=1. - -## Configuration -Edit `run-parameters.env` file to change the parameters of the benchmark run. - -### Use cases - -#### Running indefinitely -Maybe you want to leave the load generator running for an indefine amount of time. - -For that, just pick a big enough value for `PYROBENCH_REQUESTS`, like `100000` (the default) - - -## Troubleshooting - -Make sure you have enough memory allocated for docker, e.g on a mac: - -![image](https://user-images.githubusercontent.com/662636/128406795-f4a50e4b-03d7-4eed-a637-45f0c638a16b.png) - - -## Design Goals - -This benchmark suite attempts to be as flexible as possible, meaning you can use it to test different scenarios with minimum changes to the benchmark suite. We attempt to achieve this by keeping the codebase as small as possible and thus easily editable. - -## PR Benchmark - -This benchmark is also used to benchmark each pull request against the `main` branch. - -* it runs 2 instances of pyroscope (the one in the PR and the main one) in docker-compose. -* generates test load against both instances -* takes a screenshot of the dashboard panes -* posts a PR comment using [dangerjs](https://danger.systems/js/) - -## Enhancing PR comment content - -* To add more panes edit `monitoring/benchmark-pr.jsonnet` file -* To add more things to the report update the `queries.yml` file - -## TODO - -Future improvements: -* [ ] better options for mock data - diff --git a/og/benchmark/architecture.svg b/og/benchmark/architecture.svg deleted file mode 100755 index 25efe54456..0000000000 --- a/og/benchmark/architecture.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Architecture Overview
Architecture Overview
telemetry stack
telemetry stack
grafana
:8080
grafana...
pyroscope
:4040
pyroscope...
pyroscope_main
:4050
pyroscope_main...
pushgateway
pushgateway
prometheus
:9090
prometheus...
renderer
renderer
pyrobench
:4042
pyrobench...
pyrobench orchestrates the process

it simulates requests to pyroscope (push-mode)

it responds to requests from pyroscope (pull-mode)

at the end of a run it generates a report
pyrobench orchestrates the pro...
pyroscope_main is another instance of pyroscope server, but it's running the latest version from the main branch, and is intended to provide a baseline, something to compare your new version to
pyroscope_main is another i...
pyroscope is the version that's currently being tested

it builds from local source code, allowing you to rapidly test variations of pyroscope
pyroscope is the version...
we provision a grafana instance so that you can see metrics live as they're coming from pyroscope and pyroscope_main
we provision a grafana in...
renderer is used to generate screenshots of grafana dashboards

they later get posted 
renderer is used to gener...
telemetry
teleme...
profiling data flows
profiling dat...
LEGEND
LEGEND
docker-compose component
docker-compose compo...
this .svg file is editable with app.diagrams.net
this .svg file is editable with app.diagrams.net
Viewer does not support full SVG 1.1
diff --git a/og/benchmark/cmd/command/banner.go b/og/benchmark/cmd/command/banner.go deleted file mode 100644 index be75b811b5..0000000000 --- a/og/benchmark/cmd/command/banner.go +++ /dev/null @@ -1,26 +0,0 @@ -package command - -import ( - "github.com/pyroscope-io/pyroscope/pkg/cli" -) - -// made here http://patorjk.com/software/taag/#p=display&f=Doom&t=pyrobench -var banner = ` - _ _ - | | | | - _ __ _ _ _ __ ___ | |__ ___ _ __ ___| |__ -| '_ \| | | | '__/ _ \| '_ \ / _ \ '_ \ / __| '_ \ -| |_) | |_| | | | (_) | |_) | __/ | | | (__| | | | -| .__/ \__, |_| \___/|_.__/ \___|_| |_|\___|_| |_| -| | __/ | -|_| |___/ -` - -func init() { - // removes extra new lines - banner = banner[1 : len(banner)-2] -} - -func gradientBanner() string { - return cli.GradientBanner(banner) -} diff --git a/og/benchmark/cmd/command/ci-report.go b/og/benchmark/cmd/command/ci-report.go deleted file mode 100644 index a4a99a5384..0000000000 --- a/og/benchmark/cmd/command/ci-report.go +++ /dev/null @@ -1,93 +0,0 @@ -package command - -import ( - "fmt" - - "github.com/pyroscope-io/pyroscope/benchmark/internal/cireport" - "github.com/pyroscope-io/pyroscope/benchmark/internal/config" - "github.com/pyroscope-io/pyroscope/benchmark/internal/promquery" - "github.com/pyroscope-io/pyroscope/pkg/cli" - "github.com/spf13/cobra" -) - -func newReport(cfg *config.Report) *cobra.Command { - report := &cobra.Command{ - Use: "report [subcommand]", - Hidden: true, - } - - vpr := newViper() - tableReport := &cobra.Command{ - Use: "table [flags]", - Short: "generates a markdown report to be used by ci", - RunE: cli.CreateCmdRunFn(&cfg.TableReport, vpr, func(_ *cobra.Command, args []string) error { - setLogLevel(cfg.TableReport.LogLevel) - pq := promquery.New(&config.PromQuery{ - PrometheusAddress: cfg.PrometheusAddress, - }) - - report, err := cireport.TableReportCli(pq, cfg.TableReport.QueriesFile) - if err != nil { - return err - } - - fmt.Println(report) - return nil - }), - } - - imageReport := &cobra.Command{ - Use: "image [flags]", - Short: "generates a markdown report to be used by ci", - RunE: cli.CreateCmdRunFn(&cfg.ImageReport, vpr, func(_ *cobra.Command, args []string) error { - setLogLevel(cfg.ImageReport.LogLevel) - - report, err := cireport.ImageReportCLI(cfg.ImageReport) - if err != nil { - return err - } - - fmt.Println(report) - return nil - }), - } - - metaReport := &cobra.Command{ - Use: "meta [flags]", - Short: "generates a markdown report to be used by ci", - RunE: cli.CreateCmdRunFn(&cfg.MetaReport, vpr, func(_ *cobra.Command, args []string) error { - setLogLevel(cfg.MetaReport.LogLevel) - - mr, err := cireport.NewMetaReport([]string{ - "BENCH_RUN_FOR", - "PYROBENCH_RAND_SEED", - "PYROBENCH_PROFILE_WIDTH", - "PYROBENCH_PROFILE_DEPTH", - "PYROBENCH_PROFILE_SYMBOL_LENGTH", - "PYROBENCH_APPS", - "PYROBENCH_CLIENTS", - "PYROBENCH_REQUESTS", - }) - if err != nil { - return err - } - - report, err := mr.Report(cfg.MetaReport.Title, cfg.MetaReport.Params) - if err != nil { - return err - } - - fmt.Println(report) - return nil - }), - } - - report.AddCommand(tableReport) - report.AddCommand(imageReport) - report.AddCommand(metaReport) - - cli.PopulateFlagSet(&cfg.TableReport, tableReport.Flags(), vpr) - cli.PopulateFlagSet(&cfg.ImageReport, imageReport.Flags(), vpr) - cli.PopulateFlagSet(&cfg.MetaReport, metaReport.Flags(), vpr) - return report -} diff --git a/og/benchmark/cmd/command/command.go b/og/benchmark/cmd/command/command.go deleted file mode 100644 index 7c30a4bba3..0000000000 --- a/og/benchmark/cmd/command/command.go +++ /dev/null @@ -1,10 +0,0 @@ -package command - -import ( - "github.com/pyroscope-io/pyroscope/pkg/cli" - "github.com/spf13/viper" -) - -func newViper() *viper.Viper { - return cli.NewViper("PYROBENCH") -} diff --git a/og/benchmark/cmd/command/loadgen.go b/og/benchmark/cmd/command/loadgen.go deleted file mode 100644 index e4890ff998..0000000000 --- a/og/benchmark/cmd/command/loadgen.go +++ /dev/null @@ -1,24 +0,0 @@ -package command - -import ( - "github.com/pyroscope-io/pyroscope/benchmark/internal/config" - "github.com/pyroscope-io/pyroscope/benchmark/internal/loadgen" - "github.com/pyroscope-io/pyroscope/pkg/cli" - "github.com/spf13/cobra" -) - -func newLoadGen(cfg *config.LoadGen) *cobra.Command { - vpr := newViper() - loadgenCmd := &cobra.Command{ - Use: "loadgen [flags]", - Short: "Generates load", - RunE: cli.CreateCmdRunFn(cfg, vpr, func(_ *cobra.Command, args []string) error { - setLogLevel(cfg.LogLevel) - - return loadgen.Cli(cfg) - }), - } - - cli.PopulateFlagSet(cfg, loadgenCmd.Flags(), vpr) - return loadgenCmd -} diff --git a/og/benchmark/cmd/command/log.go b/og/benchmark/cmd/command/log.go deleted file mode 100644 index 5f83577c28..0000000000 --- a/og/benchmark/cmd/command/log.go +++ /dev/null @@ -1,11 +0,0 @@ -package command - -import ( - "github.com/sirupsen/logrus" -) - -func setLogLevel(level string) { - if l, err := logrus.ParseLevel(level); err == nil { - logrus.SetLevel(l) - } -} diff --git a/og/benchmark/cmd/command/queryprom.go b/og/benchmark/cmd/command/queryprom.go deleted file mode 100644 index c738705e7b..0000000000 --- a/og/benchmark/cmd/command/queryprom.go +++ /dev/null @@ -1,40 +0,0 @@ -package command - -import ( - "fmt" - "time" - - "github.com/pyroscope-io/pyroscope/benchmark/internal/config" - "github.com/pyroscope-io/pyroscope/benchmark/internal/promquery" - "github.com/pyroscope-io/pyroscope/pkg/cli" - "github.com/spf13/cobra" -) - -func newPromQuery(cfg *config.PromQuery) *cobra.Command { - vpr := newViper() - promQuery := &cobra.Command{ - // TODO(eh-am): call it 'promquery instant' or something - Use: "promquery [flags]", - Short: "queries prometheus", - Args: func(cmd *cobra.Command, args []string) error { - return nil - }, - RunE: cli.CreateCmdRunFn(cfg, vpr, func(_ *cobra.Command, args []string) error { - query := args[0] - t := time.Now() - - pq := promquery.New(cfg) - - value, err := pq.Instant(query, t) - if err != nil { - return err - } - - fmt.Println(value) - return nil - }), - } - - cli.PopulateFlagSet(cfg, promQuery.Flags(), vpr) - return promQuery -} diff --git a/og/benchmark/cmd/command/root.go b/og/benchmark/cmd/command/root.go deleted file mode 100644 index deea6370ec..0000000000 --- a/og/benchmark/cmd/command/root.go +++ /dev/null @@ -1,68 +0,0 @@ -package command - -import ( - "fmt" - "os" - "runtime" - "strings" - - "github.com/pyroscope-io/pyroscope/benchmark/internal/config" - "github.com/pyroscope-io/pyroscope/pkg/cli" - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" -) - -func newRootCmd(*config.Config) *cobra.Command { - rootCmd := &cobra.Command{ - Use: "pyrobench [flags] ", - } - - rootCmd.SetUsageFunc(func(cmd *cobra.Command) error { - fmt.Println(gradientBanner()) - fmt.Println(cli.DefaultUsageFunc(cmd.Flags(), cmd)) - return nil - }) - - rootCmd.SetHelpFunc(func(cmd *cobra.Command, a []string) { - fmt.Println(gradientBanner()) - fmt.Println(cli.DefaultUsageFunc(cmd.Flags(), cmd)) - }) - - return rootCmd -} - -// Initialize adds all child commands to the root command and sets flags appropriately -func Initialize() error { - var cfg config.Config - - rootCmd := newRootCmd(&cfg) - rootCmd.SilenceErrors = true - rootCmd.AddCommand( - newLoadGen(&cfg.LoadGen), - newPromQuery(&cfg.PromQuery), - newReport(&cfg.Report), - ) - - logrus.SetReportCaller(true) - logrus.SetFormatter(&logrus.TextFormatter{ - TimestampFormat: "2006-01-02T15:04:05.000000", - FullTimestamp: true, - CallerPrettyfier: func(f *runtime.Frame) (string, string) { - filename := f.File - if len(filename) > 38 { - filename = filename[38:] - } - return "", fmt.Sprintf(" %s:%d", filename, f.Line) - }, - }) - - args := os.Args[1:] - for i, arg := range args { - if len(arg) > 2 && strings.HasPrefix(arg, "-") && !strings.HasPrefix(arg, "--") { - args[i] = fmt.Sprintf("-%s", arg) - } - } - - rootCmd.SetArgs(args) - return rootCmd.Execute() -} diff --git a/og/benchmark/cmd/logging.go b/og/benchmark/cmd/logging.go deleted file mode 100644 index ed9fc91bc5..0000000000 --- a/og/benchmark/cmd/logging.go +++ /dev/null @@ -1,9 +0,0 @@ -package main - -import ( - "github.com/pyroscope-io/pyroscope/pkg/cli" -) - -func init() { - cli.InitLogging() -} diff --git a/og/benchmark/cmd/main.go b/og/benchmark/cmd/main.go deleted file mode 100644 index a63852feee..0000000000 --- a/og/benchmark/cmd/main.go +++ /dev/null @@ -1,16 +0,0 @@ -package main - -import ( - "fmt" - "os" - - "github.com/fatih/color" - "github.com/pyroscope-io/pyroscope/benchmark/cmd/command" -) - -func main() { - if err := command.Initialize(); err != nil { - fmt.Fprintf(os.Stderr, "%s %v\n\n", color.RedString("Error:"), err) - os.Exit(1) - } -} diff --git a/og/benchmark/config.env b/og/benchmark/config.env deleted file mode 100644 index 8fd40000f0..0000000000 --- a/og/benchmark/config.env +++ /dev/null @@ -1,26 +0,0 @@ -# see README.md and ./internal/config/config.go for more information on these parameters - -# Some of the parameters: -# PYROBENCH_RAND_SEED=23061912 -# PYROBENCH_PULL_TARGETS="${PYROBENCH_PULL_TARGETS:10}" -# PYROBENCH_RAND_SEED="${PYROBENCH_RAND_SEED:-2306912}" -# PYROBENCH_PROFILE_WIDTH="${PYROBENCH_PROFILE_WIDTH:-20}" -# PYROBENCH_PROFILE_DEPTH="${PYROBENCH_PROFILE_DEPTH:-20}" -# PYROBENCH_PROFILE_SYMBOL_LENGTH="${PYROBENCH_PROFILE_SYMBOL_LENGTH:-30}" -# PYROBENCH_APPS="${PYROBENCH_APPS:-20}" -# PYROBENCH_CLIENTS="${PYROBENCH_CLIENTS:-20}" -# PYROBENCH_REQUESTS="${PYROBENCH_REQUESTS:-10000}" -# PYROBENCH_NO_EXIT_WHEN_DONE="${PYROBENCH_NO_EXIT_WHEN_DONE:false}" -# PYROBENCH_UPLOAD_DEST="${PYROBENCH_UPLOAD_DEST:-/screenshots}" -# PYROBENCH_UPLOAD_BUCKET="${PYROBENCH_UPLOAD_BUCKET:-}" -# PYROBENCH_UPLOAD_TYPE="${PYROBENCH_UPLOAD_TYPE:-}" - -# AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID:-}" -# AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY:-}" - - -# Examples: -# here're how you test pull mode: -# PYROBENCH_APPS=0 -# PYROBENCH_NO_EXIT_WHEN_DONE=true -# PYROBENCH_PULL_TARGETS=10 diff --git a/og/benchmark/dangerfile.js b/og/benchmark/dangerfile.js deleted file mode 100644 index c1310616a8..0000000000 --- a/og/benchmark/dangerfile.js +++ /dev/null @@ -1,8 +0,0 @@ -// this file is used to generate a message for each PR -import { markdown } from 'danger'; -const fs = require('fs'); -const path = require('path'); - -const report = fs.readFileSync(path.join(__dirname, './report/pr-report.md')); - -markdown(`${report}`); diff --git a/og/benchmark/docker-compose.ci.yml b/og/benchmark/docker-compose.ci.yml deleted file mode 100644 index ed97d539c0..0000000000 --- a/og/benchmark/docker-compose.ci.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/og/benchmark/docker-compose.dev.yml b/og/benchmark/docker-compose.dev.yml deleted file mode 100644 index 04275d96ab..0000000000 --- a/og/benchmark/docker-compose.dev.yml +++ /dev/null @@ -1,23 +0,0 @@ -# dev version exposes ports -version: '3.9' -services: - pyrobench: - ports: - - 4042:4042 - pyroscope: - ports: - - 4040:4040 - pyroscope-main: - # this one is disabled in dev mode, commend lines below to enable it - entrypoint: /bin/sh - command: - - '-c' - - 'sleep infinity' - ports: - - 4050:4040 - prometheus: - ports: - - 9090:9090 - grafana: - ports: - - 8080:3000 diff --git a/og/benchmark/docker-compose.yml b/og/benchmark/docker-compose.yml deleted file mode 100644 index d57edf3d91..0000000000 --- a/og/benchmark/docker-compose.yml +++ /dev/null @@ -1,91 +0,0 @@ -version: '3.9' -services: - pyrobench: - build: - context: ../ - dockerfile: benchmark/Dockerfile - env_file: - - config.env - depends_on: - - 'pushgateway' - - 'pyroscope' - - 'pyroscope-main' - volumes: - - ./report:/report - - ./queries.yml:/queries.yml - - ./pyrobench-entrypoint.sh:/entrypoint.sh - entrypoint: - - /entrypoint.sh - - pyroscope: - build: - context: ../ - dockerfile: Dockerfile - env_file: - - config.env - command: - - server - volumes: - - ./server.yml:/tmp/server.yml.example - - ./server-entrypoint.sh:/entrypoint.sh - - data-pyroscope:/var/lib/pyroscope - entrypoint: - - /entrypoint.sh - deploy: - resources: - limits: - cpus: '${PYROSCOPE_CPUS-1}' - memory: '${PYROSCOPE_MEMORY-4096MB}' - - pyroscope-main: - image: pyroscope/pyroscope-dev:main - env_file: - - config.env - command: - - server - volumes: - - ./server.yml:/tmp/server.yml.example - - ./server-entrypoint.sh:/entrypoint.sh - - data-pyroscope-main:/var/lib/pyroscope - entrypoint: - - /entrypoint.sh - deploy: - resources: - limits: - cpus: '${PYROSCOPE_CPUS-1}' - memory: '${PYROSCOPE_MEMORY-4096MB}' - - prometheus: - image: prom/prometheus:v2.27.1 - volumes: - - ./prometheus:/etc/prometheus/ - - data-prometheus:/prometheus - - pushgateway: - image: prom/pushgateway:v1.4.1 - - grafana: - image: grafana/grafana:7.5.7 - volumes: - - ./grafana/grafana.ini:/etc/grafana/grafana.ini - - ./grafana/datasources:/etc/grafana/provisioning/datasources - - ./grafana/dashboards/main.yml:/etc/grafana/provisioning/dashboards/main.yml - - ./../monitoring/gen/benchmark-pr.json:/etc/grafana/provisioning/dashboards/benchmark-pr.json:ro - environment: - GF_RENDERING_SERVER_URL: http://renderer:8081/render - GF_RENDERING_CALLBACK_URL: http://grafana:3000/ - GF_LOG_FILTERS: rendering:debug - - renderer: - image: grafana/grafana-image-renderer:latest - -volumes: - data-prometheus: - driver: local - # these volumes are used to store data between runs (it might be useful if you want to compare runs) - # sometimes you might not want to keep the data - # in that case run `docker-compose down -v` to delete it - data-pyroscope: - driver: local - data-pyroscope-main: - driver: local diff --git a/og/benchmark/grafana/dashboards/main.json b/og/benchmark/grafana/dashboards/main.json deleted file mode 100644 index 4220f0203b..0000000000 --- a/og/benchmark/grafana/dashboards/main.json +++ /dev/null @@ -1,1821 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "Prometheus", - "enable": true, - "expr": "changes(benchmark[5s]) > 0", - "hide": true, - "iconColor": "rgba(87, 148, 242, 0.24)", - "limit": 100, - "name": "Annotations & Alerts", - "showIn": 0, - "step": "5s", - "titleFormat": "start/stop", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 1, - "links": [], - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 6, - "x": 0, - "y": 0 - }, - "hiddenSeries": false, - "id": 3, - "interval": "1", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "cpu_utilization{}", - "interval": "", - "legendFormat": "{{__name__}}", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CPU Utilization", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:81", - "format": "percent", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:82", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 6, - "x": 6, - "y": 0 - }, - "hiddenSeries": false, - "id": 2, - "interval": "1", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "{__name__=~\"disk_.+\"}", - "interval": "", - "legendFormat": "{{__name__}}", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Disk", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:74", - "format": "bytes", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:75", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "Number of objects in cache", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 3, - "x": 12, - "y": 0 - }, - "hiddenSeries": false, - "id": 1, - "interval": "1", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "{__name__=~\"cache_.+_size\"}", - "instant": false, - "interval": "", - "legendFormat": "{{__name__}}", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Cache Size", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:560", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:561", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 3, - "x": 15, - "y": 0 - }, - "hiddenSeries": false, - "id": 15, - "interval": "1", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "cache_dicts_hit / (cache_dicts_hit+cache_dicts_miss)", - "instant": false, - "interval": "", - "legendFormat": "cache_dicts_hit_rate", - "queryType": "randomWalk", - "refId": "A" - }, - { - "exemplar": true, - "expr": "cache_trees_hit / (cache_trees_hit+cache_trees_miss)", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "cache_trees_hit_rate", - "queryType": "randomWalk", - "refId": "B" - }, - { - "exemplar": true, - "expr": "cache_segments_hit / (cache_segments_hit+cache_segments_miss)", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "cache_segments_hit_rate", - "queryType": "randomWalk", - "refId": "C" - }, - { - "exemplar": true, - "expr": "cache_dimensions_hit / (cache_dimensions_hit+cache_dimensions_miss)", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "cache_dimensions_hit_rate", - "queryType": "randomWalk", - "refId": "D" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Cache Hit Ratios", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:560", - "format": "percentunit", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:561", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 3, - "x": 18, - "y": 0 - }, - "id": 9, - "links": [], - "options": { - "reduceOptions": { - "calcs": ["lastNotNull"], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "text": {} - }, - "pluginVersion": "7.5.7", - "targets": [ - { - "exemplar": true, - "expr": "run_progress", - "interval": "", - "legendFormat": "{{__name__}}", - "queryType": "randomWalk", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Run Progress", - "type": "gauge" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 3, - "x": 21, - "y": 0 - }, - "hiddenSeries": false, - "id": 19, - "interval": "1", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "rate(successful_uploads[1m])", - "interval": "", - "legendFormat": "{{__name__}}", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Throughput", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:80", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:81", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 6, - "x": 0, - "y": 5 - }, - "hiddenSeries": false, - "id": 6, - "interval": "1", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "{__name__=~\"go_memstats_.+bytes\", instance=\"pyroscope:4040\"}", - "interval": "", - "legendFormat": "{{__name__}}", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 3, - "x": 6, - "y": 5 - }, - "hiddenSeries": false, - "id": 7, - "interval": "1", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "upload_errors", - "interval": "", - "legendFormat": "{{__name__}}", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Upload Errors", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:109", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:110", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 3, - "x": 9, - "y": 5 - }, - "hiddenSeries": false, - "id": 8, - "interval": "1", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "successful_uploads", - "interval": "", - "legendFormat": "{{__name__}}", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Successful Uploads", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:80", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:81", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 3, - "x": 12, - "y": 5 - }, - "hiddenSeries": false, - "id": 17, - "interval": "1", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "{__name__=~\"storage_.+_read\"}", - "interval": "", - "legendFormat": "{{__name__}}", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Badger Reads", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:66", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:67", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 3, - "x": 15, - "y": 5 - }, - "hiddenSeries": false, - "id": 18, - "interval": "1", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.7", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "{__name__=~\"storage_.+_write\"}", - "interval": "", - "legendFormat": "{{__name__}}", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Badger Writes", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:66", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:67", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "datasource": "Prometheus", - "description": "a lot symbols are replaces with dashes or removed", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 30, - "w": 6, - "x": 18, - "y": 5 - }, - "id": 5, - "links": [], - "options": { - "content": "