Commit Graph

51 Commits

Author SHA1 Message Date
GitLab Bot 3eb814543a Add latest changes from gitlab-org/gitlab@master 2021-06-22 00:07:53 +00:00
GitLab Bot c3afdb42dd Add latest changes from gitlab-org/gitlab@master 2021-06-01 18:10:04 +00:00
GitLab Bot a3dfd311f4 Add latest changes from gitlab-org/gitlab@master 2021-04-14 15:09:04 +00:00
GitLab Bot cca8451493 Add latest changes from gitlab-org/gitlab@master 2021-04-08 12:09:18 +00:00
GitLab Bot cea25900b7 Add latest changes from gitlab-org/gitlab@master 2021-03-22 12:09:02 +00:00
GitLab Bot fa9e540be7 Add latest changes from gitlab-org/gitlab@master 2021-03-15 00:09:21 +00:00
GitLab Bot d2091d1e92 Add latest changes from gitlab-org/gitlab@master 2021-03-10 15:09:11 +00:00
GitLab Bot fdb953945d Add latest changes from gitlab-org/gitlab@master 2021-03-05 12:08:55 +00:00
GitLab Bot e70cf9a659 Add latest changes from gitlab-org/gitlab@master 2021-02-18 00:09:31 +00:00
GitLab Bot 9ecdb93f4e Add latest changes from gitlab-org/gitlab@master 2021-02-01 12:09:03 +00:00
GitLab Bot 7e81076708 Add latest changes from gitlab-org/gitlab@master 2021-01-22 15:09:08 +00:00
GitLab Bot bbd9e2c915 Add latest changes from gitlab-org/gitlab@master 2020-12-03 15:09:46 +00:00
GitLab Bot ed00b1a6a3 Add latest changes from gitlab-org/gitlab@master 2020-07-28 12:09:49 +00:00
GitLab Bot 448ff1fb83 Add latest changes from gitlab-org/gitlab@master 2020-07-22 03:09:40 +00:00
GitLab Bot ad7ce32986 Add latest changes from gitlab-org/gitlab@master 2020-06-25 18:08:50 +00:00
GitLab Bot c59765a50a Add latest changes from gitlab-org/gitlab@master 2020-06-24 18:09:03 +00:00
GitLab Bot 6ff3eb60e3 Add latest changes from gitlab-org/gitlab@master 2020-06-09 15:08:05 +00:00
GitLab Bot e2d4a6dedb Add latest changes from gitlab-org/gitlab@master 2020-05-14 00:07:47 +00:00
Thong Kuah 8c42a0eac0 Add frozen_string_literal to lib part 2
Using the sed script from
https://gitlab.com/gitlab-org/gitlab-ce/issues/59758
2019-08-23 00:15:24 +12:00
Ben Kochie 442f599177 Adjust redis cache metrics
* Remove `controller` and `action` labels from duration histogram.
* Create a new simple counter for `controller` and `action`.
* Adjust histogram buckets to observe smaller response times.
2019-07-19 13:34:04 +00:00
Mark Chao bec7f06097 Ignore irrelevant sql commands in metrics
Fix #51005
2018-09-05 09:10:19 +08:00
Pawel Chojnacki 7d716cc849 Convert InfluxDB to concern. Fix uninitialized metrics when metrics code is inherited. 2018-01-29 15:13:04 +01:00
Pawel Chojnacki 0325c23732 Fix tests 2018-01-29 15:13:03 +01:00
Pawel Chojnacki 91a991367e Convert active record 2018-01-29 15:13:03 +01:00
Pawel Chojnacki c9f0070b64 Make subscriber tests pass, after refactoring metrics 2017-11-02 18:18:16 +01:00
Pawel Chojnacki 30a4bb6628 Fix sidekiq middleware tests 2017-11-02 18:16:58 +01:00
Pawel Chojnacki 534f6b1125 Tests for Web transaction and remove simple transacton 2017-11-02 18:11:44 +01:00
Pawel Chojnacki 19634c259d Cleanup metrics names and removing unnecessary cache read total 2017-11-02 18:11:44 +01:00
Pawel Chojnacki 9360f37aae Fix Rubocop warnings 2017-11-02 18:11:44 +01:00
Pawel Chojnacki b90bf88b14 Fix rspec errors, and add more tests to MethodCall and ActionView 2017-11-02 18:11:43 +01:00
Pawel Chojnacki 6b53dd28c7 Cache spec check if prometheus metrics are triggered 2017-11-02 18:11:43 +01:00
Pawel Chojnacki 8dbb228be9 Rails cache spec 2017-11-02 18:11:43 +01:00
Pawel Chojnacki 39ac6acbcc Fix Active record and transaction specs 2017-11-02 18:11:43 +01:00
Grzegorz Bizon 0430b76441 Enable Style/DotPosition Rubocop 👮 2017-06-21 13:48:12 +00:00
Paco Guzman 330de255b7 RailsCache metrics now includes fetch_hit/fetch_miss and read_hit/read_miss info. 2016-07-05 12:28:06 +02:00
Robert Speicher 75739e54be Enable RSpec/NotToNot cop and auto-correct offenses
Also removes the note from the development/testing.md guide
2016-05-24 15:40:29 -04:00
Pablo Carranza b9306c2e82 Add cache count metrics to rails cache 2016-05-15 19:47:41 +01:00
Yorick Peterse 7e6f0ac0e0
Count the number of SQL queries per transaction
Fixes gitlab-org/gitlab-ce#15335
2016-04-18 14:53:13 +02:00
Yorick Peterse c56f702ec3
Instrument Rails cache code
This allows us to track how much time of a transaction is spent in
dealing with cached data.
2016-04-08 17:54:52 +02: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 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
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
Yorick Peterse 8de491a68f Fix Rubocop styling in AR subscriber specs 2016-01-04 14:21:39 +01:00
Yorick Peterse 2ee8f55599 Automatically prefix transaction series names
This ensures Rails and Sidekiq transactions are split into the series
"rails_transactions" and "sidekiq_transactions" respectively.
2016-01-04 13:17:02 +01:00
Yorick Peterse 66a997a914 Track total query/view timings in transactions 2016-01-04 12:14:36 +01:00
Yorick Peterse bd9f86bb8a Use separate series for Rails/Sidekiq transactions
This removes the need for tagging all metrics with a "process_type" tag.
2015-12-31 17:52:51 +01:00
Yorick Peterse a6c60127e3 Removed tracking of raw SQL queries
This particular setup had 3 problems:

