47 lines · 758 B · Go
RawDownload
package database import (	"database/sql" 	_ "github.com/mattn/go-sqlite3") type DB struct {	*sql.DB} func InitDB() (*DB, error) {	db, err := sql.Open("sqlite3", "./monitoring.db")	if err != nil {		return nil, err	} 	// Create metrics table if it doesn't exist	_, err = db.Exec(`		CREATE TABLE IF NOT EXISTS server_metrics (			timestamp TEXT PRIMARY KEY,			cpu REAL,			cpu_model TEXT,			cpu_cores INTEGER,			cpu_physical_cores INTEGER,			cpu_speed REAL,			os TEXT,			distro TEXT,			kernel TEXT,			arch TEXT,			mem_used REAL,			mem_used_gb REAL,			mem_total REAL,			uptime INTEGER,			disk_used REAL,			total_disk REAL,			network_in REAL,			network_out REAL		)	`)	if err != nil {		return nil, err	} 	return &DB{db}, nil}