diff --git a/nezha-fronted/src/components/common/rightBox/editEndpointBoxNew.vue b/nezha-fronted/src/components/common/rightBox/editEndpointBoxNew.vue
index d76ef3c80..1cbc699c8 100644
--- a/nezha-fronted/src/components/common/rightBox/editEndpointBoxNew.vue
+++ b/nezha-fronted/src/components/common/rightBox/editEndpointBoxNew.vue
@@ -329,37 +329,43 @@
:prop="'configs.1.config.'+ index +'.pipeline.' + index2 + '.expression'"
:rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' }]"
>
-
+
-
+
-
+
-
+
-
-
-
-
+ =
+
+
+
+
+
-
+
@@ -368,14 +374,14 @@
:prop="'configs.1.config.'+ index +'.pipeline.' + index2 + '.source'"
:rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' }]"
>
-
+
-
+
@@ -388,10 +394,13 @@
-
+
+
+
+
@@ -410,7 +419,7 @@
:rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' }]"
style="width: 45%;margin: 0"
>
-
+
@@ -422,7 +431,7 @@
:prop="'configs.1.config.'+ index +'.pipeline.' + index2 + '.source'"
:rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' }]"
>
-
+
@@ -643,6 +652,7 @@ export default {
}
]
}],
+ timestampList: ['ANSIC', 'UnixDate', 'RubyDate', 'RFC822', 'RFC822Z', 'RFC850', 'RFC1123', 'RFC1123Z', 'RFC3339', 'RFC3339Nano', 'Unix', 'UnixMs', 'UnixUs', 'UnixNs'],
metricsShow: true,
logsShow: true
}
@@ -783,6 +793,9 @@ export default {
if (pipeline.type === 'labels') {
pipeline.labels = this.labelsToJson(pipeline.labels)
}
+ if (pipeline.type === 'json') {
+ pipeline.expressions = this.labelsToJson(pipeline.expressions)
+ }
})
if (item.type === 'file') {
delete item.unit
@@ -1120,18 +1133,33 @@ export default {
if (val === 'regex') {
this.editEndpoint.configs[1].config[logsIndex].pipeline[pipelineIndex].expression.push('')
} else if (val === 'json') {
- this.editEndpoint.configs[1].config[logsIndex].pipeline[pipelineIndex].expressions.push('')
+ this.editEndpoint.configs[1].config[logsIndex].pipeline[pipelineIndex].expressions.push(
+ {
+ key: '',
+ value: ''
+ }
+ )
} else if (val === 'template') {
this.editEndpoint.configs[1].config[logsIndex].pipeline[pipelineIndex].expressions.push('')
} else if (val === 'timestamp') {
- this.editEndpoint.configs[1].config[logsIndex].pipeline[pipelineIndex].expressions.push('')
+ this.editEndpoint.configs[1].config[logsIndex].pipeline[pipelineIndex].expressions.push(
+ {
+ key: '',
+ value: ''
+ }
+ )
} else if (val === 'labels') {
this.editEndpoint.configs[1].config[logsIndex].pipeline[pipelineIndex].labels.push({
key: '',
value: ''
})
} else if (val === 'output') {
- this.editEndpoint.configs[1].config[logsIndex].pipeline[pipelineIndex].expressions.push('')
+ this.editEndpoint.configs[1].config[logsIndex].pipeline[pipelineIndex].expressions.push(
+ {
+ key: '',
+ value: ''
+ }
+ )
}
},
delPipelineItem (logsIndex, pipelineIndex, itemIndex) {
@@ -1159,6 +1187,68 @@ export default {
if (JSON.stringify(this.editEndpoint.configs) === JSON.stringify(this.blankObject.configs)) {
this.editEndpoint.configs = JSON.parse(res.data.list[0].configs)
this.activeNameLogs = this.editEndpoint.configs[1].config.map(() => 'Basic')
+ this.editEndpoint.configs[1].config.forEach(item => {
+ item.labelModule = []
+ if (JSON.stringify(item.labels) !== '{}' && item.labels) {
+ Object.keys(item.labels).forEach(key => {
+ item.labelModule.push({ key, value: item.labels[key] })
+ })
+ } else {
+ item.labelModule.push({ key: '', value: '' })
+ }
+ item.pipeline && item.pipeline.forEach((pipeline) => {
+ if (pipeline.type === 'labels') {
+ const labelsArr = []
+ if (JSON.stringify(pipeline.labels) !== '{}' && pipeline.labels) {
+ Object.keys(pipeline.labels).forEach(key => {
+ labelsArr.push({ key, value: pipeline.labels[key] })
+ })
+ } else {
+ labelsArr.push({ key: '', value: '' })
+ }
+ pipeline.labels = labelsArr
+ }
+ if (pipeline.type === 'json') {
+ const expressionsArr = []
+ if (JSON.stringify(pipeline.expressions) !== '{}' && pipeline.expressions) {
+ Object.keys(pipeline.expressions).forEach(key => {
+ expressionsArr.push({ key, value: pipeline.expressions[key] })
+ })
+ } else {
+ expressionsArr.push({ key: '', value: '' })
+ }
+ pipeline.expressions = expressionsArr
+ }
+ })
+ if (item.type === 'file') {
+ item.unit = ''
+ item.appName = ''
+ item.listenAddress = ''
+ } else if (item.type === 'journal') {
+ item.fileName = ''
+ item.appName = ''
+ item.listenAddress = ''
+ } else if (item.type === 'syslog') {
+ item.fileName = ''
+ item.unit = ''
+ }
+ })
+ this.editEndpoint.paramObj = []
+ this.editEndpoint.labelModule = []
+ if (JSON.stringify(this.editEndpoint.configs[0].config.labels) !== '{}' && this.editEndpoint.configs[0].config.labels) {
+ Object.keys(this.editEndpoint.configs[0].config.labels).forEach(key => {
+ this.editEndpoint.labelModule.push({ key, value: this.editEndpoint.configs[0].config.labels[key] })
+ })
+ } else {
+ this.editEndpoint.labelModule.push({ key: '', value: '' })
+ }
+ if (JSON.stringify(this.editEndpoint.configs[0].config.params) !== '{}' && this.editEndpoint.configs[0].config.params) {
+ Object.keys(this.editEndpoint.configs[0].config.params).forEach(key => {
+ this.editEndpoint.paramObj.push({ key, value: this.editEndpoint.configs[0].config.params[key] })
+ })
+ } else {
+ this.editEndpoint.paramObj.push({ key: '', value: [] })
+ }
}
if (!this.editEndpoint.name) {
this.editEndpoint.name = res.data.list[0].name
@@ -1246,6 +1336,14 @@ export default {
item.labels = this.labelsToJson(item.labelModule)
delete item.labelModule
}
+ item.pipeline && item.pipeline.forEach((pipeline) => {
+ if (pipeline.type === 'labels') {
+ pipeline.labels = this.labelsToJson(pipeline.labels)
+ }
+ if (pipeline.type === 'json') {
+ pipeline.expressions = this.labelsToJson(pipeline.expressions)
+ }
+ })
if (item.type === 'file') {
delete item.unit
delete item.appName
diff --git a/nezha-fronted/src/components/common/rightBox/moduleBox.vue b/nezha-fronted/src/components/common/rightBox/moduleBox.vue
index 9420e28e7..cb2cb80aa 100644
--- a/nezha-fronted/src/components/common/rightBox/moduleBox.vue
+++ b/nezha-fronted/src/components/common/rightBox/moduleBox.vue
@@ -326,37 +326,43 @@
:prop="'configs.1.config.'+ index +'.pipeline.' + index2 + '.expression'"
:rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' }]"
>
-
+
-
+
-
@@ -372,7 +378,7 @@
:prop="'configs.1.config.'+ index +'.pipeline.' + index2 + '.template'"
:rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' }]"
>
-
+
@@ -381,14 +387,16 @@
:prop="'configs.1.config.'+ index +'.pipeline.' + index2 + '.source'"
:rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' }]"
>
-
+
-
+
+
+
@@ -407,7 +415,7 @@
:rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' }]"
style="width: 45%;margin: 0"
>
-
+
@@ -419,7 +427,7 @@
:prop="'configs.1.config.'+ index +'.pipeline.' + index2 + '.source'"
:rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' }]"
>
-
+
@@ -631,6 +639,7 @@ export default {
}
]
}],
+ timestampList: ['ANSIC', 'UnixDate', 'RubyDate', 'RFC822', 'RFC822Z', 'RFC850', 'RFC1123', 'RFC1123Z', 'RFC3339', 'RFC3339Nano', 'Unix', 'UnixMs', 'UnixUs', 'UnixNs'],
metricsShow: true,
logsShow: true
}
@@ -761,6 +770,9 @@ export default {
if (pipeline.type === 'labels') {
pipeline.labels = this.labelsToJson(pipeline.labels)
}
+ if (pipeline.type === 'json') {
+ pipeline.expressions = this.labelsToJson(pipeline.expressions)
+ }
})
if (item.type === 'file') {
delete item.unit
@@ -1084,7 +1096,12 @@ export default {
if (val === 'regex') {
this.editModule.configs[1].config[logsIndex].pipeline[pipelineIndex].expression.push('')
} else if (val === 'json') {
- this.editModule.configs[1].config[logsIndex].pipeline[pipelineIndex].expressions.push('')
+ this.editModule.configs[1].config[logsIndex].pipeline[pipelineIndex].expressions.push(
+ {
+ key: '',
+ value: ''
+ }
+ )
} else if (val === 'template') {
this.editModule.configs[1].config[logsIndex].pipeline[pipelineIndex].expressions.push('')
} else if (val === 'timestamp') {
@@ -1181,6 +1198,14 @@ export default {
item.labels = this.labelsToJson(item.labelModule)
delete item.labelModule
}
+ item.pipeline && item.pipeline.forEach((pipeline) => {
+ if (pipeline.type === 'labels') {
+ pipeline.labels = this.labelsToJson(pipeline.labels)
+ }
+ if (pipeline.type === 'json') {
+ pipeline.expressions = this.labelsToJson(pipeline.expressions)
+ }
+ })
if (item.type === 'file') {
delete item.unit
delete item.appName
diff --git a/nezha-fronted/src/components/common/rightBox/pipelineSelect.vue b/nezha-fronted/src/components/common/rightBox/pipelineSelect.vue
index a4011e20a..7eace6e95 100644
--- a/nezha-fronted/src/components/common/rightBox/pipelineSelect.vue
+++ b/nezha-fronted/src/components/common/rightBox/pipelineSelect.vue
@@ -131,7 +131,12 @@ export default {
} else if (val === 'json') {
obj = {
type: 'json',
- expressions: [''],
+ expressions: [
+ {
+ key: '',
+ value: ''
+ }
+ ],
source: ''
}
} else if (val === 'template') {
diff --git a/nezha-fronted/src/components/page/monitor/endpoint/endpointList.vue b/nezha-fronted/src/components/page/monitor/endpoint/endpointList.vue
index 8aa69d95d..cab15316d 100644
--- a/nezha-fronted/src/components/page/monitor/endpoint/endpointList.vue
+++ b/nezha-fronted/src/components/page/monitor/endpoint/endpointList.vue
@@ -345,6 +345,17 @@ export default {
}
pipeline.labels = labelsArr
}
+ if (pipeline.type === 'json') {
+ const expressionsArr = []
+ if (JSON.stringify(pipeline.expressions) !== '{}' && pipeline.expressions) {
+ Object.keys(pipeline.expressions).forEach(key => {
+ expressionsArr.push({ key, value: pipeline.expressions[key] })
+ })
+ } else {
+ expressionsArr.push({ key: '', value: '' })
+ }
+ pipeline.expressions = expressionsArr
+ }
})
if (item.type === 'file') {
item.unit = ''
diff --git a/nezha-fronted/src/components/page/monitor/module/moduleList.vue b/nezha-fronted/src/components/page/monitor/module/moduleList.vue
index 4cfb7a9fe..8bb2a7f4d 100644
--- a/nezha-fronted/src/components/page/monitor/module/moduleList.vue
+++ b/nezha-fronted/src/components/page/monitor/module/moduleList.vue
@@ -220,6 +220,17 @@ export default {
}
pipeline.labels = labelsArr
}
+ if (pipeline.type === 'json') {
+ const expressionsArr = []
+ if (JSON.stringify(pipeline.expressions) !== '{}' && pipeline.expressions) {
+ Object.keys(pipeline.expressions).forEach(key => {
+ expressionsArr.push({ key, value: pipeline.expressions[key] })
+ })
+ } else {
+ expressionsArr.push({ key: '', value: '' })
+ }
+ pipeline.expressions = expressionsArr
+ }
})
if (item.type === 'file') {
item.unit = ''