Completed the metrics page

pull/620/head
An0nX 2024-12-13 22:29:39 +03:00 committed by GitHub
parent a6af837cb5
commit f1db31e83f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 53 additions and 46 deletions

View File

@ -1,64 +1,70 @@
# Метрики # Метрики
Более простой (и, надеюсь, лучший) способ экспорта статистики. Данное руководство описывает более простой и эффективный способ настройки экспорта статистических данных для Marzban. Использование метрик позволяет администраторам системы отслеживать производительность и состояние сети, а также быстро выявлять и решать возникающие проблемы.
## Связанные настройки ## Связанные настройки
Можно добавить входящее подключение `metrics` в раздел `inbounds`: ### Добавление входящего подключения `metrics`
Для настройки экспорта метрик необходимо добавить входящее подключение `metrics` в раздел `inbounds` конфигурационного файла. Это подключение будет слушать на локальном интерфейсе и порту, что обеспечит безопасность доступа к метрикам.
```json ```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", "type": "field",
"port": 11111, "inboundTag": [
"protocol": "dokodemo-door", "metrics_in"
"settings": { ],
"address": "127.0.0.1" "outboundTag": "metrics_out"
},
"tag": "metrics_in"
} }
] ]
}
``` ```
Добавьте правило маршрутизации для входящего подключения `metrics` в раздел `routing`: ### Добавление метрик в основные настройки
Для активации метрик необходимо добавить раздел `metrics` в основные настройки конфигурационного файла. Это позволит системе собирать и экспортировать метрики.
```json ```json
"routing": { "metrics": {
"rules": [ "tag": "metrics_out"
{ }
"type": "field",
"inboundTag": [
"metrics_in"
],
"outboundTag": "metrics_out"
}
]
}
```
Добавьте `metrics` в основные настройки:
```json
"metrics": {
"tag": "metrics_out"
}
``` ```
## Использование ## Использование
### pprof ### 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 ### expvars
Откройте `http://127.0.0.1:11111/debug/vars`. Для просмотра текущих метрик и состояния системы можно использовать экспортные переменные (`expvars`). Откройте браузер и перейдите по адресу `http://127.0.0.1:11111/debug/vars`.
Экспортируемые переменные включают: Экспортируемые переменные включают:
* `stats` - статистика по входящим, исходящим подключениям и пользователям. - `stats` — статистика по входящим, исходящим подключениям и пользователям.
* `observatory` - результаты мониторинга. - `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> <details><summary>Показать</summary><br>
@ -151,9 +157,16 @@
``` ```
</details> </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. Используйте следующий файл конфигурации в качестве примера: 2. Используйте следующий файл конфигурации в качестве примера:
<details><summary>Показать</summary><br> <details><summary>Показать</summary><br>
@ -265,16 +278,10 @@ xray:
``` ```
</details> </details>
И вы получите красивый график, подобный этому: Таким образом вы получите красивый график, подобный этому:
![160428235-2988bf69-5d6c-41ec-8267-1bd512508aa8](https://github.com/chika0801/Xray-docs-next/assets/88967758/455e88ce-ced2-4593-a9fa-425bb293215b) ![160428235-2988bf69-5d6c-41ec-8267-1bd512508aa8](https://github.com/chika0801/Xray-docs-next/assets/88967758/455e88ce-ced2-4593-a9fa-425bb293215b)
### Дополнительно ### Дополнительные сведения
Возможно, лучше использовать пустой объект `stats` в конфигурационном файле, чем добавлять `metrics`?
**Изменение:** удалены настройки, связанные с Prometheus, и добавлено использование expvars.
Возможно, что для некоторых сценариев лучше использовать пустой объект `stats` в конфигурационном файле, чем добавлять `metrics`. Это может упростить конфигурацию и сделать ее более безопасной, так как пустой объект `stats` не требует отдельного входящего подключения и правила маршрутизации.