watchtower-node-sdk
Version:
A TypeScript Node.js SDK for the Watchtower API, providing API key management, connection string generation, and more
154 lines (150 loc) • 4.04 kB
text/typescript
export interface GetLatestRequest {
organization_apikey: string;
app_apikey: string;
tenant_apikey?: string; // Optional, required for multi-tenant apps
item_id: string;
}
export interface AnalyzeLogsRequest {
organization_apikey: string;
app_apikey: string;
tenant_apikey?: string; // Optional, required for multi-tenant apps
item_id: string;
after?: string; // Optional, ISO 8601 timestamp
before?: string; // Optional, ISO 8601 timestamp
}
export interface AnalyzeCurrentRequest {
organization_apikey: string;
app_apikey: string;
tenant_apikey?: string; // Optional, required for multi-tenant apps
item_id: string;
}
export interface AnalyzeCurrentResponse {
timestamp: string; // ISO 8601 timestamp
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; // ISO 8601 timestamp
last_log_time: string; // ISO 8601 timestamp
time_range: string;
average_interval?: string;
};
metrics: Record<string, {
min: number;
max: number;
average: number;
std_dev: number;
}>;
time_series: Array<{
timestamp: string; // ISO 8601 timestamp
metrics: Record<string, any>;
}>;
ai_analysis?: {
timestamp: string; // ISO 8601 timestamp
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; // ISO 8601 timestamp
last_seen: string; // ISO 8601 timestamp
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; // ISO 8601 timestamp
last_seen: string; // ISO 8601 timestamp
relevance: string;
description: string;
impact: string;
}>;
};
};
}