diff --git a/.github/workflows/bump_version.yml b/.github/workflows/bump_version.yml
index 7fa0222e..c05f2a1b 100644
--- a/.github/workflows/bump_version.yml
+++ b/.github/workflows/bump_version.yml
@@ -1,39 +1,25 @@
name: 'Build Multi-Arch'
on:
- push:
- branches:
- - 'master'
- paths-ignore:
- - '**.md'
- - '**.yml'
- - '**.yaml'
+ release:
+ types: [created]
jobs:
- bump-version:
- name: 'Bump Version on master & Publish'
+ build:
+ name: 'Build & Publish'
runs-on: ubuntu-latest
steps:
- name: 'Checkout source code'
- uses: 'actions/checkout@v2'
+ uses: 'actions/checkout@v3'
with:
ref: ${{ github.ref }}
- - name: 'cat package.json'
- run: cat ./package.json
- - name: 'Automated Version Bump'
- id: version-bump
- uses: 'phips28/gh-action-bump-version@master'
- with:
- tag-prefix: 'v'
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: 'cat package.json'
- run: cat ./package.json
- - name: 'Output Step'
- env:
- NEW_TAG: ${{ steps.version-bump.outputs.newTag }}
- run: echo "new tag $NEW_TAG"
+ - uses: MYXOMOPX/modify-pkg-json@master
+ id: setcmnver
+ with:
+ target: ./package.json
+ action: "set_version"
+ argument: "${{ github.ref_name }}"
- name: Check NPM secret presence
id: checksecrets
shell: bash
@@ -45,10 +31,10 @@ jobs:
fi
env:
SECRET: ${{ secrets.NPM_TOKEN }}
- - uses: actions/setup-node@v1
+ - uses: actions/setup-node@v4.0.0
if: ${{ steps.checksecrets.outputs.secretspresent }}
with:
- node-version: 14
+ node-version: 18
- name: Publish to NPM
if: ${{ steps.checksecrets.outputs.secretspresent }}
run: |
@@ -93,9 +79,9 @@ jobs:
push: true
tags: |
qxip/qryn:latest
- qxip/qryn:${{ steps.version-bump.outputs.newTag }}
+ qxip/qryn:${{ github.ref_name }}
qxip/cloki:latest
- qxip/cloki:${{ steps.version-bump.outputs.newTag }}
+ qxip/cloki:${{ github.ref_name }}
- name: Log in to the GHCR registry
uses: docker/login-action@v2.0.0
@@ -111,4 +97,4 @@ jobs:
push: true
tags: |
ghcr.io/metrico/qryn:latest
- ghcr.io/metrico/qryn:${{ steps.version-bump.outputs.newTag }}
+ ghcr.io/metrico/qryn:${{ github.ref_name }}
diff --git a/.github/workflows/bump_version_beta.yml b/.github/workflows/bump_version_beta.yml
deleted file mode 100644
index 96cab544..00000000
--- a/.github/workflows/bump_version_beta.yml
+++ /dev/null
@@ -1,95 +0,0 @@
-name: 'Bump & Publish'
-
-on:
- push:
- branches:
- - 'beta'
- paths-ignore:
- - '**.md'
- - '**.yml'
- - '**.yaml'
-
-jobs:
- bump-version:
- name: 'Bump Version on master & Publish'
- runs-on: ubuntu-latest
-
- steps:
- - name: 'Checkout source code'
- uses: 'actions/checkout@v2'
- with:
- ref: ${{ github.ref }}
- - name: 'cat package.json'
- run: cat ./package.json
- - name: 'Automated Version Bump'
- id: version-bump
- uses: 'phips28/gh-action-bump-version@master'
- with:
- tag-prefix: 'v'
- tag-suffix: '-beta'
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: 'cat package.json'
- run: cat ./package.json
- - name: 'Output Step'
- env:
- NEW_TAG: ${{ steps.version-bump.outputs.newTag }}
- run: echo "new tag $NEW_TAG"
- - name: Check NPM secret presence
- id: checksecrets
- shell: bash
- run: |
- if [ "$SECRET" == "" ]; then
- echo ::set-output name=secretspresent::false
- else
- echo ::set-output name=secretspresent::true
- fi
- env:
- SECRET: ${{ secrets.NPM_TOKEN }}
- - uses: actions/setup-node@v1
- if: ${{ steps.checksecrets.outputs.secretspresent }}
- with:
- node-version: 14
- - name: Publish to NPM
- if: ${{ steps.checksecrets.outputs.secretspresent }}
- run: |
- npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
- npm install
- npm publish --access public
- env:
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
-
- - name: Check Docker secret presence
- id: checkdocker
- shell: bash
- run: |
- if [ "$SECRET" == "" ]; then
- echo ::set-output name=secretspresent::false
- else
- echo ::set-output name=secretspresent::true
- fi
- env:
- SECRET: ${{ secrets.DOCKERHUB_TOKEN }}
- - name: Set up Docker QEMU
- if: ${{ steps.checkdocker.outputs.secretspresent }}
- uses: docker/setup-qemu-action@v1
- - name: Set up Docker Buildx
- if: ${{ steps.checkdocker.outputs.secretspresent }}
- uses: docker/setup-buildx-action@v1
- - name: Login to DockerHub
- if: ${{ steps.checkdocker.outputs.secretspresent }}
- uses: docker/login-action@v1
- with:
- username: ${{ secrets.DOCKERHUB_USERNAME }}
- password: ${{ secrets.DOCKERHUB_TOKEN }}
- - name: Build and push
- if: ${{ steps.checkdocker.outputs.secretspresent }}
- id: docker_build
- uses: docker/build-push-action@v2
- with:
- push: true
- tags: |
- qxip/qryn:latest
- qxip/qryn:${{ steps.version-bump.outputs.newTag }}
- qxip/cloki:latest
- qxip/cloki:${{ steps.version-bump.outputs.newTag }}
diff --git a/README.md b/README.md
index c555f51d..1e62aeee 100644
--- a/README.md
+++ b/README.md
@@ -4,53 +4,60 @@
[![Build Status](https://github.com/metrico/qryn/actions/workflows/bump_version.yml/badge.svg)](https://github.com/metrico/qryn/actions/workflows/bump_version.yml)
![CodeQL](https://github.com/lmangani/cLoki/workflows/CodeQL/badge.svg)
-
-
-
+[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua)
-# [qryn.dev](https://qryn.dev) :cloud: [qryn.cloud](https://qryn.cloud) :heart:
-> ... it's pronounced /ˈkwɪr..ɪŋ/ or just querying
+# [qryn 3.x](https://qryn.dev) :cloud: [qryn.cloud](https://qryn.cloud)
+> ... it's pronounced /ˈkwɪr..ɪŋ/ or just _querying_
![image](https://user-images.githubusercontent.com/1423657/232089970-c4536f16-5967-4051-85a5-8ad94fcde67c.png)
-:rocket: **qryn** is a _drop-in Grafana compatible_ **polyglot observability** framework
-- **Logs, Metrics and Traces** living happily together. Drop-in compatible with multiple vendors formats.
-- Native [LogQL/PromQL/TempoQL APIs](https://qryn.cloud) support for [querying](https://github.com/lmangani/qryn/wiki/LogQL-for-Beginners), [processing](https://github.com/lmangani/qryn/wiki/LogQL-Supported-Queries), [tracing](https://github.com/lmangani/qryn/wiki/Tempo-Tracing) and [alerting](https://github.com/lmangani/qryn/wiki/Ruler---Alerts) [^2] in [Grafana](http://docs.grafana.org/features/explore/) [^3]
-- Search, filter and extract metrics from _logs, events, spans and traces_ using familiar languages. _SQL Optional_.
-- Ingestion [APIs](https://qryn.metrico.in/#/support) transparently compatible with [Opentelemetry, Loki, Prometheus, InfluxDB, Elastic](https://qryn.dev) _and [more](https://github.com/metrico/otel-collector)_
-- Ready to use with popular Agents such as [Promtail, Grafana-Agent, Vector, Logstash, Telegraf](https://qryn.metrico.in/#/ingestion) _and more_
-- Built in [Explore UI](https://github.com/metrico/cloki-view) and [CLI](https://github.com/lmangani/vLogQL) for querying supported datasources
-- Designed for edge _(js/bun/wasm)_ and core/backend deployments _(golang/rust)_.
-- Total data control. Compatible with [ClickHouse](https://clickhouse.com/) or [InfluxDB IOx](https://influxdata.com) with S3 object storage.
-
-:rocket: **qryn.cloud** is the _supercharged_ **qryn** version developed in _go_ with additional _functionality, speed and features!_
+:rocket: _lighweight, multi-standard drop-in compatible_ **polyglot observability** framework for _**Logs, Metrics and Traces**_.
+- **Polyglot**: Use **LogQL, PromQL**, and **TempoQL** languages to query, process and alert _any data_.
+- **Voracious**: Ingest anything compatible with **Opentelemetry, Loki, Prometheus, Influx, Datadog, Elastic** _& more_.
+- **Versatile**: Explore data with qryn's built-in **Explore UI** and **CLI** or _native_ **Grafana** compatibility.
+- **Secure**: Keep control of your data, using **ClickHouse** or **InfluxDB IOx** on top of disposable **S3** storage.
+- **Unmetered**: Unlimited FOSS deployments or **qryn.cloud** option with advanced features and high performance.
+- **Effective**: Do more with less, replace lock-in competitors for a fractions of the cost and complexity.
+
+
+## 🚀 [Get Started](https://qryn.metrico.in/#/installation)
+
+* Deploy qryn OSS using the [documentation](https://qryn.metrico.in/#/installation) or get help in our [Matrix room](https://matrix.to/#/#qryn:matrix.org) :octocat:
+* Create a free account on [qryn.cloud](https://qryn.cloud) and get polyglot without moving a finger ☁️
+
-## 🚀 [Get Started](https://qryn.metrico.in/#/installation)
+
-:octocat: Get qryn OSS up and running on-prem in no time using the [Documentation](https://qryn.metrico.in/#/installation) or join our [Matrix Room](https://matrix.to/#/#qryn:matrix.org)
+## Features
-☁️ Create a free account on [qryn.cloud](https://qryn.cloud) and go straight to production at any scale with **polyglot confidence**.
+💡 _**qryn** independently implements popular observability standards, protocols and query languages:_
+
+
+### 📚 OpenTelemetry
+
+⚡ **qryn** is officially integrated with [opentelemetry](https://github.com/metrico/otel-collector) supports _any log, trace or metric format_
+
+Ingested data can be queried using any of the avialable qryn APIs _(LogQL, PromQL, TraceQL)_
-## Supported Features
+### 📚 Loki + LogQL
-### 📚 OpenTelemetry
-qryn fully supports opentelemetry and comes with a powerful [otel-collector](https://github.com/metrico/otel-collector) distribution supporting _any log, trace or metric format_ and writing directly to ClickHouse _qryn tables_ ready to be consumed through any query API.
+> Any Loki compatible client or application can be used with qryn out of the box
+
+⚡ **qryn** implements the [Loki API](https://github.com/lmangani/qryn/wiki/LogQL-Supported-Queries) for transparent compatibility with **[LogQL](https://grafana.com/docs/loki/latest/query/)** clients
-### 📚 LogQL
-qryn implements a complete [LogQL API](https://github.com/lmangani/qryn/wiki/LogQL-Supported-Queries) to provide transparent compatibility with Loki clients
The Grafana Loki datasource can be used to natively browse and query _logs_ and display extracted _timeseries_
@@ -59,11 +66,16 @@ The Grafana Loki datasource can be used to natively browse and query _logs_ and
:tada: _No plugins needed_
+
-### 📈 Prometheus
-qryn implements a complete [Prometheus API](https://github.com/lmangani/qryn/wiki/LogQL-Supported-Queries) to provide transparent compatibility with Prometheus clients
-The Grafana Prometheus datasource can be used to natively browse and query _metrics_ and display extracted _timeseries_
+### 📈 Prometheus + PromQL
+
+> Any Prometheus compatible client or application can be used with qryn out of the box
+
+⚡ **qryn** implements the [Prometheus API](https://prometheus.io/docs/prometheus/latest/querying/api/) for transparent **[PromQL](https://prometheus.io/docs/prometheus/latest/querying/basics/)** compatibility using WASM 🏆
+
+The Grafana Prometheus datasource can be used to natively to query _metrics_ and display _timeseries_
@@ -71,11 +83,16 @@ The Grafana Prometheus datasource can be used to natively browse and query _metr
:tada: _No plugins needed_
+
-### 🕛 Tempo
-qryn implements the [Tempo API](https://github.com/lmangani/qryn/wiki/LogQL-Supported-Queries) to provide transparent compatibility with Tempo/OTLP clients.
-The Tempo datasource can be used to natively query _traces_ including _beta search_ and _service graphs_
+### 🕛 Tempo + TraceQL
+
+⚡ **qryn** implements the [Tempo API](https://github.com/lmangani/qryn/wiki/LogQL-Supported-Queries) for transparent compatibility with **[TraceQL](https://grafana.com/docs/tempo/latest/traceql/)** clients.
+
+> Any Tempo/Opentelemetry compatible client or application can be used with qryn out of the box
+
+The Tempo datasource can be used to natively query _traces_ including _**TraceQL**_ and supporting _service graphs_
@@ -85,8 +102,20 @@ The Tempo datasource can be used to natively query _traces_ including _beta sear
-### ↔️ Correlation
-Data correlation made simple with dynamic **links** between _logs, metrics and traces_
+### 📚 Other Vendors
+
+**qryn** can ingest data using the [InfluxDB, DataDog, Elastic](https://qryn.metrico.in/#/support) and other vendors.
+
+
+
+
+With **qryn** and **grafana** everything _just works_ right out of the box:
+
+- Native datasource support without any plugin or extension
+- Advanced Correlation between Logs, Metrics and Traces
+- Service Graphs and Service Status Panels, and all the cool features
+
+
@@ -94,7 +123,9 @@ Data correlation made simple with dynamic **links** between _logs, metrics and t
-### :eye: View
+
+
+### :eye: Explore View
No Grafana? No Problem. **qryn** ships with **view** - it's own lightweight data exploration tool
@@ -121,9 +152,9 @@ Whether it's code, documentation or grammar, we ❤️ all contributions. Not su
[![Contributors for @metrico/qryn](https://contributors-img.web.app/image?repo=lmangani/cloki)](https://github.com/metrico/qryn/graphs/contributors)
-[![Stargazers repo roster for @metrico/qryn](https://reporoster.com/stars/metrico/qryn)](https://github.com/metrico/qryn/stargazers)
+[![Stargazers repo roster for @metrico/qryn](https://bytecrank.com/nastyox/reporoster/php/stargazersSVG.php?user=metrico&repo=qryn)](https://github.com/metrico/qryn/stargazers)
-[![Forkers repo roster for @metrico/qryn](https://reporoster.com/forks/metrico/qryn)](https://github.com/metrico/qryn/network/members)
+[![Forkers repo roster for @metrico/qryn](https://bytecrank.com/nastyox/reporoster/php/forkersSVG.php?user=metrico&repo=qryn)](https://github.com/metrico/qryn/network/members)
#### License