$0/month Observability with qryn

Alex MaitlandAlex Maitland
4 min read

Self-Hosted Observability is not only viable - its the best way to get your stack under control without creating dependencies on cloud services or specific service providers and more importantly - without making your job harder in the process.

We run a cloud service and there's no shame in admitting the overhead cost for customers can become a deal breaker when size and scale grow larger than life.

If you’re trying to migrate off Grafana Cloud/AWS/Datadog/etc this is for you!

⭐ Self-Hosted + All-in-One

Here's our solid opensource recipe you can cook with three simple ingredients:

  • qryn: all-in-one polyglot stack

    clickhouse: fast OLAP database

    Opentelemetry: industry standard ingestion

This will get you covered for any Logs, Metrics, Traces and Profiles - at once.

oracle-cloud-logo | Scio Info Tech

⭐ Oracle Cloud: Always Free?

Hello, Oracle. Now, I'm not their biggest fan but respect where it's due:

The "Always-Free” Oracle Cloud tier generously allows running ARM Ampere A1 instances with 3,000 CPU hours and 18,000 GB hours per month, which affords exactly 4 CPUs and 24GB of RAM with a ~100GB of storage volume. For free. Forever.

Grab a FREE AMPERE ARM64 Instance

First, sign up to Oracle Cloud to gain access to their Always-Free Tier.

  • Browse to the Compute section and Create a New Instance

  • Modify the parameters in the Image and Shape section by clicking Edit

  • Choose an AMPERE shape, and max out the resources:

A few more clicks and you're ready to go. Refer to the Oracle docs for more options!

💡
Do NOT forget to download the generated keys for SSH access!

⭐ Prepare your ARM64 Instance

Once your Ampere instance is ready, install the latest Docker for arm64

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

⭐ Install qryn

The step is magic: use qryn transforms your instance into a polyglot stack!

Our stack natively supports arm64 architecture, so no special actions are needed.

Let’s deploy the full qryn bundle using docker compose on our brand new host:

$ git clone https://github.com/metrico/qryn-oss-demo
$ cd qryn-oss-demo

$ docker compose up -d

Wait for all services to start and you’re ready to go!

Grafana is included on port 3000 preconfigured with all the qryn datasources, demo dashboards and demo telemetry instantly ready to explore and play with:

⭐ Add Opentelemetry

It’s time to ingest your own data into the system using Opentelemetry.

Opentelemetry is the standard when it comes to observability instrumentation. Paired with qryn it allows methodic ingestion of any telemetry type (Logs, Metrics, Traces, Profiling) using common interfaces compatible with many vendors.

"OTEL" usage = no vendor or tech lock-ins as part of your deployments.

The qryn otel-collector allows ingesting massive amounts of data directly into the bundled ClickHouse instance using the native binary drivers and delivering incredible throughput and speed, easily extensible with object storage.

⭐ Service Ports

The qryn API supports ingestion of several protocols but for our high-performance setup we will leverage the qryn opentelemetry collector for writing into our database.

The following service ports are exposed by the default qryn collector config:

    • "3200:3100" # Loki/Logql HTTP receiver

      "3201:3200" # Loki/Logql gRPC receiver

      "8088:8088" # Splunk HEC receiver

      "5514:5514" # Syslog TCP Rereceiverceiver

      "24224:24224" # Fluent Forward receiver

      "4317:4317" # OTLP gRPC receiver

      "4318:4318" # OTLP HTTP receiver

      "14250:14250" # Jaeger gRPC receiver

      "14268:14268" # Jaeger thrift HTTP receiver

      "9411:9411" # Zipkin Trace receiver

      "11800:11800" # Skywalking gRPC receiver

      "12800:12800" # Skywalking HTTP receiver

      "8086:8086" # InfluxDB Line proto HTTP

      "8062:8062" # Pyroscope jprof Receiver

⭐ Telemetry Agents

You’re ready to choose any of the supported agents and start sending data:

That’s it! Your free Polyglot Observability stack is ready to use and abuse!

⭐ Extending Capacity

If the ~100GB of onboard storage run out, attach S3 storage to your setup or take a look at our sponsors at gigapipe and their flat-price qryn observability SaaS

That's it. One API. One datastore. A thousand formats and use cases 🎉

10
Subscribe to my newsletter

Read articles from Alex Maitland directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Alex Maitland
Alex Maitland