phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Samarth Jain (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-3655) Metrics for PQS
Date Tue, 23 May 2017 02:22:04 GMT


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:
>             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 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
> 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

This message was sent by Atlassian JIRA

View raw message