[
https://issues.apache.org/jira/browse/HBASE-16142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15369593#comment-15369593
]
Konstantin Ryakhovskiy commented on HBASE-16142:
------------------------------------------------
There is even another option, there is a bean: HotSpotDiagnosticMXBean and we
can enable FlightRecorder JVM option on the fly using the code:
{code}
HotSpotDiagnostic bean = new HotSpotDiagnostic();
bean.setVMOption("FlightRecorder", "true");
{code}
Unfortunately, the option UnlockCommercialFeatures is not writeable, so that we
should start JVM with -XX:+UnlockCommercialFeatures.
Afterwards, we can enable (-XX:+FlightRecorder) and disable
(-XX:-FlightRecorder) JVM option on the fly.
[~stack], can you please tell me which exactly shell script you want to modify?
Does it make sense to modify hbase-env.sh and add -XX:+UnlockCommercialFeatures
for HBASE_MASTER_OPTS and HBASE_REGIONSERVER_OPTS variables?
another question, do we still need a blog-post about this?
> 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
> Priority: Minor
> Labels: beginner
>
> 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)