diff --git a/ui/src/types/dashboard.ts b/ui/src/types/dashboard.ts index f25a803f2..6a17d032c 100644 --- a/ui/src/types/dashboard.ts +++ b/ui/src/types/dashboard.ts @@ -131,8 +131,8 @@ export interface PanelDatasource { export interface PanelQuery { id: number metrics: string - legend: string - visible: boolean + legend?: string + visible?: boolean interval?: number data?: {[key:string]:any} } diff --git a/ui/src/utils/plugins.ts b/ui/src/utils/plugins.ts index f6d29dfd5..60f65e362 100644 --- a/ui/src/utils/plugins.ts +++ b/ui/src/utils/plugins.ts @@ -149,6 +149,9 @@ export const queryPluginDataToTable = (data: QueryPluginData, query: PanelQuery) return [series] } +export const queryPluginDataToValueList= (data: QueryPluginData, query: PanelQuery) => { + return data.data.flat() +} export const queryPluginDataToLogs = (data: { logs: QueryPluginData; diff --git a/ui/src/views/dashboard/plugins/built-in/datasource/datav/QueryEditor.tsx b/ui/src/views/dashboard/plugins/built-in/datasource/datav/QueryEditor.tsx index 132b21db4..a727a5166 100644 --- a/ui/src/views/dashboard/plugins/built-in/datasource/datav/QueryEditor.tsx +++ b/ui/src/views/dashboard/plugins/built-in/datasource/datav/QueryEditor.tsx @@ -132,7 +132,7 @@ const domainParams = [ ["gropu", "group name, logical group of services","default",""], ] -const apiList = [{ +export const apiList = [{ name: "getServiceInfoList", desc: "get service infos, such as p99 latency, errors, qps, render as a table", params: `{ @@ -150,7 +150,7 @@ const apiList = [{ params: `{ }`, paramsDesc: [], - format: DataFormat.Table + format: DataFormat.ValueList }, { name: "getServiceNames", @@ -158,7 +158,7 @@ const apiList = [{ params: `{ }`, paramsDesc: [...domainParams], - format: DataFormat.Table + format: DataFormat.ValueList }, { name: "getServiceOperations", @@ -170,7 +170,7 @@ const apiList = [{ ...domainParams, ["service", "service name"] ], - format: DataFormat.Table + format: DataFormat.ValueList }, { name: "getLogs", diff --git a/ui/src/views/dashboard/plugins/built-in/datasource/datav/VariableEditor.tsx b/ui/src/views/dashboard/plugins/built-in/datasource/datav/VariableEditor.tsx index 75e59b92c..10ecd7d9a 100644 --- a/ui/src/views/dashboard/plugins/built-in/datasource/datav/VariableEditor.tsx +++ b/ui/src/views/dashboard/plugins/built-in/datasource/datav/VariableEditor.tsx @@ -10,95 +10,72 @@ // 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. -import { CodeEditorModal } from "src/components/CodeEditor/CodeEditorModal" -import Label from "src/components/form/Item" import { isEmpty } from "lodash" import { DatasourceVariableEditorProps } from "types/datasource" import { isJSON } from "utils/is" import { useEffect } from "react" import { queryHttpVariableValues } from "./query_runner" import FormItem from "src/components/form/Item" -import { EditorInputItem } from "src/components/editor/EditorItem" import React from "react"; import { useStore } from "@nanostores/react" import { httpDsMsg } from "src/i18n/locales/en" +import { Select } from "antd" +import { apiList } from "./QueryEditor" +import { Box } from "@chakra-ui/react" +import CodeEditor from "components/CodeEditor/CodeEditor" +import { DataFormat } from "types/format" -const HttpVariableEditor = ({ variable, onChange, onQueryResult }: DatasourceVariableEditorProps) => { +const VariableEditor = ({ variable, onChange, onQueryResult }: DatasourceVariableEditorProps) => { const t1 = useStore(httpDsMsg) const data = isJSON(variable.value) ? JSON.parse(variable.value) : {} let update; - if (isEmpty(data.transformResult)) { - data.transformResult = initTransformResult + if (isEmpty(data.params)) { + data.params = "{}" update = true } - if (isEmpty(data.transformRequest)) { - data.transformRequest = initTransformRequest - update = true - } - if (update) onChange(variable => { + if (update) onChange(variable => { variable.value = JSON.stringify(data) }) useEffect(() => { loadVariables(variable) }, [variable]) - + const loadVariables = async (v) => { const result = await queryHttpVariableValues(variable) onQueryResult(result) } return (<> - - { - data.url = v - onChange(variable => { - variable.value = JSON.stringify(data) - }) - }} - placeholder="support variable" - /> - - - {/* */} - { - data.transformRequest = v + +