mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-14 06:31:41 +00:00
monitorear
This commit is contained in:
parent
6d3b2dac16
commit
d489ef0bf2
9 changed files with 32 additions and 23 deletions
|
@ -111,6 +111,8 @@ USER root
|
||||||
RUN install -m 755 /srv/http/sync_assets.sh /usr/local/bin/sync_assets
|
RUN install -m 755 /srv/http/sync_assets.sh /usr/local/bin/sync_assets
|
||||||
# Instalar la configuración de monit
|
# Instalar la configuración de monit
|
||||||
RUN install -m 640 -o root -g root /srv/http/monit.conf /etc/monit.d/sutty.conf
|
RUN install -m 640 -o root -g root /srv/http/monit.conf /etc/monit.d/sutty.conf
|
||||||
|
RUN apk add --no-cache daemonize
|
||||||
|
RUN install -m 755 /srv/http/prometheus.sh /usr/local/bin/prometheus
|
||||||
|
|
||||||
# Mantener estos directorios!
|
# Mantener estos directorios!
|
||||||
VOLUME "/srv/http/data"
|
VOLUME "/srv/http/data"
|
||||||
|
|
1
Gemfile
1
Gemfile
|
@ -78,6 +78,7 @@ gem 'flamegraph'
|
||||||
gem 'memory_profiler'
|
gem 'memory_profiler'
|
||||||
gem 'rack-mini-profiler'
|
gem 'rack-mini-profiler'
|
||||||
gem 'stackprof'
|
gem 'stackprof'
|
||||||
|
gem 'prometheus_exporter'
|
||||||
|
|
||||||
group :themes do
|
group :themes do
|
||||||
gem 'adhesiones-jekyll-theme', require: false
|
gem 'adhesiones-jekyll-theme', require: false
|
||||||
|
|
10
Gemfile.lock
10
Gemfile.lock
|
@ -205,7 +205,7 @@ GEM
|
||||||
http_parser.rb (0.6.0)
|
http_parser.rb (0.6.0)
|
||||||
i18n (1.8.5)
|
i18n (1.8.5)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
icalendar (2.6.1)
|
icalendar (2.7.0)
|
||||||
ice_cube (~> 0.16)
|
ice_cube (~> 0.16)
|
||||||
ice_cube (0.16.3)
|
ice_cube (0.16.3)
|
||||||
image_processing (1.11.0)
|
image_processing (1.11.0)
|
||||||
|
@ -214,7 +214,7 @@ GEM
|
||||||
inline_svg (1.7.1)
|
inline_svg (1.7.1)
|
||||||
activesupport (>= 3.0)
|
activesupport (>= 3.0)
|
||||||
nokogiri (>= 1.6)
|
nokogiri (>= 1.6)
|
||||||
jbuilder (2.10.0)
|
jbuilder (2.10.1)
|
||||||
activesupport (>= 5.0.0)
|
activesupport (>= 5.0.0)
|
||||||
jekyll (4.1.1)
|
jekyll (4.1.1)
|
||||||
addressable (~> 2.4)
|
addressable (~> 2.4)
|
||||||
|
@ -309,6 +309,7 @@ GEM
|
||||||
forwardable-extended (~> 2.6)
|
forwardable-extended (~> 2.6)
|
||||||
pg (1.2.3)
|
pg (1.2.3)
|
||||||
popper_js (1.16.0)
|
popper_js (1.16.0)
|
||||||
|
prometheus_exporter (0.5.3)
|
||||||
pry (0.13.1)
|
pry (0.13.1)
|
||||||
coderay (~> 1.1)
|
coderay (~> 1.1)
|
||||||
method_source (~> 1.0)
|
method_source (~> 1.0)
|
||||||
|
@ -405,7 +406,7 @@ GEM
|
||||||
rubocop-ast (>= 0.3.0, < 1.0)
|
rubocop-ast (>= 0.3.0, < 1.0)
|
||||||
ruby-progressbar (~> 1.7)
|
ruby-progressbar (~> 1.7)
|
||||||
unicode-display_width (>= 1.4.0, < 2.0)
|
unicode-display_width (>= 1.4.0, < 2.0)
|
||||||
rubocop-ast (0.3.0)
|
rubocop-ast (0.4.0)
|
||||||
parser (>= 2.7.1.4)
|
parser (>= 2.7.1.4)
|
||||||
rubocop-rails (2.8.0)
|
rubocop-rails (2.8.0)
|
||||||
activesupport (>= 4.2.0)
|
activesupport (>= 4.2.0)
|
||||||
|
@ -453,7 +454,7 @@ GEM
|
||||||
sprockets (4.0.2)
|
sprockets (4.0.2)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
rack (> 1, < 3)
|
rack (> 1, < 3)
|
||||||
sprockets-rails (3.2.1)
|
sprockets-rails (3.2.2)
|
||||||
actionpack (>= 4.0)
|
actionpack (>= 4.0)
|
||||||
activesupport (>= 4.0)
|
activesupport (>= 4.0)
|
||||||
sprockets (>= 3.0.0)
|
sprockets (>= 3.0.0)
|
||||||
|
@ -565,6 +566,7 @@ DEPENDENCIES
|
||||||
minima
|
minima
|
||||||
mobility
|
mobility
|
||||||
pg
|
pg
|
||||||
|
prometheus_exporter
|
||||||
pry
|
pry
|
||||||
puma
|
puma
|
||||||
pundit
|
pundit
|
||||||
|
|
1
Procfile
1
Procfile
|
@ -4,3 +4,4 @@ blazer_5m: bundle exec rake blazer:run_checks SCHEDULE="5 minutes"
|
||||||
blazer_1h: bundle exec rake blazer:run_checks SCHEDULE="1 hour"
|
blazer_1h: bundle exec rake blazer:run_checks SCHEDULE="1 hour"
|
||||||
blazer_1d: bundle exec rake blazer:run_checks SCHEDULE="1 day"
|
blazer_1d: bundle exec rake blazer:run_checks SCHEDULE="1 day"
|
||||||
blazer: bundle exec rake blazer:send_failing_checks
|
blazer: bundle exec rake blazer:send_failing_checks
|
||||||
|
prometheus: bundle exec prometheus_exporter -b 0.0.0.0 --prefix "sutty_" -d
|
||||||
|
|
6
config/initializers/prometheus.rb
Normal file
6
config/initializers/prometheus.rb
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
unless Rails.env.test?
|
||||||
|
require 'prometheus_exporter/middleware'
|
||||||
|
|
||||||
|
# This reports stats per request like HTTP status and timings
|
||||||
|
Rails.application.middleware.unshift PrometheusExporter::Middleware
|
||||||
|
end
|
|
@ -56,4 +56,9 @@ end
|
||||||
#
|
#
|
||||||
on_worker_boot do
|
on_worker_boot do
|
||||||
ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
|
ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
|
||||||
|
|
||||||
|
require 'prometheus_exporter/instrumentation'
|
||||||
|
PrometheusExporter::Instrumentation::ActiveRecord.start(custom_labels: { type: 'puma_worker' }, config_labels: %i[database host])
|
||||||
|
PrometheusExporter::Instrumentation::Puma.start
|
||||||
|
PrometheusExporter::Instrumentation::Process.start(type: 'web')
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,24 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -e
|
set -e
|
||||||
export RAILS_ENV=production
|
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
rails)
|
prometheus) daemonize -c /srv/http -p /tmp/prometheus.pid -l /tmp/prometheus.pid -u app /usr/bin/foreman start prometheus ;;
|
||||||
cd /srv/http
|
|
||||||
bundle exec rake db:migrate
|
|
||||||
bundle exec rake db:seed
|
|
||||||
bundle exec puma -d config.ru
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
darkhttpd)
|
|
||||||
darkhttpd /srv/http/public \
|
|
||||||
--no-server-id \
|
|
||||||
--pidfile /tmp/darkhttpd.pid \
|
|
||||||
--uid darkhttpd \
|
|
||||||
--gid www-data \
|
|
||||||
--no-listing \
|
|
||||||
--daemon \
|
|
||||||
--port 8080
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -3,6 +3,10 @@ check process sutty with pidfile /srv/http/tmp/puma.pid
|
||||||
as uid "app" and gid "www-data"
|
as uid "app" and gid "www-data"
|
||||||
stop program = "/bin/sh -c 'cat /srv/http/tmp/puma.pid | xargs kill'"
|
stop program = "/bin/sh -c 'cat /srv/http/tmp/puma.pid | xargs kill'"
|
||||||
|
|
||||||
|
check process prometheus with pidfile /tmp/prometheus.pid
|
||||||
|
start program = "/usr/local/bin/prometheus"
|
||||||
|
stop program = "/bin/sh -c 'cat /tmp/prometheus.pid | xargs kill'"
|
||||||
|
|
||||||
check program sync_assets
|
check program sync_assets
|
||||||
with path /usr/local/bin/sync_assets
|
with path /usr/local/bin/sync_assets
|
||||||
if status = 0 then unmonitor
|
if status = 0 then unmonitor
|
||||||
|
|
6
prometheus.sh
Executable file
6
prometheus.sh
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
prometheus) daemonize -c /srv/http -p /tmp/prometheus.pid -l /tmp/prometheus.pid -u app /usr/bin/foreman start prometheus ;;
|
||||||
|
esac
|
Loading…
Reference in a new issue