Couchbase monitoring integration

New Relic Infrastructure's Couchbase integration reports data from your Couchbase cluster to New Relic Infrastructure. This document explains how to install and configure the Couchbase integration, and describes the data collected.

Access to this feature depends on your subscription level. Requires Infrastructure Pro.

Features

The New Relic Couchbase on-host integration collects and sends inventory and metric data from your Couchbase cluster to the New Relic platform, where you can quickly see the health of your Couchbase environment. Cluster, node, query engine, and bucket level metrics are collected so that you can more easily find the source of any problems that arise.

Compatibility and requirements

To use the Couchbase integration, ensure your system meets these requirements:

Install

On-host integrations do not automatically update. For best results, update the integration and update the Infrastructure agent.

To install the Couchbase integration:

  1. Follow the instructions for installing an integration, using the file name nri-couchbase.
  2. Via the command line, change directory to the integrations folder:
    cd /etc/newrelic-infra/integrations.d
  3. Create a copy of the sample configuration file by running:
    sudo cp couchbase-config.yml.sample couchbase-config.yml
  4. Edit the couchbase-config.yml configuration file using the configuration settings.
  5. Restart the infrastructure agent.

Configure

Use the Couchbase integration's couchbase-config.yml configuration file to put required login credentials and configure how data is collected. For an example configuration, see the example config file.

Commands

The couchbase-config.yml file provides one command:

  • all_data: captures inventory and metrics data for the Couchbase cluster according to the given arguments.

Arguments

The all_data command accepts the following arguments:

  • hostname: The hostname or IP of the node. Default: localhost.

  • port: The port on which the Couchbase API is listening. Default: 8091.

  • query_port: The port on which the N1QL service is listening. Default: 8093.

  • username: The username used to connect to Couchbase.

  • password: The password used to connect to Couchbase.

  • use_ssl: Whether or not to connect using SSL. Default: false.

  • ca_bundle_dir/ca_bundle_file: Location of SSL certificate on the host.

  • timeout: The timeout for API requests, in seconds. Default: 30.

  • enable_cluster_and_nodes: Whether or not to collect metrics for cluster, node, and query engine entities.

  • enable_buckets: Whether or not to collect metrics for bucket entities.

  • enable_bucket_stats: Whether or not to collect metrics for extended statistics for buckets.

Example couchbase-config.yml file configuration:

Example configuration
integration_name: com.newrelic.couchbase

instances:
  - name: couchbase
    command: all_data
    arguments:
      hostname: couchbase-1.localnet
      port: 8091
      query_port: 8093
      username: coubaseuser
      password: mypass
    labels:
      env: production
      role: couchbase

Find and use data

To find your integration data in Infrastructure, go to infrastructure.newrelic.com > Integrations > On-host integrations and select one of the Couchbase integration links.

In New Relic Insights, Couchbase data is attached to the following Insights event types:

For more on how to find and use your data, see Understand integration data.

Metric data

The Couchbase integration collects the following metric data attributes. Some metric names are prefixed with a category indicator and a period, such as cluster. or node..

These attributes can be found by querying the CouchbaseBucketSample event types in Insights.

Metric Description

bucket.activeResidentItemsRatio

Percentage of active items cached in RAM in this bucket.

bucket.averageDiskCommitTimeInMilliseconds

The average disk commit time of the bucket, in milliseconds.

bucket.averageDiskUpdateTimeInMilliseconds

The average disk update time of the bucket, in milliseconds.

bucket.cacheMissRatio

Percentage of reads per second to this bucket from disk as opposed to RAM.

bucket.currentConnections

Number of connections to this server, including connections from external client SDKs, proxies, TAP requests, and internal statistic gathering.

bucket.dataUsedInBytes

Amount of data used by this bucket, in bytes.

bucket.decrementHitsPerSecond

The number of decrement hits per second of the bucket.

bucket.decrementMissesPerSecond

The number of decrement misses per second of the bucket.

bucket.deleteHitsPerSecond

The number of delete hits per second for this bucket.

bucket.deleteMissesPerSecond

The number of delete misses per second for this bucket.

bucket.diskCreateOperationsPerSecond

Number of new items created on disk per second for this bucket.

bucket.diskFetchesPerSecond

The number of operations required per second to fetch items from disk on the bucket.

