Lokesh Khurana created PHOENIX-7995:
---------------------------------------

             Summary: Tag client-side HA metrics with the HA group and add 
missing HA/CRR/failover client metrics on the ZK-less HA client
                 Key: PHOENIX-7995
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7995
             Project: Phoenix
          Issue Type: Sub-task
            Reporter: Lokesh Khurana
            Assignee: Lokesh Khurana


Client-side HA/CRR/failover metrics are currently emitted JVM-global only, so a 
JVM connected to more than one HA group cannot attribute a metric to the group 
that produced it. The server side already solves this with an ha_group metrics2 
tag on the HAGroupStore / replication-log sources (apache/phoenix #2606). This 
ticket brings the same treatment to the client, and fills in client-side HA 
observability that the ZK-less HA client is currently missing.
h2. Part 1 – Per-HA-group tagging

Emit the group-attributable client HA metrics through a per-group Hadoop 
Metrics2 source that stamps an ha_group tag (value = the HA group name), so the 
series can be sliced per group – mirroring the server-side ha_group tag 
mechanism. The existing JVM-global counters remain unchanged (dual-emit); a 
per-group source registers under a distinct JMX context/MBean and is detached 
on HA-group close.
h2. Part 2 – Additional client-side HA/CRR/failover metrics

Add the following client counters, applying only those relevant to a ZK-less 
client:
 - Failover connections: created, failed.
 - CRR lifecycle: transition count, transition duration (ms), 
stale-CRR-detected,
CRR-deserialize-failure, CRR-refresh/notification count. On the ZK-less client 
these are driven by the master-endpoint CRR fetch / reconcile path rather than 
a ZooKeeper node-cache notification, so the emission points differ from the 
ZK-based client – semantics adapted accordingly.
 - Role-transition failed.
 - Parallel-connection policy: fallback, created, error, task-timeout.
 - CRR-missing-fallback (JVM-global; fires on the static path before any group 
instance exists).

h2. Notes
 - These observability gaps were identified while adding the equivalent metrics 
to the ZooKeeper-based HA client; this ticket ports the applicable subset to 
the ZK-less client.
 - A shared tag-name constant should live in a module-neutral metrics package 
so client and server reference the same ha_group tag key.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to