1. Storing SQL queries as tags is very inefficient as InfluxDB ends up
   indexing every query (and they can get pretty large). Storing these
   as values instead means we can't always display the SQL as easily.
2. We already instrument ActiveRecord query methods, thus we already
   have timing information about database queries.
3. SQL obfuscation is difficult to get right and I'd rather not expose
   sensitive data by accident.
2015-12-31 17:14:02 +01:00
Yorick Peterse 9f95ff0d90 Track location information as tags
This allows the information to be displayed when using certain functions
(e.g. top()) as well as making it easier to aggregate on a per file
basis.
2015-12-17 17:25:48 +01:00
Yorick Peterse 1b077d2d81 Use custom code for instrumenting method calls
The use of ActiveSupport would slow down instrumented method calls by
about 180x due to:

1. ActiveSupport itself not being the fastest thing on the planet
2. caller_locations() having quite some overhead

The use of caller_locations() has been removed because it's not _that_
useful since we already know the full namespace of receivers and the
names of the called methods.

The use of ActiveSupport has been replaced with some custom code that's
generated using eval() (which can be quite a bit faster than using
define_method).

This new setup results in instrumented methods only being about 35-40x
slower (compared to non instrumented methods).
2015-12-17 17:25:48 +01:00
Yorick Peterse b66a16c838 Use string evaluation for method instrumentation
This is faster than using define_method since we don't have to keep
block bindings around.
2015-12-17 17:25:48 +01:00