* Update self instrumentation to use alloy and bump versions * Update devenv/docker/blocks/self-instrumentation/config.alloy Co-authored-by: Sam DeHaan <dehaansa@gmail.com> * Add remote write receiver feature to Prometheus configuration in docker-compose.yaml * Add example for plugin profiling to the doc --------- Co-authored-by: Sam DeHaan <dehaansa@gmail.com>
49 lines
1.0 KiB
Markdown
49 lines
1.0 KiB
Markdown
# Self Instrumentation
|
|
|
|
To run this source, in the Grafana repo root:
|
|
|
|
```
|
|
make devenv sources=self-instrumentation
|
|
```
|
|
|
|
This will setup Prometheus, Loki, Tempo, and Pyroscope.
|
|
|
|
You then need to run Grafana with those added config:
|
|
|
|
```ini
|
|
[log.file]
|
|
format = json
|
|
|
|
[log.frontend]
|
|
enabled = true
|
|
custom_endpoint=http://localhost:12347/collect
|
|
|
|
[tracing.opentelemetry.otlp]
|
|
address = localhost:4317
|
|
insecure = true
|
|
```
|
|
|
|
To collect profiles with pyroscope, you need to run Grafana with the following env vars:
|
|
|
|
```bash
|
|
export GF_DIAGNOSTICS_PROFILING_ENABLED=true
|
|
export GF_DIAGNOSTICS_PROFILING_ADDR=0.0.0.0
|
|
make run
|
|
```
|
|
|
|
To enable profiling in your plugin add the following to your `custom.ini`:
|
|
|
|
```ini
|
|
[plugin.grafana-bigquery-datasource]
|
|
profiling_enabled = true
|
|
profiling_port = 6161
|
|
profiling_block_rate = 1
|
|
profiling_mutex_rate = 1
|
|
```
|
|
|
|
and the following to your `config.alloy` in the `pyroscope.scrape.targets` section:
|
|
|
|
```yaml
|
|
{"__address__" = "host.docker.internal:6161", "service_name"="grafana-bigquery-datasource"},
|
|
```
|