Statistics

Redis Statistics

The Redis service provides the following core statistics:

Field Type Description
n2jslee.redis.commands_executed Counter Tracks the number of Redis commands sent to Redis servers by the service.
n2jslee.redis.commands_executed_success Counter Tracks the number of Redis commands executed successfully by the service.
n2jslee.redis.commands_executed_error Counter Tracks the number of Redis commands which have failed.
n2jslee.redis.queue_length Gauge Tracks the number of outstanding commands in a queue in the Redis endpoint.
n2jslee.redis.request_latency_ms Distribution Summary The latency in milliseconds for a request (either toward Redis, or toward the JSLEE) to be processed and the result to be received. Note that this statistic does not track time waiting for BRPOPLPUSHs to return a message from Redis.

Each statistic includes tags to track different subtotals for each above statistic.

General Tags

The following tags are included on every statistic:

Tag Description
node The configured name of the node the service is running on.
service The configured name of the Redis service.
endpoint The configured endpoint (queue) name from the Redis service configuration. In addition to the endpoints configured directly, each service has a special endpoint with the name <service>-general defined, tracking commands executed against the service’s general Redis connection.

Specific Tags

The following tags are statistic-specific:

Tag Description
command Included for commands_executed, commands_executed_success, and commands_executed_error. Used to count the number of times each command is executed.
direction Included for request_latency_ms and queue_length. Identifies the “side” of the path between Redis and the JSLEE service that the statistic is representing. This tracks both traffic to other JSLEE services (direction=to_eventbus) and traffic to the Redis server (direction=to_redis).

Example

Given the following configuration on a server whose hostname is jslee:

{
  "applications": {
    "redis-out": {
      "handler": "nz.co.nsquared.slee.redis.RedisVerticle",
      "instance-count": 1,
      "configuration": {
        // Other configuration
        "endpoints": [
          {
            "name": "rsink",
            "sink-list": "home-sink"
          }
        ]
      }
    },
    "redis-in": {
      "handler": "nz.co.nsquared.slee.redis.RedisVerticle",
      "instance-count": 1,
      "configuration": {
        // Other configuration
        "endpoints": [
          {
            "name": "jsource",
            "source-list": "{home}-source",
            "error-list": "home-delivery-error",
            "processing-list": "{home}-source-processing",
            "sink-list": "home-delivery-success",
            "processing-address": "redis-out/rsink"
          }
        ]
      }
    }
  }
}

After startup and the transfer of 100 messages between the source and sink, this configuration will cause the generation of the following statistics:

n2jslee_redis_commands_executed_success_total{command="BRPOPLPUSH",endpoint="jsource",node="jslee",service="redis-in",} 100.0
n2jslee_redis_commands_executed_success_total{command="EXISTS",endpoint="jsource",node="jslee",service="redis-in",} 1.0
n2jslee_redis_commands_executed_success_total{command="LPUSH",endpoint="redis-out-general",node="jslee",service="redis-out",} 100.0
n2jslee_redis_commands_executed_success_total{command="LREM",endpoint="redis-in-general",node="jslee",service="redis-in",} 100.0
n2jslee_redis_commands_executed_success_total{command="PING",endpoint="rsink",node="jslee",service="redis-out",} 1.0
n2jslee_redis_commands_executed_success_total{command="LPUSH",endpoint="redis-in-general",node="jslee",service="redis-in",} 100.0
n2jslee_redis_commands_executed_success_total{command="PING",endpoint="redis-out-general",node="jslee",service="redis-out",} 1.0
n2jslee_redis_commands_executed_success_total{command="EXISTS",endpoint="redis-in-general",node="jslee",service="redis-in",} 1.0

n2jslee_redis_commands_executed_total{command="BRPOPLPUSH",endpoint="jsource",node="jslee",service="redis-in",} 101.0
n2jslee_redis_commands_executed_total{command="EXISTS",endpoint="jsource",node="jslee",service="redis-in",} 1.0
n2jslee_redis_commands_executed_total{command="LPUSH",endpoint="redis-out-general",node="jslee",service="redis-out",} 100.0
n2jslee_redis_commands_executed_total{command="LREM",endpoint="redis-in-general",node="jslee",service="redis-in",} 100.0
n2jslee_redis_commands_executed_total{command="PING",endpoint="rsink",node="jslee",service="redis-out",} 1.0
n2jslee_redis_commands_executed_total{command="LPUSH",endpoint="redis-in-general",node="jslee",service="redis-in",} 100.0
n2jslee_redis_commands_executed_total{command="PING",endpoint="redis-out-general",node="jslee",service="redis-out",} 1.0
n2jslee_redis_commands_executed_total{command="EXISTS",endpoint="redis-in-general",node="jslee",service="redis-in",} 1.0

n2jslee_redis_queue_length{direction="to_eventbus",endpoint="redis-out-general",node="jslee",service="redis-out",} 0.0
n2jslee_redis_queue_length{direction="to_redis",endpoint="jsource",node="jslee",service="redis-in",} 0.0
n2jslee_redis_queue_length{direction="to_redis",endpoint="redis-out-general",node="jslee",service="redis-out",} 0.0
n2jslee_redis_queue_length{direction="to_eventbus",endpoint="jsource",node="jslee",service="redis-in",} 0.0
n2jslee_redis_queue_length{direction="to_redis",endpoint="redis-out:edr",node="jslee",service="redis-out",} 0.0
n2jslee_redis_queue_length{direction="to_eventbus",endpoint="rsink",node="jslee",service="redis-out",} 0.0
n2jslee_redis_queue_length{direction="to_redis",endpoint="redis-in-general",node="jslee",service="redis-in",} 0.0
n2jslee_redis_queue_length{direction="to_redis",endpoint="rsink",node="jslee",service="redis-out",} 0.0
n2jslee_redis_queue_length{direction="to_eventbus",endpoint="redis-in-general",node="jslee",service="redis-in",} 0.0

n2jslee_redis_queue_length{direction="to_eventbus",endpoint="redis-out-general",node="jslee",service="redis-out",} 0.0
n2jslee_redis_queue_length{direction="to_redis",endpoint="jsource",node="jslee",service="redis-in",} 0.0
n2jslee_redis_queue_length{direction="to_redis",endpoint="redis-out-general",node="jslee",service="redis-out",} 0.0
n2jslee_redis_queue_length{direction="to_eventbus",endpoint="jsource",node="jslee",service="redis-in",} 0.0
n2jslee_redis_queue_length{direction="to_redis",endpoint="redis-out:edr",node="jslee",service="redis-out",} 0.0
n2jslee_redis_queue_length{direction="to_eventbus",endpoint="rsink",node="jslee",service="redis-out",} 0.0
n2jslee_redis_queue_length{direction="to_redis",endpoint="redis-in-general",node="jslee",service="redis-in",} 0.0
n2jslee_redis_queue_length{direction="to_redis",endpoint="rsink",node="jslee",service="redis-out",} 0.0
n2jslee_redis_queue_length{direction="to_eventbus",endpoint="redis-in-general",node="jslee",service="redis-in",} 0.0

n2jslee_redis_request_latency_ms_max{direction="to_redis",endpoint="jsource",node="jslee",service="redis-in",} 33.0
n2jslee_redis_request_latency_ms_max{direction="to_redis",endpoint="redis-out-general",node="jslee",service="redis-out",} 375.0
n2jslee_redis_request_latency_ms_max{direction="to_eventbus",endpoint="jsource",node="jslee",service="redis-in",} 378.0
n2jslee_redis_request_latency_ms_max{direction="to_redis",endpoint="redis-in-general",node="jslee",service="redis-in",} 377.0
n2jslee_redis_request_latency_ms_max{direction="to_redis",endpoint="rsink",node="jslee",service="redis-out",} 39.0
n2jslee_redis_request_latency_ms_count{direction="to_redis",endpoint="jsource",node="jslee",service="redis-in",} 1.0
n2jslee_redis_request_latency_ms_sum{direction="to_redis",endpoint="jsource",node="jslee",service="redis-in",} 33.0
n2jslee_redis_request_latency_ms_count{direction="to_redis",endpoint="redis-out-general",node="jslee",service="redis-out",} 101.0
n2jslee_redis_request_latency_ms_sum{direction="to_redis",endpoint="redis-out-general",node="jslee",service="redis-out",} 3955.0
n2jslee_redis_request_latency_ms_count{direction="to_eventbus",endpoint="jsource",node="jslee",service="redis-in",} 100.0
n2jslee_redis_request_latency_ms_sum{direction="to_eventbus",endpoint="jsource",node="jslee",service="redis-in",} 4056.0
n2jslee_redis_request_latency_ms_count{direction="to_redis",endpoint="redis-in-general",node="jslee",service="redis-in",} 201.0
n2jslee_redis_request_latency_ms_sum{direction="to_redis",endpoint="redis-in-general",node="jslee",service="redis-in",} 8267.0
n2jslee_redis_request_latency_ms_count{direction="to_redis",endpoint="rsink",node="jslee",service="redis-out",} 1.0
n2jslee_redis_request_latency_ms_sum{direction="to_redis",endpoint="rsink",node="jslee",service="redis-out",} 39.0