feat: add task timeline

This commit is contained in:
Fine 2023-06-06 15:15:47 +08:00
parent a97b92633f
commit 4ef6ac8db2
8 changed files with 37 additions and 11 deletions

View File

@ -0,0 +1,17 @@
<!-- Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. -->
<svg t="1685973573331" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2708">
<path d="M138 573.8V450.2c48.2-12.1 84-55.8 84-107.7 0-51.9-35.8-95.6-84-107.7V68.1c0-14.9-12.1-27-27-27s-27 12.1-27 27v166.7C35.8 246.9 0 290.6 0 342.5c0 51.9 35.8 95.6 84 107.7v123.7c-48.2 12-84 55.7-84 107.6s35.8 95.6 84 107.7v166.7c0 14.9 12.1 27 27 27s27-12.1 27-27V789.2c48.2-12.1 84-55.8 84-107.7s-35.8-95.6-84-107.7zM60 342.5c0-28.1 22.9-51 51-51s51 22.9 51 51-22.9 51-51 51-51-22.9-51-51z m51 390c-28.1 0-51-22.9-51-51s22.9-51 51-51 51 22.9 51 51-22.9 51-51 51zM942 283H352c-16.6 0-30-13.4-30-30s13.4-30 30-30h590c16.6 0 30 13.4 30 30s-13.4 30-30 30zM771.4 457H347.6c-14.2 0-25.6-11.5-25.6-25.6v-8.7c0-14.2 11.5-25.6 25.6-25.6h423.7c14.2 0 25.6 11.5 25.6 25.6v8.7c0.1 14.1-11.4 25.6-25.5 25.6z" p-id="2709"></path><path d="M942 625H352c-16.6 0-30-13.4-30-30s13.4-30 30-30h590c16.6 0 30 13.4 30 30s-13.4 30-30 30zM771.4 799H347.6c-14.2 0-25.6-11.5-25.6-25.6v-8.7c0-14.2 11.5-25.6 25.6-25.6h423.7c14.2 0 25.6 11.5 25.6 25.6v8.7c0.1 14.1-11.4 25.6-25.5 25.6z" p-id="2710"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { RespFields, Calculations } from "./data";
import { RespFields } from "./data";
import { ExpressionResultType } from "@/views/dashboard/data";
import { ElMessage } from "element-plus";
import { useDashboardStore } from "@/store/modules/dashboard";
@ -22,7 +22,6 @@ import { useSelectorStore } from "@/store/modules/selectors";
import { useAppStoreWithOut } from "@/store/modules/app";
import type { MetricConfigOpt } from "@/types/dashboard";
import type { Instance, Endpoint, Service } from "@/types/selector";
import { calculateExp } from "./useMetricsProcessor";
export function useExpressionsQueryProcessor(config: Indexable) {
if (!(config.metrics && config.metrics[0])) {

View File

@ -22,7 +22,6 @@ import { useSelectorStore } from "@/store/modules/selectors";
import { useAppStoreWithOut } from "@/store/modules/app";
import type { Instance, Endpoint, Service } from "@/types/selector";
import type { MetricConfigOpt } from "@/types/dashboard";
import type { E } from "vitest/dist/types-c441ef31";
export function useQueryProcessor(config: Indexable) {
if (!(config.metrics && config.metrics[0])) {

View File

@ -47,6 +47,7 @@ export const ControlsTypes = [
"NetworkProfiling",
"ThirdPartyApp",
"ContinuousProfiling",
"AddTaskTimeline",
];
export enum EBPFProfilingTriggerType {
FIXED_TIME = "FIXED_TIME",

View File

@ -238,8 +238,8 @@ export const EndpointTools = [
export const ProcessTools = [
{ name: "playlist_add", content: "Add Widget", id: "addWidget" },
{ name: "all_inbox", content: "Add Tabs", id: "addTab" },
{ name: "task_timeline", content: "Add Task Timeline", id: "AddTaskTimeline" },
{ name: "library_books", content: "Add Text", id: "addText" },
{ name: "time_range", content: "Add Time Range Text", id: "addTimeRange" },
{ name: "add_iframe", content: "Add Iframe", id: "addIframe" },
];
export const ServiceRelationTools = [

View File

@ -454,6 +454,9 @@ limitations under the License. -->
case "addIframe":
dashboardStore.addTabControls("ThirdPartyApp");
break;
case "addTaskTimeline":
dashboardStore.addTabControls("AddTaskTimeline");
break;
default:
ElMessage.info("Don't support this control");
break;
@ -504,6 +507,9 @@ limitations under the License. -->
case "addIframe":
dashboardStore.addControl("ThirdPartyApp");
break;
case "addTaskTimeline":
dashboardStore.addTabControls("AddTaskTimeline");
break;
default:
dashboardStore.addControl("Widget");
}

View File

@ -16,19 +16,17 @@ limitations under the License. -->
<div class="flex-h content">
<policy-list />
<div class="flex-v list" v-loading="continousProfilingStore.instancesLoading">
<instance-list />
<instance-list :config="config" />
</div>
</div>
</template>
<script lang="ts" setup>
import type { PropType } from "vue";
import { useI18n } from "vue-i18n";
import { useContinousProfilingStore } from "@/store/modules/continous-profiling";
import PolicyList from "./components/PolicyList.vue";
import InstanceList from "./components/InstanceList.vue";
const continousProfilingStore = useContinousProfilingStore();
const { t } = useI18n();
/*global defineProps */
defineProps({

View File

@ -28,7 +28,7 @@ limitations under the License. -->
<el-table :data="props.row.processes" size="small" max-height="300">
<el-table-column prop="name" label="Name">
<template #default="scope">
<span class="link">
<span :class="config.processDashboardName ? 'link' : ''">
{{ scope.row.name }}
</span>
</template>
@ -46,7 +46,7 @@ limitations under the License. -->
</el-table-column>
<el-table-column prop="name" label="Name">
<template #default="scope">
<span class="link">
<span :class="config.instanceDashboardName ? 'link' : ''">
{{ scope.row.name }}
</span>
</template>
@ -73,12 +73,20 @@ limitations under the License. -->
</template>
<script lang="ts" setup>
import { ref, computed, watch } from "vue";
import type { PropType } from "vue";
import { useI18n } from "vue-i18n";
import { useContinousProfilingStore } from "@/store/modules/continous-profiling";
import type { MonitorInstance, MonitorProcess } from "@/types/continous-profiling";
import { HeaderLabels, HeaderChildLabels } from "../data";
import { dateFormat } from "@/utils/dateFormat";
/*global defineProps */
defineProps({
config: {
type: Object as PropType<any>,
default: () => ({}),
},
});
const { t } = useI18n();
const continousProfilingStore = useContinousProfilingStore();
const pageSize = 10;
@ -145,8 +153,6 @@ limitations under the License. -->
.link {
cursor: pointer;
color: #409eff;
display: inline-block;
width: 100%;
text-decoration: underline;
}
</style>