Skip to content
reaatechREAATECH

@reaatech/agent-runbook-dashboards

npm v0.1.0

Generates Grafana and CloudWatch dashboard configurations by analyzing code patterns to identify relevant service metrics. It provides functions to extract metrics from a repository and format them into platform-specific dashboard JSON or configuration objects.

@reaatech/agent-runbook-dashboards

npm version License: MIT CI

Dashboard configuration generation for the Agent Runbook Generator. Identifies relevant service metrics and generates complete dashboard configurations for Grafana and CloudWatch.

Installation

terminal
npm install @reaatech/agent-runbook-dashboards
# or
pnpm add @reaatech/agent-runbook-dashboards

Feature Overview

  • Metric identification — scans code patterns to identify relevant service metrics
  • Service-type suggestions — suggests appropriate metrics based on detected service type
  • Panel generation — generates dashboard panels with queries, thresholds, and legends
  • Multi-platform output — formats dashboards for Grafana JSON and CloudWatch
  • Widget templates — pre-built widgets for common patterns (latency, error rate, saturation)

Quick Start

typescript
import { identifyMetrics, generateDashboard } from "@reaatech/agent-runbook-dashboards";
 
const metrics = identifyMetrics("/path/to/repo", analysisContext);
 
const dashboard = generateDashboard(analysisContext, {
  platform: "grafana",
  serviceName: "my-api",
  refreshInterval: "30s",
});

API Reference

Metric Identifier

FunctionSignature
identifyMetrics(repoPath: string, context: AnalysisContext) => IdentifiedMetric[]
suggestMetricsForService(serviceType: string, serviceName: string) => IdentifiedMetric[]

Dashboard Generator

FunctionSignature
generateDashboard(context: AnalysisContext, config: DashboardGenerationConfig) => DashboardConfig
formatDashboardForGrafana(dashboard: DashboardConfig) => string
formatDashboardForCloudWatch(dashboard: DashboardConfig) => string

DashboardGenerationConfig: { platform: string; serviceName: string; refreshInterval?: string; timeRange?: string }

License

MIT