[
https://issues.apache.org/jira/browse/HBASE-16142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Konstantin Ryakhovskiy updated HBASE-16142:
-------------------------------------------
Attachment: HBASE-16142.master.001.patch
Added class JavaFlightRecorder and test.
The class has a main method to be called with command line arguments:
--duration=<duration> [--output=<path>]
if output is not provided, JFR trace will be dumped into HBase log directory.
the JVM option UnlockCommercialFeatures has to be enabled.
Do not know how to test if UnlockCommercialFeatures is disabled/enabled by
default. Currently, tests are just skipped if the option is disabled.
The patch on the review board:
https://reviews.apache.org/r/49888/
> Trigger JFR session when under duress -- e.g. backed-up request queue count
> -- and dump the recording to log dir
> ----------------------------------------------------------------------------------------------------------------
>
> Key: HBASE-16142
> URL: https://issues.apache.org/jira/browse/HBASE-16142
> Project: HBase
> Issue Type: Task
> Components: Operability
> Reporter: stack
> Assignee: Konstantin Ryakhovskiy
> Priority: Minor
> Labels: beginner
> Attachments: HBASE-16142.master.001.patch
>
>
> Chatting today w/ a mighty hbase operator on how to figure what is happening
> during transitory latency spike or any other transitory 'weirdness' in a
> server, the idea came up that a java flight recording during a spike would
> include a pretty good picture of what is going on during the time of duress
> (more ideal would be a trace of the explicit slow queries showing call stack
> with timings dumped to a sink for later review; i.e. trigger an htrace when a
> query is slow...).
> Taking a look, programmatically triggering a JFR recording seems doable, if
> awkward (MBean invocations). There is even a means of specifying 'triggers'
> based off any published mbean emission -- e.g. a query queue count threshold
> -- which looks nice. See
> https://community.oracle.com/thread/3676275?start=0&tstart=0 and
> https://docs.oracle.com/javacomponents/jmc-5-4/jfr-runtime-guide/run.htm#JFRUH184
> This feature could start out as a blog post describing how to do it for one
> server. A plugin on Canary that looks at mbean values and if over a
> configured threshold, triggers a recording remotely could be next. Finally
> could integrate a couple of triggers that fire when issue via the trigger
> mechanism.
> Marking as beginner feature.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)