Using fluent-gcprofiler, you can start and stop GC::Profiler dynamically from outside of fluentd without any configuration changes.
$ fluent-gem install fluent-gcprofiler
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.
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
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 |
/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.
See CHANGELOG.md
- Fork it ( http://github.com/sonots/fluent-gcprofiler/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
See LICENSE.txt