Infinispan HotRod Connector Metrics

From NovaOrdis Knowledge Base
Revision as of 16:01, 3 November 2016 by Ovidiu (talk | contribs) (→‎Number of Active Client Connections)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Internal

Overview

This article describes the statistics that can be obtained from the server-side HotRod connector. Client side statistics are described in the "HotRod Client Metrics" article.

Bytes Read and Written

The HotRod connector exposes a cumulative counter for bytes read from the connector and bytes written to the connector. The metrics are exposed as longs.

The counters can be used to calculate the read and write rate, in bytes/second. It is preferable to expose these metrics as a rate per second, as it gives an indication of the load on the node. Some monitoring solutions allow the rate to be calculated automatically (see Data Dog counters).

JDG 6 JMX JDG 6 CLI
JDG 7 JMX JDG 7 CLI

Number of Active Client Connections

In JDG 6, the HotRod connector reports the number of active client connections ("numberOfLocalConnections") this node endpoint, as integer. It also reports the number of active client connections in the cluster. For the cluster-wide count, the node will make remote calls to aggregate results, so latency might have an impact on the speed of calculation of this attribute.

The metric seemed to have gone away in JDG 7, clarify.

JDG 6 JMX JDG 6 CLI
JDG 7 JMX JDG 7 CLI

Worker Thread Count

The number of worker threads this connector was configured with, as integer. The value may be undefined, in which case it means the number of worker threads is the hardcoded default.

JDG 6 JMX JDG 6 CLI
JDG 7 JMX JDG 7 CLI

HotRod Activity Logging

Since JDG 7 it is possible to log Hot Rod operations. Logging it is disabled by default, but it can be enabled it by changing the corresponding handler's log level to TRACE, as commented in clustered.xml:

<logger category="org.infinispan.server.hotrod.logging.HotRodAccessLoggingHandler">
    <!-- Set to TRACE to enable access logging for hot rod or use DMR -->
    <level name="INFO"/>
    <handlers>
        <handler name="HR-ACCESS-FILE"/>
    </handlers>
</logger>

Hot Rod operations will be logged in hotrod-access.log as follows:

(HotRodServerWorker-7-1) /127.0.0.1:47960 [2016-10-28T13:57:57.906] "PutRequest -" "OK" [B0x033e04686f6765 35 5 22 ms
(HotRodServerWorker-7-1) /127.0.0.1:47960 [2016-10-28T13:57:59.810] "GetRequest -" "OK" [B0x033e04686f6765 20 18 1 ms
(HotRodServerWorker-7-1) /127.0.0.1:47960 [2016-10-28T13:58:04.707] "RemoveRequest -" "OK" [B0x033e04686f6765 20 5 3 ms

Note: not tested. After testing, remove this.