Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/memory/jemalloc.rb')
-rw-r--r--lib/gitlab/memory/jemalloc.rb33
1 files changed, 5 insertions, 28 deletions
diff --git a/lib/gitlab/memory/jemalloc.rb b/lib/gitlab/memory/jemalloc.rb
index e20e186cab9..6025e6ab6f2 100644
--- a/lib/gitlab/memory/jemalloc.rb
+++ b/lib/gitlab/memory/jemalloc.rb
@@ -14,41 +14,22 @@ module Gitlab
STATS_DEFAULT_FORMAT = :json
- FILENAME_PREFIX = 'jemalloc_stats'
-
# Return jemalloc stats as a string.
def stats(format: STATS_DEFAULT_FORMAT)
- verify_format!(format)
-
- with_malloc_stats_print do |stats_print|
- StringIO.new.tap { |io| write_stats(stats_print, io, STATS_FORMATS[format]) }.string
- end
+ dump_stats(StringIO.new, format: format).string
end
- # Write jemalloc stats to the given directory
- # @param [String] path Directory path the dump will be put into
- # @param [String] tmp_dir Directory path the dump will be streaming to. It is moved to `path` when finished.
- # @param [String] format `json` or `txt`
- # @param [String] filename_label Optional custom string that will be injected into the file name, e.g. `worker_0`
- # @return [String] Full path to the resulting dump file
- def dump_stats(path:, tmp_dir: Dir.tmpdir, format: STATS_DEFAULT_FORMAT, filename_label: nil)
+ # Streams jemalloc stats to the given IO object.
+ def dump_stats(io, format: STATS_DEFAULT_FORMAT)
verify_format!(format)
format_settings = STATS_FORMATS[format]
- tmp_file_path = File.join(tmp_dir, file_name(format_settings[:extension], filename_label))
- file_path = File.join(path, file_name(format_settings[:extension], filename_label))
with_malloc_stats_print do |stats_print|
- File.open(tmp_file_path, 'wb') do |io|
- write_stats(stats_print, io, format_settings)
- end
+ write_stats(stats_print, io, format_settings)
end
- # On OSX, `with_malloc_stats_print` is no-op, and, as result, no file will be written
- return unless File.exist?(tmp_file_path)
-
- FileUtils.mv(tmp_file_path, file_path)
- file_path
+ io
end
private
@@ -95,10 +76,6 @@ module Gitlab
stats_print.call(callback, nil, format[:options])
end
-
- def file_name(extension, filename_label)
- [FILENAME_PREFIX, $$, filename_label, Time.current.to_i, extension].reject(&:blank?).join('.')
- end
end
end
end