Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 56397200B68 for ; Fri, 19 Aug 2016 19:47:22 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 54B0C160ABC; Fri, 19 Aug 2016 17:47:22 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 9E2BA160A79 for ; Fri, 19 Aug 2016 19:47:21 +0200 (CEST) Received: (qmail 24892 invoked by uid 500); 19 Aug 2016 17:47:20 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 24872 invoked by uid 99); 19 Aug 2016 17:47:20 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Aug 2016 17:47:20 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 8F05B2C014F for ; Fri, 19 Aug 2016 17:47:20 +0000 (UTC) Date: Fri, 19 Aug 2016 17:47:20 +0000 (UTC) From: "Andrew Purtell (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-16448) Custom metrics for custom replication endpoints MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Fri, 19 Aug 2016 17:47:22 -0000 [ 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: {code} -public interface MetricsReplicationSourceSource { +import org.apache.hadoop.hbase.metrics.BaseSource; + +public interface MetricsReplicationSourceSource extends BaseSource { {code} This change to the inheritance hierarchy of an LP interface is fine but means it can only go in on a new minor: {code} * through the metrics interfaces. */ @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.REPLICATION) -public class MetricsSource { +public class MetricsSource implements BaseSource { {code} This is a more significant operational incompatibility that might not be allowed in except a new major release: {code} 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); {code} > 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 (v6.3.4#6332)