-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #10 from metrico/pyroscope
Pyroscope Docs
- Loading branch information
Showing
4 changed files
with
95 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
# 🔻 Profiling Ingestion | ||
|
||
The following protocol APIs are supported for ingesting continuous profiling events: | ||
|
||
<!-- tabs:start --> | ||
## ** OTEL Collector ** | ||
|
||
<a id=grafana name=grafana></a> | ||
|
||
![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 ** | ||
<a id=java name=java></a> | ||
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 | ||
|
||
<!-- tabs:end --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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__! | ||
|
||
<!-- tabs:start --> | ||
### ** ⭐ Grafana Pyroscope ** | ||
<a id=grafana></a> | ||
|
||
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 <!-- {docsify-ignore-all} --> | ||
#### 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) | ||
|
||
<!-- tabs:end --> |