Monitoring

Scylla exposes three interfaces for online monitoring, as described below

JMX

Scylla JMX is compatible with Apache Cassandra, exposing the relevant subset of MBeans.

REST

For each JMX operation, attribute get and set, Scylla expose a matching REST API. You can interact with the REST API using curl or using the Swagger UI available at your-ip:10000/ui

Prometheus

By default, Scylla listen on port 9180 for Prometheus requests. To connect a Prometheus server to scylla in your prometheus.yaml configuration file, add scylla as a target with your-ip:9180

For more information on monitoring Scylla with Prometheus see scylla-grafana-monitoring.

You can change Prometheus listening address and port in scylla.yaml file

# prometheus port
# By default, Scylla opens prometheus API port on port 9180
# setting the port to 0 will disable the prometheus API.
prometheus_port: 9180
#
# prometheus address
# By default, Scylla binds all interfaces to the prometheus API
# It is possible to restrict the listening address to a specific one
prometheus_address: 0.0.0.0

Collectd

By default, Scylla send metrics to a local Collectd process, allowing you to watch Scylla status with scyllatop. Scylla can also sends metric over Collectd protocol to external Collectd server, Graphite or similar tools. To forward metrics to external server, update /etc/collectd.d/scylla.conf to work as a proxy:

LoadPlugin network
<Plugin "network">
  Listen "127.0.0.1" "25826"
  Server "remote-ip" "25826"
  Forward true
</Plugin>

Where remote-ip is the IP of your external Collectd server. Make sure to keep other elements of the file as is. Restart the collectd server for the new configuration to apply sudo service collectd restart

To change sample rate of Scylla metrics, update the SCYLLA_ARGS line in /etc/sysconfig/scylla-server file, parameter --collectd-poll-period 3000 (number in ms)