WIP: Add pyroscope dashboards #53
10 changed files with 222 additions and 0 deletions
|
@ -4,4 +4,5 @@ basenet
|
||||||
morph_chain
|
morph_chain
|
||||||
jaeger
|
jaeger
|
||||||
prometheus
|
prometheus
|
||||||
|
pyroscope
|
||||||
grafana
|
grafana
|
||||||
|
|
4
.env
4
.env
|
@ -64,3 +64,7 @@ PROMETHEUS_IMAGE=prom/prometheus
|
||||||
# Grafana versions
|
# Grafana versions
|
||||||
GRAFANA_VERSION=9.5.6
|
GRAFANA_VERSION=9.5.6
|
||||||
GRAFANA_IMAGE=grafana/grafana
|
GRAFANA_IMAGE=grafana/grafana
|
||||||
|
|
||||||
|
# Pyroscope version
|
||||||
|
PYROSCOPE_VERSION=1.0.0-rc.0
|
||||||
|
PYROSCOPE_IMAGE=grafana/pyroscope
|
||||||
|
|
148
services/grafana/provisioning/dashboards/pprof.json
Normal file
148
services/grafana/provisioning/dashboards/pprof.json
Normal file
|
@ -0,0 +1,148 @@
|
||||||
|
{
|
||||||
|
"annotations": {
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"builtIn": 1,
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana",
|
||||||
|
"uid": "-- Grafana --"
|
||||||
|
},
|
||||||
|
"enable": true,
|
||||||
|
"hide": true,
|
||||||
|
"iconColor": "rgba(0, 211, 255, 1)",
|
||||||
|
"name": "Annotations & Alerts",
|
||||||
|
"type": "dashboard"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"editable": true,
|
||||||
|
"fiscalYearStartMonth": 0,
|
||||||
|
"graphTooltip": 0,
|
||||||
|
"id": 10,
|
||||||
|
"links": [],
|
||||||
|
"liveNow": false,
|
||||||
|
"panels": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "phlare",
|
||||||
|
"uid": "P02E4190217B50628"
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 12,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 2,
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "phlare",
|
||||||
|
"uid": "P02E4190217B50628"
|
||||||
|
},
|
||||||
|
"groupBy": [],
|
||||||
|
"labelSelector": "{instance=\"${_instance}\"}",
|
||||||
|
"profileTypeId": "memory:inuse_space:bytes:space:bytes",
|
||||||
|
"queryType": "profile",
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Inuse objects",
|
||||||
|
"type": "flamegraph"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "phlare",
|
||||||
|
"uid": "P02E4190217B50628"
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 16,
|
||||||
|
"w": 12,
|
||||||
|
"x": 0,
|
||||||
|
"y": 8
|
||||||
|
},
|
||||||
|
"id": 1,
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "phlare",
|
||||||
|
"uid": "P02E4190217B50628"
|
||||||
|
},
|
||||||
|
"groupBy": [],
|
||||||
|
"labelSelector": "{instance=\"${_instance}\"}",
|
||||||
|
"profileTypeId": "process_cpu:cpu:nanoseconds:cpu:nanoseconds",
|
||||||
|
"queryType": "profile",
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "CPU",
|
||||||
|
"type": "flamegraph"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"refresh": "",
|
||||||
|
"schemaVersion": 38,
|
||||||
|
"style": "dark",
|
||||||
|
"tags": [],
|
||||||
|
"templating": {
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"current": {
|
||||||
|
"selected": true,
|
||||||
|
"text": "morph_chain:20011",
|
||||||
|
"value": "morph_chain:20011"
|
||||||
|
},
|
||||||
|
"hide": 0,
|
||||||
|
"includeAll": false,
|
||||||
|
"label": "Instance",
|
||||||
|
"multi": false,
|
||||||
|
"name": "_instance",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"selected": false,
|
||||||
|
"text": "s01:6060",
|
||||||
|
"value": "s01:6060"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selected": false,
|
||||||
|
"text": "s02:6060",
|
||||||
|
"value": "s02:6060"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selected": false,
|
||||||
|
"text": "s03:6060",
|
||||||
|
"value": "s03:6060"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selected": false,
|
||||||
|
"text": "s04:6060",
|
||||||
|
"value": "s04:6060"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selected": false,
|
||||||
|
"text": "s3:6060",
|
||||||
|
"value": "s3:6060"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"selected": true,
|
||||||
|
"text": "morph_chain:20011",
|
||||||
|
"value": "morph_chain:20011"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"query": "s01:6060,s02:6060,s03:6060,s04:6060,s3:6060,morph_chain:20011",
|
||||||
|
"queryValue": "",
|
||||||
|
"skipUrlSync": false,
|
||||||
|
"type": "custom"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"time": {
|
||||||
|
"from": "now-1h",
|
||||||
|
"to": "now"
|
||||||
|
},
|
||||||
|
"timepicker": {},
|
||||||
|
"timezone": "",
|
||||||
|
"title": "Pprof",
|
||||||
|
"uid": "eba3003c-e846-400c-b7d3-6658eddc28bc",
|
||||||
|
"version": 4,
|
||||||
|
"weekStart": ""
|
||||||
|
}
|
|
@ -6,3 +6,9 @@ datasources:
|
||||||
access: proxy
|
access: proxy
|
||||||
orgId: 1
|
orgId: 1
|
||||||
url: http://prometheus:9090
|
url: http://prometheus:9090
|
||||||
|
- name: Pyroscope
|
||||||
|
type: phlare
|
||||||
|
url: http://pyroscope:4100
|
||||||
|
jsonData:
|
||||||
|
minStep: '15s'
|
||||||
|
backendType: 'pyroscope'
|
1
services/pyroscope/.env
Symbolic link
1
services/pyroscope/.env
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../.env
|
1
services/pyroscope/.hosts
Normal file
1
services/pyroscope/.hosts
Normal file
|
@ -0,0 +1 @@
|
||||||
|
IPV4_PREFIX.123 pyroscope.LOCAL_DOMAIN
|
1
services/pyroscope/.int_test.env
Symbolic link
1
services/pyroscope/.int_test.env
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../.int_test.env
|
24
services/pyroscope/docker-compose.yml
Normal file
24
services/pyroscope/docker-compose.yml
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
pyroscope:
|
||||||
|
image: grafana/pyroscope:latest
|
||||||
|
domainname: ${LOCAL_DOMAIN}
|
||||||
|
hostname: pyroscope
|
||||||
|
container_name: pyroscope
|
||||||
|
networks:
|
||||||
|
pyroscope_int:
|
||||||
|
internet:
|
||||||
|
ipv4_address: ${IPV4_PREFIX}.123
|
||||||
|
ports:
|
||||||
|
- '4100:4100'
|
||||||
|
command:
|
||||||
|
- -config.file=/etc/pyroscope/config.yaml
|
||||||
|
- server
|
||||||
|
volumes:
|
||||||
|
- ./server.yml:/etc/pyroscope/config.yaml
|
||||||
|
|
||||||
|
networks:
|
||||||
|
pyroscope_int:
|
||||||
|
internet:
|
||||||
|
external: true
|
||||||
|
name: basenet_internet
|
32
services/pyroscope/server.yml
Normal file
32
services/pyroscope/server.yml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
server:
|
||||||
|
http_listen_port: 4100
|
||||||
|
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: "default"
|
||||||
|
scrape_interval: "15s"
|
||||||
|
static_configs:
|
||||||
|
- targets: ["127.0.0.1:4100"]
|
||||||
|
labels:
|
||||||
|
service_name: "pyroscope"
|
||||||
|
- job_name: storage
|
||||||
|
scrape_interval: "15s"
|
||||||
|
static_configs:
|
||||||
|
- targets: ["s01:6060", "s02:6060", "s03:6060"]
|
||||||
|
labels:
|
||||||
|
service_name: "storage"
|
||||||
|
- targets: ["s04:6060"]
|
||||||
|
labels:
|
||||||
|
service_name: "s04"
|
||||||
|
- job_name: s3
|
||||||
|
scrape_interval: "15s"
|
||||||
|
static_configs:
|
||||||
|
- targets: ["s3:6060"]
|
||||||
|
labels:
|
||||||
|
service_name: "s3"
|
||||||
|
- job_name: morph
|
||||||
|
scrape_interval: "15s"
|
||||||
|
static_configs:
|
||||||
|
- targets: ["morph_chain:20011"]
|
||||||
|
labels:
|
||||||
|
service_name: "morph"
|
|
@ -5,6 +5,10 @@ prometheus:
|
||||||
enabled: true
|
enabled: true
|
||||||
address: :9090
|
address: :9090
|
||||||
|
|
||||||
|
pprof:
|
||||||
|
enabled: true
|
||||||
|
address: :6060
|
||||||
|
|
||||||
# Interval to check node health
|
# Interval to check node health
|
||||||
rebalance_interval: 30s
|
rebalance_interval: 30s
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue