Skip to content

Commit

Permalink
Merge branch 'master' into dependabot/npm_and_yarn/npm_and_yarn-secur…
Browse files Browse the repository at this point in the history
…ity-group-f03be2d197
  • Loading branch information
lmangani committed Apr 1, 2024
2 parents 0e64f78 + 2ebbf89 commit 1e5b6d1
Show file tree
Hide file tree
Showing 3 changed files with 159 additions and 2 deletions.
146 changes: 146 additions & 0 deletions .github/workflows/k6_test.yml
Original file line number Diff line number Diff line change
@@ -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 }}"
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

# <img src='https://user-images.githubusercontent.com/1423657/218816262-e0e8d7ad-44d0-4a7d-9497-0d383ed78b83.png' style="margin-left:-10px" width=28 /> [qryn: polyglot observability](https://qryn.dev)

:rocket: _lighweight, multi-standard, polyglot _**observability** stack for _**Logs, Metrics**, **Traces** and **Profiling**_<br/>
:rocket: _lighweight, multi-standard, polyglot **observability** stack for **Logs, Metrics**, **Traces** and **Profiling**_<br/>

> ... it's pronounced /ˈkwɪr..ɪŋ/ or just _querying_
Expand All @@ -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

<br>
Expand Down Expand Up @@ -126,6 +125,17 @@ The Tempo datasource can be used to natively query _traces_ including _**TraceQL
> :eye: _No Grafana? No problem! Use View_

<br>

### 🔥 Pyroscope + Phlare
**qryn** implements the [Pyroscope/Phlare API](https://qryn.metrico.in/#/profiling/ingestion) for transparent compatibility with **Pyroscope SDK** clients.<br>

> Any Pyroscope SDK client or Pyroscope compatible agent can be used with qryn out of the box for **continuous profiling**
<img src="https://github.com/metrico/qryn/assets/1423657/0bd11ca9-a2b4-41ee-9ea1-6f21fa4077b2" width=700>

<br>

<br>

### 📚 Vendors Compatibility
Expand Down
1 change: 1 addition & 0 deletions model/TRAINING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

0 comments on commit 1e5b6d1

Please sign in to comment.