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) - - Matrix - +[![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