Commit Graph
3267 Commits
Author SHA1 Message Date
Yorick Peterse b7f49aa0f0 Merge branch 'configure-randomize-metrics-sample-interval' into 'master'
See merge request !2406
2016-01-13 14:54:45 +00:00
Douwe Maan c7d9e7806a Merge branch 'fix/reference_filter_uri_decode_error_for_master' into 'master'
Fix #9963 reference_filter "Encoding::CompatibilityError" bug with some complex URL;

https://github.com/gitlabhq/gitlabhq/pull/9964

@DouweM

See merge request !2383
2016-01-13 14:21:32 +00:00
Douwe Maan 9664424cab Merge branch 'ci/api-projects' into 'master'
Extend projects API with CI data

Reference #4264 

See merge request !2303
2016-01-13 13:32:35 +00:00
Yorick Peterse 057eb824b5 Randomize metrics sample intervals
Sampling data at a fixed interval means we can potentially miss data
from events occurring between sampling intervals. For example, say we
sample data every 15 seconds but Unicorn workers get killed after 10
seconds. In this particular case it's possible to miss interesting data
as the sampler will never get to actually submitting data.

To work around this (at least for the most part) the sampling interval
is randomized as following:

1. Take the user specified sampling interval (15 seconds by default)
2. Divide it by 2 (referred to as "half" below)
3. Generate a range (using a step of 0.1) from -"half" to "half"
4. Every time the sampler goes to sleep we'll grab the user provided
   interval and add a randomly chosen "adjustment" to it while making
   sure we don't pick the same value twice in a row.

For a specified timeout of 15 this means the actual intervals can be
anywhere between 7.5 and 22.5, but never can the same interval be used
twice in a row.

The rationale behind this change is that on dev.gitlab.org I'm sometimes
seeing certain Gitlab::Git/Rugged objects being retained, but only for a
few minutes every 24 hours. Knowing the code of Gitlab and how much
memory it uses/leaks I suspect we're missing data due to workers getting
terminated before the sampler can write its data to InfluxDB.
2016-01-13 12:57:46 +01:00
Yorick Peterse 2367160015 Make the metrics sampler interval configurable 2016-01-13 12:29:48 +01:00
Robert Speicher a43fd5ce6d Disable colorization if STDOUT is not a tty 2016-01-12 21:34:23 -05:00
Yorick Peterse 83ad5fa5cb Merge branch 'remove-application-frames-from-views' into 'master'
See merge request !2392
2016-01-12 15:44:57 +00:00
Yorick Peterse 355c341fe7 Stop tracking call stacks for instrumented views
Where a vew is called from doesn't matter as much. We already know what
action they belong to and this is more than enough information. By
removing the file/line number from the list of tags we should also be
able to reduce the number of series stored in InfluxDB.
2016-01-12 15:41:22 +01:00
Yorick Peterse 5679ee0120 Track memory allocated during a transaction
This gives a very rough estimate of how much memory is allocated during
a transaction. This only works reliably when using a single-threaded
application server and a Ruby implementation with a GIL as otherwise
memory allocated by other threads might skew the statistics. Sadly
there's no way around this as Ruby doesn't provide a reliable way of
gathering accurate object sizes upon allocation on a per-thread basis.
2016-01-12 14:59:30 +01:00
Jason Lee 932a247f5f Use CGI.escape instead of URI.escape, because URI is obsoleted.
ref: https://github.com/ruby/ruby/commit/238b979f1789f95262a267d8df6239806f2859cc
2016-01-12 18:20:03 +08:00
Jason Lee 41bcab118a Fix #9963 reference_filter "Encoding::CompatibilityError" bug with some complex URL; 2016-01-12 18:19:55 +08:00
Douwe Maan 49f51ff164 Merge branch 'optimize_ldap' into 'master'
Optimize LDAP and add a search timeout

Related to #4282 

This merge request arranges some things in `access.rb` to facilitate some optimizations in EE (to come later). It also adds a 10 second timeout to all LDAP searches so the entire worker is not blocked if some query doesn't return in a reasonable amount of time. This timeout is configurable per LDAP server.

