Skip to content

Latest commit

 

History

History
196 lines (159 loc) · 11.2 KB

collectd-couchbase.md

File metadata and controls

196 lines (159 loc) · 11.2 KB

collectd/couchbase

Monitor Type: collectd/couchbase (Source)

Accepts Endpoints: Yes

Multiple Instances Allowed: Yes

Overview

This is a Smart Agent monitor for Couchbase that uses the couchbase collectd Python plugin to collect metrics from Couchbase server instances.

For general reference on how to monitor Couchbase, see Couchbase Monitoring and Monitor using the REST API.

Note on bucket metrics

This plugin emits some metrics about the bucket's performance across the cluster, and some metrics about the bucket's performance per node.

Metrics beginning with gauge.bucket.basic.* and gauge.bucket.quota.* are reported once per cluster. All other bucket metrics (gauge.bucket.*) are reported by every node that hosts that bucket. In order to analyze bucket performance for the entire bucket, apply functions like Sum or Mean to group node-level metrics together by bucket.

Example Config

Sample YAML configuration with custom query:

monitors:
- type: collectd/couchbase
  host: 127.0.0.1
  port: 8091
  collectTarget: "NODE"
  clusterName: "my-cluster"
  username: "user"
  password: "password"

Configuration

To activate this monitor in the Smart Agent, add the following to your agent config:

monitors:  # All monitor config goes under this key
 - type: collectd/couchbase
   ...  # Additional config

For a list of monitor options that are common to all monitors, see Common Configuration.

Config option Required Type Description
pythonBinary no string Path to a python binary that should be used to execute the Python code. If not set, a built-in runtime will be used. Can include arguments to the binary as well.
host yes string
port yes integer
collectTarget yes string Define what this Module block will monitor: "NODE", for a Couchbase node, or "BUCKET" for a Couchbase bucket.
collectBucket no string If CollectTarget is "BUCKET", CollectBucket specifies the name of the bucket that this will monitor.
clusterName no string Name of this Couchbase cluster. (default:"default")
collectMode no string Change to "detailed" to collect all available metrics from Couchbase stats API. Defaults to "default", collecting a curated set that works well with SignalFx.
username no string Username to authenticate with
password no string Password to authenticate with

Metrics

These are the metrics available for this monitor. Metrics that are categorized as container/host (default) are in bold and italics in the list below.

Group bucket

All of the following metrics are part of the bucket metric group. All of the non-default metrics below can be turned on by adding bucket to the monitor config option extraGroups:

  • gauge.bucket.basic.dataUsed (gauge)
    Size of user data within buckets of the specified state that are resident in RAM (%)
  • gauge.bucket.basic.diskFetches (gauge)
    Number of disk fetches
  • gauge.bucket.basic.diskUsed (gauge)
    Amount of disk used (bytes)
  • gauge.bucket.basic.itemCount (gauge)
    Number of items associated with the bucket
  • gauge.bucket.basic.memUsed (gauge)
    Amount of memory used by the bucket (bytes)
  • gauge.bucket.basic.opsPerSec (gauge)
    Number of operations per second
  • gauge.bucket.basic.quotaPercentUsed (gauge)
    Percentage of RAM used (for active objects) against the configure bucket size (%)
  • gauge.bucket.op.cmd_get (gauge)
    requested objects
  • gauge.bucket.op.couch_docs_fragmentation (gauge)
    Percent fragmentation of documents in this bucket.
  • gauge.bucket.op.couch_views_ops (gauge)
    view operations per second
  • gauge.bucket.op.curr_connections (gauge)
    open connection per bucket
  • gauge.bucket.op.curr_items (gauge)
    total number of stored items per bucket
  • gauge.bucket.op.disk_write_queue (gauge)
    number of items waiting to be written to disk
  • gauge.bucket.op.ep_bg_fetched (gauge)
    number of items fetched from disk
  • gauge.bucket.op.ep_cache_miss_rate (gauge)
    ratio of requested objects found in cache vs retrieved from disk
  • gauge.bucket.op.ep_diskqueue_drain (gauge)
    items removed from disk queue
  • gauge.bucket.op.ep_diskqueue_fill (gauge)
    enqueued items on disk queue
  • gauge.bucket.op.ep_mem_high_wat (gauge)
    memory high water mark - point at which active objects begin to be ejected from bucket
  • gauge.bucket.op.ep_mem_low_wat (gauge)
    memory low water mark
  • gauge.bucket.op.ep_num_value_ejects (gauge)
    number of objects ejected out of the bucket
  • gauge.bucket.op.ep_oom_errors (gauge)
    request rejected - bucket is at quota, panic
  • gauge.bucket.op.ep_queue_size (gauge)
    number of items queued for storage
  • gauge.bucket.op.ep_tmp_oom_errors (gauge)
    request rejected - couchbase is making room by ejecting objects, try again later
  • gauge.bucket.op.mem_used (gauge)
    memory used
  • gauge.bucket.op.ops (gauge)
    total of gets, sets, increment and decrement
  • gauge.bucket.op.vb_active_resident_items_ratio (gauge)
    ratio of items kept in memory vs stored on disk
  • gauge.bucket.quota.ram (gauge)
    Amount of RAM used by the bucket (bytes).
  • gauge.bucket.quota.rawRAM (gauge)
    Amount of raw RAM used by the bucket (bytes).

