skywalking-booster-ui/src/types/dashboard.d.ts

140 lines
3.0 KiB
TypeScript

/**
* 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.
*/
export type DashboardItem = {
id?: string;
entity: string;
layer: string;
isRoot: boolean;
name: string;
};
export interface LayoutConfig {
x: number;
y: number;
w: number;
h: number;
i: string;
widget?: WidgetConfig;
graph?: GraphConfig;
metrics?: string[];
type: string;
metricTypes?: string[];
children?: { name: string; children: LayoutConfig[] }[];
activedTabIndex?: number;
metricConfig?: MetricConfigOpt[];
}
export type MetricConfigOpt = {
unit: string;
label: string;
calculation: string;
labelsIndex: string;
sortOrder: string;
topN?: number;
};
export interface WidgetConfig {
title?: string;
tips?: string;
}
export type GraphConfig =
| BarConfig
| LineConfig
| CardConfig
| TableConfig
| EndpointListConfig
| ServiceListConfig
| InstanceListConfig
| TopologyConfig;
export interface BarConfig {
type?: string;
showBackground?: boolean;
}
export interface LineConfig extends AreaConfig {
type?: string;
smooth?: boolean;
showSymbol?: boolean;
step?: boolean;
showXAxis?: boolean;
showYAxis?: boolean;
smallTips?: boolean;
showlabels?: boolean;
}
export interface AreaConfig {
type?: string;
opacity?: number;
}
export interface CardConfig {
type?: string;
fontSize?: number;
showUnit?: boolean;
textAlign?: "center" | "right" | "left";
}
export interface TextConfig {
fontSize: number;
backgroundColor: string;
textAlign: string;
fontColor: string;
content: string;
}
export interface TableConfig {
type?: string;
showTableValues: boolean;
tableHeaderCol1: string;
tableHeaderCol2: string;
}
export interface TopListConfig {
type?: string;
topN: number;
}
export interface ServiceListConfig {
type?: string;
dashboardName: string;
fontSize: number;
showGroup: boolean;
}
export interface InstanceListConfig {
type?: string;
dashboardName: string;
fontSize: number;
}
export interface EndpointListConfig {
type?: string;
dashboardName: string;
fontSize: number;
}
export interface TopologyConfig {
type?: string;
backgroundColor?: string;
fontColor?: string;
iconTheme?: boolean;
content?: string;
fontSize?: number;
depth?: number;
showDepth?: boolean;
}