Skip to content

Latest commit

 

History

History
1937 lines (1550 loc) · 38.3 KB

couchbase-monitoring-integration.mdx

File metadata and controls

1937 lines (1550 loc) · 38.3 KB
title tags metaDescription redirects freshnessValidatedDate
Couchbase monitoring integration
Integrations
On-host integrations
On-host integrations list
New Relic's Couchbase integration collects and sends inventory and metric data from your Couchbase cluster to the New Relic platform.
/docs/integrations/host-integrations/host-integrations-list/couchbase-monitoring-integration
/docs/couchbase-open-source-integration
/docs/couchbase-integration-new-relic-infrastructure
/docs/integrations/host-integrations/open-source-host-integrations-list/couchbase-open-source-integration
/docs/integrations/host-integrations/host-integrations-list/couchbase-integration
never

Our Couchbase 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. We collect data at the cluster, node, query engine, and bucket level so you can trace a problem to its source.

Read on to install the integration, and to see what data we collect.

Compatibility and requirements [#req]

Our integration is compatible with Couchbase version 4.0 or higher.

Quick start [#quick]

If you're not running Couchbase in Kubernetes or ECS environments, we recommend our guided install. Our guided install uses our infrastructure agent and our CLI to set up the Couchbase integration, and discovers other applications and log sources running in your environment and then recommends which ones you should instrument.

The guided install works with most setups. But if it doesn't suit your needs, there are other install options below.

Ready to get started? Click the relevant button, depending on which data center region you use. When you're done with the install, return to this documentation to review the configuration options.

Guided install, US region

<ButtonLink role="button" to="https://one.eu.newrelic.com/marketplace/install-data-source?state=7cd80f29-a702-ebb3-edcd-80cab8b61ee2" variant="primary"

Guided install, EU region

Install [#install]

To install the Couchbase integration, follow the instructions for your environment:

See [Monitor service running on ECS](/docs/integrations/host-integrations/host-integrations-list/monitor-services-running-amazon-ecs).

{ ' ' }

<Collapser id="k8s-install" title="Kubernetes"

See [Monitor service running on
Kubernetes](/docs/monitor-service-running-kubernetes).

<Collapser id="linux-install" title="Linux"

1. Install [the infrastructure agent](/docs/integrations/host-integrations/installation/install-infrastructure-host-integrations/#install), and replace the `INTEGRATION_FILE_NAME` variable with `nri-couchbase`.
2. Change directory to the integrations folder:

   ```
   cd /etc/newrelic-infra/integrations.d
   ```
3. Copy of the sample configuration file:

   ```
   sudo cp couchbase-config.yml.sample couchbase-config.yml
   ```
4. Edit the `couchbase-config.yml` file as described in the [configuration settings](#config).

<Collapser id="windows-install" title="Windows"

1. Download the `nri-couchbase` .MSI installer image from:

   [https://download.newrelic.com/infrastructure_agent/windows/integrations/nri-couchbase/nri-couchbase-amd64.msi](https://download.newrelic.com/infrastructure_agent/windows/integrations/nri-couchbase/nri-couchbase-amd64.msi)
2. To install from the Windows command prompt, run:

   ```
   msiexec.exe /qn /i PATH\TO\nri-couchbase-amd64.msi
   ```
3. In the Integrations directory, `C:\Program Files\New Relic\newrelic-infra\integrations.d\`, create a copy of the sample configuration file by running:

   ```
   cp couchbase-config.yml.sample couchbase-config.yml
   ```
4. Edit the `couchbase-config.yml` file as described in the [configuration settings](#config).

Update your integration [#update]

This integration doesn't automatically update. For best results, regularly update the integration package and the infrastructure agent.

Post-installation tasks [#after-install]

When you're done with the install, you can set configuration options. Some configurations are required to get the integration to work, while some are optional.

Configure the integration [#config]

If you enabled this integration via our ECS or Kubernetes integration, see those docs:

For the standard on-host installation, this integration comes with a YAML config file, apache-config.yml. This configuration is where you can place required login credentials and configure how data is collected. Which options you change depends on your setup and preferences. It comes with a sample config file apache-config.yml.sample that you can copy and edit.

The configuration file has common settings applicable to all integrations, such as interval, timeout, inventory_source. To read all about these common settings, refer to our Configuration Format document.

Specific settings related to Couchbase are defined using the env section of the configuration file. These settings control the connection to your Couchbase instance as well as other security settings and features. The list of valid settings is described in the next section of this document.

Couchbase configuration options [#config-options]

The Couchbase integration collects both metrics and inventory information. This table shows what each configuration option applies to.

  <th>
    Description
  </th>

  <th>
    Default
  </th>

  <th>
    Applies to
  </th>
</tr>
  <td>
    Hostname or IP where Couchbase is running.
  </td>

  <td>
    localhost
  </td>

  <td style={{ "text-align": "center" }}>
    M/I
  </td>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**PORT**</DNT>
  </td>

  <td>
    Port on which Couchbase API is listening.
  </td>

  <td>
    8091
  </td>

  <td style={{ 'text-align': 'center' }}>
    M/I
  </td>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**QUERY_PORT**</DNT>
  </td>

  <td>
    Port on which Couchbase N1QL service is listening.
  </td>

  <td>
    8093
  </td>

  <td style={{ 'text-align': 'center' }}>
    M/I
  </td>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**USERNAME**</DNT>
  </td>

  <td>
    Username for accessing Couchbase API.
  </td>

  <td>
    N/A
  </td>

  <td style={{ 'text-align': 'center' }}>
    M/I
  </td>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**PASSWORD**</DNT>
  </td>

  <td>
    Password for the given user.
  </td>

  <td>
    N/A
  </td>

  <td style={{ 'text-align': 'center' }}>
    M/I
  </td>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**USE_SSL**</DNT>
  </td>

  <td>
    Use SSL when communicating with the Couchbase.
  </td>

  <td>
    false
  </td>

  <td style={{ 'text-align': 'center' }}>
    M/I
  </td>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**CA_BUNDLE_FILE**</DNT>
  </td>

  <td>
    Location of SSL certificate on the host. Only required if `USE_SSL` is true.
  </td>

  <td>
    N/A
  </td>

  <td style={{ 'text-align': 'center' }}>
    M/I
  </td>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**CA_BUNDLE_DIR**</DNT>
  </td>

  <td>
    Alternative Certificate Authority bundle directory.
  </td>

  <td>
    N/A
  </td>

  <td style={{ 'text-align': 'center' }}>
    M/I
  </td>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**TIMEOUT**</DNT>
  </td>

  <td>
    Timeout for API requests, in seconds.
  </td>

  <td>
    30
  </td>

  <td style={{ 'text-align': 'center' }}>
    M/I
  </td>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**ENABLE_BUCKETS**</DNT>
  </td>

  <td>
    If true, collects bucket resources.
  </td>

  <td>
    true
  </td>

  <td style={{ 'text-align': 'center' }}>
    M
  </td>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**ENABLE_BUCKET_STATS**</DNT>
  </td>

  <td>
    If true, collects additional bucket statistics.
  </td>

  <td>
    true
  </td>

  <td style={{ 'text-align': 'center' }}>
    M
  </td>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**ENABLE_CLUSTER_AND_NODES**</DNT>
  </td>

  <td>
    If true, collects cluster and node resources.
  </td>

  <td>
    true
  </td>

  <td style={{ 'text-align': 'center' }}>
    M
  </td>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**METRICS**</DNT>
  </td>

  <td>
    Set to `true` to enable metrics-only collection.
  </td>

  <td>
    false
  </td>

  <td style={{ 'text-align': 'center' }}/>
</tr>

{
  ' '
}

<tr>
  <td>
    <DNT>**INVENTORY**</DNT>
  </td>

  <td>
    Set to `true` to enable inventory-only collection.
  </td>

  <td>
    false
  </td>

  <td style={{ 'text-align': 'center' }}/>
</tr>
Setting
**HOSTNAME**

The values for these settings can be defined in several ways:

  • Adding the value directly in the config file (the most common way).
  • Replacing the values from environment variables using the {{}} notation. This requires infrastructure agent version 1.14.0 or higher. For more information, see Infrastructure configuration or see the environment variable example.
  • Using secrets management. Use this to protect sensitive information, such as passwords that would be exposed in plain text in the configuration file. For more information, see Secrets management.

Labels [#labels]

You can further decorate your metrics using labels. Labels allow you to add attributes (key/value pairs) to your metrics, which you can then use to query, filter, or group your metrics.

Our default sample config file includes examples of labels but, because they're not mandatory, you can remove, modify, or add new ones of your choice.

 labels:
   env: production
   role: load_balancer

Example configurations [#examples]

This is the basic configuration used to collect metrics and inventory from your localhost:
```
integrations:
  - name: nri-couchbase
    env:
      HOSTNAME: localhost
      PORT: 8091
      QUERY_PORT: 8093
      USERNAME: couchbase_user
      PASSWORD: couchbase_password
    interval: 15s
    labels:
      environment: production
    inventory_source: config/couchbase
```

<Collapser id="basic-intervals" title="Basic configuration with different metric/inventory intervals"

This configuration collects metrics every 15 seconds and inventory every 60 seconds:

```
integrations:
  - name: nri-couchbase
    env:
      METRICS: true
      HOSTNAME: localhost
      PORT: 8091
      QUERY_PORT: 8093
      USERNAME: couchbase_user
      PASSWORD: couchbase_password
    interval: 15s
    labels:
      environment: production

  - name: nri-couchbase
    env:
      INVENTORY: true
      HOSTNAME: localhost
      PORT: 8091
      QUERY_PORT: 8093
      USERNAME: couchbase_user
      PASSWORD: couchbase_password
    interval: 60s
    labels:
      environment: production
    inventory_source: config/couchbase
```

<Collapser id="envvar-replacement" title="Environment variables replacement"

In this configuration we are using the environment variable `COUCHBASE_HOST` to populate the HOSTNAME setting of the integration:

```
integrations:
  - name: nri-couchbase
    env:
      METRICS: "true"
      HOSTNAME: {{COUCHBASE_HOST}}
      PORT: 8091
      QUERY_PORT: 8093
      USERNAME: couchbase_user
      PASSWORD: couchbase_password
    interval: 15s
    labels:
      env: production
      role: load_balancer
```

<Collapser id="multi-instance" title="Multi-instance monitoring"

In this configuration we are monitoring multiple Couchbase servers from the same integration. For the first instance (`HOSTNAME: 1st_couchbase_host`) we are collecting metrics and inventory while for the second instance (`HOSTNAME: 2nd_couchbase_host`) we will only collect metrics.

```
integrations:
  - name: nri-couchbase
    env:
      METRICS: "true"
      HOSTNAME: 1st_couchbase_host
      PORT: 8091
      QUERY_PORT: 8093
      USERNAME: couchbase_user
      PASSWORD: couchbase_password
    interval: 15s
    labels:
      env: production
      role: load_balancer
  - name: nri-couchbase
    env:
      INVENTORY: "true"
      HOSTNAME: 1st_couchbase_host
      PORT: 8091
      QUERY_PORT: 8093
      USERNAME: couchbase_user
      PASSWORD: couchbase_password
    interval: 60s
    labels:
      env: production
      role: load_balancer
    inventory_source: config/couchbase

  - name: nri-couchbase
    env:
      METRICS: "true"
      HOSTNAME: 2nd_couchbase_host
      PORT: 8091
      QUERY_PORT: 8093
      USERNAME: couchbase_user
      PASSWORD: couchbase_password
    interval: 15s
    labels:
      env: production
      role: load_balancer
```

Find and use data [#find-and-use]

Integration data is reported to integration dashboards.

Couchbase data is attached to the following event types:

  • CouchbaseBucketSample
  • CouchbaseClusterSample
  • CouchbaseNodeSample
  • CouchbaseQueryEngineSample

You can query this data for troubleshooting purposes or to create custom charts and dashboards.

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

Metric data [#metrics]

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..

Couchbase bucket sample metrics [#bucket-sample-metric]

These attributes are attached to the CouchbaseBucketSample event type.

  <th>
    Description
  </th>
</tr>
  <td>
    Percentage of active items cached in RAM in this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.averageDiskCommitTimeInMilliseconds`
  </td>

  <td>
    The average disk commit time of the bucket, in milliseconds.
  </td>
</tr>

<tr>
  <td>
    `bucket.averageDiskUpdateTimeInMilliseconds`
  </td>

  <td>
    The average disk update time of the bucket, in milliseconds.
  </td>
</tr>

<tr>
  <td>
    `bucket.cacheMissRatio`
  </td>

  <td>
    Percentage of reads per second to this bucket from disk as opposed to RAM.
  </td>
</tr>

<tr>
  <td>
    `bucket.currentConnections`
  </td>

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

<tr>
  <td>
    `bucket.dataUsedInBytes`
  </td>

  <td>
    Amount of data used by this bucket, in bytes.
  </td>
</tr>

<tr>
  <td>
    `bucket.decrementHitsPerSecond`
  </td>

  <td>
    The number of decrement hits per second of the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.decrementMissesPerSecond`
  </td>

  <td>
    The number of decrement misses per second of the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.deleteHitsPerSecond`
  </td>

  <td>
    The number of delete hits per second for this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.deleteMissesPerSecond`
  </td>

  <td>
    The number of delete misses per second for this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.diskCreateOperationsPerSecond`
  </td>

  <td>
    Number of new items created on disk per second for this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.diskFetchesPerSecond`
  </td>

  <td>
    The number of operations required per second to fetch items from disk on the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.diskUpdateOperationsPerSecond`
  </td>

  <td>
    Number of items updated on disk per second for this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.diskUsedInBytes`
  </td>

  <td>
    The amount of disk space in use for the bucket, in bytes.
  </td>
</tr>

<tr>
  <td>
    `bucket.diskWriteQueue`
  </td>

  <td>
    Number of items waiting to be written to disk in the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.ejectionsPerSecond`
  </td>

  <td>
    Total number of items per second being ejected to disk in this bucket
  </td>
</tr>

<tr>
  <td>
    `bucket.evictionPolicy`
  </td>

  <td>
    The eviction policy of the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.evictionsPerSecond`
  </td>

  <td>
    The number of items per second evicted from the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.getHitsPerSecond`
  </td>

  <td>
    Number of get operations per second for data that this bucket contains.
  </td>
</tr>

<tr>
  <td>
    `bucket.getMissesPerSecond`
  </td>

  <td>
    Number of get operations per second for data that this bucket does not contain.
  </td>
</tr>

<tr>
  <td>
    `bucket.hitRatio`
  </td>

  <td>
    Percentage of get requests served with data from this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.incrementHitsPerSecond`
  </td>

  <td>
    The number of increment hits per second of the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.incrementMissesPerSecond`
  </td>

  <td>
    The number of increment misses per second of the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.itemCount`
  </td>

  <td>
    The number of objects stored in the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.memoryHighWaterMarkInBytes`
  </td>

  <td>
    High water mark for auto-evictions on the bucket, in bytes.
  </td>
</tr>

<tr>
  <td>
    `bucket.memoryLowWaterMarkInBytes`
  </td>

  <td>
    Low water mark for auto-evictions on the bucket, in bytes.
  </td>
</tr>

<tr>
  <td>
    `bucket.memoryUsedInBytes`
  </td>

  <td>
    The amount of RAM used for the bucket, in bytes.
  </td>
</tr>

<tr>
  <td>
    `bucket.metadataInRAMInBytes`
  </td>

  <td>
    Amount of RAM used for metadata on this bucket, in bytes.
  </td>
</tr>

<tr>
  <td>
    `bucket.missesPerSecond`
  </td>

  <td>
    The number of misses per second of the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.nodeLocator`
  </td>

  <td>
    Type of node locator.
  </td>
</tr>

<tr>
  <td>
    `bucket.outOfMemoryErrorsPerSecond`
  </td>

  <td>
    Number of hard out of memory errors for this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.OverheadInBytes`
  </td>

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

<tr>
  <td>
    `bucket.pendingResidentItemsRatio`
  </td>

  <td>
    Percentage of pending items cached in RAM in this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.quotaUtilization`
  </td>

  <td>
    The percent of RAM quota currently in use on the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.readOperationsPerSecond`
  </td>

  <td>
    The number of reads (get operations) per second from this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.readRatePerSecond`
  </td>

  <td>
    The bytes read per second of the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.replicaIndex`
  </td>

  <td>
    Defines if the bucket has replica indexes enabled.
  </td>
</tr>

<tr>
  <td>
    `bucket.replicaNumber`
  </td>

  <td>
    Number of replicas of this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.replicaResidentItemsRatio`
  </td>

  <td>
    Percentage of replica items cached in RAM in this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.residentItemsRatio`
  </td>

  <td>
    Percentage of all items cached in RAM in this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.temporaryOutOfMemoryErrorsPerSecond`
  </td>

  <td>
    Number of back-offs sent per second to client SDKs due to out of memory situations from this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.threadsNumber`
  </td>

  <td>
    The number of concurrent readers and writers for the data bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.totalOperationsPerSecond`
  </td>

  <td>
    The total operations per second of the bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.writeOperationsPerSecond`
  </td>

  <td>
    The number of writes (set operations) per second to this bucket.
  </td>
</tr>

<tr>
  <td>
    `bucket.writeRatePerSecond`
  </td>

  <td>
    The bytes written of the bucket.
  </td>
</tr>
Metric
`bucket.activeResidentItemsRatio`

Couchbase cluster sample metrics [#cluster-sample-metric]

These attributes are attached to the CouchbaseClusterSample event type.

  <th>
    Description
  </th>
</tr>
  <td>
    The number of auto failovers on the cluster.
  </td>
</tr>

<tr>
  <td>
    `cluster.autoFailoverEnabled`
  </td>

  <td>
    Indicates if failover is enabled on the cluster.
  </td>
</tr>

<tr>
  <td>
    `cluster.databaseFragmentationThreshold`
  </td>

  <td>
    The percentage level within the database at which compaction occurs.
  </td>
</tr>

<tr>
  <td>
    `cluster.diskFreeInBytes`
  </td>

  <td>
    The free disk space on this cluster, in bytes.
  </td>
</tr>

<tr>
  <td>
    `cluster.diskQuotaTotalInBytes`
  </td>

  <td>
    Total disk space available to Couchbase, in bytes.
  </td>
</tr>

<tr>
  <td>
    `cluster.diskTotalInBytes`
  </td>

  <td>
    Total disk space available, in bytes.
  </td>
</tr>

<tr>
  <td>
    `cluster.diskUsedbyDataInBytes`
  </td>

  <td>
    Disk used by bucket data on this cluster, in bytes.
  </td>
</tr>

<tr>
  <td>
    `cluster.diskUsedInBytes`
  </td>

  <td>
    The used disk space on this cluster, in bytes.
  </td>
</tr>

<tr>
  <td>
    `cluster.indexFragmentationThreshold`
  </td>

  <td>
    The percentage level within indexes at which compaction occurs.
  </td>
</tr>

<tr>
  <td>
    `cluster.maximumBucketCount`
  </td>

  <td>
    Maximum number of buckets this cluster supports.
  </td>
</tr>

<tr>
  <td>
    `cluster.memoryQuotaTotalInBytes`
  </td>

  <td>
    Total RAM available to Couchbase, in bytes.
  </td>
</tr>

<tr>
  <td>
    `cluster.memoryQuotaTotalPerNodeInBytes`
  </td>

  <td>
    Total RAM available to Couchbase, per node, in bytes.
  </td>
</tr>

<tr>
  <td>
    `cluster.memoryQuotaUsedInBytes`
  </td>

  <td>
    Total RAM used by Couchbase, in bytes.
  </td>
</tr>

<tr>
  <td>
    `cluster.memoryQuotaUsedPerNodeInBytes`
  </td>

  <td>
    Total RAM used by Couchbase, per node, in bytes.
  </td>
</tr>

<tr>
  <td>
    `cluster.memoryTotalInBytes`
  </td>

  <td>
    The total RAM on this cluster, in bytes.
  </td>
</tr>

<tr>
  <td>
    `cluster.memoryUsedByDataInBytes`
  </td>

  <td>
    Total RAM used by bucket data on this cluster, in bytes.
  </td>
</tr>

<tr>
  <td>
    `cluster.memoryUsedInBytes`
  </td>

  <td>
    The total RAM used on this cluster, in bytes.
  </td>
</tr>

<tr>
  <td>
    `cluster.viewFragmentationThreshold`
  </td>

  <td>
    The percentage of fragmentation within all the view index files at which compaction is triggered.
  </td>
</tr>
Metric
`cluster.autoFailoverCount`

Couchbase node sample metrics [#node-sample-metric]

These attributes are attached to the CouchbaseNodeSample event type.

  <th>
    Description
  </th>
</tr>
  <td>
    The CPU utilization of the node.
  </td>
</tr>

<tr>
  <td>
    `node.memoryFreeInBytes`
  </td>

  <td>
    The free memory of the node, in bytes.
  </td>
</tr>

<tr>
  <td>
    `node.memoryTotalInBytes`
  </td>

  <td>
    The total memory allocated to the node, in bytes.
  </td>
</tr>

<tr>
  <td>
    `node.recoveryType`
  </td>

  <td>
    The recovery type of the node.
  </td>
</tr>

<tr>
  <td>
    `node.services`
  </td>

  <td>
    The services of the node.
  </td>
</tr>

<tr>
  <td>
    `node.status`
  </td>

  <td>
    The status of the node. (`0` = unhealthy, `1` = healthy)
  </td>
</tr>

<tr>
  <td>
    `node.swapTotalInBytes`
  </td>

  <td>
    The total swap space of the node, in bytes.
  </td>
</tr>

<tr>
  <td>
    `node.swapUsedInBytes`
  </td>

  <td>
    The used swap space of the node, in bytes.
  </td>
</tr>

<tr>
  <td>
    `node.uptimeInMilliseconds`
  </td>

  <td>
    The uptime of the node, in milliseconds.
  </td>
</tr>
Metric
`node.cpuUtilization`

Couchbase query engine sample metrics [#query-engine-sample-metric]

These attributes are attached to the CouchbaseQueryEngineSample event type.

  <th>
    Description
  </th>
</tr>
  <td>
    Current number of active requests.
  </td>
</tr>

<tr>
  <td>
    `queryengine.averageRequestTimeInMilliseconds`
  </td>

  <td>
    Average request time of this query engine, in milliseconds.
  </td>
</tr>

<tr>
  <td>
    `queryengine.completedLimit`
  </td>

  <td>
    Number of queries that Couchbase will keep in the query log.
  </td>
</tr>

<tr>
  <td>
    `queryengine.completedRequests`
  </td>

  <td>
    Current number of completed requests.
  </td>
</tr>

<tr>
  <td>
    `queryengine.completedThresholdInMilliseconds`
  </td>

  <td>
    Minimum time query must take to be logged in the Couchbase query log, in milliseconds.
  </td>
</tr>

<tr>
  <td>
    `queryengine.cores`
  </td>

  <td>
    Number of cores available for this query engine.
  </td>
</tr>

<tr>
  <td>
    `queryengine.garbageCollectionNumber`
  </td>

  <td>
    Number of the last garbage collection.
  </td>
</tr>

<tr>
  <td>
    `queryengine.garbageCollectionPaused`
  </td>

  <td>
    Percent of time that garbage collection is paused.
  </td>
</tr>

<tr>
  <td>
    `queryengine.garbageCollectionTimePausedInMilliseconds`
  </td>

  <td>
    Number of milliseconds that garbage collection is paused, in milliseconds.
  </td>
</tr>

<tr>
  <td>
    `queryengine.medianRequestTimeInMilliseconds`
  </td>

  <td>
    Median request time of this query engine, in milliseconds.
  </td>
</tr>

<tr>
  <td>
    `queryengine.preparedStatementUtilization`
  </td>

  <td>
    Percentage of requests that are prepared statements.
  </td>
</tr>

<tr>
  <td>
    `queryengine.requestsLast15MinutesPerSecond`
  </td>

  <td>
    Requests per second average over the past 15 minutes.
  </td>
</tr>

<tr>
  <td>
    `queryengine.requestsLast1MinutesPerSecond`
  </td>

  <td>
    Requests per second average over the past minute.
  </td>
</tr>

<tr>
  <td>
    `queryengine.requestsLast5MinutesPerSecond`
  </td>

  <td>
    Requests per second average over the past 5 minutes.
  </td>
</tr>

<tr>
  <td>
    `queryengine.requestTime80thPercentileInMilliseconds`
  </td>

  <td>
    80th percentile of request time of this query engine, in milliseconds.
  </td>
</tr>

<tr>
  <td>
    `queryengine.requestTime95thPercentileInMilliseconds`
  </td>

  <td>
    95th percentile of request time of this query engine, in milliseconds.
  </td>
</tr>

<tr>
  <td>
    `queryengine.requestTime99thPercentileInMilliseconds`
  </td>

  <td>
    99th percentile of request time of this query engine, in milliseconds.
  </td>
</tr>

<tr>
  <td>
    `queryengine.systemCPUUtilization`
  </td>

  <td>
    CPU utilization of this query engine
  </td>
</tr>

<tr>
  <td>
    `queryengine.systemMemoryInBytes`
  </td>

  <td>
    The virtual address space reserved by this query engine, in bytes.
  </td>
</tr>

<tr>
  <td>
    `queryengine.totalMemoryInBytes`
  </td>

  <td>
    Cumulative amount of memory allocated for heap objects by this query engine, in bytes.
  </td>
</tr>

<tr>
  <td>
    `queryengine.totalThreads`
  </td>

  <td>
    Total threads used by this query engine.
  </td>
</tr>

<tr>
  <td>
    `queryengine.uptimeInMilliseconds`
  </td>

  <td>
    Uptime of this query engine, in milliseconds
  </td>
</tr>

<tr>
  <td>
    `queryengine.usedMemoryInBytes`
  </td>

  <td>
    Amount of memory allocated for heap objects for this query engine, in bytes.
  </td>
</tr>

<tr>
  <td>
    `queryengine.userCPUUtilization`
  </td>

  <td>
    User CPU utilization of this query engine.
  </td>
</tr>
Metric
`queryengine.activeRequests`

Inventory data [#inventory]

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

The integration captures data for the following Couchbase configuration parameters:

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `Node locator`
      </td>

      <td>
        Type of node locator.
      </td>
    </tr>

    <tr>
      <td>
        `Proxy port`
      </td>

      <td>
        Proxy port on which the bucket communicates.
      </td>
    </tr>

    <tr>
      <td>
        `Type`
      </td>

      <td>
        The type of bucket.
      </td>
    </tr>

    <tr>
      <td>
        `UUID`
      </td>

      <td>
        The UUID of the bucket.
      </td>
    </tr>
  </tbody>
</table>

<Collapser id="cluster-parameters" title="Cluster parameters"

<table>
  <thead>
    <tr>
      <th style={{ width: "300px" }}>
        Name
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `Collection node`
      </td>

      <td>
        The node used to collect metrics.
      </td>
    </tr>

    <tr>
      <td>
        `Couchbase version`
      </td>

      <td>
        The version of Couchbase running on this cluster.
      </td>
    </tr>

    <tr>
      <td>
        `UUID`
      </td>

      <td>
        The UUID of the cluster.
      </td>
    </tr>
  </tbody>
</table>

<Collapser id="node-parameters" title="Node parameters"

<table>
  <thead>
    <tr>
      <th style={{ width: "300px" }}>
        Name
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `Cluster membership`
      </td>

      <td>
        The cluster membership of the node.
      </td>
    </tr>

    <tr>
      <td>
        `Hostname`
      </td>

      <td>
        The hostname of the node.
      </td>
    </tr>

    <tr>
      <td>
        `Operating system`
      </td>

      <td>
        The operating system of the node.
      </td>
    </tr>

    <tr>
      <td>
        `Port`
      </td>

      <td>
        The port of the node.
      </td>
    </tr>

    <tr>
      <td>
        `Recovery type`
      </td>

      <td>
        The recovery type of the node.
      </td>
    </tr>

    <tr>
      <td>
        `Services`
      </td>

      <td>
        A comma-separated list of services of the node.
      </td>
    </tr>

    <tr>
      <td>
        `Version`
      </td>

      <td>
        The version of Couchbase running on this node.
      </td>
    </tr>
  </tbody>
</table>

<Collapser id="query-engine-parameters" title="Query engine parameters"

<table>
  <thead>
    <tr>
      <th style={{ width: "300px" }}>
        Name
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `Node hostname`
      </td>

      <td>
        The hostname of the node this query engine runs on.
      </td>
    </tr>

    <tr>
      <td>
        `Node port`
      </td>

      <td>
        The port of the node this query engine runs on.
      </td>
    </tr>

    <tr>
      <td>
        `Version`
      </td>

      <td>
        The version of this query engine.
      </td>
    </tr>
  </tbody>
</table>

Check the source code [#source-code]

This integration is open source software. That means you can browse its source code and send improvements, or create your own fork and build it.

Name