Skip to content

sonots/fluent-gcprofiler

Repository files navigation

fluent-gcprofiler

Using fluent-gcprofiler, you can start and stop GC::Profiler dynamically from outside of fluentd without any configuration changes.

Installation

$ fluent-gem install fluent-gcprofiler

Prerequisite

in_debug_agent plugin is required to be enabled.

<source>
  type debug_agent
  port 24230
</source>

GC::Profiler is a ruby built-in profiler, you do not need to install another gem.

Usage

Start

$ fluent-gcprofiler start -h localhost -p 24230

Stop and write a profiling result.

$ fluent-gcprofiler stop -h localhost -p 24230 -o /tmp/fluent-gcprofiler.txt

Options

parameter description default
-h, --host HOST fluent host 127.0.0.1
-p, --port PORT debug_agent port 24230
-u, --unix PATH use unix socket instead of tcp
-o, --output PATH output file /tmp/fluent-gcprofiler.txt

Sample Output

/tmp/fluent-gcprofiler.txt as default:

GC 21 invokes.
Index    Invoke Time(sec)       Use Size(byte)     Total Size(byte)         Total Object                    GC Time(ms)
    1               0.452               722640              1668720                83436         5.05216200000002046977
    2               0.458               722600              1668720                83436         3.76476800000001832203

MEMO: Invoke Time is the elapsed CPU time from ruby starts.

ChangeLog

See CHANGELOG.md

Contributing

  1. Fork it ( http://github.com/sonots/fluent-gcprofiler/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Copyright

See LICENSE.txt

About

Start and stop GC::Profiler from outside of fluentd

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages