phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karan Mehta (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-3655) Metrics for PQS
Date Thu, 10 May 2018 20:46:00 GMT

    [ https://issues.apache.org/jira/browse/PHOENIX-3655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16471082#comment-16471082
] 

Karan Mehta commented on PHOENIX-3655:
--------------------------------------

Got some deeper insight today into what can be proceeded for this JIRA.

As suggested by [~elserj], Avatica offers {{MetricsAwareAvaticaHandler}} as an interface for
deriving metrics tied to a request. However, with a second thought, I believe that these insights
also should not be a part of metrics exposed via JMX, since these are not at global level.
It doesn't show any trend of request timings, however just shows the metric value at any point
in time, which doesn't make much sense. It should be tied with the statement level metrics
to get more insight into how much time is spent by Avatica vs Phoenix client.

[~apurtell] [~xucang] [~jamestaylor] [~tdsilva] Any thoughts on this one?

Jetty server already exposes its metrics via JMX, [https://docs.pingidentity.com/bundle/pf_sm_configureRuntimeReporting_pf84/page/concept/runtimeMonitoringUsingJmx.html] websites
list some of those.

However avatica-server doesn't expose it. To expose it, the avatica-server needs to depend
on jetty-jmx module and add the corresponding bean in the container. We can expose that option
via a config option. Will create a Jira to discuss more about options.

For the rest of Phoenix Global Metrics, I plan to write a shim layer that converts the metrics
to hbase-metrics, which internally uses hadoop-metrics2, which exposes them via JMX. Having
all these would mean that all the metrics are available via JMX. 

At this point, we can expose them via a servlet just like how hbase-server does it at {{/jmx}}
path, which as far as I understand, uses a JMX client internally to read all the metrics and
display it the corresponding format. {{JMXJsonServlet}} handles that portion. We can expose
a similar one at PQS level.

Please advice.

> Metrics for PQS
> ---------------
>
>                 Key: PHOENIX-3655
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3655
>             Project: Phoenix
>          Issue Type: New Feature
>    Affects Versions: 4.8.0
>         Environment: Linux 3.13.0-107-generic kernel, v4.9.0-HBase-0.98
>            Reporter: Rahul Shrivastava
>            Assignee: Karan Mehta
>            Priority: Major
>             Fix For: 4.15.0
>
>         Attachments: MetricsforPhoenixQueryServerPQS.pdf
>
>   Original Estimate: 240h
>  Remaining Estimate: 240h
>
> Phoenix Query Server runs a separate process compared to its thin client. Metrics collection
is currently done by PhoenixRuntime.java i.e. at Phoenix driver level. We need the following
> 1. For every jdbc statement/prepared statement/ run by PQS , we need capability to collect
metrics at PQS level and push the data to external sink i.e. file, JMX , other external custom
sources. 
> 2. Besides this global metrics could be periodically collected and pushed to the sink.

> 2. PQS can be configured to turn on metrics collection and type of collect ( runtime
or global) via hbase-site.xml
> 3. Sink could be configured via an interface in hbase-site.xml. 
> All metrics definition https://phoenix.apache.org/metrics.html



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message