From 8400658347d9b2eff2daae21aaefa8d5db1451c6 Mon Sep 17 00:00:00 2001 From: Lorenzo Mangani Date: Wed, 27 Mar 2024 01:16:58 +0100 Subject: [PATCH 1/7] Create k6_test.yml Signed-off-by: Lorenzo Mangani --- .github/workflows/k6_test.yml | 146 ++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 .github/workflows/k6_test.yml diff --git a/.github/workflows/k6_test.yml b/.github/workflows/k6_test.yml new file mode 100644 index 00000000..46208c51 --- /dev/null +++ b/.github/workflows/k6_test.yml @@ -0,0 +1,146 @@ +name: K6 Test qxip/qryn +on: + push: + branches: [ master ] + paths-ignore: + - '**.md' + - '**.yml' + - '**.yaml' + pull_request: + branches: [ master ] + paths-ignore: + - '**.md' + - '**.yml' + - '**.yaml' + workflow_dispatch: + inputs: + qryn_tag: + description: 'Build/Tag for qryn (latest)' + required: false + clickhouse_tag: + description: 'BuildTag for ClickHouse (latest)' + required: false + clickhouse_image: + description: 'Image for ClickHouse (clickhouse/clickhouse-server)' + required: false + +jobs: + build: + name: Run k6 on qryn:latest + runs-on: ubuntu-latest + continue-on-error: true + env: + CLICKHOUSE_VERSION: "${{ github.event.inputs.clickhouse_image || 'clickhouse/clickhouse-server' }}:${{ github.event.inputs.clickhouse_tag || 'latest' }}" + QRYN_VERSION: "ghcr.io/metrico/qryn:${{ github.event.inputs.qryn_tag || 'latest' }}" + services: + clickhouse: + image: "${{ github.event.inputs.clickhouse_image || 'clickhouse/clickhouse-server' }}:${{ github.event.inputs.clickhouse_tag || 'latest' }}" + ports: + - 8123:8123 + env: + PORT: 8123 + CLICKHOUSE_USER: qryn + CLICKHOUSE_PASSWORD: qryn + qryn: + image: "ghcr.io/metrico/qryn:${{ github.event.inputs.qryn_tag || 'latest' }}" + ports: + - 3100:3100 + env: + CLICKHOUSE_SERVER: clickhouse + CLICKHOUSE_AUTH: "qryn:qryn" + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + repository: metrico/qryn-bench + path: . + - uses: actions/setup-go@v4 + with: + go-version: '1.20' + - name: Download k6 for Prometheus + run: | + wget https://github.com/metrico/qryn-bench/releases/download/latest/k6 + chmod +x k6 + - name: Download k6 for Prometheus + run: | + wget https://github.com/metrico/qryn-bench/releases/download/latest/k6-tracing -O k6-tracing + chmod +x k6-tracing + + - name: Collect Workflow Telemetry + uses: runforesight/workflow-telemetry-action@v1.8.7 + + - name: Wait for Loki API + uses: mydea/action-wait-for-api@v1 + with: + url: "http://localhost:3100/loki/api/v1/label" + expected-response-field: "status" + expected-response-field-value: "success" + timeout: 30 + - name: Run k6 loki test + run: ./k6 run --out csv=results.csv loki/qryn-loki-loadtest.js + env: + K6_VUS: 1 + K6_ITERACTIONS: 50 + - run: mv summary.txt loki_summary.txt + - name: Wait for Prom API + uses: mydea/action-wait-for-api@v1 + with: + url: "http://localhost:3100/api/v1/query" + expected-response-field: "status" + expected-response-field-value: "success" + timeout: 30 + - name: Run k6 prometheus test + run: ./k6 run --out csv=results.csv prometheus/qryn-loadtest.js + env: + K6_WRITE_HOSTNAME: "localhost:3100" + K6_READ_HOSTNAME: "localhost:3100" + K6_WRITE_REQUEST_RATE: 1 + K6_WRITE_SERIES_PER_REQUEST: 10 + K6_READ_REQUEST_RATE: 1 + K6_DURATION_MIN: 1 + K6_SCRAPE_INTERVAL_SECONDS: 30 + RAMP_UP_MIN: 0 + - run: mv summary.txt prom_summary.txt + - name: Wait for Tempo API + uses: mydea/action-wait-for-api@v1 + with: + url: "http://localhost:3100/api/search/tags" + - name: Run k6 tempo test + run: ./k6-tracing run --out csv=results.csv tempo/qryn-tempo-template.js + env: + K6_TEMPO_ENDPOINT: "http://localhost:3100" + K6_VUS: 1 + K6_DURATION_MINUTES: 1 + K6_ITERATIONS: 20 + - run: mv summary.txt tempo_summary.txt + - name: Strip Text report + run: | + sed -i 's/[^[:print:]]/*/' *_summary.txt + sed -i 's/[\d128-\d255]//g' *_summary.txt + - uses: actions/upload-artifact@v3 + with: + name: results + path: | + loki_summary.txt + prom_summary.txt + tempo_summary.txt + - name: Summary Report + run: | + echo "### qryn image" >> $GITHUB_STEP_SUMMARY + echo "qxip/qryn:${{ github.event.inputs.qryn_tag || 'latest' }}" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### clickhouse image" >> $GITHUB_STEP_SUMMARY + echo "${{ github.event.inputs.clickhouse_image || 'clickhouse/clickhouse-server' }}:${{ github.event.inputs.clickhouse_tag || 'latest' }}" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### Loki Test" >> $GITHUB_STEP_SUMMARY + cat loki_summary.txt >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### Prometheus Test" >> $GITHUB_STEP_SUMMARY + cat prom_summary.txt >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### Tempo Test" >> $GITHUB_STEP_SUMMARY + cat tempo_summary.txt >> $GITHUB_STEP_SUMMARY + - name: Pull Docker logs + run: | + docker logs "${{ job.services.clickhouse.id }}" + docker logs "${{ job.services.qryn.id }}" From e39b180f1a127766f67e170be34e2558faee66fa Mon Sep 17 00:00:00 2001 From: Lorenzo Mangani Date: Thu, 28 Mar 2024 15:41:45 +0100 Subject: [PATCH 2/7] Update README.md Signed-off-by: Lorenzo Mangani --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 89bc4489..47ee587d 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,16 @@ The Tempo datasource can be used to natively query _traces_ including _**TraceQL > :eye: _No Grafana? No problem! Use View_ +
+ +### 🔥 Pyroscope + Phlare +⚡ **qryn** implements the [Pyroscope API](https://qryn.dev) for transparent compatibility with **[Phlare](https://grafana.com/docs/pyroscope/latest/)** clients.
+ +> Any Pyroscope SDK client or application can be used with qryn out of the box for **continuous profiling** + + + +
### 📚 Vendors Compatibility From 7af785d9ca3c24c5c2fe8faebca5a8d7da6debbd Mon Sep 17 00:00:00 2001 From: Lorenzo Mangani Date: Thu, 28 Mar 2024 15:42:14 +0100 Subject: [PATCH 3/7] Update README.md Signed-off-by: Lorenzo Mangani --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 47ee587d..baa1a1bb 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,7 @@ The Tempo datasource can be used to natively query _traces_ including _**TraceQL +

