@ic-canister/metrics
v0.2.2
Published
Prometheus metrics for your canisters
Downloads
548
Readme
IC Metrics Analysis Library
A TypeScript library for analyzing and managing Internet Computer canister metrics, providing insights, trends, and cycle analysis.
Features
- 📊 Metrics Analysis & Trends
- 💰 Cycles Usage Tracking
- 🔔 Alerts Configuration
- 📈 Historical Data Analysis
- 🔍 Performance Insights
- 📉 Usage Pattern Detection
Installation
npm install @ic-canister/metrics
Quick Start
import { MetricsAnalyze, MetricsClient } from '@ic-canister/metrics';
// Initialize the client
const client = new MetricsClient('https://your-api-endpoint', 'your-api-key');
// Fetch and analyze metrics
async function analyzeCanisterMetrics() {
// Get metrics history
const history = await client.getMetricsHistory({
timeRange: '24h',
canisterId: 'your-canister-id',
});
// Analyze metrics
const analyzer = new MetricsAnalyze(history);
const analysis = analyzer.analyze();
console.log('Summary:', analysis.summary);
console.log('Trends:', analysis.trends);
console.log('Insights:', analysis.insights);
console.log('Cycles Analysis:', analysis.cycles);
}
API Reference
MetricsClient
The main class for interacting with the metrics API.
const client = new MetricsClient(baseUrl, apiKey);
// Available methods
client.getCurrentMetrics()
client.getMetricsHistory(params?)
client.getAlerts()
client.getCyclesHistory(params?)
client.configureAlert(canisterId, config)
client.updateAlertConfig(canisterId, configId, config)
client.deleteAlertConfig(canisterId, configId)
MetricsAnalyze
Class for analyzing metrics data.
const analyzer = new MetricsAnalyze(history);
// Analysis methods
analyzer.analyze();
analyzer.generateSummary();
analyzer.analyzeTrends();
analyzer.generateInsights();
analyzer.analyzeCycles();
// Filtering methods
analyzer.filterByTimeRange(startTime, endTime);
analyzer.filterByCanister(canisterId);
Time Ranges
Supported time range values:
1h
: 1 hour24h
: 24 hours7d
: 7 days30d
: 30 days
Configuration
Default configuration values:
const DEFAULT_CONFIG = {
MAX_HISTORY_DAYS: 7,
DEFAULT_TIME_RANGE: '24h',
METRICS_FETCH_TIMEOUT: 30000,
MAX_RETRY_ATTEMPTS: 3,
CACHE_TTL: {
SHORT: 60, // 1 minute
MEDIUM: 300, // 5 minutes
LONG: 3600, // 1 hour
},
};
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
This README.md provides:
- Overview of the library
- Main features
- Installation instructions
- Quick start guide
- Detailed API reference
- Configuration options
- Standard sections for license and contributions
The documentation is concise yet comprehensive, focusing on the key aspects that developers need to get started with the library.