An open API service indexing awesome lists of open source software.

https://github.com/quackscience/duckdb-extension-pyroscope

DuckDB Pyroscope Extension for Continuous Profiling
https://github.com/quackscience/duckdb-extension-pyroscope

continuous-profiling duckdb duckdb-extension observability olap ppprof profiling pyroscope qryn

Last synced: 3 months ago
JSON representation

DuckDB Pyroscope Extension for Continuous Profiling

Awesome Lists containing this project

README

          

# DuckDB Pyroscope Extension
This experimental extension adds pyroscope profiling features to DuckDB

![duckdb_flamegraph](https://github.com/user-attachments/assets/9769ca8c-9839-41d8-8dcc-c468c0637771)

> For raw `pprof` generation use the [pprof extension](https://github.com/quackscience/duckdb-extension-pprof)

### Install
```
INSTALL pyroscope FROM community;
LOAD pyroscope;
```

### Usage

```sql
---- Start the tracer, requires backend Pyroscope URL
D SELECT * FROM trace_start('https://pyroscope:4000');

---- Run a bunch of heavy queries to stream results to Pyroscope/qryn

---- Stop the tracer. This might hang due to a bug in the pyroscope crate.
D SELECT * FROM trace_stop();
```

### Glory Shot in Pyroscope
Create a `Free` account on [Grafana Cloud](https://grafana.com/auth/sign-up/create-user?pg=prod-cloud&plcmt=hero-btn-1) create a Token for Pyroscope profile sending and use the extension:
```sql
---- Start the tracer to Grafana Cloud Pyroscope
D SELECT * FROM trace_start('https://user:token@profiles-prod-xxx.grafana.net');
```

![pyroscope_duckdb_large](https://github.com/user-attachments/assets/74fad3ec-3bc3-4880-be4b-8149c5431115)