watchtower-node-sdk
Version:
A TypeScript Node.js SDK for the Watchtower API, providing API key management, connection string generation, and more
151 lines (150 loc) • 4.25 kB
TypeScript
export interface GetLatestRequest {
organization_apikey: string;
app_apikey: string;
tenant_apikey?: string;
item_id: string;
}
export interface AnalyzeLogsRequest {
organization_apikey: string;
app_apikey: string;
tenant_apikey?: string;
item_id: string;
after?: string;
before?: string;
}
export interface AnalyzeCurrentRequest {
organization_apikey: string;
app_apikey: string;
tenant_apikey?: string;
item_id: string;
}
export interface AnalyzeCurrentResponse {
timestamp: string;
overview: string;
status: 'normal' | 'warning' | 'critical';
description: string;
metrics: Record<string, {
status: 'normal' | 'warning' | 'critical';
value: any;
unit?: string;
description: string;
}>;
recommendations: Array<{
priority: 'high' | 'medium' | 'low';
title: string;
description: string;
action: string;
}>;
}
export interface AnalysisResult {
summary: {
total_logs: number;
item_id: string;
first_log_time: string;
last_log_time: string;
time_range: string;
average_interval?: string;
};
metrics: Record<string, {
min: number;
max: number;
average: number;
std_dev: number;
}>;
time_series: Array<{
timestamp: string;
metrics: Record<string, any>;
}>;
ai_analysis?: {
timestamp: string;
overview: string;
status_summary: string;
current_status: {
status: string;
description: string;
alerts: Array<{
level: string;
title: string;
description: string;
metric?: string;
value?: string;
threshold?: string;
}>;
metrics: Record<string, {
status: string;
value: string;
unit?: string;
description: string;
}>;
contexts: Array<{
context: string;
count: number;
first_seen: string;
last_seen: string;
relevance: string;
description: string;
impact: string;
}>;
};
historical_analysis: {
patterns: Array<{
type: string;
title: string;
description: string;
confidence: number;
}>;
anomalies: Array<{
type: string;
title: string;
description: string;
metric?: string;
value?: string;
expected?: string;
severity: string;
}>;
insights: Array<{
category: string;
title: string;
description: string;
impact: string;
}>;
recommendations: Array<{
priority: string;
title: string;
description: string;
action: string;
impact: string;
}>;
metrics: Record<string, {
status: string;
trend: string;
summary: string;
anomalies: Array<{
type: string;
title: string;
description: string;
metric?: string;
value?: string;
expected?: string;
severity: string;
}>;
recommendations: Array<{
priority: string;
title: string;
description: string;
action: string;
impact: string;
}>;
}>;
contexts: Array<{
context: string;
count: number;
first_seen: string;
last_seen: string;
relevance: string;
description: string;
impact: string;
}>;
};
};
}