See merge request !2267
2016-01-11 17:32:33 +00:00
Yorick Peterse 35b501f30a Tag all transaction metrics with an "action" tag
Without this it's impossible to find out what methods/views/queries are
executed by a certain controller or Sidekiq worker. While this will
increase the total number of series it should stay within reasonable
limits due to the amount of "actions" being small enough.
2016-01-11 16:51:01 +01:00
Tomasz Maczukin fc4108b38b Modify CI features in projects API 2016-01-11 15:27:20 +01:00
Drew Blessing 67aa0b8c4c Optimize LDAP and add a search timeout 2016-01-11 08:17:32 -06:00
Jeroen Nijhof 706255b926 Merge gitlab.com:gitlab-org/gitlab-ce 2016-01-11 09:32:35 +01:00
Robert Speicher af68897acd Merge branch 'api-project-upload' into 'master'
Add API project upload endpoint

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/4317

See merge request !2329
2016-01-08 20:29:43 +00:00
Stan Hu 7403df6ca7 Merge branch 'suppress-allow-failure-builds' into 'master'
Suppress e-mails on failed builds if allow_failure is set

Every time I push to GitLab, I get > 2 emails saying a spec failed when I don't care about the benchmarks and others that have `allow_failure` set to `true`.

@ayufan mentioned creating a summary e-mail to prevent getting one e-mail per build, but the latter might actually be desirable. For example, I do want to know if Rubocop errors fail right away.

See merge request !2178
2016-01-08 17:31:35 +00:00
Douwe Maan 0614793b38 DRY up upload and download services 2016-01-08 17:38:53 +01:00
Jeroen Nijhof e0436005af Merge gitlab.com:gitlab-org/gitlab-ce 2016-01-08 17:25:09 +01:00
Yorick Peterse ec4a4f0623 Merge branch 'current-settings-handle-missing-db' into 'master'
See merge request !2346
2016-01-08 14:09:58 +00:00
Yorick Peterse 8d7a968d6d Handle missing DBs in connect_to_db?
This ensures CurrentSettings#connect_to_db? returns "false" in the event
of a database not existing, instead of raising an error.
2016-01-08 14:31:39 +01:00
Jeroen Nijhof 2c37ae2f0a Merge gitlab.com:gitlab-org/gitlab-ce 2016-01-08 13:22:30 +01:00
Robert Schilling 4c90ed52fe Delete tag via API 2016-01-08 10:10:04 +01:00
Robert Speicher b1539116f6 Merge branch 'task-list-class' into 'master'
Properly set task-list class on single item task lists

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/4193

See merge request !2330
2016-01-07 20:10:07 +00:00
Robert Speicher 90510f0037 Merge branch 'milestone-ref' into 'master'
Link to milestone in "Milestone changed" system note

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/4141

See merge request !2203
2016-01-07 19:22:43 +00:00
Stan Hu 69209612e1 Suppress e-mails on failed builds if allow_failure is set
Every time I push to GitLab, I get > 2 emails saying a spec failed when
I don't care about benchmarks and other specs that have `allow_failure` set to `true`.
2016-01-07 10:45:39 -08:00
Douwe Maan 79938744a8 Merge branch 'master' into task-list-class 2016-01-07 15:52:58 +01:00
Douwe Maan c3865bda02 Properly set task-list class on single item task lists 2016-01-07 15:52:34 +01:00
Yorick Peterse 61561a9eeb Merge branch 'remove-more-influxdb-tags' into 'master'
See merge request !2328
2016-01-07 13:38:42 +00:00
Jeroen Nijhof 1695063d15 Merge gitlab.com:gitlab-org/gitlab-ce 2016-01-07 13:58:19 +01:00
Douwe Maan 706d7eb0b7 Satisfy Rubocp 2016-01-07 13:37:59 +01:00
Douwe Maan 1886d727f7 Add API project upload endpoint 2016-01-07 13:37:14 +01:00
Dmitriy Zaporozhets 3b04268f68 Merge branch 'use-sudo-with-incorrect-base-permissions' into 'master'
Suggest prefacing find command with sudo when base permissions are wrong

Closes #5872

