observability-analyzer
Version:
Production-ready MCP Server for intelligent Loki/Tempo observability dashboard analysis and generation
272 lines • 6.65 kB
TypeScript
export interface GrafanaThreshold {
color: string;
value: number | null;
}
export interface GrafanaFieldConfig {
defaults: {
color?: {
mode?: string;
fixedColor?: string;
};
custom?: {
drawStyle?: string;
lineInterpolation?: string;
lineWidth?: number;
fillOpacity?: number;
gradientMode?: string;
lineStyle?: {
fill?: string;
};
axisPlacement?: string;
axisLabel?: string;
scaleDistribution?: {
type: string;
};
hideFrom?: {
legend?: boolean;
tooltip?: boolean;
vis?: boolean;
};
thresholdsStyle?: {
mode?: string;
};
stacking?: {
group?: string;
mode?: string;
};
showPoints?: string;
pointSize?: number;
spanNulls?: boolean;
barAlignment?: number;
displayMode?: string;
orientation?: string;
align?: string;
};
thresholds?: {
mode?: string;
steps?: GrafanaThreshold[];
};
unit?: string;
min?: number;
max?: number;
decimals?: number;
displayName?: string;
};
overrides?: Array<{
matcher: {
id: string;
options: string;
};
properties: Array<{
id: string;
value: unknown;
}>;
}>;
}
export interface GrafanaTarget {
expr: string;
refId: string;
datasource: {
type: string;
uid: string;
};
hide?: boolean;
legendFormat?: string;
maxLines?: number;
step?: string;
interval?: string;
queryType?: string;
}
export interface GrafanaGridPos {
h: number;
w: number;
x: number;
y: number;
}
export interface GrafanaPanel {
id: number;
title: string;
type: string;
gridPos: GrafanaGridPos;
targets: GrafanaTarget[];
fieldConfig: GrafanaFieldConfig;
options?: {
legend?: {
displayMode?: string;
placement?: string;
calcs?: string[];
};
tooltip?: {
mode?: string;
sort?: string;
};
reduceOptions?: {
values?: boolean;
calcs?: string[];
fields?: string;
};
orientation?: string;
textMode?: string;
colorMode?: string;
graphMode?: string;
justifyMode?: string;
showTime?: boolean;
showLabels?: boolean;
showCommonLabels?: boolean;
wrapLogMessage?: boolean;
prettifyLogMessage?: boolean;
enableLogDetails?: boolean;
dedupStrategy?: string;
sortOrder?: string;
};
pluginVersion?: string;
transformations?: Array<{
id: string;
options: Record<string, unknown>;
}>;
alert?: {
conditions: Array<{
evaluator: {
params: number[];
type: string;
};
operator: {
params: string[];
type: string;
};
query: {
model: {
refId: string;
};
params: string[];
};
reducer: {
params: unknown[];
type: string;
};
type: string;
}>;
executionErrorState: string;
frequency: string;
handler: number;
name: string;
noDataState: string;
};
datasource?: {
type: string;
uid: string;
};
}
export interface GrafanaTemplateVariable {
name: string;
type: string;
label?: string;
query: string;
datasource?: {
type: string;
uid: string;
};
refresh: number;
sort: number;
multi?: boolean;
includeAll?: boolean;
allValue?: string | null;
regex?: string;
hide?: number;
skipUrlSync?: boolean;
queryType?: string;
current?: {
selected: boolean;
text: string | string[];
value: string | string[];
};
options?: Array<{
selected: boolean;
text: string;
value: string;
}>;
}
export interface GrafanaDashboardTime {
from: string;
to: string;
}
export interface GrafanaRefresh {
intervals: string[];
time_options: string[];
}
export interface GrafanaDashboard {
id?: number | null;
uid?: string;
title: string;
tags: string[];
timezone: string;
panels: GrafanaPanel[];
templating: {
list: GrafanaTemplateVariable[];
};
time: GrafanaDashboardTime;
timepicker: {
refresh_intervals: string[];
time_options: string[];
};
refresh: string;
schemaVersion: number;
version: number;
links: Array<{
icon?: string;
tags?: string[];
title: string;
tooltip?: string;
type: string;
url: string;
}>;
annotations: {
list: Array<{
builtIn?: number;
datasource?: string;
enable?: boolean;
hide?: boolean;
iconColor?: string;
name?: string;
type?: string;
}>;
};
editable: boolean;
gnetId?: number | null;
graphTooltip: number;
hideControls: boolean;
style: string;
}
export interface GrafanaDataSource {
id?: number;
uid: string;
name: string;
type: string;
url: string;
access: 'proxy' | 'direct';
basicAuth?: boolean;
basicAuthUser?: string;
basicAuthPassword?: string;
withCredentials?: boolean;
isDefault?: boolean;
jsonData?: Record<string, unknown>;
secureJsonData?: Record<string, unknown>;
}
export interface GrafanaDashboardExport {
dashboard: GrafanaDashboard;
overwrite: boolean;
folderUid?: string;
message?: string;
}
export type GrafanaPanelType = 'timeseries' | 'stat' | 'gauge' | 'bargauge' | 'table' | 'logs' | 'heatmap' | 'histogram' | 'piechart' | 'text' | 'alertlist' | 'dashlist' | 'news' | 'graph' | 'singlestat';
export interface DashboardGenerationOptions {
theme: 'dark' | 'light';
refreshInterval: string;
timeRange: string;
includeLegend: boolean;
includeTooltips: boolean;
includeAlerts: boolean;
panelHeight: number;
panelWidth: number;
}
//# sourceMappingURL=grafana-config.d.ts.map