Comments (6)
Maybe something with the timeouts and graces? What's the difference between those two?
from eye.
It's probably worth mentioning that I also tried with the example config without much luck
from eye.
I think your problem is 'daemonize true'
Here's a working example for puma with eye
Eye.application "xyz" do
env "RAILS_ENV" => "production"
working_dir "/var/www/xzy/current"
trigger :flapping, :times => 3, :within => 1.minute
process "puma" do
pid_file "/var/www/xyz/shared/tmp/pids/puma.pid"
start_command "./bin/puma -C /var/www/xyz/shared/config/puma/puma.rb"
stop_signals [:TERM, 5.seconds, :KILL]
restart_command "kill -USR2 {PID}"
restart_grace 10.seconds
check :memory, :every => 10, :below => 150.megabytes, :times => [3,5]
monitor_children do
stop_command "kill -QUIT {PID}"
check :memory, :every => 10, :below => 150.megabytes, :times => [3,5]
end
end
end
from eye.
You should enable eye logger, and eye t
, it should write whole things. and easy find a problem.
Eye.config do
logger "/tmp/eye.log"
logger_level Logger::DEBUG
end
also, you can read history for process eye hi
from eye.
timeout is time for command execution (for self-daemonized process is time for daemonization).
grace is time for sleeping after command execution.
from eye.
Ok. Thanks for the help. demonize true
was indeed required because Puma is not a self daemonizing process and needs some help to keep running detached in the background.
I suspect the issue was a too stringent flapping check. If I check every minute, then it forgets at the next minute all previous errors. However, if the within period is longer, then some occasional failing checks may not pass. I can't confirm this, but seems like a good theory if someone is having similar problems and is feeling "statistical".
Using @hamann config, I made some mods and here's what's working for me:
Eye.application :app do
working_dir '/var/www'
trigger :flapping, times: 3, within: 1.minute, retry_in: 30.seconds
stop_on_delete true
process "puma" do
pid_file "/eye/pid/puma.pid"
stdall "/eye/log/puma.log"
start_command "bundle exec puma"
stop_signals [:TERM, 5.seconds, :KILL]
restart_command "kill -USR2 {PID}"
restart_grace 10.seconds
start_timeout 20
daemonize true
check :memory, :every => 10, :below => 150.megabytes, :times => [3,5]
end
end
from eye.
Related Issues (20)
- Exception: attempted to call a dead actor: proc_cpu/proc_memory HOT 2
- check_identity cannot be disabled HOT 4
- How to make a process depend on other group of process HOT 4
- eye/application HOT 2
- How to make sure log files are rotated or don't grow HOT 1
- depend_on's ordering in stopping case HOT 2
- Eye monitors wrong processes PIDs after config reload HOT 8
- Eye stopped working until the .eye dir was deleted HOT 4
- Exception: undefined method `groups' for nil:NilClass (lib/eye/controller/helpers.rb) HOT 10
- Duplicate logs with semantic_logger HOT 5
- Prevent logging "wrong switch 'starting_guard, refused to start'"
- Crashing with hundreds of processes HOT 13
- Installation with bundler undocumented HOT 2
- Weird Eye::SystemResources.start_time behaviour HOT 2
- Define working directory for each process. HOT 1
- Eye crashes unless run in foreground HOT 3
- Eye log stdout took long time to flush to file.
- Log rotation using newsyslog HOT 6
- How to load the processes without starting them? HOT 2
- Error while installing gem eye in ruby:3.0.6-alpine3.16 - rbsigar_generated.rx: No such file or directory HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eye.