bucket.diskUpdateOperationsPerSecond

Number of items updated on disk per second for this bucket.

bucket.diskUsedInBytes

The amount of disk space in use for the bucket, in bytes.

bucket.diskWriteQueue

Number of items waiting to be written to disk in the bucket.

bucket.ejectionsPerSecond

Total number of items per second being ejected to disk in this bucket

bucket.evictionPolicy

The eviction policy of the bucket.

bucket.evictionsPerSecond

The number of items per second evicted from the bucket.

bucket.getHitsPerSecond

Number of get operations per second for data that this bucket contains.

bucket.getMissesPerSecond

Number of get operations per second for data that this bucket does not contain.

bucket.hitRatio

Percentage of get requests served with data from this bucket.

bucket.incrementHitsPerSecond

The number of increment hits per second of the bucket.

bucket.incrementMissesPerSecond

The number of increment misses per second of the bucket.

bucket.itemCount

The number of objects stored in the bucket.

bucket.memoryHighWaterMarkInBytes

High water mark for auto-evictions on the bucket, in bytes.

bucket.memoryLowWaterMarkInBytes

Low water mark for auto-evictions on the bucket, in bytes.

bucket.memoryUsedInBytes

The amount of RAM used for the bucket, in bytes.

bucket.metadataInRAMInBytes

Amount of RAM used for metadata on this bucket, in bytes.

bucket.missesPerSecond

The number of misses per second of the bucket.

bucket.nodeLocator

Type of node locator.

bucket.outOfMemoryErrorsPerSecond

Number of hard out of memory errors for this bucket.

bucket.OverheadInBytes

The extra memory used by transient data (persistence queues, replication queues, checkpoints, etc.) on the bucket, in bytes.

bucket.pendingResidentItemsRatio

Percentage of pending items cached in RAM in this bucket.

bucket.quotaUtilization

The percent of RAM quota currently in use on the bucket.

bucket.readOperationsPerSecond

The number of reads (get operations) per second from this bucket.

bucket.readRatePerSecond

The bytes read per second of the bucket.

bucket.replicaIndex

Defines if the bucket has replica indexes enabled.

bucket.replicaNumber

Number of replicas of this bucket.

bucket.replicaResidentItemsRatio

Percentage of replica items cached in RAM in this bucket.

bucket.residentItemsRatio

Percentage of all items cached in RAM in this bucket.

bucket.temporaryOutOfMemoryErrorsPerSecond

Number of back-offs sent per second to client SDKs due to out of memory situations from this bucket.

bucket.threadsNumber

The number of concurrent readers and writers for the data bucket.

bucket.totalOperationsPerSecond

The total operations per second of the bucket.

bucket.writeOperationsPerSecond

The number of writes (set operations) per second to this bucket.

bucket.writeRatePerSecond

The bytes written of the bucket.

These attributes can be found by querying the CouchbaseClusterSample event types in Insights.

Metric Description

cluster.autoFailoverCount

The number of auto failovers on the cluster.

cluster.autoFailoverEnabled

Indicates if failover is enabled on the cluster.

cluster.databaseFragmentationThreshold

The percentage level within the database at which compaction occurs.

cluster.diskFreeInBytes

The free disk space on this cluster, in bytes.

cluster.diskQuotaTotalInBytes

Total disk space available to Couchbase, in bytes.

cluster.diskTotalInBytes

Total disk space available, in bytes.

cluster.diskUsedbyDataInBytes

Disk used by bucket data on this cluster, in bytes.

cluster.diskUsedInBytes

The used disk space on this cluster, in bytes.

cluster.indexFragmentationThreshold

The percentage level within indexes at which compaction occurs.

cluster.maximumBucketCount

Maximum number of buckets this cluster supports.

cluster.memoryQuotaTotalInBytes

Total RAM available to Couchbase, in bytes.

cluster.memoryQuotaTotalPerNodeInBytes

Total RAM available to Couchbase, per node, in bytes.

cluster.memoryQuotaUsedInBytes

Total RAM used by Couchbase, in bytes.

cluster.memoryQuotaUsedPerNodeInBytes

Total RAM used by Couchbase, per node, in bytes.

cluster.memoryTotalInBytes

The total RAM on this cluster, in bytes.

