<p>When starting go-ethereum(aka: geth), it is necessary to add the <code>--metrics</code> and <code>--metrics.expensive</code> parameters. eg:</p>
<div class="code-snippet "><div class="lang-toolbar">
<span class="lang-toolbar__item lang-toolbar__item-active">sh</span>
<span class="code-clipboard">
<button x-data="app_code_snippet()" x-init="init()" @click="copy()">
<img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
<span>Copy</span>
</button>
</span>
<div class="lang-toolbar__border"></div>
</div><div class="code-snippet ">
<pre data-expanded="false"><code class="language-sh">geth <other commands> --metrics --metrics.addr 127.0.0.1 --metrics.port 6060 --metrics.expensive</code></pre>
</div>
</div>
<p>Prometheus collects metrics using the following method:</p>
<div class="code-snippet "><div class="lang-toolbar">
<span class="lang-toolbar__item lang-toolbar__item-active">YAML</span>
<span class="code-clipboard">
<button x-data="app_code_snippet()" x-init="init()" @click="copy()">
<img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
<span>Copy</span>
</button>
</span>
<div class="lang-toolbar__border"></div>
</div><div class="code-snippet ">
<pre data-expanded="false"><code class="language-yaml"> - job_name: 'go-ethereum'
scrape_interval: 10s
metrics_path: /debug/metrics/prometheus
static_configs:
- targets:
- '127.0.0.1:6060'
labels:
chain: ethereum</code></pre>
</div>
</div>
<p>And If you need to collect rpc related metrics, add a <a href="https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/" target="_blank" rel="noopener noreferrer">Prometheus recording rule</a> as below:</p>
<div class="code-snippet "><div class="lang-toolbar">
<span class="lang-toolbar__item lang-toolbar__item-active">YAML</span>
<span class="code-clipboard">
<button x-data="app_code_snippet()" x-init="init()" @click="copy()">
<img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
<span>Copy</span>
</button>
</span>
<div class="lang-toolbar__border"></div>
</div><div class="code-snippet ">
<pre data-expanded="false"><code class="language-yaml"> groups:
- name: geth_rpc_requests_rules
rules:
- expr: label_replace({__name__=~"rpc_duration_.*_success"}, "method", "$1", "__name__", "rpc_duration_(.+)_success")
record: geth_rpc_requests_success
- expr: label_replace({__name__=~"rpc_duration_.*_failure"}, "method", "$1", "__name__", "rpc_duration_(.+)_failure")
record: geth_rpc_requests_failure
- expr: label_replace({__name__=~"rpc_duration_.*_success_count"}, "method", "$1", "__name__", "rpc_duration_(.+)_success_count")
record: geth_rpc_requests_success_count
- expr: label_replace({__name__=~"rpc_duration_.*_failure_count"}, "method", "$1", "__name__", "rpc_duration_(.+)_failure_count")
record: geth_rpc_requests_failure_count</code></pre>
</div>
</div>
Data source config
Collector type:
Collector config: