diff --git a/docs/_sidebar.md b/docs/_sidebar.md index e5d564a..2bbab46 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -15,10 +15,12 @@ * [Logs](logs/ingestion.md "QRYN – Supported Components – LogQL for ClickHouse and beyond") * [Metrics](metrics/ingestion.md "QRYN – Supported Components – LogQL for ClickHouse and beyond") * [Telemetry](telemetry/ingestion.md "QRYN – Supported Components – LogQL for ClickHouse and beyond") + * [Profiling](profiling/ingestion.md "QRYN – Supported Components – LogQL for ClickHouse and beyond") * [Querying](getting-started.md "QRYN – Getting Started – LogQL for ClickHouse and beyond") * [Logs](logs/query "QRYN – Getting Started – LogQL for ClickHouse and beyond") * [Metrics](metrics/query "QRYN by Metrico.in") * [Telemetry](telemetry/query "QRYN by Metrico.in") + * [Profiling](profiling/query "QRYN by Metrico.in") * [Advanced](examples.md "QRYN – Getting Started – LogQL for ClickHouse and beyond") * [LogQL](guide/logql.md "QRYN – Getting Started – LogQL for ClickHouse and beyond") * [APIs](support.md "QRYN – Supported Components – LogQL for ClickHouse and beyond") diff --git a/docs/home.md b/docs/home.md index 8060e63..631f397 100644 --- a/docs/home.md +++ b/docs/home.md @@ -2,7 +2,10 @@

qryn: polyglot monitoring and observability

- + + + +

?> ... it's pronounced /ˈkwɪr..ɪŋ/ or just _querying_ diff --git a/docs/profiling/ingestion.md b/docs/profiling/ingestion.md new file mode 100644 index 0000000..5e0a072 --- /dev/null +++ b/docs/profiling/ingestion.md @@ -0,0 +1,63 @@ +# 🔻 Profiling Ingestion + +The following protocol APIs are supported for ingesting continuous profiling events: + + +## ** OTEL Collector ** + + + +![image](https://user-images.githubusercontent.com/1423657/196469086-3d85efd5-7ef9-4d42-a677-5591470b7cae.png ':size=200') + +The [OTEL Collector]([https://opentelemetry.io/docs/collector/](https://github.com/metrico/otel-collector)) offers a vendor-agnostic implementation of how to receive, process and export telemetry data. It removes the need to run, operate, and maintain multiple agents/collectors. + +This works with improved scalability and supports a large variety of open-source observability data formats _(e.g. pprof, etc.)_ and allows aggregating and sending profiling data to **qryn** using the _Pyroscope API_ + +This guide is based on the [qryn opentelemetry distribution](https://github.com/metrico/otel-collector) for qryn + clickhouse. + +### Examples + +#### qryn collector +``` +otel-collector: + container_name: otel-collector + image: ghcr.io/metrico/qryn-otel-collector:latest + volumes: + - ./otel-collector-config.yaml:/etc/otel/config.yaml + ports: + - "8062 :8062 " # Pyroscope gRPC receiver + restart: on-failure +``` + +###### pyroscope `otel-collector-config.taml` +The following example enables Pyroscope ingestion using the qryn-collector. Integrate in your existing configuration. + +```yml +receivers: + pyroscopereceiver: +exporters: + clickhouseprofileexporter: + dsn: clickhouse://localhost:9000/qryn +service: + pipelines: + logs: + receivers: [pyroscopereceiver] + exporters: [clickhouseprofileexporter] +``` + +?> _That's it!_ You're now ready to ingest _continuous profiling into **qryn** using OTLP Collector! + +## ** Pyroscope Java ** + + + +You can use qryn with the [Pyroscope Java](https://github.com/grafana/pyroscope-java) client + +The agent is distributed as a single JAR file `pyroscope.jar` containing native async-profiler libraries for: + +* Linux on x64 +* Linux on ARM64 +* MacOS on x64 +* MacOS on ARM64 + + diff --git a/docs/profiling/query.md b/docs/profiling/query.md new file mode 100644 index 0000000..95ee761 --- /dev/null +++ b/docs/profiling/query.md @@ -0,0 +1,26 @@ +# 🔎 Querying Profiling Data + +In this section, we'll learn how to query and filter profiling data using **Pyroscope**. Let's get __qryn__! + + +### ** ⭐ Grafana Pyroscope ** + + +Configure a new Pyroscope `datasource` using the Phlare format pointed at **qryn** + +![image](https://github.com/metrico/qryn-docs/assets/1423657/5c4f985c-c9fc-4676-8954-ac6973e77e9e) + +You are now ready to **explore** profiling data using Pyroscope and _flame visualizations_ + + +### Pyroscope +#### Find Profiling data using Pyroscope 🧲 + +Pyroscope is _Grafana's Continuous Profiling_ stack providing ingestion and filtering capabilities. + +#### Search +Use the **qryn** `Pyroscope` datasource to find profiling data using _Search_ + +![screencast-localhost_3000-2024 01 16-12_43_50-ezgif com-video-to-gif-converter](https://github.com/metrico/qryn-docs/assets/1423657/3fe7167e-504a-42c0-bf51-bdb090ce0f6b) + +