From eb732b5241528b350b8ba6cd5a049aeb215652b8 Mon Sep 17 00:00:00 2001 From: Lorenzo Mangani Date: Thu, 28 Mar 2024 15:44:02 +0100 Subject: [PATCH 4/7] Update README.md Signed-off-by: Lorenzo Mangani --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index baa1a1bb..3fd5ba61 100644 --- a/README.md +++ b/README.md @@ -129,9 +129,9 @@ The Tempo datasource can be used to natively query _traces_ including _**TraceQL
### 🔥 Pyroscope + Phlare -⚡ **qryn** implements the [Pyroscope API](https://qryn.dev) for transparent compatibility with **[Phlare](https://grafana.com/docs/pyroscope/latest/)** clients.
+âš¡ **qryn** implements the [Pyroscope/Phlare API](https://qryn.metrico.in/#/profiling/ingestion) for transparent compatibility with **Pyroscope SDK** clients.
-> Any Pyroscope SDK client or application can be used with qryn out of the box for **continuous profiling** +> Any Pyroscope SDK client or Pyroscope compatible agent can be used with qryn out of the box for **continuous profiling** From 08a6263eb2dfafbf86ab0f78b19ef77a5382ab9e Mon Sep 17 00:00:00 2001 From: Lorenzo Mangani Date: Sat, 30 Mar 2024 19:56:24 +0100 Subject: [PATCH 5/7] Update README.md Signed-off-by: Lorenzo Mangani --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3fd5ba61..f443174f 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ # [qryn: polyglot observability](https://qryn.dev) -:rocket: _lighweight, multi-standard, polyglot _**observability** stack for _**Logs, Metrics**, **Traces** and **Profiling**_
+:rocket: _lighweight, multi-standard, polyglot **observability** stack for **Logs, Metrics**, **Traces** and **Profiling**_
> ... it's pronounced /ˈkwɪr..ɪŋ/ or just _querying_ From 76e663076eb285f3c0c2c139667bf6016bf76937 Mon Sep 17 00:00:00 2001 From: Lorenzo Mangani Date: Sat, 30 Mar 2024 20:03:17 +0100 Subject: [PATCH 6/7] Update README.md Signed-off-by: Lorenzo Mangani --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index f443174f..db392da5 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,6 @@ * **Voracious**: Ingest using **Opentelemetry, Loki, Prometheus, Tempo, Influx, Datadog, Elastic** _+ more_ * **Versatile**: Explore data with qryn's **built-in Explorer** and CLI or native **Grafana** datasource compatibility * **Secure**: Retain total control of data, using **ClickHouse**, **DuckDB** or **InfluxDB** IOx with **S3** object storage -* **Unmetered**: Unlimited **FOSS** deployments or **qryn.cloud** option with advanced features and performance * **Indepentent**: Opensource, Community powered, Anti lock-in alternative to Vendor controlled stacks
From 2ebbf89ad1e71227d40e513a5a879e7fd8790b3c Mon Sep 17 00:00:00 2001 From: Lorenzo Mangani Date: Mon, 1 Apr 2024 20:51:50 +0200 Subject: [PATCH 7/7] training template Signed-off-by: Lorenzo Mangani --- model/TRAINING.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 model/TRAINING.md diff --git a/model/TRAINING.md b/model/TRAINING.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/model/TRAINING.md @@ -0,0 +1 @@ +