[ https://issues.apache.org/jira/browse/HBASE-18409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16129888#comment-16129888 ]
Josh Elser commented on HBASE-18409: ------------------------------------ Deployed this locally and played around a bit with PE -- I'm seeing the expected metrics client side. A little bit of cleanup, and I think this would be good to go! One more: {code} - RatioGauge executorMetrics = (RatioGauge) METRICS.getMetricRegistry() - .getMetrics().get(METRICS.getExecutorPoolName()); - RatioGauge metaMetrics = (RatioGauge) METRICS.getMetricRegistry() - .getMetrics().get(METRICS.getMetaPoolName()); - assertEquals(Ratio.of(0, 3).getValue(), executorMetrics.getValue(), 0); - assertEquals(Double.NaN, metaMetrics.getValue(), 0); + + // RatioGauge executorMetrics = (RatioGauge) + // metricsConnection.getMetricRegistry().getMetrics() + // .get(metricsConnection.getExecutorPoolName()); + // RatioGauge metaMetrics = (RatioGauge) + // metricsConnection.getMetricRegistry().getMetrics() + // .get(metricsConnection.getMetaPoolName()); + // assertEquals(Ratio.of(0, 3).getValue(), executorMetrics.getValue(), 0); + // assertEquals(Double.NaN, metaMetrics.getValue(), 0); {code} This should just be removed (not left commented out). > Migrate Client Metrics from codahale to hbase-metrics > ----------------------------------------------------- > > Key: HBASE-18409 > URL: https://issues.apache.org/jira/browse/HBASE-18409 > Project: HBase > Issue Type: Improvement > Components: Client, java, metrics > Affects Versions: 3.0.0 > Reporter: Ronald Macmaster > Labels: newbie > Fix For: 3.0.0 > > Attachments: > 0001-HBASE-18409-MetricsConnection-client-metrics-migration.patch, > 0002-HBASE-18409-MetricsConnection-client-metrics-migrati.patch > > Original Estimate: 168h > Remaining Estimate: 168h > > Currently, the metrics for hbase-client are tailored for reporting via a > client-side JMX server. > The MetricsConnection handles the metrics management and reporting via the > metrics platform from codahale. > This approach worked well for hbase-1.3.1 when the metrics platform was still > relatively young, but it could be improved by using the new > hbase-metrics-api. > Now that we have an actual hbase-metrics-api that master, regionserver, > zookeeper, and other daemons use, it would be good to also allow the client > to leverage the metrics-api. > Then, the client could also report its metrics via Hadoop's metrics2 if > desired or through another platform that utilizes the hbase-metrics-api. > If left alone, client metrics will continue to be only barely visible through > a client-side JMX server. > The migration to the new metrics-api could be done by simply changing the > Metrics data types from codahale types to hbase-metrics types without > changing the metrics signatures of MetricsConnection unless completely > necessary. > The codahale MetricsRegistry would also have to be exchanged for a > hbase-metrics MetricsRegistry. > I found this to be a necessary change after attempting to implement my own > Reporter to use within the MetricsConnection class. > I was attempting to create a HadoopMetrics2Reporter that extends the codahale > ScheduledReporter and reports the MetricsConnection metrics to Hadoop's > metrics2 system. > The already existing infrastructure in the hbase-metrics and > hbase-metrics-api projects could be easily leveraged for a cleaner solution. > If completed successfully, users could instead access their client-side > metrics through the hbase-metrics-api. -- This message was sent by Atlassian JIRA (v6.4.14#64029)