Skip to content

msempere/golarm

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

golarm

GoDoc Build Status Coverage Status Go Report Card

Fire alarms with system events

Usage

golarm.AddAlarm(golarm.SystemLoad(golarm.OneMinPeriod).Above(0.8).Run(func() {
		fmt.Println("System load >0.8 !!")
		smtp.SendMail(smtpHost, emailConf.Port, "System load >0.8 !!")
	}))

Usage example

Options

  • SystemLoad
// checks if the system load is lower or equal to 0.5
golarm.AddAlarm(golarm.SystemLoad(golarm.OneMinPeriod).AboveEqual(0.5).Run(func() {
   	fmt.Println("System load >=0.5 !!")
   }))
  • SystemUptime
// checks if the system has been running for less than 1 minute
golarm.AddAlarm(golarm.SystemUptime().Below(1).Run(func() {
  	fmt.Println("System just started !!")
  }))
  • SystemMemory / SystemSwap [Free, Used]
// checks if used memory is higher that 90%
golarm.AddAlarm(golarm.SystemMemory().Used().Above(90).Percent().Run(func() {
   	fmt.Println("Used system memory > 90% !!")
   }))
// checks if free memory is lower that 500MB
golarm.AddAlarm(golarm.SystemMemory().Free().BelowEqual(500).Run(func() {
   	fmt.Println("Free memory <= 500MB !!")
   }))
  • SystemProc [Status, RunningTime, Used (Memory)]
// checks if the process 72332 has changed to zombie status
golarm.AddAlarm(golarm.SystemProc(72332).Status(golarm.Zombie).Run(func() {
  	fmt.Println("Our process with PID 72332 became Zombie !!")
  }))
// checks if the process 72332 has been running for more than 20 minutes
golarm.AddAlarm(golarm.SystemProc(72332).RunningTime().Above(20).Run(func() {
  	fmt.Println("Our process with PID 72332 exceeded 20 minutes running !!")
  }))

TODO

  • Kilobytes / Megabytes / Gigabytes (currently megabytes by default)
  • Minutes / Hours / Days (currently minutes by default)

License

Distributed under MIT license. See LICENSE for more information.

Releases

No releases published

Packages

No packages published

Languages