diff options
| author | zhangyu <[email protected]> | 2023-08-30 14:14:27 +0800 |
|---|---|---|
| committer | zhangyu <[email protected]> | 2023-08-30 14:14:27 +0800 |
| commit | 576cc5cebc877be29628e30ce91d7f61c28c09e6 (patch) | |
| tree | 71e560d3ec3ad4df16c4248fffe91f369ea70c38 | |
| parent | 38b8589cf30580307577afd58b1522a25fee0bd4 (diff) | |
NEZ-3153 fix:Agent中Loki status未完全展示接口返回的key-value数据rel-23.07.07
| -rw-r--r-- | nezha-fronted/src/components/common/bottomBox/tabs/lokiStatus.vue | 16 | ||||
| -rw-r--r-- | nezha-fronted/src/components/common/table/settings/lokiStatusTable.vue | 234 |
2 files changed, 139 insertions, 111 deletions
diff --git a/nezha-fronted/src/components/common/bottomBox/tabs/lokiStatus.vue b/nezha-fronted/src/components/common/bottomBox/tabs/lokiStatus.vue index 43f9d067f..9440977b3 100644 --- a/nezha-fronted/src/components/common/bottomBox/tabs/lokiStatus.vue +++ b/nezha-fronted/src/components/common/bottomBox/tabs/lokiStatus.vue @@ -17,6 +17,7 @@ :ringTableData='ringTableData' :configTableData='configTableData' :servicesTableData='servicesTableData' + :servicesTableTitle='servicesTableTitle' @configval='configval'> </loki-status-table> </div> @@ -69,6 +70,7 @@ export default { configMode: 'defaults', configTableData: [], servicesTableData: [], + servicesTableTitle: [], ringTableData: [], readyTableData: '', loading: false @@ -114,12 +116,26 @@ export default { }) }, async getservicesTableData () { + this.servicesTableData = [] const response = await this.$get('agent/' + this.obj.id + '/loki/services') if (response.code === 200) { const serObj = {} + let arr = [] response.data.list.forEach(item => { serObj[item.service] = item.status + arr.push({ + label: item.service, + prop: item.service, + minWidth: 180 + }) + if (arr.length >= 6) { + this.servicesTableTitle.push(this.$lodash.cloneDeep(arr)) + arr = [] + } }) + if (arr.length) { + this.servicesTableTitle.push(arr) + } serObj.ready = this.readyTableData this.servicesTableData.push(serObj) } diff --git a/nezha-fronted/src/components/common/table/settings/lokiStatusTable.vue b/nezha-fronted/src/components/common/table/settings/lokiStatusTable.vue index ade0e1503..9ddf75329 100644 --- a/nezha-fronted/src/components/common/table/settings/lokiStatusTable.vue +++ b/nezha-fronted/src/components/common/table/settings/lokiStatusTable.vue @@ -2,54 +2,32 @@ <div id="lokiStatusTable"> <div class="cortex-service"> <div class="cortex-title" style="margin-top: 0px;">{{$t('cortex.serviceStatus')}}</div> - <el-table - :data="servicesTableData" - border> - <el-table-column - v-for="(item, index) in serviceTitle" - :key="`col-${index}-${item.prop}`" - :fixed="item.fixed" - :label="item.label" - :min-width="`${item.minWidth}`" - :prop="item.prop" - :resizable="true" - :width="`${item.width}`" - class="data-column" - > - <template slot="header"> - <span class="data-column__span">{{item.label}}</span> - <div class="col-resize-area"></div> - </template> - <template slot-scope="scope" :column="item"> - <span v-if="scope.row[item.prop]">{{scope.row[item.prop]}}</span> - <template v-else>-</template> - </template> - </el-table-column> - </el-table> - <el-table - :data="servicesTableData" - border> - <el-table-column - v-for="(item, index) in serviceTitleSub" - :key="`col-${index}-${item.prop}`" - :fixed="item.fixed" - :label="item.label" - :min-width="`${item.minWidth}`" - :prop="item.prop" - :resizable="true" - :width="`${item.width}`" - class="data-column" - > - <template slot="header"> - <span class="data-column__span">{{item.label}}</span> - <div class="col-resize-area"></div> - </template> - <template slot-scope="scope" :column="item"> - <span v-if="scope.row[item.prop]">{{scope.row[item.prop]}}</span> - <template v-else>-</template> - </template> - </el-table-column> - </el-table> + <div v-for="(serviceTitle, index) in serviceTitleAll" :key="index"> + <el-table + :data="servicesTableData" + border> + <el-table-column + v-for="(item, index) in serviceTitle" + :key="`col-${index}-${item.prop}`" + :fixed="item.fixed" + :label="item.label" + :min-width="`${item.minWidth}`" + :prop="item.prop" + :resizable="true" + :width="`${item.width}`" + class="data-column" + > + <template slot="header"> + <span class="data-column__span">{{item.label}}</span> + <div class="col-resize-area"></div> + </template> + <template slot-scope="scope" :column="item"> + <span v-if="scope.row[item.prop]">{{scope.row[item.prop]}}</span> + <template v-else>-</template> + </template> + </el-table-column> + </el-table> + </div> </div> <div class="cortex-ring"> <div class="cortex-title">{{$t('cortex.ringStatus')}}</div> @@ -171,70 +149,104 @@ export default { prop: 'ownership', minWidth: 180 }], - serviceTitle: [ - { - label: 'Ready', - prop: 'ready', - minWidth: 180 - }, - { - label: 'Querier', - prop: 'querier', - minWidth: 180 - }, - { - label: 'Member list KV', - prop: 'memberlist-kv', - minWidth: 180 - }, - { - label: 'Store', - prop: 'store', - minWidth: 180 - }, - { - label: 'Distributor', - prop: 'distributor', - minWidth: 180 - }, - { - label: 'Ingester', - prop: 'ingester', - minWidth: 180 - } + serviceTitleAll:[ + [ + { + label: 'Ready', + prop: 'ready', + minWidth: 180 + }, + { + label: 'Querier', + prop: 'querier', + minWidth: 180 + }, + { + label: 'Member list KV', + prop: 'memberlist-kv', + minWidth: 180 + }, + { + label: 'Store', + prop: 'store', + minWidth: 180 + }, + { + label: 'Distributor', + prop: 'distributor', + minWidth: 180 + }, + { + label: 'Ingester', + prop: 'ingester', + minWidth: 180 + } + ], + [ + { + label: 'Query frontend tripperware', + prop: 'query-frontend-tripperware', + minWidth: 180 + }, + { + label: 'Query frontend', + prop: 'query-frontend', + minWidth: 180 + }, + { + label: 'Ingester querier', + prop: 'ingester-querier', + minWidth: 180 + }, + { + label: 'Server', + prop: 'server', + minWidth: 180 + }, + { + label: 'Ring', + prop: 'ring', + minWidth: 180 + }, + { + label: 'Query scheduler', + prop: 'query-scheduler', + minWidth: 180 + } + ], + [ + { + label: 'Cache generation loader', + prop: 'cache-generation-loader', + minWidth: 180 + }, + { + label: 'Compactor', + prop: 'compactor', + minWidth: 180 + }, + { + label: 'Usage report', + prop: 'usage-report', + minWidth: 180 + }, + { + label: '', + prop: '', + minWidth: 180 + }, + { + label: '', + prop: '', + minWidth: 180 + }, + { + label: '', + prop: '', + minWidth: 180 + } + ], ], - serviceTitleSub: [ - { - label: 'Query frontend tripperware', - prop: 'query-frontend-tripperware', - minWidth: 180 - }, - { - label: 'Query frontend', - prop: 'query-frontend', - minWidth: 180 - }, - { - label: 'Ingester querier', - prop: 'ingester-querier', - minWidth: 180 - }, - { - label: 'Server', - prop: 'server', - minWidth: 180 - }, - { - label: 'Ring', - prop: 'ring', - minWidth: 180 - }, - { - label: 'Query scheduler', - prop: 'query-scheduler', - minWidth: 180 - } - ] } }, mounted () { |
