Browse Source

feat: add statistics section (#2718)

the "Outbounds Traffic" parameter, which was misleading, was also renamed and moved
Shishkevich D. 3 weeks ago
parent
commit
99f26be30d

+ 42 - 3
web/html/xui/xray.html

@@ -143,7 +143,14 @@
                           </a-select>
                         </a-col>
                       </a-row>
-                      <setting-list-item type="switch" title='{{ i18n "pages.xray.outboundTraffic"}}' desc='{{ i18n "pages.xray.outboundTrafficDesc"}}' v-model="outboundTraffic"></setting-list-item>
+                    </a-list-item>
+                  </a-collapse-panel>
+                  <a-collapse-panel header='{{ i18n "pages.xray.statistics" }}'>
+                    <a-list-item>
+                      <setting-list-item type="switch" title='{{ i18n "pages.xray.statsInboundUplink" }}' desc='{{ i18n "pages.xray.statsInboundUplinkDesc" }}' style="padding-top: 0 !important;" v-model="statsInboundUplink"></setting-list-item>
+                      <setting-list-item type="switch" title='{{ i18n "pages.xray.statsInboundDownlink" }}' desc='{{ i18n "pages.xray.statsInboundDownlinkDesc" }}' v-model="statsInboundDownlink"></setting-list-item>
+                      <setting-list-item type="switch" title='{{ i18n "pages.xray.statsOutboundUplink" }}' desc='{{ i18n "pages.xray.statsOutboundUplinkDesc" }}' v-model="statsOutboundUplink"></setting-list-item>
+                      <setting-list-item type="switch" title='{{ i18n "pages.xray.statsOutboundDownlink" }}' desc='{{ i18n "pages.xray.statsOutboundDownlinkDesc" }}' v-model="statsOutboundDownlink"></setting-list-item>
                     </a-list-item>
                   </a-collapse-panel>
                   <a-collapse-panel header='{{ i18n "pages.xray.logConfigs" }}'>
@@ -1882,7 +1889,40 @@
                     this.templateSettings = newTemplateSettings;
                 }
             },
