RU Metrics: refine and add "listen"
parent
5891155ade
commit
01044fe273
|
@ -1,66 +1,47 @@
|
||||||
# Метрики
|
# Метрики
|
||||||
|
|
||||||
Более простой (и, надеюсь, лучший) способ экспорта статистики.
|
Более простой (и, надеемся, лучший) способ экспорта статистики.
|
||||||
|
|
||||||
## Связанные настройки
|
## Соответствующая конфигурация
|
||||||
|
|
||||||
Можно добавить входящее подключение `metrics` в раздел `inbounds`:
|
Добавьте метрики в основную конфигурацию:
|
||||||
|
|
||||||
```json
|
|
||||||
"inbounds": [
|
|
||||||
{
|
|
||||||
"listen": "127.0.0.1",
|
|
||||||
"port": 11111,
|
|
||||||
"protocol": "dokodemo-door",
|
|
||||||
"settings": {
|
|
||||||
"address": "127.0.0.1"
|
|
||||||
},
|
|
||||||
"tag": "metrics_in"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
||||||
Добавьте правило маршрутизации для входящего подключения `metrics` в раздел `routing`:
|
|
||||||
|
|
||||||
```json
|
|
||||||
"routing": {
|
|
||||||
"rules": [
|
|
||||||
{
|
|
||||||
"type": "field",
|
|
||||||
"inboundTag": [
|
|
||||||
"metrics_in"
|
|
||||||
],
|
|
||||||
"outboundTag": "metrics_out"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Добавьте `metrics` в основные настройки:
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"tag": "metrics_out"
|
"tag": "Metrics",
|
||||||
|
"listen": "127.0.0.1:11111"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Использование
|
> `tag`: string
|
||||||
|
|
||||||
|
Тег исходящего прокси для метрик. Настроив входящее соединение AnyDoor и маршрутизацию AnyDoor на этот исходящий прокси, вы сможете получить доступ к метрикам через AnyDoor.
|
||||||
|
|
||||||
|
> `listen`: string
|
||||||
|
|
||||||
|
Более простой способ — просто прослушивать указанный адрес и порт для предоставления сервиса.
|
||||||
|
|
||||||
|
Если при установке этого поля `tag` пустой, он автоматически устанавливается в `Metrics`. Если оба поля не заданы, ядро не запустится.
|
||||||
|
|
||||||
|
## Способы использования
|
||||||
|
|
||||||
### pprof
|
### pprof
|
||||||
|
|
||||||
Откройте `http://127.0.0.1:11111/debug/pprof/` или используйте утилиту `go tool pprof`, чтобы начать профилирование или просмотреть запущенные горутины.
|
Перейдите по адресу `http://127.0.0.1:11111/debug/pprof/` или используйте `go tool pprof` для отладки.
|
||||||
|
|
||||||
|
Для сообщения о проблемах с чрезмерным использованием памяти/утечками памяти необходимо предоставить файл `/debug/pprof/heap`.
|
||||||
|
|
||||||
### expvars
|
### expvars
|
||||||
|
|
||||||
Откройте `http://127.0.0.1:11111/debug/vars`.
|
Перейдите по адресу `http://127.0.0.1:11111/debug/vars`.
|
||||||
|
|
||||||
Экспортируемые переменные включают:
|
Содержит следующие переменные:
|
||||||
* `stats` - статистика по входящим, исходящим подключениям и пользователям.
|
* `stats`: включает все данные о входящих и исходящих соединениях, а также о пользователях.
|
||||||
* `observatory` - результаты мониторинга.
|
* `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) вы можете получить следующий вывод (стандартное содержимое expvar, такое как cmdline и memstats, опущено):
|
||||||
|
|
||||||
<details><summary>Показать</summary>
|
<details><summary>Нажмите, чтобы посмотреть</summary><br>
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
@ -151,12 +132,12 @@
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
Чтобы лучше визуализировать эти данные, можно использовать [Netdata](https://github.com/netdata/netdata) (с плагином python.d):
|
Для лучшей визуализации можно использовать [Netdata](https://github.com/netdata/netdata) (с плагином python.d):
|
||||||
|
|
||||||
1. Отредактируйте соответствующий файл конфигурации (`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>
|
<details><summary>Нажмите, чтобы посмотреть</summary><br>
|
||||||
|
|
||||||
```
|
```
|
||||||
xray:
|
xray:
|
||||||
|
@ -265,16 +246,6 @@ xray:
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
И вы получите красивый график, подобный этому:
|
Вы получите результат, подобный этому:
|
||||||
|
|
||||||

|

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