Stackstate-Riak Integration

Overview

Connect Riak to Stackstate in order to:

  • Visualize Riak performance and utilization.
  • Correlate the performance of Riak with the rest of your applications.

Setup

Installation

This check is packaged with the Agent, so simply install the agent.

Configuration

  1. Configure the Agent to connect to Riak, edit conf.d/riak.yaml

    init_config:
    
    instances:
        -    url: http://127.0.0.1:8098/stats
    

  2. Restart the Agent

Validation

Execute the info command and verify that the integration check has passed. The output of the command should contain a section similar to the following:

Checks
======

  [...]

  riak
  ----
      - instance #0 [OK]
      - Collected 8 metrics & 0 events

Data Collected

Metrics

riak.memory_atom
(gauge)
Total amount of memory currently allocated for atom storage
shown as byte
riak.memory_atom_used
(gauge)
Total amount of memory currently used for atom storage
shown as byte
riak.memory_binary
(gauge)
Total amount of memory used for binaries
shown as byte
riak.memory_code
(gauge)
Total amount of memory allocated for Erlang code
shown as byte
riak.memory_ets
(gauge)
Total memory allocated for Erlang Term Storage
shown as byte
riak.memory_processes
(gauge)
Total amount of memory allocated for Erlang processes
shown as byte
riak.memory_processes_used
(gauge)
Total amount of memory used by Erlang processes
shown as byte
riak.memory_total
(gauge)
Total allocated memory (sum of processes and system)
shown as byte
riak.node_get_fsm_active_60s
(gauge)
Number of active GET FSMs
shown as
riak.node_get_fsm_in_rate
(gauge)
Average number of GET FSMs enqueued by Sidejob
shown as
riak.node_get_fsm_out_rate
(gauge)
Average number of GET FSMs dequeued by Sidejob
shown as
riak.node_get_fsm_rejected_60s
(gauge)
Number of GET FSMs actively being rejected by Sidejob's overload protection
shown as
riak.node_gets
(count)
Number of GETs coordinated by this node
shown as operation
riak.node_put_fsm_active_60s
(gauge)
Number of active PUT FSMs
shown as
riak.node_put_fsm_in_rate
(gauge)
Average number of PUT FSMs enqueued by Sidejob
shown as
riak.node_put_fsm_out_rate
(gauge)
Average number of PUT FSMs dequeued by Sidejob
shown as
riak.node_put_fsm_rejected_60s
(gauge)
Number of PUT FSMs actively being rejected by Sidejob's overload protection
shown as
riak.node_puts
(gauge)
Number of PUTs coordinated by this node
shown as operation
riak.pbc_active
(gauge)
Number of active protocol buffers connections
shown as connection
riak.pbc_connects
(gauge)
Number of protocol buffers connections
shown as connection
riak.read_repairs
(gauge)
Number of read repair operations this this node has coordinated in the last minute
shown as operation
riak.vnode_gets
(gauge)
Number of GET operations coordinated by vnodes on this node
shown as operation
riak.vnode_index_deletes
(gauge)
Number of vnode index delete operations
shown as operation
riak.vnode_index_reads
(gauge)
Number of vnode index read operations
shown as read
riak.vnode_index_writes
(gauge)
Number of vnode index write operations
shown as write
riak.vnode_puts
(count)
Number of PUT operations coordinated by vnodes on this node
shown as operation
riak.node_get_fsm_objsize_mean
(gauge)
Object size encountered by this node
shown as byte
riak.node_get_fsm_siblings_mean
(gauge)
Number of siblings encountered during all GET operations by this node
shown as node
riak.node_get_fsm_time_mean
(gauge)
Time between reception of client GET request and subsequent response to client
shown as microsecond
riak.node_put_fsm_time_mean
(gauge)
Time between reception of client PUT request and subsequent response to client
shown as microsecond
riak.node_get_fsm_objsize_median
(gauge)
Object size encountered by this node
shown as byte
riak.node_get_fsm_siblings_median
(gauge)
Number of siblings encountered during all GET operations by this node
shown as node
riak.node_get_fsm_time_median
(gauge)
Time between reception of client GET request and subsequent response to client
shown as microsecond
riak.node_put_fsm_time_median
(gauge)
Time between reception of client PUT request and subsequent response to client
shown as microsecond
riak.node_get_fsm_objsize_95
(gauge)
Object size encountered by this node
shown as byte
riak.node_get_fsm_siblings_95
(gauge)
Number of siblings encountered during all GET operations by this node
shown as node
riak.node_get_fsm_time_95
(gauge)
Time between reception of client GET request and subsequent response to client
shown as microsecond
riak.node_put_fsm_time_95
(gauge)
Time between reception of client PUT request and subsequent response to client
shown as microsecond
riak.node_get_fsm_objsize_99
(gauge)
Object size encountered by this node
shown as byte
riak.node_get_fsm_siblings_99
(gauge)
Number of siblings encountered during all GET operations by this node
shown as node
riak.node_get_fsm_time_99
(gauge)
Time between reception of client GET request and subsequent response to client
shown as microsecond
riak.node_put_fsm_time_99
(gauge)
Time between reception of client PUT request and subsequent response to client
shown as microsecond
riak.node_get_fsm_objsize_100
(gauge)
Object size encountered by this node
shown as byte
riak.node_get_fsm_siblings_100
(gauge)
Number of siblings encountered during all GET operations by this node
shown as node
riak.node_get_fsm_time_100
(gauge)
Time between reception of client GET request and subsequent response to client
shown as microsecond
riak.node_put_fsm_time_100
(gauge)
Time between reception of client PUT request and subsequent response to client
shown as microsecond
riak.search_index_fail_count
(gauge)
Total number of documents that have failed to index
shown as object
riak.search_index_fail_one
(gauge)
Number of documents that have failed to index in the past one minute
shown as object
riak.search_query_fail_count
(gauge)
Total number of queries that have failed
shown as event
riak.search_query_fail_one
(gauge)
Number of queries that have failed in the last one minute
shown as event
riak.search_index_throughput_count
(gauge)
Total number of documents that have been indexed
shown as operation
riak.search_index_throughput_one
(gauge)
Number of documents that have been indexed in the last one minute
shown as operation
riak.search_query_throughput_count
(gauge)
Total number of queries that have been performed
shown as operation
riak.search_query_throughput_one
(gauge)
Number of searches that have been performed in the last one minute
shown as operation
riak.search_query_latency_95
(gauge)
Time between reception of query and response: 95th percentile
shown as microsecond
riak.search_query_latency_99
(gauge)
Time between reception of query and response: 99th percentile
shown as microsecond
riak.search_query_latency_999
(gauge)
Time between reception of query and response: 99.9th percentile
shown as microsecond
riak.search_query_latency_max
(gauge)
Time between reception of query and response: max
shown as microsecond
riak.search_query_latency_min
(gauge)
Time between reception of query and response: min
shown as microsecond
riak.search_query_latency_mean
(gauge)
Time between reception of query and response: mean
shown as microsecond
riak.search_query_latency_median
(gauge)
Time between reception of query and response: median
shown as microsecond
riak.search_index_latency_95
(gauge)
Time between insertion of document and it being indexed: 95th percentile
shown as microsecond
riak.search_index_latency_99
(gauge)
Time between insertion of document and it being indexed: 99th percentile
shown as microsecond
riak.search_index_latency_999
(gauge)
Time between insertion of document and it being indexed: 99.9th percentile
shown as microsecond
riak.search_index_latency_max
(gauge)
Time between insertion of document and it being indexed: max
shown as microsecond
riak.search_index_latency_min
(gauge)
Time between insertion of document and it being indexed: min
shown as microsecond
riak.search_index_latency_mean
(gauge)
Time between insertion of document and it being indexed: mean
shown as microsecond
riak.search_index_latency_median
(gauge)
Time between insertion of document and it being indexed: median
shown as microsecond

Service Checks

riak.can_connect:

Returns CRITICAL if the Agent cannot connect to the Riak stats endpoint to collect metrics, otherwise OK.