Group nodes

All of the following metrics are part of the nodes metric group. All of the non-default metrics below can be turned on by adding nodes to the monitor config option extraGroups:

  • gauge.nodes.cmd_get (gauge)
    Number of get commands
  • gauge.nodes.couch_docs_actual_disk_size (gauge)
    Amount of disk space used by Couch docs.(bytes)
  • gauge.nodes.couch_docs_data_size (gauge)
    Data size of couch documents associated with a node (bytes)
  • gauge.nodes.couch_spatial_data_size (gauge)
    Size of object data for spatial views (bytes)
  • gauge.nodes.couch_spatial_disk_size (gauge)
    Amount of disk space occupied by spatial views, in bytes.
  • gauge.nodes.couch_views_actual_disk_size (gauge)
    Amount of disk space occupied by Couch views (bytes).
  • gauge.nodes.couch_views_data_size (gauge)
    Size of object data for Couch views (bytes).
  • gauge.nodes.curr_items (gauge)
    Number of current items
  • gauge.nodes.curr_items_tot (gauge)
    Total number of items associated with node
  • gauge.nodes.ep_bg_fetched (gauge)
    Number of disk fetches performed since server was started
  • gauge.nodes.get_hits (gauge)
    Number of get hits
  • gauge.nodes.mcdMemoryAllocated (gauge)
    Amount of memcached memory allocated (bytes).
  • gauge.nodes.mcdMemoryReserved (gauge)
    Amount of memcached memory reserved (bytes).
  • gauge.nodes.mem_used (gauge)
    Memory used by the node (bytes)
  • gauge.nodes.memoryFree (gauge)
    Amount of memory free for the node (bytes).
  • gauge.nodes.memoryTotal (gauge)
    Total memory available to the node (bytes).
  • gauge.nodes.ops (gauge)
    Number of operations performed on Couchbase
  • gauge.nodes.system.cpu_utilization_rate (gauge)
    The CPU utilization rate (%)
  • gauge.nodes.system.mem_free (gauge)
    Free memory available to the node (bytes)
  • gauge.nodes.system.mem_total (gauge)
    Total memory available to the node (bytes)
  • gauge.nodes.system.swap_total (gauge)
    Total swap size allocated (bytes)
  • gauge.nodes.system.swap_used (gauge)
    Amount of swap space used (bytes)
  • gauge.nodes.vb_replica_curr_items (gauge)
    Number of items/documents that are replicas

Group storage

All of the following metrics are part of the storage metric group. All of the non-default metrics below can be turned on by adding storage to the monitor config option extraGroups:

  • gauge.storage.hdd.free (gauge)
    Free harddrive space in the cluster (bytes)
  • gauge.storage.hdd.quotaTotal (gauge)
    Harddrive quota total for the cluster (bytes)
  • gauge.storage.hdd.total (gauge)
    Total harddrive space available to cluster (bytes)
  • gauge.storage.hdd.used (gauge)
    Harddrive space used by the cluster (bytes)
  • gauge.storage.hdd.usedByData (gauge)
    Harddrive use by the data in the cluster(bytes)
  • gauge.storage.ram.quotaTotal (gauge)
    Ram quota total for the cluster (bytes)
  • gauge.storage.ram.quotaTotalPerNode (gauge)
    Ram quota total per node (bytes)
  • gauge.storage.ram.quotaUsed (gauge)
    Ram quota used by the cluster (bytes)
  • gauge.storage.ram.quotaUsedPerNode (gauge)
    Ram quota used per node (bytes)
  • gauge.storage.ram.total (gauge)
    Total ram available to cluster (bytes)
  • gauge.storage.ram.used (gauge)
    Ram used by the cluster (bytes)
  • gauge.storage.ram.usedByData (gauge)
    Ram used by the data in the cluster (bytes)

Non-default metrics (version 4.7.0+)

The following information applies to the agent version 4.7.0+ that has enableBuiltInFiltering: true set on the top level of the agent config.

To emit metrics that are not default, you can add those metrics in the generic monitor-level extraMetrics config option. Metrics that are derived from specific configuration options that do not appear in the above list of metrics do not need to be added to extraMetrics.

To see a list of metrics that will be emitted you can run agent-status monitors after configuring this monitor in a running agent instance.

Legacy non-default metrics (version < 4.7.0)

The following information only applies to agent version older than 4.7.0. If you have a newer agent and have set enableBuiltInFiltering: true at the top level of your agent config, see the section above. See upgrade instructions in Old-style whitelist filtering.

If you have a reference to the whitelist.json in your agent's top-level metricsToExclude config option, and you want to emit metrics that are not in that whitelist, then you need to add an item to the top-level metricsToInclude config option to override that whitelist (see Inclusion filtering. Or you can just copy the whitelist.json, modify it, and reference that in metricsToExclude.