hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-16448) Custom metrics for custom replication endpoints
Date Fri, 19 Aug 2016 17:47:20 GMT

    [ https://issues.apache.org/jira/browse/HBASE-16448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15428523#comment-15428523

Andrew Purtell commented on HBASE-16448:

Please add an interface annotation similar to that of MetricsSource:
-public interface MetricsReplicationSourceSource {
+import org.apache.hadoop.hbase.metrics.BaseSource;
+public interface MetricsReplicationSourceSource extends BaseSource {

This change to the inheritance hierarchy of an LP interface is fine but means it can only
go in on a new minor:
  * through the metrics interfaces.
-public class MetricsSource {
+public class MetricsSource implements BaseSource {

This is a more significant operational incompatibility that might not be allowed in except
a new major release:
   public MetricsReplicationSourceSourceImpl(MetricsReplicationSourceImpl rms, String id)
     this.rms = rms;
     this.id = id;
+    this.keyPrefix = "source." + this.id + ".";
-    ageOfLastShippedOpKey = "source." + id + ".ageOfLastShippedOp";
+    ageOfLastShippedOpKey = this.keyPrefix + "ageOfLastShippedOp";
     ageOfLastShippedOpGauge = rms.getMetricsRegistry().getGauge(ageOfLastShippedOpKey, 0L);

> Custom metrics for custom replication endpoints
> -----------------------------------------------
>                 Key: HBASE-16448
>                 URL: https://issues.apache.org/jira/browse/HBASE-16448
>             Project: HBase
>          Issue Type: Improvement
>          Components: Replication
>    Affects Versions: 2.0.0, 1.2.2, 0.98.21
>            Reporter: Geoffrey Jacoby
>            Assignee: Geoffrey Jacoby
>         Attachments: HBASE-16448.patch
> ReplicationEndpoints contain a MetricsSource class that can update a fixed set of key
replication metrics. It does not, however, allow a developer implementing a custom ReplicationEndpoint
to create/update custom metrics unique to the new endpoint's use case. 
> As it turns out, MetricsSource wraps a class, which in turn wraps a class, that implements
the Hadoop BaseSource interface, which does allow for custom metrics. Simply having the two
wrappers implement BaseSource as well with pass-through methods should be straightforward,
and would allow replication endpoints to use these generic metric methods.

This message was sent by Atlassian JIRA

View raw message