See merge request !2299
2016-01-07 12:24:06 +00:00
Yorick Peterse 7b10cb6f0f Store request methods/URIs as values
Since filtering by these values is very rare (they're mostly just
displayed as-is) we don't need to waste any index space by saving them
as tags. By storing them as values we also greatly reduce the number of
series in InfluxDB.
2016-01-07 13:05:00 +01:00
Yorick Peterse 364b07cff0 Removed UUIDs from metrics transactions
While useful for finding out what methods/views belong to a transaction
this might result in too much data being stored in InfluxDB.
2016-01-07 12:44:15 +01:00
Yorick Peterse 7ed3a5a240 Revert "Store SQL/view timings in milliseconds"
This reverts commit 7549102bb7.

Apparently I was wrong about
ActiveSupport::Notifications::Event#duration returning the duration in
seconds, instead it returns it in milliseconds already.
2016-01-07 11:47:06 +01:00
Tomasz Maczukin ba9799b42f Update ./doc/api 2016-01-07 10:39:02 +01:00
Yorick Peterse ee9432a79a Merge branch 'remove-influxdb-credentials' into 'master'
See merge request !2319
2016-01-07 09:12:08 +00:00
Robert Speicher b93744e300 Merge branch 'merge-when-build-succeeds-unchecked' into 'master'
Get "Merge when build succeeds" to work when commits were pushed to MR
target branch while builds were running

The Merge when build succeeds service only merges when the MR is
mergeable (open, not WIP, no conflicts).

When the target branch is updated, all affected MRs have their merge
status set to `unchecked`, and the conflicts check will only happen
when `check_if_can_be_merged` is called, which happens when the MR page
is viewed.

When someone enables the automatic merge, the target branch is updated,
no-one views the MR page again, and the build succeeds, the mergeability
check will fail and the MR will not in fact be merged.

This MR makes sure `check_if_can_be_merged` is always called when MR
mergeability is checked.

See merge request !2304
2016-01-06 18:58:10 +00:00
Douwe Maan 6865d3e500 Merge branch 'rs-issue-1697' into 'master'
Define a limited set of filters for SingleLinePipeline

Removes the following filters from its parent GfmPipeline:

- SyntaxHighlightFilter
- UploadLinkFilter
- TableOfContentsFilter
- LabelReferenceFilter
- TaskListFilter

Closes #1697 

See merge request !2257
2016-01-06 18:31:28 +00:00
Robert Speicher 623fa2caf7 Merge branch 'fix-banzai-cache' into 'master'
Fix mentionable reference extraction caching.

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/4130

Reverts https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2120 and https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2283

See merge request !2315
2016-01-06 18:11:46 +00:00
Yorick Peterse 8fdc00bd4c Remove InfluxDB username/password
InfluxDB over UDP doesn't use authentication, thus there's no need for
these settings.
2016-01-06 17:49:56 +01:00
Yorick Peterse 7549102bb7 Store SQL/view timings in milliseconds
Transaction timings are also already stored in milliseconds, this keeps
things consistent.
2016-01-06 16:37:14 +01:00
Jeroen Nijhof 9b28220f88 Merge gitlab.com:gitlab-org/gitlab-ce 2016-01-06 14:55:44 +01:00
Douwe Maan 7884a26176 Merge branch 'import-gh-pull-requests' into 'master'
Import GitHub Pull Requests into GitLab

Fixes #2833

See merge request !2168
2016-01-06 12:58:32 +00:00
Douwe Maan cf19efec3a Revert "Temporarily disable Markdown caching"
This reverts commit d337d5e713.
2016-01-06 13:26:02 +01:00
Douwe Maan b9ed3961b5 Revert "Add DEBUG_BANZAI_CACHE env var to debug Banzai cache issue."
This reverts commit 4b027bc93a.
2016-01-06 13:25:13 +01:00
Douwe Maan 2474a5921f Merge branch 'master' into milestone-ref 2016-01-06 13:06:50 +01:00
Douwe Maan c0849101e6 Merge branch 'master' into merge-when-build-succeeds-unchecked 2016-01-06 13:06:01 +01:00