-            outboundTraffic: {
+            statsInboundUplink: {
+                get: function () {
+                    if (!this.templateSettings || !this.templateSettings.policy.system || !this.templateSettings.policy.system.statsInboundUplink) return false;
+                    return this.templateSettings.policy.system.statsInboundUplink;
+                },
+                set: function (newValue) {
+                    newTemplateSettings = this.templateSettings;
+                    newTemplateSettings.policy.system.statsInboundUplink = newValue;
+                    this.templateSettings = newTemplateSettings;
+                }
+            },
+            statsInboundDownlink: {
+                get: function () {
+                    if (!this.templateSettings || !this.templateSettings.policy.system || !this.templateSettings.policy.system.statsInboundDownlink) return false;
+                    return this.templateSettings.policy.system.statsInboundDownlink;
+                },
+                set: function (newValue) {
+                    newTemplateSettings = this.templateSettings;
+                    newTemplateSettings.policy.system.statsInboundDownlink = newValue;
+                    this.templateSettings = newTemplateSettings;
+                }
+            },
+            statsOutboundUplink: {
+                get: function () {
+                    if (!this.templateSettings || !this.templateSettings.policy.system || !this.templateSettings.policy.system.statsOutboundUplink) return false;
+                    return this.templateSettings.policy.system.statsOutboundUplink;
+                },
+                set: function (newValue) {
+                    newTemplateSettings = this.templateSettings;
+                    newTemplateSettings.policy.system.statsOutboundUplink = newValue;
+                    this.templateSettings = newTemplateSettings;
+                }
+            },
+            statsOutboundDownlink: {
                 get: function () {
                     if (!this.templateSettings || !this.templateSettings.policy.system || !this.templateSettings.policy.system.statsOutboundDownlink) return false;
                     return this.templateSettings.policy.system.statsOutboundDownlink;
@@ -1890,7 +1930,6 @@
                 set: function (newValue) {
                     newTemplateSettings = this.templateSettings;
                     newTemplateSettings.policy.system.statsOutboundDownlink = newValue;
-                    newTemplateSettings.policy.system.statsOutboundUplink = newValue;
                     this.templateSettings = newTemplateSettings;
                 }
             },

+ 9 - 2
web/translation/translate.en_US.toml

@@ -372,10 +372,17 @@
 "errorLogDesc" = "The file path for the error log. The special value 'none' disabled error logs"
 "dnsLog" = "DNS Log"
 "dnsLogDesc" = "Whether to enable DNS query logs"
-"outboundTraffic" = "Outbounds Traffic"
-"outboundTrafficDesc" = "Whether to enable outbound traffic"
 "maskAddress" = "Mask Address"
 "maskAddressDesc" = "IP address mask, when enabled, will automatically replace the IP address that appears in the log."
+"statistics" = "Statistics"
+"statsInboundUplink" = "Inbound Upload Statistics"
+"statsInboundUplinkDesc" = "Enables the statistics collection for upstream traffic of all inbound proxies."
+"statsInboundDownlink" = "Inbound Download Statistics"
+"statsInboundDownlinkDesc" = "Enables the statistics collection for downstream traffic of all inbound proxies."
+"statsOutboundUplink" = "Outbound Upload Statistics"
+"statsOutboundUplinkDesc" = "Enables the statistics collection for upstream traffic of all outbound proxies."
+"statsOutboundDownlink" = "Outbound Download Statistics"
+"statsOutboundDownlinkDesc" = "Enables the statistics collection for downstream traffic of all outbound proxies."
 
 [pages.xray.rules]
 "first" = "First"

+ 9 - 2
web/translation/translate.es_ES.toml

@@ -372,10 +372,17 @@
 "errorLogDesc" = "La ruta del archivo para el registro de errores. El valor especial 'none' desactiva los registros de errores."
 "dnsLog" = "Registro DNS"
 "dnsLogDesc" = "Si habilitar los registros de consulta DNS"
-"outboundTraffic" = "Tráfico saliente"
-"outboundTrafficDesc" = "Si se debe habilitar el tráfico saliente"
 "maskAddress" = "Enmascarar Dirección"
 "maskAddressDesc" = "Máscara de dirección IP, cuando se habilita, reemplazará automáticamente la dirección IP que aparece en el registro."
+"statistics" = "Estadísticas"
+"statsInboundUplink" = "Estadísticas de Subida de Entrada"
+"statsInboundUplinkDesc" = "Habilita la recopilación de estadísticas para el tráfico ascendente de todos los proxies de entrada."
+"statsInboundDownlink" = "Estadísticas de Bajada de Entrada"
+"statsInboundDownlinkDesc" = "Habilita la recopilación de estadísticas para el tráfico descendente de todos los proxies de entrada."
+"statsOutboundUplink" = "Estadísticas de Subida de Salida"
+"statsOutboundUplinkDesc" = "Habilita la recopilación de estadísticas para el tráfico ascendente de todos los proxies de salida."
+"statsOutboundDownlink" = "Estadísticas de Bajada de Salida"
+"statsOutboundDownlinkDesc" = "Habilita la recopilación de estadísticas para el tráfico descendente de todos los proxies de salida."
 
 [pages.xray.rules]
 "first" = "Primero"

+ 9 - 2
web/translation/translate.fa_IR.toml

@@ -372,10 +372,17 @@
 "errorLogDesc" = "مسیر فایل برای ورود به سیستم خطا. مقدار ویژه «هیچ» گزارش های خطا را غیرفعال میکند"
 "dnsLog" = "گزارش DNS"
 "dnsLogDesc" = "آیا ثبت‌های درخواست DNS را فعال کنید"
-"outboundTraffic" = "ترافیک خروجی"
-"outboundTrafficDesc" = "فعال کردن ترافیک خروجی"
 "maskAddress" = "پنهان کردن آدرس"
 "maskAddressDesc" = "پوشش آدرس IP، هنگامی که فعال می‌شود، به طور خودکار آدرس IP که در لاگ ظاهر می‌شود را جایگزین می‌کند."
+"statistics" = "آمار"
+"statsInboundUplink" = "آمار آپلود ورودی"
+"statsInboundUplinkDesc" = "جمع‌آوری آمار برای ترافیک بالارو (آپلود) تمام پروکسی‌های ورودی را فعال می‌کند."
+"statsInboundDownlink" = "آمار دانلود ورودی"
+"statsInboundDownlinkDesc" = "جمع‌آوری آمار برای ترافیک پایین‌رو (دانلود) تمام پروکسی‌های ورودی را فعال می‌کند."
+"statsOutboundUplink" = "آمار آپلود خروجی"
+"statsOutboundUplinkDesc" = "جمع‌آوری آمار برای ترافیک بالارو (آپلود) تمام پروکسی‌های خروجی را فعال می‌کند."
+"statsOutboundDownlink" = "آمار دانلود خروجی"
+"statsOutboundDownlinkDesc" = "جمع‌آوری آمار برای ترافیک پایین‌رو (دانلود) تمام پروکسی‌های خروجی را فعال می‌کند."
 
 [pages.xray.rules]
 "first" = "اولین"

+ 9 - 2
web/translation/translate.id_ID.toml

@@ -371,10 +371,17 @@
 "errorLogDesc" = "Jalur file untuk log kesalahan. Nilai khusus 'tidak ada' menonaktifkan log kesalahan"
 "dnsLog" = "Log DNS"
 "dnsLogDesc" = "Apakah akan mengaktifkan log kueri DNS"
-"outboundTraffic" = "Lalu Lintas Keluar"
-"outboundTrafficDesc" = "Apakah mengaktifkan lalu lintas keluar"
 "maskAddress" = "Alamat Masker"
 "maskAddressDesc" = "Masker alamat IP, ketika diaktifkan, akan secara otomatis mengganti alamat IP yang muncul di log."
+"statistics" = "Statistik"
+"statsInboundUplink" = "Statistik Unggah Masuk"
+"statsInboundUplinkDesc" = "Mengaktifkan pengumpulan statistik untuk lalu lintas unggah dari semua proxy masuk."
+"statsInboundDownlink" = "Statistik Unduh Masuk"
+"statsInboundDownlinkDesc" = "Mengaktifkan pengumpulan statistik untuk lalu lintas unduh dari semua proxy masuk."
+"statsOutboundUplink" = "Statistik Unggah Keluar"
+"statsOutboundUplinkDesc" = "Mengaktifkan pengumpulan statistik untuk lalu lintas unggah dari semua proxy keluar."
+"statsOutboundDownlink" = "Statistik Unduh Keluar"
+"statsOutboundDownlinkDesc" = "Mengaktifkan pengumpulan statistik untuk lalu lintas unduh dari semua proxy keluar."
 
 [pages.xray.rules]
 "first" = "Pertama"

+ 9 - 2
web/translation/translate.ja_JP.toml

@@ -372,10 +372,17 @@
 "errorLogDesc" = "エラーログのファイルパス。特殊値 'none' はエラーログを無効にします"
 "dnsLog" = "DNS ログ"
 "dnsLogDesc" = "DNSクエリのログを有効にするかどうか"
-"outboundTraffic" = "アウトバウンドトラフィック"
-"outboundTrafficDesc" = "アウトバウンドトラフィックを有効にするかどうか"
 "maskAddress" = "アドレスをマスク"
 "maskAddressDesc" = "IPアドレスをマスクし、有効にするとログに表示されるIPアドレスを自動的に置き換えます"
+"statistics" = "統計"
+"statsInboundUplink" = "インバウンドアップロード統計"
+"statsInboundUplinkDesc" = "すべてのインバウンドプロキシのアップストリームトラフィックの統計収集を有効にします。"
+"statsInboundDownlink" = "インバウンドダウンロード統計"
+"statsInboundDownlinkDesc" = "すべてのインバウンドプロキシのダウンストリームトラフィックの統計収集を有効にします。"
+"statsOutboundUplink" = "アウトバウンドアップロード統計"
+"statsOutboundUplinkDesc" = "すべてのアウトバウンドプロキシのアップストリームトラフィックの統計収集を有効にします。"
+"statsOutboundDownlink" = "アウトバウンドダウンロード統計"
+"statsOutboundDownlinkDesc" = "すべてのアウトバウンドプロキシのダウンストリームトラフィックの統計収集を有効にします。"
 
 [pages.xray.rules]
 "first" = "最初"

+ 9 - 2
web/translation/translate.pt_BR.toml

@@ -372,10 +372,17 @@
 "errorLogDesc" = "O caminho do arquivo para o log de erros. O valor especial 'none' desativa os logs de erro."
 "dnsLog" = "Log DNS"
 "dnsLogDesc" = "Se ativar logs de consulta DNS"
-"outboundTraffic" = "Tráfego de saída"
-"outboundTrafficDesc" = "Se deve habilitar o tráfego de saída"
 "maskAddress" = "Mascarar Endereço"
 "maskAddressDesc" = "Máscara de endereço IP, quando ativado, substitui automaticamente o endereço IP que aparece no log."
+"statistics" = "Estatísticas"
+"statsInboundUplink" = "Estatísticas de Upload de Entrada"
+"statsInboundUplinkDesc" = "Habilita a coleta de estatísticas para o tráfego de upload de todos os proxies de entrada."
+"statsInboundDownlink" = "Estatísticas de Download de Entrada"
+"statsInboundDownlinkDesc" = "Habilita a coleta de estatísticas para o tráfego de download de todos os proxies de entrada."
+"statsOutboundUplink" = "Estatísticas de Upload de Saída"
+"statsOutboundUplinkDesc" = "Habilita a coleta de estatísticas para o tráfego de upload de todos os proxies de saída."
+"statsOutboundDownlink" = "Estatísticas de Download de Saída"
+"statsOutboundDownlinkDesc" = "Habilita a coleta de estatísticas para o tráfego de download de todos os proxies de saída."
 
 [pages.xray.rules]
 "first" = "Primeiro"

+ 9 - 2
web/translation/translate.ru_RU.toml

@@ -372,10 +372,17 @@
 "errorLogDesc" = "Путь к файлу журнала ошибок. Специальное значение «none» отключает журналы ошибок."
 "dnsLog" = "DNS Журнал"
 "dnsLogDesc" = "Включить логи запросов DNS"
-"outboundTraffic" = "Исходящий трафик"
-"outboundTrafficDesc" = "Включить исходящий трафик"
 "maskAddress" = "Маскировать Адрес"
 "maskAddressDesc" = "При активации реальный IP-адрес заменяется на маскировочный в логах."
+"statistics" = "Статистика"
+"statsInboundUplink" = "Статистика входящего аплинка"
+"statsInboundUplinkDesc" = "Включает сбор статистики для исходящего трафика всех входящих прокси."
+"statsInboundDownlink" = "Статистика входящего даунлинка"
+"statsInboundDownlinkDesc" = "Включает сбор статистики для входящего трафика всех входящих прокси."
+"statsOutboundUplink" = "Статистика исходящего аплинка"
+"statsOutboundUplinkDesc" = "Включает сбор статистики для исходящего трафика всех исходящих прокси."
+"statsOutboundDownlink" = "Статистика исходящего даунлинка"
+"statsOutboundDownlinkDesc" = "Включает сбор статистики для входящего трафика всех исходящих прокси."
 
 [pages.xray.rules]
 "first" = "Первый"

+ 9 - 2
web/translation/translate.tr_TR.toml

@@ -372,10 +372,17 @@
 "errorLogDesc" = "Hata günlüğü için dosya yolu. 'none' özel değeri hata günlüklerini devre dışı bırakır"
 "dnsLog" = "DNS Günlüğü"
 "dnsLogDesc" = "DNS sorgu günlüklerini etkinleştirin"
-"outboundTraffic" = "Gidenler trafiği"
-"outboundTrafficDesc" = "Çıkış trafiğini etkinleştirip etkinleştirmeyeceğiniz"
 "maskAddress" = "Adres Maskesi"
 "maskAddressDesc" = "IP adresi maskesi, etkinleştirildiğinde, günlükte görünen IP adresini otomatik olarak değiştirecektir."
+"statistics" = "İstatistikler"
+"statsInboundUplink" = "Gelen Yükleme İstatistikleri"
+"statsInboundUplinkDesc" = "Tüm gelen proxy'lerin yükleme trafiği için istatistik toplamayı etkinleştirir."
+"statsInboundDownlink" = "Gelen İndirme İstatistikleri"
+"statsInboundDownlinkDesc" = "Tüm gelen proxy'lerin indirme trafiği için istatistik toplamayı etkinleştirir."
+"statsOutboundUplink" = "Giden Yükleme İstatistikleri"
+"statsOutboundUplinkDesc" = "Tüm giden proxy'lerin yükleme trafiği için istatistik toplamayı etkinleştirir."
+"statsOutboundDownlink" = "Giden İndirme İstatistikleri"
+"statsOutboundDownlinkDesc" = "Tüm giden proxy'lerin indirme trafiği için istatistik toplamayı etkinleştirir."
 
 [pages.xray.rules]
 "first" = "İlk"

+ 9 - 2
web/translation/translate.uk_UA.toml

@@ -372,10 +372,17 @@
 "errorLogDesc" = "Шлях до файлу журналу помилок. Спеціальне значення 'none' вимикає журнали помилок"
 "dnsLog" = "Журнал DNS"
 "dnsLogDesc" = "Чи включити журнали запитів DNS"
-"outboundTraffic" = "Вихідний трафік"
-"outboundTrafficDesc" = "Чи потрібно увімкнути вихідний трафік"
 "maskAddress" = "Маскувати Адресу"
 "maskAddressDesc" = "Маска IP-адреси, при активації автоматично замінює IP-адресу, яка з'являється у журналі."
+"statistics" = "Статистика"
+"statsInboundUplink" = "Статистика вхідного аплінку"
+"statsInboundUplinkDesc" = "Увімкнення збору статистики для вхідного трафіку всіх вхідних проксі."
+"statsInboundDownlink" = "Статистика вхідного даунлінку"
+"statsInboundDownlinkDesc" = "Увімкнення збору статистики для вихідного трафіку всіх вхідних проксі."
+"statsOutboundUplink" = "Статистика вихідного аплінку"
+"statsOutboundUplinkDesc" = "Увімкнення збору статистики для вхідного трафіку всіх вихідних проксі."
+"statsOutboundDownlink" = "Статистика вихідного даунлінку"
+"statsOutboundDownlinkDesc" = "Увімкнення збору статистики для вихідного трафіку всіх вихідних проксі."
 
 [pages.xray.rules]
 "first" = "Перший"

+ 9 - 2
web/translation/translate.vi_VN.toml

@@ -372,10 +372,17 @@
 "errorLogDesc" = "Đường dẫn tệp cho nhật ký lỗi. Nhật ký lỗi bị vô hiệu hóa có giá trị đặc biệt 'không'"
 "dnsLog" = "Nhật ký DNS"
 "dnsLogDesc" = "Có bật nhật ký truy vấn DNS không"
-"outboundTraffic" = "Lưu lượng đi ra"
-"outboundTrafficDesc" = "Có nên bật lưu lượng ra không"
 "maskAddress" = "Ẩn Địa Chỉ"
 "maskAddressDesc" = "Mặt nạ địa chỉ IP, khi được bật, sẽ tự động thay thế địa chỉ IP xuất hiện trong nhật ký."
+"statistics" = "Thống kê"
+"statsInboundUplink" = "Thống kê tải lên đầu vào"
+"statsInboundUplinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải lên của tất cả các proxy đầu vào."
+"statsInboundDownlink" = "Thống kê tải xuống đầu vào"
+"statsInboundDownlinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải xuống của tất cả các proxy đầu vào."
+"statsOutboundUplink" = "Thống kê tải lên đầu ra"
+"statsOutboundUplinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải lên của tất cả các proxy đầu ra."
+"statsOutboundDownlink" = "Thống kê tải xuống đầu ra"
+"statsOutboundDownlinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải xuống của tất cả các proxy đầu ra."
 
 [pages.xray.rules]
 "first" = "Đầu tiên"

+ 9 - 2
web/translation/translate.zh_CN.toml

@@ -372,10 +372,17 @@
 "errorLogDesc" = "错误日志的文件路径。特殊值 'none' 禁用错误日志"
 "dnsLog" = "DNS 日志"
 "dnsLogDesc" = "是否启用 DNS 查询日志"
-"outboundTraffic" = "出站流量"
-"outboundTrafficDesc" = "是否启用出站流量"
 "maskAddress" = "隐藏地址"
 "maskAddressDesc" = "IP 地址掩码,启用时会自动替换日志中出现的 IP 地址。"
+"statistics" = "统计"
+"statsInboundUplink" = "入站上传统计"
+"statsInboundUplinkDesc" = "启用所有入站代理的上行流量统计收集。"
+"statsInboundDownlink" = "入站下载统计"
+"statsInboundDownlinkDesc" = "启用所有入站代理的下行流量统计收集。"
+"statsOutboundUplink" = "出站上传统计"
+"statsOutboundUplinkDesc" = "启用所有出站代理的上行流量统计收集。"
+"statsOutboundDownlink" = "出站下载统计"
+"statsOutboundDownlinkDesc" = "启用所有出站代理的下行流量统计收集。"
 
 [pages.xray.rules]
 "first" = "置顶"

+ 9 - 2
web/translation/translate.zh_TW.toml

@@ -372,10 +372,17 @@
 "errorLogDesc" = "錯誤日誌的檔案路徑。特殊值 'none' 禁用錯誤日誌"
 "dnsLog" = "DNS 日誌"
 "dnsLogDesc" = "是否啟用 DNS 查詢日誌"
-"outboundTraffic" = "出站流量"
-"outboundTrafficDesc" = "是否啟用出站流量"
 "maskAddress" = "隱藏地址"
 "maskAddressDesc" = "IP 地址掩碼,啟用時會自動替換日誌中出現的 IP 地址。"
+"statistics" = "統計"
+"statsInboundUplink" = "入站上傳統計"
+"statsInboundUplinkDesc" = "啟用所有入站代理的上行流量統計收集。"
+"statsInboundDownlink" = "入站下載統計"
+"statsInboundDownlinkDesc" = "啟用所有入站代理的下行流量統計收集。"
+"statsOutboundUplink" = "出站上傳統計"
+"statsOutboundUplinkDesc" = "啟用所有出站代理的上行流量統計收集。"
+"statsOutboundDownlink" = "出站下載統計"
+"statsOutboundDownlinkDesc" = "啟用所有出站代理的下行流量統計收集。"
 
 [pages.xray.rules]
 "first" = "置頂"