diff --git a/nezha-fronted/src/components/common/language/cn.js b/nezha-fronted/src/components/common/language/cn.js index 820a70855..e58723ed6 100644 --- a/nezha-fronted/src/components/common/language/cn.js +++ b/nezha-fronted/src/components/common/language/cn.js @@ -1000,7 +1000,29 @@ const cn = { sysLogo: '系统Logo', scrapeTimeout: '指标抓取超时', snmpTrapPort: 'SNMP trap端口', - logoTip: 'Logo支持格式为jpg、jpeg、png且大小小于2M的图片' + logoTip: 'Logo支持格式为jpg、jpeg、png且大小小于2M的图片', + mfa: 'Mfa auth enable' + }, + monitor: { + monitor: '监控', + alertApi: 'Alert api', + prometheusFederation: 'Prometheus federation', + asset_ping_from: 'Asset ping from', + metrics_storage_retention: '指标存储天数', + metrics_storage_type: '指标存储模式', + metrics_storage_s3_endpoint: '指标 s3 endpoint', + metrics_storage_s3_bucket: '指标 s3 bucket', + metrics_storage_s3_access_key: '指标 s3 access', + metrics_storage_s3_secret_access_key: '指标 s3 secret access', + logs_storage_retention: '日志存储天数', + logs_storage_type: '日志存储模式', + logs_storage_s3_endpoint: '日志 s3 endpoint', + logs_storage_s3_bucket: '日志 s3 bucket', + logs_storage_s3_access_key: '日志 s3 access', + logs_storage_s3_secret_access_key: '日志 s3 secret access', + logs_query_range_default_limit: '日志查询最大条数', + local: '本地文件存储', + s3: 'S3对象存储' }, email: { email: '邮件', diff --git a/nezha-fronted/src/components/common/language/en.js b/nezha-fronted/src/components/common/language/en.js index 05a380f4f..bc861bcda 100644 --- a/nezha-fronted/src/components/common/language/en.js +++ b/nezha-fronted/src/components/common/language/en.js @@ -982,7 +982,7 @@ const en = { day: 'day', sessionTimeout: 'Session timeout', minute: 'minute', - maxSeries: 'Query max series', + maxSeries: 'Metrics query max series', unsaved: 'Unsaved prompt', mapConfig: 'Map center', mapTitle: 'Configurate map', @@ -993,7 +993,29 @@ const en = { sysLogo: 'System logo', scrapeTimeout: 'Scrape timeout', snmpTrapPort: 'SNMP trap port', - logoTip: 'Logo format only can be jpg、jpeg、png,and less than 2M' + logoTip: 'Logo format only can be jpg、jpeg、png,and less than 2M', + mfa: 'Mfa auth enable' + }, + monitor: { + monitor: 'Monitor', + alertApi: 'Alert api', + prometheusFederation: 'Prometheus federation', + asset_ping_from: 'Asset ping from', + metrics_storage_retention: 'Metrics storage days', + metrics_storage_type: 'Metrics storage mode', + metrics_storage_s3_endpoint: 'Metrics s3 endpoint', + metrics_storage_s3_bucket: 'Metrics s3 bucket', + metrics_storage_s3_access_key: 'Metrics s3 access', + metrics_storage_s3_secret_access_key: 'Metrics s3 secret access', + logs_storage_retention: 'Logs storage days', + logs_storage_type: 'Logs storage mode', + logs_storage_s3_endpoint: 'Logs s3 endpoint', + logs_storage_s3_bucket: 'Logs s3 bucket', + logs_storage_s3_access_key: 'Logs s3 access', + logs_storage_s3_secret_access_key: 'Logs s3 secret access', + logs_query_range_default_limit: 'Logs query max series', + local: 'LocalStorage', + s3: 'S3 object storage' }, email: { email: 'Email', diff --git a/nezha-fronted/src/components/page/config/system.vue b/nezha-fronted/src/components/page/config/system.vue index 1bb9f3f37..f1915de5e 100644 --- a/nezha-fronted/src/components/page/config/system.vue +++ b/nezha-fronted/src/components/page/config/system.vue @@ -21,37 +21,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -73,7 +47,11 @@ - + + + + + @@ -86,6 +64,111 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
@@ -300,6 +383,42 @@ export default { email_test_account: '', email_security_type: 'NONE' }, + monitor: { + alert_api: '', + asset_ping_from: '', + asset_ping_interval: '', + default_scrape_interval: '', + default_scrape_timeout: '', + logs_query_range_default_limit: '', + logs_storage_retention: '', + logs_storage_s3_access_key: '', + logs_storage_s3_bucket: '', + logs_storage_s3_endpoint: '', + logs_storage_s3_secret_access_key: '', + logs_storage_type: '', + metrics_query_max_series: '', + metrics_storage_retention: '', + metrics_storage_s3_access_key: '', + metrics_storage_s3_bucket: '', + metrics_storage_s3_endpoint: '', + metrics_storage_s3_secret_access_key: '', + metrics_storage_type: '', + prometheus_federation_enabled: '' + }, + monitorRules: { + alert_api: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], + asset_ping_from: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], + asset_ping_interval: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], + default_scrape_interval: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], + default_scrape_timeout: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], + logs_query_range_default_limit: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], + logs_storage_retention: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], + logs_storage_type: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], + metrics_query_max_series: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], + metrics_storage_retention: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], + metrics_storage_type: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], + prometheus_federation_enabled: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }] + }, emailCopy: null, emailRules: { email_host: [ @@ -436,6 +555,9 @@ export default { if (type == 'email') { this.email.email_auth_password = '' this.$refs.emailForm.clearValidate() + } + if (type == 'monitor') { + } this[type + 'Copy'] = Object.assign({}, this[type]) }