cluster.memoryUsedByDataInBytes

Total RAM used by bucket data on this cluster, in bytes.

cluster.memoryUsedInBytes

The total RAM used on this cluster, in bytes.

cluster.viewFragmentationThreshold

The percentage of fragmentation within all the view index files at which compaction is triggered.

These attributes can be found by querying the CouchbaseNodeSample event types in Insights.

Metric Description

node.cpuUtilization

The CPU utilization of the node.

node.memoryFreeInBytes

The free memory of the node, in bytes.

node.memoryTotalInBytes

The total memory allocated to the node, in bytes.

node.recoveryType

The recovery type of the node.

node.services

The services of the node.

node.status

The status of the node. (0 = unhealthy, 1 = healthy)

node.swapTotalInBytes

The total swap space of the node, in bytes.

node.swapUsedInBytes

The used swap space of the node, in bytes.

node.uptimeInMilliseconds

The uptime of the node, in milliseconds.

These attributes can be found by querying the CouchbaseQueryEngineSample event types in Insights.

Metric Description

queryengine.activeRequests

Current number of active requests.

queryengine.averageRequestTimeInMilliseconds

Average request time of this query engine, in milliseconds.

queryengine.completedLimit

Number of queries that Couchbase will keep in the query log.

queryengine.completedRequests

Current number of completed requests.

queryengine.completedThresholdInMilliseconds

Minimum time query must take to be logged in the Couchbase query log, in milliseconds.

queryengine.cores

Number of cores available for this query engine.

queryengine.garbageCollectionNumber

Number of the last garbage collection.

queryengine.garbageCollectionPaused

Percent of time that garbage collection is paused.

queryengine.garbageCollectionTimePausedInMilliseconds

Number of milliseconds that garbage collection is paused, in milliseconds.

queryengine.medianRequestTimeInMilliseconds

Median request time of this query engine, in milliseconds.

queryengine.preparedStatementUtilization

Percentage of requests that are prepared statements.

queryengine.requestsLast15MinutesPerSecond

Requests per second average over the past 15 minutes.

queryengine.requestsLast1MinutesPerSecond

Requests per second average over the past minute.

queryengine.requestsLast5MinutesPerSecond

Requests per second average over the past 5 minutes.

queryengine.requestTime80thPercentileInMilliseconds

80th percentile of request time of this query engine, in milliseconds.

queryengine.requestTime95thPercentileInMilliseconds

95th percentile of request time of this query engine, in milliseconds.

queryengine.requestTime99thPercentileInMilliseconds

99th percentile of request time of this query engine, in milliseconds.

queryengine.systemCPUUtilization

CPU utilization of this query engine

queryengine.systemMemoryInBytes

The virtual address space reserved by this query engine, in bytes.

queryengine.totalMemoryInBytes

Cumulative amount of memory allocated for heap objects by this query engine, in bytes.

queryengine.totalThreads

Total threads used by this query engine.

queryengine.uptimeInMilliseconds

Uptime of this query engine, in milliseconds

queryengine.usedMemoryInBytes

Amount of memory allocated for heap objects for this query engine, in bytes.

queryengine.userCPUUtilization

User CPU utilization of this query engine.

Inventory data

The Couchbase integration captures the configuration parameters of the Couchbase database. The data is available on the Infrastructure Inventory page, under the config/couchbase source. For more about inventory data, see Understand integration data.

The integration captures data for the following Couchbase configuration parameters:

Bucket parameters
Name Description

Node locator

Type of node locator.

Proxy port

Proxy port on which the bucket communicates.

Type

The type of bucket.

UUID

The UUID of the bucket.

Cluster parameters
Name Description

Collection node

The node used to collect metrics.

Couchbase version

The version of Couchbase running on this cluster.

UUID

The UUID of the cluster.

Node parameters
Name Description

Cluster membership

The cluster membership of the node.

Hostname

The hostname of the node.

Operating system

The operating system of the node.

Port

The port of the node.

Recovery type

The recovery type of the node.

Services

A comma-separated list of services of the node.

Version

The version of Couchbase running on this node.

Query engine parameters
Name Description

Node hostname

The hostname of the node this query engine runs on.

Node port

The port of the node this query engine runs on.

Version

The version of this query engine.

For more help

Recommendations for learning more: