A basic module to get CPU, memory and network informations of the current running OS and its processes.
Tested on Linux.
Add this to your application's shard.yml
:
dependencies:
hardware:
github: crystal-community/hardware
The documentation is accessible at https://crystal-community.github.io/hardware.
It is generated with crystal docs in the gh-pages
branch.
require "hardware"
memory = Hardware::Memory.new
memory.used #=> 2731404
memory.percent.to_i #=> 32
cpu = Hardware::CPU.new
pid_stat = Hardware::PID.new.stat # Default is Process.pid
app_stat = Hardware::PID.new("firefox").stat # Take the first matching PID
loop do
sleep 1
p cpu.usage!.to_i #=> 17
p pid_stat.cpu_usage! #=> 1.5
p app_stat.cpu_usage!.to_i #=> 4
end
You can run the specs in a Docker container:
$ docker-compose up
$ docker-compose run spec
- Fork it ( https://github.com/crystal-community/hardware/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request