Commit graph

26 commits

Author SHA1 Message Date
Aleksei Lipniagov
c90effd84a Clean prometheus dir only for master process 2019-08-12 13:52:15 +03:00
Aleksei Lipniagov
debc497dbb Remove extra blank line 2019-08-12 13:52:15 +03:00
Aleksei Lipniagov
3f9815865c Fix metric files being wiped after the app starts
When we hit our app with the initial request, in `warmup`,
some metrics already being created as well as corresponding files.
If we do `multiproc_file_dir` cleanup after that, we delete the files
from the dir while keeping them in memory which leads to the incorrect
behavior: the metric is being updated in in-memory, while is not present
in the db, not sent to Prometheus as the result.
2019-08-12 13:52:15 +03:00
Stan Hu
617dcfd5e4 Bump rack gem to 2.0.7
This update has two important fixes:

1. It reverts the monkey patch introduced in
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23385 since
https://github.com/rack/rack/pull/1201 is now part of the release.

2. Preserve forwarded IP address for trusted proxy chains
(https://github.com/rack/rack/pull/1343).
2019-04-04 22:01:01 -07:00
Rémy Coutable
3a2abc1d50
Enable the Layout/ExtraSpacing cop
Signed-off-by: Rémy Coutable <remy@rymai.me>
2019-01-24 13:05:45 +01:00
Kamil Trzciński
dc962788fa Add monkey patch to unicorn to fix eof? problem
Rack with Unicorn is unable to handle chunked requests due to private `eof?` method.
This exposes `eof?` not changing `rack` behavior.

Issue: https://gitlab.com/gitlab-org/gitlab-ee/issues/8539
2018-11-28 08:34:32 -08:00
DJ Mountney
f4218f277a Increase the memory limits used in the unicorn killer
These limits were updated in our docs, and in omnibus some time ago. But
the defaults in the source-install were missed.
2018-03-22 17:21:10 -07:00
Lin Jen-Shin
31f1ec59a7 Release the entire env 2018-02-07 22:56:07 +08:00
Lin Jen-Shin
d4d564c8e7 Try not to hold env and release the controller
after the request. This way, we could release the
project referred from the controller, which potentially
referred a repository which potentially allocated a lot of
memories.

Before this change, we could hold the last request data
and cannot release the memory. After this change, the
largest request data should be able to be collected from GC.

This might not impact the instances having heavy load,
as the last request should be changing all the time,
and GC won't kick in for each request anyway.

However it could still potentially allow us to free more
memories for each GC runs, because now we could free one
more request anyway.
2018-02-07 22:45:02 +08:00
Lin Jen-Shin
e202fe8c76 Warm up the app so it's fast for the 1st request
This would make the application considered ready much slower,
but when it's ready, then it's really ready. Before this change,
it claims to be ready, but it's annoyingly slow for the first
request with GDK. It's 100% 502 for me, for the first request.

This shouldn't really affect production or so, because if it's
really ready, it should be blazingly fast, and it should not
slow things down too much.

The culprit here is probably `ActionController::Base.helpers.asset_path`
but this could make sure that anything else would load first, too.
2017-12-28 21:55:34 +08:00
Pawel Chojnacki
f982fef9b5 set ENV['prometheus_multiproc_dir'] in config/boot.rb instead of config.ru 2017-06-15 23:41:47 +02:00
Pawel Chojnacki
c134a72cdb Move Prometheus presentation logic to PrometheusText
+ Use NullMetrics to mock metrics when unused
+ Use method_missing in NullMetrics mocking
+ Update prometheus gem to version that correctly uses transitive dependencies
+ Ensure correct folders are used in Multiprocess prometheus client tests.
+ rename Sessions controller's metric
2017-06-02 19:45:58 +02:00
Pawel Chojnacki
ef9f23b797 Mark migration as requiring no downtime
+ Add spaces for four phases approach
+ fix InfluxDB rename
2017-06-02 19:45:58 +02:00
Pawel Chojnacki
57902dbe82 Add Changelog fix textual description in config.ru 2017-06-02 19:45:58 +02:00
Pawel Chojnacki
c10d55a6da Use only ENV for metrics folder location 2017-06-02 19:45:58 +02:00
Pawel Chojnacki
5bc099c2de Prometheus metrics first pass
metrics wip
2017-06-02 19:45:57 +02:00
Kevin Lyda
e4fb162186 Initial pass at prometheus monitoring.
This is a step for #29118.

Add a single metric to count successful logins.

Summary types are not supported so remove Collector.  Either
we need to support the summary type or we need to create a
multiprocess-friendly Collector.

Add config to load prometheus and set up the Collector and the
Exporter.

Fix `Gemfile` as current prometheus-client gemspec is missing the
`mmap2` dependency.
2017-06-02 19:45:57 +02:00
Yorick Peterse
89c65a3789 Increase Unicorn memory limits to 300-350
Using this limit on GitLab.com it appears we're able to reduce response
timings by about 620 milliseconds compared to the previous limit.

See gitlab-org/gitlab-ce!2421 for more information.
2016-01-20 11:52:01 +01:00
Yorick Peterse
21fab4f413 Use env variables for Unicorn memory limits
This makes it easier for users to use their own limits based on their
server configuration.
2016-01-20 11:51:49 +01:00
Robert Speicher
694743170c Disable Unicorn::WorkerKiller in non-production environments 2015-05-27 22:57:49 -04:00
Дамјан Георгиевски
be150fa991 Check specifically for Unicorn in rack config.ru file
Don't assume that if the Rack server is not Passenger then it must be Unicorn. There are many other Rack servers in the world (uwsgi being one example that people use a lot).

The reverse check is much more logical, i.e. check explicitly for Unicorn
2014-01-23 18:24:31 +01:00
dprolife
6b2ee67269 Fix 'uninitialized constant Unicorn' error 2013-12-22 11:08:43 +01:00
James Newton
756258ab1d don't use unicorn worker killer if PhusionPassenger is defined 2013-12-20 10:30:34 -06:00
Jacob Vosmaer
d27224ceca Add unicorn-worker-killer with memory check
Conflicts:
	Gemfile.lock
2013-12-18 16:52:14 +01:00
Chris Frohoff
21e55ca318 added RAILS_RELATIVE_URL_ROOT support 2012-12-28 18:11:28 +00:00
gitlabhq
9ba1224867 init commit 2011-10-09 00:36:38 +03:00