[
https://issues.apache.org/jira/browse/PHOENIX-3655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16020571#comment-16020571
]
Samarth Jain commented on PHOENIX-3655:
---------------------------------------
The idea behind the metrics APIs provided by Phoenix through various methods in
PhoenixRuntime was to help clients using Phoenix collect metrics for sql
statements and write them wherever they would like to (logs, files, database
sinks, etc). I don't think the PhoenixDriver should be in the business of
publishing these metrics.
In this case, PQS is one of the clients of PhoenixDriver so to speak and it
would make sense for PQS to get hold of the metrics through the PhoenixRuntime
methods and publish them wherever users of PQS would like to.
ResultSet/statement/connection close look like good choices wherever you could
add the publishing code. Care should be taken though that the publishing is
asynchronous so that the closing of these resources is cheap for the users.
Publishing request level Phoenix metrics using a framework like hadoop-metrics2
would require work as we would need a way to tie these metrics with the
corresponding request and sql statements that the request executed (almost like
what HTrace/Phoenix tracing does)
As far as getting hold of query and bind variables is concerned, that info is
available within the PhoenixPreparedStatement.
> 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: Rahul Shrivastava
> Fix For: 4.9.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
(v6.3.15#6346)