Completed the metrics page
parent
a6af837cb5
commit
f1db31e83f
|
@ -1,64 +1,70 @@
|
|||
# Метрики
|
||||
|
||||
Более простой (и, надеюсь, лучший) способ экспорта статистики.
|
||||
Данное руководство описывает более простой и эффективный способ настройки экспорта статистических данных для Marzban. Использование метрик позволяет администраторам системы отслеживать производительность и состояние сети, а также быстро выявлять и решать возникающие проблемы.
|
||||
|
||||
## Связанные настройки
|
||||
|
||||
Можно добавить входящее подключение `metrics` в раздел `inbounds`:
|
||||
### Добавление входящего подключения `metrics`
|
||||
|
||||
Для настройки экспорта метрик необходимо добавить входящее подключение `metrics` в раздел `inbounds` конфигурационного файла. Это подключение будет слушать на локальном интерфейсе и порту, что обеспечит безопасность доступа к метрикам.
|
||||
|
||||
```json
|
||||
"inbounds": [
|
||||
"inbounds": [
|
||||
{
|
||||
"listen": "127.0.0.1",
|
||||
"port": 11111,
|
||||
"protocol": "dokodemo-door",
|
||||
"settings": {
|
||||
"address": "127.0.0.1"
|
||||
},
|
||||
"tag": "metrics_in"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
### Добавление правила маршрутизации
|
||||
|
||||
Для правильной маршрутизации трафика, поступающего на входящее подключение `metrics`, необходимо добавить правило маршрутизации в раздел `routing`. Это правило направит трафик, поступающий на тег `metrics_in`, на тег `metrics_out`.
|
||||
|
||||
```json
|
||||
"routing": {
|
||||
"rules": [
|
||||
{
|
||||
"listen": "127.0.0.1",
|
||||
"port": 11111,
|
||||
"protocol": "dokodemo-door",
|
||||
"settings": {
|
||||
"address": "127.0.0.1"
|
||||
},
|
||||
"tag": "metrics_in"
|
||||
"type": "field",
|
||||
"inboundTag": [
|
||||
"metrics_in"
|
||||
],
|
||||
"outboundTag": "metrics_out"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Добавьте правило маршрутизации для входящего подключения `metrics` в раздел `routing`:
|
||||
### Добавление метрик в основные настройки
|
||||
|
||||
Для активации метрик необходимо добавить раздел `metrics` в основные настройки конфигурационного файла. Это позволит системе собирать и экспортировать метрики.
|
||||
|
||||
```json
|
||||
"routing": {
|
||||
"rules": [
|
||||
{
|
||||
"type": "field",
|
||||
"inboundTag": [
|
||||
"metrics_in"
|
||||
],
|
||||
"outboundTag": "metrics_out"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Добавьте `metrics` в основные настройки:
|
||||
|
||||
```json
|
||||
"metrics": {
|
||||
"tag": "metrics_out"
|
||||
}
|
||||
"metrics": {
|
||||
"tag": "metrics_out"
|
||||
}
|
||||
```
|
||||
|
||||
## Использование
|
||||
|
||||
### pprof
|
||||
|
||||
Откройте `http://127.0.0.1:11111/debug/pprof/` или используйте утилиту `go tool pprof`, чтобы начать профилирование или просмотреть запущенные горутины.
|
||||
Для профилирования и просмотра запущенных горутин можно использовать встроенный инструмент `pprof`. Откройте браузер и перейдите по адресу `http://127.0.0.1:11111/debug/pprof/` или используйте утилиту `go tool pprof` для более детального анализа.
|
||||
|
||||
### expvars
|
||||
|
||||
Откройте `http://127.0.0.1:11111/debug/vars`.
|
||||
Для просмотра текущих метрик и состояния системы можно использовать экспортные переменные (`expvars`). Откройте браузер и перейдите по адресу `http://127.0.0.1:11111/debug/vars`.
|
||||
|
||||
Экспортируемые переменные включают:
|
||||
* `stats` - статистика по входящим, исходящим подключениям и пользователям.
|
||||
* `observatory` - результаты мониторинга.
|
||||
- `stats` — статистика по входящим, исходящим подключениям и пользователям.
|
||||
- `observatory` — результаты мониторинга.
|
||||
|
||||
Например, с помощью [luci-app-xray](https://github.com/yichya/luci-app-xray) вы, скорее всего, получите результат, подобный этому (стандартные переменные expvar, такие как `cmdline` и `memstats`, опущены):
|
||||
Пример данных, полученных с помощью [luci-app-xray](https://github.com/yichya/luci-app-xray):
|
||||
|
||||
<details><summary>Показать</summary><br>
|
||||
|
||||
|
@ -151,9 +157,16 @@
|
|||
```
|
||||
</details>
|
||||
|
||||
Чтобы лучше визуализировать эти данные, можно использовать [Netdata](https://github.com/netdata/netdata) (с плагином python.d):
|
||||
### Визуализация данных с помощью Netdata
|
||||
|
||||
Для лучшей визуализации данных и мониторинга можно использовать систему мониторинга [Netdata](https://github.com/netdata/netdata) с плагином python.d. Netdata предоставляет интерактивные графики, которые облегчают анализ и отслеживание метрик.
|
||||
|
||||
1. Отредактируйте соответствующий файл конфигурации Netdata:
|
||||
|
||||
```sh
|
||||
sudo /etc/netdata/edit-config python.d/go_expvar.conf
|
||||
```
|
||||
|
||||
1. Отредактируйте соответствующий файл конфигурации (`sudo /etc/netdata/edit-config python.d/go_expvar.conf`).
|
||||
2. Используйте следующий файл конфигурации в качестве примера:
|
||||
|
||||
<details><summary>Показать</summary><br>
|
||||
|
@ -265,16 +278,10 @@ xray:
|
|||
```
|
||||
</details>
|
||||
|
||||
И вы получите красивый график, подобный этому:
|
||||
Таким образом вы получите красивый график, подобный этому:
|
||||
|
||||

|
||||
|
||||
### Дополнительно
|
||||
|
||||
Возможно, лучше использовать пустой объект `stats` в конфигурационном файле, чем добавлять `metrics`?
|
||||
|
||||
**Изменение:** удалены настройки, связанные с Prometheus, и добавлено использование expvars.
|
||||
|
||||
|
||||
|
||||
### Дополнительные сведения
|
||||
|
||||
Возможно, что для некоторых сценариев лучше использовать пустой объект `stats` в конфигурационном файле, чем добавлять `metrics`. Это может упростить конфигурацию и сделать ее более безопасной, так как пустой объект `stats` не требует отдельного входящего подключения и правила маршрутизации.
|
||||
|
|
Loading…
Reference in New Issue