Instrument the HousekeepingService class
This allows us to track how much time is spent in updating the "pushes_since_gc" column as well as the time needed to obtain the lease.
This commit is contained in:
parent
f026e53c4d
commit
3b9edce803
2 changed files with 11 additions and 4 deletions
|
@ -1,6 +1,7 @@
|
|||
Please view this file on the master branch, on stable branches it's out of date.
|
||||
|
||||
v 8.7.0 (unreleased)
|
||||
- The Projects::HousekeepingService class has extra instrumentation (Yorick Peterse)
|
||||
- All service classes (those residing in app/services) are now instrumented (Yorick Peterse)
|
||||
- Developers can now add custom tags to transactions (Yorick Peterse)
|
||||
- Enable gzip for assets, makes the page size significantly smaller. !3544 / !3632 (Connor Shea)
|
||||
|
|
|
@ -26,7 +26,9 @@ module Projects
|
|||
|
||||
GitlabShellOneShotWorker.perform_async(:gc, @project.path_with_namespace)
|
||||
ensure
|
||||
@project.update_column(:pushes_since_gc, 0)
|
||||
Gitlab::Metrics.measure(:reset_pushes_since_gc) do
|
||||
@project.update_column(:pushes_since_gc, 0)
|
||||
end
|
||||
end
|
||||
|
||||
def needed?
|
||||
|
@ -34,14 +36,18 @@ module Projects
|
|||
end
|
||||
|
||||
def increment!
|
||||
@project.increment!(:pushes_since_gc)
|
||||
Gitlab::Metrics.measure(:increment_pushes_since_gc) do
|
||||
@project.increment!(:pushes_since_gc)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def try_obtain_lease
|
||||
lease = ::Gitlab::ExclusiveLease.new("project_housekeeping:#{@project.id}", timeout: LEASE_TIMEOUT)
|
||||
lease.try_obtain
|
||||
Gitlab::Metrics.measure(:obtain_housekeeping_lease) do
|
||||
lease = ::Gitlab::ExclusiveLease.new("project_housekeeping:#{@project.id}", timeout: LEASE_TIMEOUT)
|
||||
lease.try_obtain
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue