Home - antimetal/system-agent GitHub Wiki
Antimetal System Agent Wiki
Welcome to the Antimetal System Agent documentation! This wiki provides comprehensive information for integrators and developers working with the system agent.
🚀 Quick Links
- Getting Started - Quick setup guide
- Architecture Overview - System design and components
📚 Documentation Structure
Architecture
- Architecture Overview - High-level system design
- Component Diagram - Visual architecture representation
- Data Flow - How data moves through the system
- Hardware Discovery - Hardware graph topology
- Runtime Discovery - Container and process graph topology
- Collection Bus 📝 - Proposed collection coordination (Proposal)
Core Components
- Kubernetes Controller - K8s resource monitoring
- Performance Monitoring - System metrics collection
- Resource Store - BadgerDB storage layer
- Antimetal APIs - gRPC protocols and message definitions
- Cloud Providers - AWS, GKE, AKS abstractions
Performance Collectors
System Metrics
- CPU Collector - CPU usage and time distribution
- Memory Collector - Memory usage, buffers, cache
- Load Collector - System load averages
- Network Collector - Interface statistics
- Disk Collector - Disk I/O statistics
- TCP Collector - TCP connection states
- Process Collector - Per-process metrics
- Kernel Collector - Kernel messages and events
Hardware Information
- CPU Info Collector - CPU hardware details
- Memory Info Collector - Memory hardware configuration
- Disk Info Collector - Disk hardware details
- Network Info Collector - Network interface hardware
- NUMA Collector - NUMA topology and statistics
Container Metrics
- Cgroup Collectors - Container-level resource monitoring
- CPU Collector - Container CPU metrics
- Memory Collector - Container memory metrics
eBPF Collectors
- Execsnoop Collector - Process execution tracking
- Profiler Collector - CPU profiling with eBPF
Advanced Monitoring
- Memory Monitoring - Memory pressure detection and analysis
Integration
- Getting Started - Quick start guide
- Configuration Guide - All configuration options
- Custom Collectors - Build your own collectors
- Cloud Providers - Multi-cloud support and provider abstractions
API Reference
- gRPC API - Intake service protocol
- Resource Types - Data models and schemas
- Performance Metrics - Available metrics
Deployment & Operations
- Kubernetes Deployment - Deploy to K8s
- Configuration Options - Runtime configuration
- Security Considerations - Security best practices
Development & Testing
- Hardware Development Guide - Extend hardware discovery
- eBPF Development - eBPF programming guide
- Hardware Testing Guide - Testing hardware collectors
- Kernel Testing Guide - Testing across kernel versions
- Local CI Testing - Test GitHub Actions locally
- Performance Analysis Methods - USE Method catalog
Support
- Troubleshooting - Common issues and solutions
- FAQ - Frequently asked questions
- Contributing - How to contribute
Documentation
- Documentation Tools - Wiki maintenance and quality tools
- Documentation Status - Current documentation health
🎯 What is the Antimetal System Agent?
The Antimetal System Agent is a sophisticated Kubernetes controller that bridges your infrastructure with the Antimetal platform. It provides:
- Real-time Kubernetes resource monitoring - Tracks pods, nodes, deployments, and more
- Comprehensive performance monitoring - CPU, memory, network, disk metrics
- Multi-cloud support - Works with EKS, GKE, AKS, and local clusters
- Efficient data streaming - Batched gRPC uploads with automatic recovery
- Extensible architecture - Add custom collectors and providers
🛠️ Key Features
For Operators
- Zero-downtime deployment with leader election
- Minimal resource footprint
- Automatic recovery from failures
- Comprehensive observability
For Developers
- Clean interfaces for extensions
- Well-documented APIs
- Example implementations
- Active development community
For Integrators
- Standard gRPC protocols
- Protobuf message definitions
- Event-driven architecture
- Cloud-agnostic design
📊 System Requirements
- Kubernetes: 1.19+
- Architecture: linux/amd64 or linux/arm64
- Memory: 256MB minimum
- Permissions: Read access to Kubernetes resources
🚦 Getting Help
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Security: [email protected]
Last updated: July 2025