diff --git a/.github/workflows/test-all.yml b/.github/workflows/test-all.yml index d300257e42635..c3ec7f6576ccb 100644 --- a/.github/workflows/test-all.yml +++ b/.github/workflows/test-all.yml @@ -880,9 +880,22 @@ jobs: agent-image-windows-py2: "${{ inputs.agent-image-windows-py2 }}" test-py2: ${{ inputs.test-py2 }} test-py3: ${{ inputs.test-py3 }} + target-env: ${{ matrix.target-env }} minimum-base-package: ${{ inputs.minimum-base-package }} pytest-args: ${{ inputs.pytest-args }} secrets: inherit + strategy: + matrix: + target-env: + - py3.13-7.0-rest + - py3.13-7.0-prometheus + - py3.13-7.1-rest + - py3.13-7.1-prometheus + - py3.13-7.2-rest + - py3.13-7.2-prometheus + - py3.13-7.6-rest + - py3.13-7.6-prometheus + fail-fast: false ja3692a6: uses: ./.github/workflows/test-target.yml with: diff --git a/couchbase/README.md b/couchbase/README.md index 0befa4fa213f4..7100f37622a13 100644 --- a/couchbase/README.md +++ b/couchbase/README.md @@ -35,11 +35,31 @@ To configure this check for an Agent running on a host: 1. Edit the `couchbase.d/conf.yaml` file in the `conf.d/` folder at the root of your [Agent's configuration directory][3] to start collecting your Couchbase data. See the [sample couchbase.d/conf.yaml][4] for all available configuration options. + The Couchbase integration supports two collection methods: + + **Prometheus-based collection (Couchbase 7.0+)** + + For Couchbase 7.0 and later, configure the `prometheus_url` to use the Prometheus exporter: + ```yaml init_config: instances: - ## @param server - string - required + ## @param prometheus_url - string - optional + ## The Prometheus/OpenMetrics endpoint URL for the Prometheus-based check. + # + - prometheus_url: http://localhost:8091/metrics + ``` + + **Legacy REST API collection** + + For older versions or to use the legacy REST API: + + ```yaml + init_config: + + instances: + ## @param server - string - optional ## The server's url. # - server: http://localhost:8091 @@ -79,6 +99,16 @@ For containerized environments, see the [Autodiscovery Integration Templates][6] ##### Metric collection +For Prometheus-based collection (Couchbase 7.0+): + +| Parameter | Value | +| -------------------- | ------------------------------------------------ | +| `` | `couchbase` | +| `` | blank or `{}` | +| `` | `{"prometheus_url": "http://%%host%%:8091/metrics"}` | + +For legacy REST API collection: + | Parameter | Value | | -------------------- | ------------------------------------ | | `` | `couchbase` | diff --git a/couchbase/assets/configuration/spec.yaml b/couchbase/assets/configuration/spec.yaml index 22f82cd0e43dc..d282b5b62b4b1 100644 --- a/couchbase/assets/configuration/spec.yaml +++ b/couchbase/assets/configuration/spec.yaml @@ -9,11 +9,31 @@ files: - template: instances options: - name: server - description: The server's url. - required: true + description: | + The server's url for the legacy REST API-based check. + Required if prometheus_url is not set. + required: false value: example: http://localhost:8091 type: string + - name: prometheus_url + description: | + The Prometheus/OpenMetrics endpoint URL for the Prometheus-based check. + Required if server is not set. This enables collection of metrics from Couchbase's + Prometheus exporter (available in Couchbase 7.0+). + required: false + value: + example: http://localhost:8091/metrics + type: string + - name: labels_mapper + description: | + A mapping of Prometheus labels to rename to avoid conflicts with reserved tag names. + By default, the "service" label is renamed to "couchbase_service" to avoid conflict + with Datadog's reserved "service" tag while preserving the contextual information. + value: + example: + service: couchbase_service + type: object - name: query_monitoring_url description: | Url to get query monitoring stats, available since couchbase 4.5. diff --git a/couchbase/changelog.d/21780.added b/couchbase/changelog.d/21780.added new file mode 100644 index 0000000000000..56b90099fbd0e --- /dev/null +++ b/couchbase/changelog.d/21780.added @@ -0,0 +1 @@ +Add support for Prometheus-based metrics collection \ No newline at end of file diff --git a/couchbase/datadog_checks/couchbase/check.py b/couchbase/datadog_checks/couchbase/check.py new file mode 100644 index 0000000000000..2f3f79905e0d6 --- /dev/null +++ b/couchbase/datadog_checks/couchbase/check.py @@ -0,0 +1,55 @@ +# (C) Datadog, Inc. 2025-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +from datadog_checks.base import OpenMetricsBaseCheck + +from .metrics import ( + get_metric_map_couchbase_to_datadog, + get_type_overrides, +) + + +class CouchbaseCheckV2(OpenMetricsBaseCheck): + """ + Couchbase check using OpenMetrics/Prometheus metrics. + """ + + DEFAULT_METRIC_LIMIT = 0 + + def __init__(self, name, init_config, instances): + instance = instances[0] + + # Configure metrics collection using our curated metric map + metrics = instance.get("metrics", []) + if not metrics: + metric_map = get_metric_map_couchbase_to_datadog() + metrics = [metric_map] + + metric_type_overrides = get_type_overrides() + + instance.update( + { + "prometheus_url": instance.get("prometheus_url"), + "namespace": "couchbase", + "metrics": metrics, + "type_overrides": metric_type_overrides, + # Use traditional histogram format with separate .sum and .count metrics + "send_histograms_buckets": True, + "send_distribution_buckets": False, + # Send histogram counts and sums as monotonic counters (Prometheus histograms are cumulative) + "send_distribution_counts_as_monotonic": True, + "send_distribution_sums_as_monotonic": True, + # Increase timeout in case Couchbase is slow to respond + "prometheus_timeout": instance.get("prometheus_timeout", 20), + # Ensure we collect all metrics (no limit) + "max_returned_metrics": instance.get("max_returned_metrics", 0), + # Rename the "service" label to avoid conflict with Datadog's reserved "service" tag + "labels_mapper": instance.get("labels_mapper", {"service": "couchbase_service"}), + # Authentication - map 'user' to 'username' for OpenMetrics compatibility + "username": instance.get("username") or instance.get("user"), + "password": instance.get("password"), + } + ) + + super().__init__(name, init_config, [instance]) diff --git a/couchbase/datadog_checks/couchbase/config_models/defaults.py b/couchbase/datadog_checks/couchbase/config_models/defaults.py index 266b8a20dac93..1283c43e8c6fc 100644 --- a/couchbase/datadog_checks/couchbase/config_models/defaults.py +++ b/couchbase/datadog_checks/couchbase/config_models/defaults.py @@ -60,6 +60,10 @@ def instance_persist_connections(): return False +def instance_prometheus_url(): + return 'http://localhost:8091/metrics' + + def instance_query_monitoring_url(): return 'http://localhost:8093' @@ -68,6 +72,10 @@ def instance_request_size(): return 16 +def instance_server(): + return 'http://localhost:8091' + + def instance_skip_proxy(): return False diff --git a/couchbase/datadog_checks/couchbase/config_models/instance.py b/couchbase/datadog_checks/couchbase/config_models/instance.py index 2377284c2df59..c45a932eac88a 100644 --- a/couchbase/datadog_checks/couchbase/config_models/instance.py +++ b/couchbase/datadog_checks/couchbase/config_models/instance.py @@ -74,17 +74,19 @@ class InstanceConfig(BaseModel): kerberos_hostname: Optional[str] = None kerberos_keytab: Optional[str] = None kerberos_principal: Optional[str] = None + labels_mapper: Optional[MappingProxyType[str, Any]] = None log_requests: Optional[bool] = None metric_patterns: Optional[MetricPatterns] = None min_collection_interval: Optional[float] = None ntlm_domain: Optional[str] = None password: Optional[str] = None persist_connections: Optional[bool] = None + prometheus_url: Optional[str] = None proxy: Optional[Proxy] = None query_monitoring_url: Optional[str] = None read_timeout: Optional[float] = None request_size: Optional[float] = None - server: str + server: Optional[str] = None service: Optional[str] = None skip_proxy: Optional[bool] = None sync_gateway_url: Optional[str] = None diff --git a/couchbase/datadog_checks/couchbase/couchbase.py b/couchbase/datadog_checks/couchbase/couchbase.py index b88acf5d9b39f..aca860cfed70c 100644 --- a/couchbase/datadog_checks/couchbase/couchbase.py +++ b/couchbase/datadog_checks/couchbase/couchbase.py @@ -34,6 +34,8 @@ TO_SECONDS, ) +from .check import CouchbaseCheckV2 + class Couchbase(AgentCheck): """ @@ -43,6 +45,14 @@ class Couchbase(AgentCheck): HTTP_CONFIG_REMAPPER = {'user': {'name': 'username'}, 'ssl_verify': {'name': 'tls_verify'}} + def __new__(cls, name, init_config, instances): + instance = instances[0] + + if instance.get("prometheus_url"): + return CouchbaseCheckV2(name, init_config, instances) + else: + return super(Couchbase, cls).__new__(cls) + def __init__(self, name, init_config, instances): super(Couchbase, self).__init__(name, init_config, instances) diff --git a/couchbase/datadog_checks/couchbase/couchbase_consts.py b/couchbase/datadog_checks/couchbase/couchbase_consts.py index 8953b520d3cbd..d6d59de74d9e6 100644 --- a/couchbase/datadog_checks/couchbase/couchbase_consts.py +++ b/couchbase/datadog_checks/couchbase/couchbase_consts.py @@ -364,7 +364,6 @@ INDEX_STATS_COUNT_METRICS = [ "cache_hits", "cache_misses", - "items_count", "num_docs_indexed", "num_items_flushed", "num_requests", @@ -372,6 +371,7 @@ "num_scan_errors", "num_scan_timeouts", "scan_bytes_read", + "total_scan_duration", ] INDEXER_STATE_MAP = {'Active': 0, 'Pause': 1, 'Warmup': 2} diff --git a/couchbase/datadog_checks/couchbase/data/conf.yaml.example b/couchbase/datadog_checks/couchbase/data/conf.yaml.example index 0ed35c75084d5..ec047bcf90e85 100644 --- a/couchbase/datadog_checks/couchbase/data/conf.yaml.example +++ b/couchbase/datadog_checks/couchbase/data/conf.yaml.example @@ -45,10 +45,27 @@ init_config: # instances: - ## @param server - string - required - ## The server's url. + - + ## @param server - string - optional - default: http://localhost:8091 + ## The server's url for the legacy REST API-based check. + ## Required if prometheus_url is not set. # - - server: http://localhost:8091 + # server: http://localhost:8091 + + ## @param prometheus_url - string - optional - default: http://localhost:8091/metrics + ## The Prometheus/OpenMetrics endpoint URL for the Prometheus-based check. + ## Required if server is not set. This enables collection of metrics from Couchbase's + ## Prometheus exporter (available in Couchbase 7.0+). + # + # prometheus_url: http://localhost:8091/metrics + + ## @param labels_mapper - mapping - optional + ## A mapping of Prometheus labels to rename to avoid conflicts with reserved tag names. + ## By default, the "service" label is renamed to "couchbase_service" to avoid conflict + ## with Datadog's reserved "service" tag while preserving the contextual information. + # + # labels_mapper: + # service: couchbase_service ## @param query_monitoring_url - string - optional - default: http://localhost:8093 ## Url to get query monitoring stats, available since couchbase 4.5. diff --git a/couchbase/datadog_checks/couchbase/metrics.py b/couchbase/datadog_checks/couchbase/metrics.py new file mode 100644 index 0000000000000..baccc9c9b4fe5 --- /dev/null +++ b/couchbase/datadog_checks/couchbase/metrics.py @@ -0,0 +1,168 @@ +# (C) Datadog, Inc. 2025-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +from .metrics_generated import METRIC_DATA + +# Mis-named or legacy metric names in Couchbase. +RAW_METRIC_NAME_MAP = { + "audit_queue_length": "cm_audit_queue_length", + "audit_unsuccessful_retries": "cm_audit_unsuccessful_retries", + "couch_docs_actual_disk_size": "kv_couch_docs_actual_disk_size", + "couch_spatial_data_size": "kv_couch_spatial_data_size", + "couch_spatial_disk_size": "kv_couch_spatial_disk_size", + "couch_spatial_ops": "kv_couch_spatial_ops", + "couch_views_actual_disk_size": "kv_couch_views_actual_disk_size", + "couch_views_data_size": "kv_couch_views_data_size", + "couch_views_disk_size": "kv_couch_views_disk_size", + "couch_views_ops": "kv_couch_views_ops", + "total_knn_queries_rejected_by_throttler": "fts_num_knn_queries_rejected_by_throttler", +} + + +def metric_data_couchbase_to_datadog(metric_data): + """Transform metric data from Couchbase to Datadog. + + Example: kv_dcp_backoff becomes kv.dcp_backoff. + + This also renames some mis-named or legacy metric names. + + This is useful when fetching the metric definitions from Couchbase, to + compare them to the metrics we have in metadata.csv (which have Datadog + names). See compare_upstream_metrics.py for an example. + """ + + datadog_metric_data = [] + for md in metric_data: + metric_name = md["metric_name"] + + # Fix mis-named or legacy metric names. + metric_name = RAW_METRIC_NAME_MAP.get(metric_name, metric_name) + + # Split the service name from the rest of the metric name. + service_name, partial_metric_name = metric_name.split("_", 1) + + # Make the Datadog metric name, e.g. `kv.dcp_backoff`. The check + # namespace "couchbase." will be prepended automatically. + metric_name = ".".join( + ( + service_name, + partial_metric_name, + ) + ) + + md_datadog = md.copy() + md_datadog["metric_name"] = metric_name + + datadog_metric_data.append(md_datadog) + + return datadog_metric_data + + +def metric_data_datadog_to_couchbase(metric_data): + """Transform metric data from Datadog to Couchbase. + + Example: kv.dcp_backoff becomes kv_dcp_backoff. + + This also renames some mis-named or legacy metric names. + + This is used to generate the metric map and type overrides. + """ + + couchbase_metric_data = [] + for md in metric_data: + metric_name = md["metric_name"] + + # Split the metric name on first dot, e.g. `kv.dcp_backoff` or `sync_gateway.cache.hits`. + service_name, partial_metric_name = metric_name.split(".", 1) + + # Make the Couchbase metric name, e.g. `kv_dcp_backoff`. + metric_name = "_".join((service_name, partial_metric_name)) + + # Re-apply mis-named or legacy metric names. + inverse_metric_name_map = {v: k for k, v in RAW_METRIC_NAME_MAP.items()} + metric_name = inverse_metric_name_map.get(metric_name, metric_name) + + md_couchbase = md.copy() + md_couchbase["metric_name"] = metric_name + + couchbase_metric_data.append(md_couchbase) + + return couchbase_metric_data + + +def get_metric_map_couchbase_to_datadog(): + """Use metric data from metadata.csv to produce the metric name map.""" + + datadog_metric_data = METRIC_DATA + couchbase_metric_data = metric_data_datadog_to_couchbase(datadog_metric_data) + + # This works because the metric_data arrays are sorted, and stay sorted. + metric_map = {} + for index, metric in enumerate(couchbase_metric_data): + metric_map[metric["metric_name"]] = datadog_metric_data[index]["metric_name"] + + if metric["metric_type"] == "histogram": + # Couchbase's /metrics endpoint rarely or never return proper type + # indicators for histograms. This causes problems in the Datadog + # scraper internals: The metric parser sees the xxx_bucket metric, + # and assigns the "unknown" type to it, and the metric is silently + # discarded. + # + # Therefore we add type overrides for the xxx_bucket metrics so they + # get the "histogram" type; see the special handling of this in + # get_type_overrides below. + # + # Histograms come with three suffixes: _bucket, _count, and _sum. + # We need to map all three to the base metric name so they can be + # processed together as a histogram. + for suffix in ["_bucket", "_count", "_sum"]: + metric_name_with_suffix = metric["metric_name"] + suffix + metric_map[metric_name_with_suffix] = datadog_metric_data[index]["metric_name"] + + return metric_map + + +def get_type_overrides(): + """Use metric data from metadata.csv to produce the type overrides.""" + + datadog_metric_data = METRIC_DATA + + # Get the Couchbase raw metric names, because type overrides apply before + # metric names are mapped. + couchbase_metric_data = metric_data_datadog_to_couchbase(datadog_metric_data) + + type_overrides = {} + for metric_data in couchbase_metric_data: + type_overrides[metric_data["metric_name"]] = metric_data["metric_type"] + + if metric_data["metric_type"] == "histogram": + # Add type overrides for xxx_bucket, xxx_count, and xxx_sum metric names, + # to make the Datadog scraper handle them as histograms. Otherwise they would + # remain with type "unknown" and get silently dropped. See details + # in get_metric_map_couchbase_to_datadog above. + for suffix in ["_bucket", "_count", "_sum"]: + metric_name_with_suffix = metric_data["metric_name"] + suffix + type_overrides[metric_name_with_suffix] = metric_data["metric_type"] + + return type_overrides + + +def construct_metrics_config(): + """Construct metrics config for OpenMetricsBaseCheckV2. + + Converts the metric map and type overrides into V2's array format. + """ + metric_map = get_metric_map_couchbase_to_datadog() + type_overrides = get_type_overrides() + + metrics = [] + for raw_metric_name, datadog_metric_name in metric_map.items(): + config = {raw_metric_name: {'name': datadog_metric_name}} + + if raw_metric_name in type_overrides: + config[raw_metric_name]['type'] = type_overrides[raw_metric_name] + + metrics.append(config) + + return metrics diff --git a/couchbase/datadog_checks/couchbase/metrics_generated.py b/couchbase/datadog_checks/couchbase/metrics_generated.py new file mode 100644 index 0000000000000..2ebca890e5e80 --- /dev/null +++ b/couchbase/datadog_checks/couchbase/metrics_generated.py @@ -0,0 +1,1899 @@ +# (C) Datadog, Inc. 2025-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +# This file was auto-generated by couchbase/scripts/generate_metrics_code.py +# +# Generated at: 2025-10-30T08:23:35+00:00 +# +# Many of the metrics from Couchbase's Prometheus/OpenMetrics endpoints either +# don't specify metric types at all, or the metric type is not known to Datadog, +# so this lets us use our curated units from metadata.csv instead. + +METRIC_DATA = [ {'metric_name': 'backup.data_size', 'metric_type': 'gauge'}, + {'metric_name': 'backup.dispatched', 'metric_type': 'count'}, + {'metric_name': 'backup.location_check', 'metric_type': 'count'}, + {'metric_name': 'backup.task_duration_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'backup.task_orphaned', 'metric_type': 'count'}, + {'metric_name': 'backup.task_run', 'metric_type': 'count'}, + {'metric_name': 'by_bucket.avg_bg_wait_time', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.avg_disk_commit_time', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.avg_disk_update_time', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.bg_wait_total', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.bytes_read', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.bytes_written', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.cas_badval', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.cas_hits', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.cas_misses', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.cmd_get', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.cmd_lookup', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.cmd_set', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.couch_docs_actual_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.couch_docs_data_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.couch_docs_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.couch_docs_fragmentation', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.couch_spatial_data_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.couch_spatial_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.couch_spatial_ops', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.couch_total_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.couch_views_data_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.couch_views_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.couch_views_fragmentation', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.couch_views_ops', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.cpu_idle_ms', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.cpu_utilization_rate', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.curr_connections', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.curr_items', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.curr_items_tot', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.decr_hits', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.decr_misses', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.delete_hits', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.delete_misses', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.disk_commit_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.disk_update_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.disk_write_queue', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_bg_fetched', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_cache_miss_rate', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_cache_miss_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_2i_backoff', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_2i_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_2i_items_remaining', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_2i_items_sent', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_2i_producer_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_2i_total_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_fts_backoff', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_fts_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_fts_items_remaining', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_fts_items_sent', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_fts_producer_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_fts_total_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_other_backoff', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_other_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_other_items_remaining', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_other_items_sent', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_other_producer_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_other_total_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_replica_backoff', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_replica_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_replica_items_remaining', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_replica_items_sent', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_replica_producer_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_replica_total_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_views_backoff', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_views_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_views_items_remaining', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_views_items_sent', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_views_producer_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_views_total_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_xdcr_backoff', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_xdcr_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_xdcr_items_remaining', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_xdcr_items_sent', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_xdcr_producer_count', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_dcp_xdcr_total_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_diskqueue_drain', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_diskqueue_fill', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_diskqueue_items', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_flusher_todo', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_item_commit_failed', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_kv_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_max_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_mem_high_wat', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_mem_low_wat', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_meta_data_memory', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_num_non_resident', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_num_ops_del_meta', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_num_ops_del_ret_meta', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_num_ops_get_meta', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_num_ops_set_meta', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_num_ops_set_ret_meta', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_num_value_ejects', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_oom_errors', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_ops_create', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_ops_update', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_overhead', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_queue_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_resident_items_rate', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_tap_replica_queue_drain', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_tap_total_queue_drain', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_tap_total_queue_fill', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_tap_total_total_backlog_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_tmp_oom_errors', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ep_vb_total', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.evictions', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.get_hits', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.get_misses', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.hibernated_requests', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.hibernated_waked', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.hit_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.incr_hits', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.incr_misses', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.mem_actual_free', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.mem_actual_used', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.mem_free', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.mem_total', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.mem_used', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.mem_used_sys', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.misses', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.ops', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.page_faults', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.replication_docs_rep_queue', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.replication_meta_latency_aggr', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.rest_requests', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.swap_total', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.swap_used', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_active_eject', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_active_itm_memory', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_active_meta_data_memory', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_active_num', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_active_num_non_resident', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_active_ops_create', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_active_ops_update', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_active_queue_age', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_active_queue_drain', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_active_queue_fill', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_active_queue_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_active_resident_items_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_avg_active_queue_age', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_avg_pending_queue_age', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_avg_replica_queue_age', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_avg_total_queue_age', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_curr_items', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_eject', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_itm_memory', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_meta_data_memory', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_num', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_num_non_resident', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_ops_create', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_ops_update', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_queue_age', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_queue_drain', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_queue_fill', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_queue_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_pending_resident_items_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_curr_items', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_eject', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_itm_memory', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_meta_data_memory', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_num', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_num_non_resident', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_ops_create', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_ops_update', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_queue_age', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_queue_drain', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_queue_fill', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_queue_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_replica_resident_items_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.vb_total_queue_age', 'metric_type': 'gauge'}, + {'metric_name': 'by_bucket.xdc_ops', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.cmd_get', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.couch_docs_actual_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.couch_docs_data_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.couch_spatial_data_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.couch_spatial_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.couch_views_actual_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.couch_views_data_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.curr_items', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.curr_items_tot', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.ep_bg_fetched', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.get_hits', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.index_data_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.index_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.mem_used', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.ops', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.vb_active_num_non_resident', 'metric_type': 'gauge'}, + {'metric_name': 'by_node.vb_replica_curr_items', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.active_links', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.direct_memory_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.disk_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.disk_used_bytes_total', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.driver_boot_timestamp_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.failed_to_parse_records_count', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.failed_to_parse_records_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.gc_count_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.gc_time_milliseconds_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.gc_time_seconds_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.heap_memory_committed_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.heap_memory_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.http_requests_failed_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.http_requests_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.incoming_records_count', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.incoming_records_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.io_reads_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.io_writes_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.pending_flush_ops', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.pending_merge_ops', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.pending_replicate_ops', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.pending_requests', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.queued_http_requests_size', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.queued_jobs', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.rebalance_cancelled_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.rebalance_failed_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.rebalance_successful_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.requests_total', 'metric_type': 'count'}, + {'metric_name': 'cbas.running_jobs', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.system_load_average', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.thread_count', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.virtual_buffer_cache_used_pages', 'metric_type': 'gauge'}, + {'metric_name': 'cbas.wrapper_boot_timestamp_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.app_telemetry_curr_connections', 'metric_type': 'gauge'}, + {'metric_name': 'cm.audit_queue_length', 'metric_type': 'gauge'}, + {'metric_name': 'cm.audit_unsuccessful_retries', 'metric_type': 'count'}, + {'metric_name': 'cm.auth_cache_current_items', 'metric_type': 'gauge'}, + {'metric_name': 'cm.auth_cache_hit_total', 'metric_type': 'count'}, + {'metric_name': 'cm.auth_cache_max_items', 'metric_type': 'gauge'}, + {'metric_name': 'cm.auth_cache_miss_total', 'metric_type': 'count'}, + {'metric_name': 'cm.authentications_total', 'metric_type': 'count'}, + {'metric_name': 'cm.auto_failover_count', 'metric_type': 'gauge'}, + {'metric_name': 'cm.auto_failover_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'cm.auto_failover_max_count', 'metric_type': 'gauge'}, + {'metric_name': 'cm.build_streaming_info_total', 'metric_type': 'count'}, + {'metric_name': 'cm.chronicle_append_batch_size_1m_max', 'metric_type': 'gauge'}, + {'metric_name': 'cm.chronicle_append_num_total', 'metric_type': 'count'}, + {'metric_name': 'cm.chronicle_disk_latency_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.client_cert_cache_current_items', 'metric_type': 'gauge'}, + {'metric_name': 'cm.client_cert_cache_hit_total', 'metric_type': 'count'}, + {'metric_name': 'cm.client_cert_cache_max_items', 'metric_type': 'gauge'}, + {'metric_name': 'cm.client_cert_cache_miss_total', 'metric_type': 'count'}, + {'metric_name': 'cm.encr_at_rest_data_status', 'metric_type': 'gauge'}, + {'metric_name': 'cm.encr_at_rest_deks_in_use', 'metric_type': 'gauge'}, + {'metric_name': 'cm.encr_at_rest_drop_deks_events_total', 'metric_type': 'count'}, + {'metric_name': 'cm.encr_at_rest_generate_dek_failures_total', 'metric_type': 'count'}, + {'metric_name': 'cm.encr_at_rest_generate_dek_total', 'metric_type': 'count'}, + {'metric_name': 'cm.encryption_key_rotation_failures_total', 'metric_type': 'count'}, + {'metric_name': 'cm.encryption_key_rotations_total', 'metric_type': 'count'}, + {'metric_name': 'cm.encryption_service_failures_total', 'metric_type': 'count'}, + {'metric_name': 'cm.erlang_port_count', 'metric_type': 'gauge'}, + {'metric_name': 'cm.erlang_port_limit', 'metric_type': 'gauge'}, + {'metric_name': 'cm.erlang_process_count', 'metric_type': 'gauge'}, + {'metric_name': 'cm.erlang_process_limit', 'metric_type': 'gauge'}, + {'metric_name': 'cm.failover_safeness_level', 'metric_type': 'gauge'}, + {'metric_name': 'cm.failover_total', 'metric_type': 'count'}, + {'metric_name': 'cm.gc_duration_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.graceful_failover_total', 'metric_type': 'count'}, + {'metric_name': 'cm.http_requests_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.http_requests_total', 'metric_type': 'count'}, + {'metric_name': 'cm.index_pausing_runs_total', 'metric_type': 'count'}, + {'metric_name': 'cm.is_balanced', 'metric_type': 'gauge'}, + {'metric_name': 'cm.lease_acquirer_prev_acquire_estimate_in_future_total', 'metric_type': 'count'}, + {'metric_name': 'cm.lease_acquirer_prev_acquire_estimate_minus_start_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.lease_acquirer_start_time_minus_prev_acquire_estimate_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.lease_acquirer_time_inflight_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.lease_acquirer_used_prev_acquire_estimate_total', 'metric_type': 'count'}, + {'metric_name': 'cm.lease_acquirer_used_start_estimate_total', 'metric_type': 'count'}, + {'metric_name': 'cm.lease_aquirer_start_time_minus_prev_acquire_estimate_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.lease_aquirer_time_inflight_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.lease_aquirer_used_start_estimate_total', 'metric_type': 'count'}, + {'metric_name': 'cm.logs_total', 'metric_type': 'count'}, + {'metric_name': 'cm.memcached_call_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.memcached_cmd_total', 'metric_type': 'gauge'}, + {'metric_name': 'cm.memcached_e2e_call_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.memcached_q_call_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.mru_cache_add_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.mru_cache_flush_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.mru_cache_lock_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.mru_cache_lookup_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.mru_cache_lookup_total', 'metric_type': 'count'}, + {'metric_name': 'cm.mru_cache_take_lock_total', 'metric_type': 'count'}, + {'metric_name': 'cm.ns_config_merger_queue_len_1m_max', 'metric_type': 'gauge'}, + {'metric_name': 'cm.ns_config_merger_run_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.ns_config_merger_sleep_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.ns_config_rep_push_keys_retries_total', 'metric_type': 'count'}, + {'metric_name': 'cm.odp_report_failed', 'metric_type': 'count'}, + {'metric_name': 'cm.outgoing_http_requests_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.outgoing_http_requests_total', 'metric_type': 'count'}, + {'metric_name': 'cm.rebalance_in_progress', 'metric_type': 'gauge'}, + {'metric_name': 'cm.rebalance_progress', 'metric_type': 'gauge'}, + {'metric_name': 'cm.rebalance_stuck', 'metric_type': 'gauge'}, + {'metric_name': 'cm.rebalance_total', 'metric_type': 'count'}, + {'metric_name': 'cm.request_hibernates_total', 'metric_type': 'count'}, + {'metric_name': 'cm.request_unhibernates_total', 'metric_type': 'count'}, + {'metric_name': 'cm.resource_limit_reached', 'metric_type': 'gauge'}, + {'metric_name': 'cm.rest_request_access_forbidden_total', 'metric_type': 'count'}, + {'metric_name': 'cm.rest_request_auth_failure_total', 'metric_type': 'count'}, + {'metric_name': 'cm.rest_request_enters_total', 'metric_type': 'count'}, + {'metric_name': 'cm.rest_request_failure_total', 'metric_type': 'count'}, + {'metric_name': 'cm.rest_request_leaves_total', 'metric_type': 'count'}, + {'metric_name': 'cm.status_latency_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.timer_lag_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'cm.up_cache_current_items', 'metric_type': 'gauge'}, + {'metric_name': 'cm.up_cache_hit_total', 'metric_type': 'count'}, + {'metric_name': 'cm.up_cache_max_items', 'metric_type': 'gauge'}, + {'metric_name': 'cm.up_cache_miss_total', 'metric_type': 'count'}, + {'metric_name': 'cm.user_bkts_cache_current_items', 'metric_type': 'gauge'}, + {'metric_name': 'cm.user_bkts_cache_hit_total', 'metric_type': 'count'}, + {'metric_name': 'cm.user_bkts_cache_max_items', 'metric_type': 'gauge'}, + {'metric_name': 'cm.user_bkts_cache_miss_total', 'metric_type': 'count'}, + {'metric_name': 'cm.uuid_cache_current_items', 'metric_type': 'gauge'}, + {'metric_name': 'cm.uuid_cache_hit_total', 'metric_type': 'count'}, + {'metric_name': 'cm.uuid_cache_max_items', 'metric_type': 'gauge'}, + {'metric_name': 'cm.uuid_cache_miss_total', 'metric_type': 'count'}, + {'metric_name': 'cm.web_cache_hits_total', 'metric_type': 'count'}, + {'metric_name': 'cm.web_cache_inner_hits_total', 'metric_type': 'count'}, + {'metric_name': 'cm.web_cache_updates_total', 'metric_type': 'count'}, + {'metric_name': 'eventing.agg_queue_memory', 'metric_type': 'gauge'}, + {'metric_name': 'eventing.agg_queue_size', 'metric_type': 'gauge'}, + {'metric_name': 'eventing.analytics_op_exception_count', 'metric_type': 'count'}, + {'metric_name': 'eventing.bkt_ops_cas_mismatch_count', 'metric_type': 'count'}, + {'metric_name': 'eventing.bucket_op_exception_count', 'metric_type': 'count'}, + {'metric_name': 'eventing.checkpoint_failure_count', 'metric_type': 'count'}, + {'metric_name': 'eventing.dcp_backlog', 'metric_type': 'gauge'}, + {'metric_name': 'eventing.dcp_delete_msg_counter', 'metric_type': 'count'}, + {'metric_name': 'eventing.dcp_deletion_sent_to_worker', 'metric_type': 'count'}, + {'metric_name': 'eventing.dcp_deletion_suppressed_counter', 'metric_type': 'count'}, + {'metric_name': 'eventing.dcp_expiry_sent_to_worker', 'metric_type': 'count'}, + {'metric_name': 'eventing.dcp_mutation_sent_to_worker', 'metric_type': 'count'}, + {'metric_name': 'eventing.dcp_mutation_suppressed_counter', 'metric_type': 'count'}, + {'metric_name': 'eventing.dcp_mutations_msg_counter', 'metric_type': 'count'}, + {'metric_name': 'eventing.n1ql_op_exception_count', 'metric_type': 'count'}, + {'metric_name': 'eventing.on_delete_failure', 'metric_type': 'count'}, + {'metric_name': 'eventing.on_delete_success', 'metric_type': 'count'}, + {'metric_name': 'eventing.on_update_failure', 'metric_type': 'count'}, + {'metric_name': 'eventing.on_update_success', 'metric_type': 'count'}, + {'metric_name': 'eventing.timeout_count', 'metric_type': 'count'}, + {'metric_name': 'eventing.timer_callback_failure', 'metric_type': 'count'}, + {'metric_name': 'eventing.timer_callback_missing_counter', 'metric_type': 'count'}, + {'metric_name': 'eventing.timer_callback_success', 'metric_type': 'count'}, + {'metric_name': 'eventing.timer_cancel_counter', 'metric_type': 'count'}, + {'metric_name': 'eventing.timer_context_size_exception_counter', 'metric_type': 'count'}, + {'metric_name': 'eventing.timer_create_counter', 'metric_type': 'count'}, + {'metric_name': 'eventing.timer_create_failure', 'metric_type': 'count'}, + {'metric_name': 'eventing.timer_msg_counter', 'metric_type': 'gauge'}, + {'metric_name': 'eventing.worker_restart_count', 'metric_type': 'count'}, + {'metric_name': 'eventing.worker_spawn_counter', 'metric_type': 'count'}, + {'metric_name': 'exposer.request_latencies', 'metric_type': 'gauge'}, + {'metric_name': 'exposer.scrapes_total', 'metric_type': 'count'}, + {'metric_name': 'exposer.transferred_bytes_total', 'metric_type': 'count'}, + {'metric_name': 'fts.avg_grpc_queries_latency', 'metric_type': 'gauge'}, + {'metric_name': 'fts.avg_internal_queries_latency', 'metric_type': 'gauge'}, + {'metric_name': 'fts.avg_queries_latency', 'metric_type': 'gauge'}, + {'metric_name': 'fts.batch_bytes_added', 'metric_type': 'count'}, + {'metric_name': 'fts.batch_bytes_removed', 'metric_type': 'count'}, + {'metric_name': 'fts.boot_timestamp_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'fts.counter_cu_total', 'metric_type': 'count'}, + {'metric_name': 'fts.counter_ru_total', 'metric_type': 'count'}, + {'metric_name': 'fts.counter_wu_total', 'metric_type': 'count'}, + {'metric_name': 'fts.credit_cu_total', 'metric_type': 'count'}, + {'metric_name': 'fts.credit_ru_total', 'metric_type': 'count'}, + {'metric_name': 'fts.credit_wu_total', 'metric_type': 'count'}, + {'metric_name': 'fts.curr_batches_blocked_by_herder', 'metric_type': 'gauge'}, + {'metric_name': 'fts.doc_count', 'metric_type': 'count'}, + {'metric_name': 'fts.global_query_timer_count', 'metric_type': 'count'}, + {'metric_name': 'fts.global_query_timer_mean_ns', 'metric_type': 'gauge'}, + {'metric_name': 'fts.global_query_timer_median_ns', 'metric_type': 'gauge'}, + {'metric_name': 'fts.global_query_timer_p80_ns', 'metric_type': 'gauge'}, + {'metric_name': 'fts.global_query_timer_p99_ns', 'metric_type': 'gauge'}, + {'metric_name': 'fts.grpc_query_timer_count', 'metric_type': 'count'}, + {'metric_name': 'fts.grpc_query_timer_mean_ns', 'metric_type': 'gauge'}, + {'metric_name': 'fts.grpc_query_timer_median_ns', 'metric_type': 'gauge'}, + {'metric_name': 'fts.grpc_query_timer_p80_ns', 'metric_type': 'gauge'}, + {'metric_name': 'fts.grpc_query_timer_p99_ns', 'metric_type': 'gauge'}, + {'metric_name': 'fts.meter_cu_total', 'metric_type': 'count'}, + {'metric_name': 'fts.meter_ru_total', 'metric_type': 'count'}, + {'metric_name': 'fts.meter_wu_total', 'metric_type': 'count'}, + {'metric_name': 'fts.num_batches_introduced', 'metric_type': 'count'}, + {'metric_name': 'fts.num_bytes_ram_quota', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_bytes_used_disk', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_bytes_used_disk_by_root', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_bytes_used_ram', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_bytes_used_ram_c', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_files_on_disk', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_indexes', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_knn_queries_rejected_by_throttler', 'metric_type': 'count'}, + {'metric_name': 'fts.num_knn_search_requests', 'metric_type': 'count'}, + {'metric_name': 'fts.num_mutations_to_index', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_pindexes_actual', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_pindexes_target', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_recs_to_persist', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_root_filesegments', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_root_memorysegments', 'metric_type': 'gauge'}, + {'metric_name': 'fts.num_vector_indexes', 'metric_type': 'gauge'}, + {'metric_name': 'fts.op_count_total', 'metric_type': 'count'}, + {'metric_name': 'fts.pct_cpu_gc', 'metric_type': 'gauge'}, + {'metric_name': 'fts.pct_used_ram', 'metric_type': 'gauge'}, + {'metric_name': 'fts.reject_count_total', 'metric_type': 'count'}, + {'metric_name': 'fts.scoped_query_timer_count', 'metric_type': 'count'}, + {'metric_name': 'fts.scoped_query_timer_mean_ns', 'metric_type': 'gauge'}, + {'metric_name': 'fts.scoped_query_timer_median_ns', 'metric_type': 'gauge'}, + {'metric_name': 'fts.scoped_query_timer_p80_ns', 'metric_type': 'gauge'}, + {'metric_name': 'fts.scoped_query_timer_p99_ns', 'metric_type': 'gauge'}, + {'metric_name': 'fts.throttle_count_total', 'metric_type': 'count'}, + {'metric_name': 'fts.throttle_seconds_total', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_batches_flushed_on_maxops', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_batches_flushed_on_timer', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_bleve_dest_closed', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_bleve_dest_opened', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_grpc_listeners_closed', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_grpc_listeners_opened', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_grpc_queryreject_on_memquota', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_grpcs_listeners_closed', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_grpcs_listeners_opened', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_http_limitlisteners_closed', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_http_limitlisteners_opened', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_https_limitlisteners_closed', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_https_limitlisteners_opened', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_queryreject_on_memquota', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_remote_grpc', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_remote_grpc_ssl', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_remote_grpc_tls', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_remote_http', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_remote_http2', 'metric_type': 'count'}, + {'metric_name': 'fts.tot_remote_http_ssl', 'metric_type': 'count'}, + {'metric_name': 'fts.total_bytes_indexed', 'metric_type': 'gauge'}, + {'metric_name': 'fts.total_bytes_query_results', 'metric_type': 'count'}, + {'metric_name': 'fts.total_compaction_written_bytes', 'metric_type': 'count'}, + {'metric_name': 'fts.total_create_index_bad_request_error', 'metric_type': 'gauge'}, + {'metric_name': 'fts.total_create_index_internal_server_error', 'metric_type': 'gauge'}, + {'metric_name': 'fts.total_create_index_request', 'metric_type': 'gauge'}, + {'metric_name': 'fts.total_create_index_request_ok', 'metric_type': 'gauge'}, + {'metric_name': 'fts.total_delete_index_bad_request_error', 'metric_type': 'gauge'}, + {'metric_name': 'fts.total_delete_index_internal_server_error', 'metric_type': 'gauge'}, + {'metric_name': 'fts.total_delete_index_request', 'metric_type': 'gauge'}, + {'metric_name': 'fts.total_delete_index_request_ok', 'metric_type': 'gauge'}, + {'metric_name': 'fts.total_gc', 'metric_type': 'count'}, + {'metric_name': 'fts.total_grpc_internal_queries', 'metric_type': 'count'}, + {'metric_name': 'fts.total_grpc_queries', 'metric_type': 'count'}, + {'metric_name': 'fts.total_grpc_queries_error', 'metric_type': 'count'}, + {'metric_name': 'fts.total_grpc_queries_slow', 'metric_type': 'count'}, + {'metric_name': 'fts.total_grpc_queries_timeout', 'metric_type': 'count'}, + {'metric_name': 'fts.total_internal_queries', 'metric_type': 'count'}, + {'metric_name': 'fts.total_knn_queries_rejected_by_throttler', 'metric_type': 'gauge'}, + {'metric_name': 'fts.total_knn_searches', 'metric_type': 'count'}, + {'metric_name': 'fts.total_mutations_filtered', 'metric_type': 'count'}, + {'metric_name': 'fts.total_queries', 'metric_type': 'count'}, + {'metric_name': 'fts.total_queries_bad_request_error', 'metric_type': 'count'}, + {'metric_name': 'fts.total_queries_consistency_error', 'metric_type': 'count'}, + {'metric_name': 'fts.total_queries_error', 'metric_type': 'count'}, + {'metric_name': 'fts.total_queries_max_result_window_exceeded_error', 'metric_type': 'count'}, + {'metric_name': 'fts.total_queries_partial_results_error', 'metric_type': 'count'}, + {'metric_name': 'fts.total_queries_rejected_by_herder', 'metric_type': 'count'}, + {'metric_name': 'fts.total_queries_search_in_context_error', 'metric_type': 'count'}, + {'metric_name': 'fts.total_queries_slow', 'metric_type': 'count'}, + {'metric_name': 'fts.total_queries_timeout', 'metric_type': 'count'}, + {'metric_name': 'fts.total_queries_to_actives', 'metric_type': 'count'}, + {'metric_name': 'fts.total_queries_to_replicas', 'metric_type': 'count'}, + {'metric_name': 'fts.total_request_time', 'metric_type': 'count'}, + {'metric_name': 'fts.total_synonym_searches', 'metric_type': 'count'}, + {'metric_name': 'fts.total_term_searchers', 'metric_type': 'count'}, + {'metric_name': 'fts.total_term_searchers_finished', 'metric_type': 'count'}, + {'metric_name': 'fts.total_vectors', 'metric_type': 'gauge'}, + {'metric_name': 'hdd.free', 'metric_type': 'gauge'}, + {'metric_name': 'hdd.quota_total', 'metric_type': 'gauge'}, + {'metric_name': 'hdd.total', 'metric_type': 'gauge'}, + {'metric_name': 'hdd.used', 'metric_type': 'gauge'}, + {'metric_name': 'hdd.used_by_data', 'metric_type': 'gauge'}, + {'metric_name': 'index.avg_array_length', 'metric_type': 'gauge'}, + {'metric_name': 'index.avg_disk_bps', 'metric_type': 'gauge'}, + {'metric_name': 'index.avg_drain_rate', 'metric_type': 'gauge'}, + {'metric_name': 'index.avg_item_size', 'metric_type': 'gauge'}, + {'metric_name': 'index.avg_mutation_rate', 'metric_type': 'gauge'}, + {'metric_name': 'index.avg_resident_percent', 'metric_type': 'gauge'}, + {'metric_name': 'index.avg_scan_latency', 'metric_type': 'gauge'}, + {'metric_name': 'index.cache_hit_percent', 'metric_type': 'gauge'}, + {'metric_name': 'index.cache_hits', 'metric_type': 'count'}, + {'metric_name': 'index.cache_misses', 'metric_type': 'count'}, + {'metric_name': 'index.codebook_mem_usage', 'metric_type': 'count'}, + {'metric_name': 'index.codebook_train_duration', 'metric_type': 'count'}, + {'metric_name': 'index.data_size', 'metric_type': 'gauge'}, + {'metric_name': 'index.data_size_on_disk', 'metric_type': 'gauge'}, + {'metric_name': 'index.disk_bytes', 'metric_type': 'count'}, + {'metric_name': 'index.disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'index.docid_count', 'metric_type': 'gauge'}, + {'metric_name': 'index.frag_percent', 'metric_type': 'gauge'}, + {'metric_name': 'index.heap_in_use', 'metric_type': 'gauge'}, + {'metric_name': 'index.initial_build_progress', 'metric_type': 'gauge'}, + {'metric_name': 'index.items_count', 'metric_type': 'gauge'}, + {'metric_name': 'index.last_known_scan_time', 'metric_type': 'gauge'}, + {'metric_name': 'index.log_space_on_disk', 'metric_type': 'gauge'}, + {'metric_name': 'index.memory_quota', 'metric_type': 'gauge'}, + {'metric_name': 'index.memory_rss', 'metric_type': 'gauge'}, + {'metric_name': 'index.memory_total_storage', 'metric_type': 'gauge'}, + {'metric_name': 'index.memory_used', 'metric_type': 'gauge'}, + {'metric_name': 'index.memory_used_storage', 'metric_type': 'gauge'}, + {'metric_name': 'index.memory_used_total', 'metric_type': 'gauge'}, + {'metric_name': 'index.net_avg_scan_rate', 'metric_type': 'gauge'}, + {'metric_name': 'index.num_diverging_replica_indexes', 'metric_type': 'gauge'}, + {'metric_name': 'index.num_docs_indexed', 'metric_type': 'count'}, + {'metric_name': 'index.num_docs_pending', 'metric_type': 'gauge'}, + {'metric_name': 'index.num_docs_queued', 'metric_type': 'gauge'}, + {'metric_name': 'index.num_indexes', 'metric_type': 'gauge'}, + {'metric_name': 'index.num_items_flushed', 'metric_type': 'count'}, + {'metric_name': 'index.num_pending_requests', 'metric_type': 'gauge'}, + {'metric_name': 'index.num_requests', 'metric_type': 'count'}, + {'metric_name': 'index.num_rows_returned', 'metric_type': 'count'}, + {'metric_name': 'index.num_rows_scanned', 'metric_type': 'count'}, + {'metric_name': 'index.num_scan_errors', 'metric_type': 'count'}, + {'metric_name': 'index.num_scan_timeouts', 'metric_type': 'count'}, + {'metric_name': 'index.num_storage_instances', 'metric_type': 'gauge'}, + {'metric_name': 'index.partn_is_diverging_replica', 'metric_type': 'gauge'}, + {'metric_name': 'index.partn_items_count', 'metric_type': 'gauge'}, + {'metric_name': 'index.raw_data_size', 'metric_type': 'gauge'}, + {'metric_name': 'index.recs_in_mem', 'metric_type': 'gauge'}, + {'metric_name': 'index.recs_on_disk', 'metric_type': 'gauge'}, + {'metric_name': 'index.resident_percent', 'metric_type': 'gauge'}, + {'metric_name': 'index.scan_bytes_read', 'metric_type': 'count'}, + {'metric_name': 'index.scan_cache_hits', 'metric_type': 'count'}, + {'metric_name': 'index.scan_cache_misses', 'metric_type': 'count'}, + {'metric_name': 'index.state', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_avg_item_size', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_bytes_incoming', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_bytes_written', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_cleaner_blk_read_bs', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_cleaner_num_reads', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_compression_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_current_quota', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_heap_limit', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_blk_read_bs', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_blk_reads_bs_get', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_blk_reads_bs_lookup', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_buf_memused', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_bytes_incoming', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_bytes_written', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_compacts', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_compression_ratio_avg', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_fragmentation', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_memory_used', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_num_reads', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_num_reads_get', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_num_reads_lookup', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_resident_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_total_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_hvi_total_used_size', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_items_count', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_lookup_blk_reads_bs', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_lookup_num_reads', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_lss_blk_rdr_reads_bs', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_lss_blk_read_bs', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_lss_fragmentation', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_lss_num_reads', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_lss_used_space', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_memory_stats_size_page', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_num_burst_visits', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_num_evictable', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_num_evicted', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_num_pages', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_num_periodic_visits', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_purges', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_reclaim_pending_global', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_resident_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'index.storage_rlss_num_reads', 'metric_type': 'gauge'}, + {'metric_name': 'index.total_data_size', 'metric_type': 'gauge'}, + {'metric_name': 'index.total_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'index.total_drain_rate', 'metric_type': 'gauge'}, + {'metric_name': 'index.total_mutation_queue_size', 'metric_type': 'gauge'}, + {'metric_name': 'index.total_pending_scans', 'metric_type': 'gauge'}, + {'metric_name': 'index.total_raw_data_size', 'metric_type': 'gauge'}, + {'metric_name': 'index.total_requests', 'metric_type': 'count'}, + {'metric_name': 'index.total_rows_returned', 'metric_type': 'count'}, + {'metric_name': 'index.total_rows_scanned', 'metric_type': 'count'}, + {'metric_name': 'index.total_scan_duration', 'metric_type': 'count'}, + {'metric_name': 'indexer.indexer_state', 'metric_type': 'gauge'}, + {'metric_name': 'indexer.memory_quota', 'metric_type': 'gauge'}, + {'metric_name': 'indexer.memory_total_storage', 'metric_type': 'gauge'}, + {'metric_name': 'indexer.memory_used', 'metric_type': 'gauge'}, + {'metric_name': 'indexer.total_indexer_gc_pause_ns', 'metric_type': 'gauge'}, + {'metric_name': 'kv.audit_dropped_events', 'metric_type': 'count'}, + {'metric_name': 'kv.audit_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.auth_cmds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.auth_errors', 'metric_type': 'gauge'}, + {'metric_name': 'kv.bg_batch_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.bg_load_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.bg_wait_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.boot_timestamp_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.clients', 'metric_type': 'gauge'}, + {'metric_name': 'kv.cmd_duration_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.cmd_lookup', 'metric_type': 'count'}, + {'metric_name': 'kv.cmd_lookup_10s_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.cmd_lookup_10s_duration_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.cmd_mutation', 'metric_type': 'count'}, + {'metric_name': 'kv.cmd_mutation_10s_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.cmd_mutation_10s_duration_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.cmd_total_gets', 'metric_type': 'count'}, + {'metric_name': 'kv.cmd_total_ops', 'metric_type': 'count'}, + {'metric_name': 'kv.cmd_total_sets', 'metric_type': 'count'}, + {'metric_name': 'kv.collection_data_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.collection_history', 'metric_type': 'gauge'}, + {'metric_name': 'kv.collection_item_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.collection_maxTTL_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.collection_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.collection_ops', 'metric_type': 'count'}, + {'metric_name': 'kv.conflicts_resolved', 'metric_type': 'count'}, + {'metric_name': 'kv.conn_timeslice_yields', 'metric_type': 'count'}, + {'metric_name': 'kv.conn_yields', 'metric_type': 'count'}, + {'metric_name': 'kv.connection_structures', 'metric_type': 'gauge'}, + {'metric_name': 'kv.couch_docs_actual_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.couch_spatial_data_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.couch_spatial_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.couch_spatial_ops', 'metric_type': 'gauge'}, + {'metric_name': 'kv.couch_views_actual_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.couch_views_data_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.couch_views_disk_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.couch_views_ops', 'metric_type': 'gauge'}, + {'metric_name': 'kv.curr_connections', 'metric_type': 'gauge'}, + {'metric_name': 'kv.curr_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.curr_items_tot', 'metric_type': 'gauge'}, + {'metric_name': 'kv.curr_temp_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.current_external_client_connections', 'metric_type': 'gauge'}, + {'metric_name': 'kv.daemon_connections', 'metric_type': 'gauge'}, + {'metric_name': 'kv.daemon_memory_allocated_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.daemon_memory_resident_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.datatype_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_backoff', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_connection_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_items_backfilled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_items_remaining', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_items_sent', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_max_running_backfills', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_num_running_backfills', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_paused_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_queue_fill', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_ready_queue_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_stream_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_total_data_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_total_uncompressed_data_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.dcp_unpaused_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.disk_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.domain_memory_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_access_scanner_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_access_scanner_last_runtime_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_access_scanner_num_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_access_scanner_task_time', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_ahead_exceptions', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_allow_sanitize_value_in_deletion', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_alog_block_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_alog_max_stored_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_alog_resident_ratio_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_alog_sleep_time', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_alog_task_time', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_arena_memory_allocated_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_arena_memory_resident_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_backfill_mem_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_behind_exceptions', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_bfilter_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bfilter_fp_prob', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bfilter_key_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bfilter_residency_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bg_fetch_avg_read_amplification_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bg_fetched', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_bg_fetched_compaction', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_bg_load_avg_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bg_load_seconds', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_bg_max_load_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bg_max_wait_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bg_meta_fetched', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_bg_min_load_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bg_min_wait_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bg_num_samples', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bg_remaining_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bg_remaining_jobs', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bg_wait_avg_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_bg_wait_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_blob_num', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_blob_num_allocated_total', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_blob_num_freed_total', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_bucket_quota_change_task_poll_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_cache_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_computed_max_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_consumer_limit_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_destruction_tasks', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_max_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_memory_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_memory_overhead_allocator_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_memory_overhead_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_memory_pending_destruction_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_memory_quota_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_memory_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_memory_recovery_lower_mark', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_memory_recovery_lower_mark_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_memory_recovery_upper_mark', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_memory_recovery_upper_mark_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_memory_unreferenced_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_checkpoint_remover_task_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_chk_expel_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_chk_max_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_chk_period', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_chk_persistence_remains', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_chk_persistence_timeout_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_chk_remover_stime', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_clock_cas_drift_threshold_exceeded', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_collections_drop_compaction_delay', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_collections_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_commit_num', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_commit_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_commit_time_total_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_compaction_aborted', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_compaction_exp_mem_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_compaction_expire_from_start', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_compaction_expiry_fetch_inline', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_compaction_failed', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_compaction_max_concurrent_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_compaction_write_queue_cap', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_concurrent_pagers', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_connection_cleanup_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_connection_manager_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_couchstore_file_cache_max_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_couchstore_midpoint_rollback_optimisation', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_couchstore_mprotect', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_couchstore_tracing', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_couchstore_write_validation', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_cross_bucket_ht_quota_sharing', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_cursor_dropping_checkpoint_mem_lower_mark', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_cursor_dropping_checkpoint_mem_upper_mark', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_cursor_dropping_lower_mark', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_cursor_dropping_lower_threshold_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_cursor_dropping_upper_mark', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_cursor_dropping_upper_threshold_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_cursor_memory_freed_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_cursors_dropped', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_data_read_failed', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_data_traffic_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_data_write_failed', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_db_data_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_db_file_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_db_history_file_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_db_history_start_timestamp_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_db_prepare_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_backfill_byte_drain_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_backfill_byte_limit', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_backfill_in_progress_per_connection_limit', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_conn_buffer_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_conn_buffer_size_aggr_mem_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_conn_buffer_size_aggressive_perc', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_conn_buffer_size_max', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_conn_buffer_size_perc', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_consumer_buffer_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_consumer_control_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_consumer_flow_control_ack_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_consumer_flow_control_ack_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_consumer_flow_control_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_consumer_process_buffered_messages_batch_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_consumer_process_buffered_messages_yield_limit', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_consumer_process_unacked_bytes_yield_limit', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_enable_noop', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_idle_timeout', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_min_compression_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_noop_mandatory_for_v5_features', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_noop_tx_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_oso_backfill_large_value_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_oso_backfill_small_item_size_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_oso_backfill_small_value_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_oso_max_collections_per_backfill', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_producer_catch_exceptions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_producer_processor_run_duration_us', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_producer_snapshot_marker_yield_limit', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_scan_byte_limit', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_scan_item_limit', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_dcp_takeover_max_time', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_age_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_auto_lower_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_auto_max_sleep', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_auto_min_sleep', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_auto_pid_d', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_auto_pid_dt', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_auto_pid_i', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_auto_pid_p', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_auto_upper_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_chunk_duration', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_num_moved', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_num_visited', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_sleep_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_stored_value_age_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_defragmenter_sv_num_moved', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_degraded_mode', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_diskqueue_drain', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_diskqueue_fill', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_diskqueue_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_diskqueue_memory_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_diskqueue_pending', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_durability_timeout_task_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_ephemeral_metadata_mark_stale_chunk_duration', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_ephemeral_metadata_purge_age', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_ephemeral_metadata_purge_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_ephemeral_metadata_purge_stale_chunk_duration', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_exp_pager_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_exp_pager_initial_run_time', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_exp_pager_stime', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_expired_access', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_expired_compactor', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_expired_pager', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_expiry_pager_concurrency', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_expiry_pager_task_time', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_failpartialwarmup', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_flush_batch_max_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_flush_duration_total_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_flusher_todo', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_flusher_total_batch_limit', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_freq_counter_increment_factor', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_fsync_after_every_n_bytes_written', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_getl_default_timeout', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_getl_max_timeout', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_history_retention_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_history_retention_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_hlc_drift_ahead_threshold_us', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_hlc_drift_behind_threshold_us', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_hlc_drift_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_hlc_drift_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_ht_item_memory_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_ht_locks', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_ht_resize_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_ht_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_io_bg_fetch_read_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_io_compaction_read_bytes_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_io_compaction_write_bytes_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_io_document_write_bytes_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_io_total_read_bytes_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_io_total_write_bytes_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_begin_failed', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_commit_failed', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_compressor_chunk_duration', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_compressor_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_compressor_num_compressed', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_compressor_num_visited', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_eviction_age_percentage', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_eviction_freq_counter_age_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_eviction_initial_mfu_percentile', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_eviction_initial_mfu_update_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_flush_expired', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_flush_failed', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_freq_decayer_chunk_duration', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_freq_decayer_percent', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_num', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_num_allocated_total', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_item_num_based_new_chk', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_item_num_freed_total', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_items_expelled_from_checkpoints', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_items_rm_from_checkpoints', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_keep_closed_chks', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_key_value_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_active_disk_usage_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_block_cache_hits', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_block_cache_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_block_cache_misses', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_bloom_filter_accuracy', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_bloom_filter_accuracy_for_bottom_level', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_bloom_filter_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_buffer_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_bytes_incoming_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_bytes_outgoing_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_bytes_per_read_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_checkpoint_disk_usage_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_checkpoint_every_batch', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_checkpoint_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_checkpoint_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_compactions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_data_blocks_compressed_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_data_blocks_compression_ratio_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_data_blocks_space_reduction_estimate_pct_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_data_blocks_uncompressed_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_delete_frag_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_delete_memtable_writecache', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_enable_block_cache', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_enable_direct_io', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_enable_group_commit', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_enable_memory_optimized_writes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_enable_upsert', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_enable_wal', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_expiry_frag_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_expiry_purger_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_filecount_compactions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_flusher_thread_percentage', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_flushes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_fragmentation_percentage', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_fragmentation_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_gets', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_group_commit_max_sync_wait_duration_ms', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_group_commit_max_transaction_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_heartbeat_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_histogram_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_history_logical_data_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_history_logical_disk_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_history_size_evicted_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_history_time_evicted_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_index_resident_ratio_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_initial_wal_buffer_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_inserts', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_key_tree_data_block_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_key_tree_index_block_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_keyindex_filecount_compactions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_keyindex_writer_compactions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_logical_data_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_logical_disk_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_lsmtree_object_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_max_checkpoints', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_max_default_storage_threads', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_max_level_0_ttl', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_max_recovery_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_max_write_cache', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_mem_quota_low_watermark_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_mem_quota_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_min_checkpoint_interval', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_min_value_block_size_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_per_document_compression_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_read_ahead_buffer_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_read_bytes_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_read_bytes_compact_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_read_bytes_get_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_readamp_get_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_readamp_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_readio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_readioamp_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_seq_tree_data_block_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_seq_tree_index_block_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_seqindex_data_compactions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_seqindex_delta_bytes_incoming_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_seqindex_delta_write_bytes_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_seqindex_filecount_compactions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_seqindex_writer_compactions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_sets', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_sync_every_batch', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_syncs', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_table_meta_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_table_object_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_tables', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_tables_created', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_tables_deleted', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_total_disk_usage_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_total_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_tree_snapshot_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_ttl_compactions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_value_separation_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_wal_disk_usage_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_wal_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_write_bytes_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_write_bytes_compact_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_write_cache_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_write_cache_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_magma_writer_compactions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_max_checkpoints', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_max_failover_entries', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_max_item_privileged_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_max_item_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_max_num_bgfetchers', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_max_num_flushers', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_max_num_shards', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_max_num_workers', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_max_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_max_threads', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_max_ttl', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_max_vbuckets', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_mem_freed_by_checkpoint_item_expel_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_mem_freed_by_checkpoint_removal_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_mem_high_wat', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_mem_high_wat_percent_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_mem_low_wat', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_mem_low_wat_percent_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_mem_tracker_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_mem_used_merge_threshold_percent', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_meta_data_disk_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_meta_data_memory_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_min_compression_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_mutation_mem_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_mutation_mem_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_nexus_concurrent_flush_compaction_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_nexus_implicit_compaction_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_not_locked_returns_tmpfail', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_num_access_scanner_runs', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_num_access_scanner_skips', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_num_auxio_threads', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_num_checkpoints', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_num_checkpoints_allocated_total', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_num_checkpoints_freed_total', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_num_checkpoints_pending_destruction', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_num_eject_failures', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_num_expiry_pager_runs', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_num_freq_decayer_runs', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_num_non_resident', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_num_nonio_threads', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_num_not_my_vbuckets', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_num_pager_runs', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_num_reader_threads', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_num_value_ejects', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_num_workers', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_num_writer_threads', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_oom_errors', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_pager_active_vb_pcnt', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_pager_sleep_time_ms', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_pending_compactions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_pending_ops', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_pending_ops_max', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_pending_ops_max_duration_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_pending_ops_total', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_persist_vbstate_total', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_persistent_metadata_purge_age', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_pitr_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_pitr_granularity', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_pitr_max_history_age', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_queue_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_range_scan_kv_store_scan_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_range_scan_max_continue_tasks', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_range_scan_max_lifetime', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_range_scan_read_buffer_send_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_replication_throttle_cap_pcnt', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_replication_throttle_queue_cap', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_replication_throttle_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_retain_erroneous_tombstones', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_rocksdb_block_cache_high_pri_pool_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_rocksdb_block_cache_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_rocksdb_high_pri_background_threads', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_rocksdb_low_pri_background_threads', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_rocksdb_memtables_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_rocksdb_uc_max_size_amplification_percent', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_rocksdb_write_rate_limit', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_rollback_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_seqno_persistence_timeout', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_startup_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_storage_age_highwat_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_storage_age_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_storedval_num', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_storedval_num_allocated_total', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_storedval_num_freed_total', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_storedval_size_allocated_total_bytes', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_storedval_size_freed_total_bytes', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_sync_writes_max_allowed_replicas', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_tmp_oom_errors', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_total_cache_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_total_deduplicated', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_total_deduplicated_flusher', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_total_del_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_total_enqueued', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_total_new_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_total_persisted', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_uncommitted_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_value_size_allocated_total_bytes', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_value_size_freed_total_bytes', 'metric_type': 'count'}, + {'metric_name': 'kv.ep_vb_total', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_vbucket_del', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_vbucket_del_avg_walltime_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_vbucket_del_fail', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_vbucket_del_max_walltime_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_vbucket_mapping_sanity_checking', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_access_log', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_backfill_scan_chunk_duration', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_batch_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_dups', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_estimate_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_estimated_key_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_estimated_value_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_key_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_keys_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_min_item_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_min_items_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_min_memory_threshold', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_oom', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_status', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_thread', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_warmup_value_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_workload_monitor_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ep_xattr_enabled', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ephemeral_vb_checkpoint_memory_overhead_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ephemeral_vb_ht_memory_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.iovused_high_watermark', 'metric_type': 'gauge'}, + {'metric_name': 'kv.item_alloc_sizes_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.items_in_transit', 'metric_type': 'gauge'}, + {'metric_name': 'kv.lock_errors', 'metric_type': 'gauge'}, + {'metric_name': 'kv.logical_data_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.magma_bytes_incoming_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.magma_compactions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.magma_itr', 'metric_type': 'gauge'}, + {'metric_name': 'kv.magma_write_bytes_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.magma_write_bytes_filecount_compact_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.manifest_force', 'metric_type': 'gauge'}, + {'metric_name': 'kv.manifest_uid', 'metric_type': 'gauge'}, + {'metric_name': 'kv.max_system_connections', 'metric_type': 'gauge'}, + {'metric_name': 'kv.max_user_connections', 'metric_type': 'gauge'}, + {'metric_name': 'kv.mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.mem_used_estimate_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.memcache_curr_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.memcache_engine_maxbytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.memcache_evictions', 'metric_type': 'gauge'}, + {'metric_name': 'kv.memcache_mem_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.memcache_reclaimed', 'metric_type': 'gauge'}, + {'metric_name': 'kv.memcache_total_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.memory_overhead_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.memory_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.msgused_high_watermark', 'metric_type': 'gauge'}, + {'metric_name': 'kv.num_high_pri_requests', 'metric_type': 'gauge'}, + {'metric_name': 'kv.num_vbuckets', 'metric_type': 'gauge'}, + {'metric_name': 'kv.op_count_total', 'metric_type': 'count'}, + {'metric_name': 'kv.ops', 'metric_type': 'gauge'}, + {'metric_name': 'kv.ops_failed', 'metric_type': 'gauge'}, + {'metric_name': 'kv.read_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.reject_count_total', 'metric_type': 'count'}, + {'metric_name': 'kv.rejected_conns', 'metric_type': 'gauge'}, + {'metric_name': 'kv.rollback_item_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.scope_collection_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.scope_data_limit', 'metric_type': 'gauge'}, + {'metric_name': 'kv.stat_reset', 'metric_type': 'gauge'}, + {'metric_name': 'kv.stat_timings_mem_usage_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.storage_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.subdoc_lookup_extracted_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.subdoc_lookup_searched_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.subdoc_mutation_inserted_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.subdoc_mutation_updated_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.subdoc_ops', 'metric_type': 'gauge'}, + {'metric_name': 'kv.subdoc_update_races', 'metric_type': 'gauge'}, + {'metric_name': 'kv.sync_write_commit_duration_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.system_connections', 'metric_type': 'gauge'}, + {'metric_name': 'kv.thread_cpu_usage_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.threads', 'metric_type': 'gauge'}, + {'metric_name': 'kv.throttle_count_total', 'metric_type': 'count'}, + {'metric_name': 'kv.throttle_seconds_total', 'metric_type': 'count'}, + {'metric_name': 'kv.time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.total_connections', 'metric_type': 'count'}, + {'metric_name': 'kv.total_memory_overhead_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.total_memory_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.total_resp_errors', 'metric_type': 'gauge'}, + {'metric_name': 'kv.uptime_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.user_connections', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_auto_delete_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_bloom_filter_memory_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_checkpoint_memory_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_checkpoint_memory_overhead_allocator_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_checkpoint_memory_overhead_allocator_index_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_checkpoint_memory_overhead_allocator_index_key_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_checkpoint_memory_overhead_allocator_queue_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_checkpoint_memory_overhead_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_checkpoint_memory_overhead_index_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_checkpoint_memory_overhead_queue_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_checkpoint_memory_queue_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_checkpoint_memory_unreferenced_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_curr_items', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_dm_mem_used_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_dm_num_tracked', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_eject', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_evictable_mfu', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_expired', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_ht_avg_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_ht_item_memory_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_ht_item_memory_uncompressed_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_ht_max_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_ht_memory_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_ht_tombstone_purged_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_itm_memory_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_itm_memory_uncompressed_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_max_history_disk_size_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_mem_freed_by_checkpoint_item_expel_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_mem_freed_by_checkpoint_removal_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_meta_data_disk_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_meta_data_memory_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_num_non_resident', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_ops_create', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_ops_delete', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_ops_get', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_ops_reject', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_ops_update', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_perc_mem_resident_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_queue_age_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_queue_drain', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_queue_fill', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_queue_memory_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_queue_pending_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_queue_size', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_rollback_item_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_seqlist_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_seqlist_deleted_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_seqlist_purged_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_seqlist_read_range_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_seqlist_stale_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_seqlist_stale_metadata_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_seqlist_stale_value_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_sync_write_aborted_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_sync_write_accepted_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.vb_sync_write_committed_count', 'metric_type': 'gauge'}, + {'metric_name': 'kv.written_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.active_requests', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.allocated_values', 'metric_type': 'count'}, + {'metric_name': 'n1ql.approx_vector_distance_func', 'metric_type': 'count'}, + {'metric_name': 'n1ql.at_plus', 'metric_type': 'count'}, + {'metric_name': 'n1ql.audit_actions', 'metric_type': 'count'}, + {'metric_name': 'n1ql.audit_actions_failed', 'metric_type': 'count'}, + {'metric_name': 'n1ql.audit_requests_filtered', 'metric_type': 'count'}, + {'metric_name': 'n1ql.audit_requests_total', 'metric_type': 'count'}, + {'metric_name': 'n1ql.boot_timestamp_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.bucket_reads', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.bucket_retries', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.bucket_writes', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.bulk_get_errors', 'metric_type': 'count'}, + {'metric_name': 'n1ql.cancelled', 'metric_type': 'count'}, + {'metric_name': 'n1ql.cas_mismatch_errors', 'metric_type': 'count'}, + {'metric_name': 'n1ql.counter_cu_total', 'metric_type': 'count'}, + {'metric_name': 'n1ql.credit_cu_total', 'metric_type': 'count'}, + {'metric_name': 'n1ql.credit_ru_total', 'metric_type': 'count'}, + {'metric_name': 'n1ql.credit_wu_total', 'metric_type': 'count'}, + {'metric_name': 'n1ql.curl_call_errors', 'metric_type': 'count'}, + {'metric_name': 'n1ql.curl_calls', 'metric_type': 'count'}, + {'metric_name': 'n1ql.cvi_request_timer_15m_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_1m_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_5m_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_count', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_max', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_mean', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_mean_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_median', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_min', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_p75', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_p95', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_p99', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_p99point9', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.cvi_request_timer_stddev', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.deletes', 'metric_type': 'count'}, + {'metric_name': 'n1ql.engine_error_count', 'metric_type': 'count'}, + {'metric_name': 'n1ql.errors', 'metric_type': 'count'}, + {'metric_name': 'n1ql.ffdc_manual', 'metric_type': 'count'}, + {'metric_name': 'n1ql.ffdc_memory_limit', 'metric_type': 'count'}, + {'metric_name': 'n1ql.ffdc_memory_rate', 'metric_type': 'count'}, + {'metric_name': 'n1ql.ffdc_memory_threshold', 'metric_type': 'count'}, + {'metric_name': 'n1ql.ffdc_plus_queue_full', 'metric_type': 'count'}, + {'metric_name': 'n1ql.ffdc_request_queue_full', 'metric_type': 'count'}, + {'metric_name': 'n1ql.ffdc_shutdown', 'metric_type': 'count'}, + {'metric_name': 'n1ql.ffdc_sigterm', 'metric_type': 'count'}, + {'metric_name': 'n1ql.ffdc_stalled_queue', 'metric_type': 'count'}, + {'metric_name': 'n1ql.ffdc_total', 'metric_type': 'count'}, + {'metric_name': 'n1ql.fts_searches', 'metric_type': 'count'}, + {'metric_name': 'n1ql.fts_searches_svi', 'metric_type': 'count'}, + {'metric_name': 'n1ql.hvi_request_timer_15m_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_1m_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_5m_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_count', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_max', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_mean', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_mean_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_median', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_min', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_p75', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_p95', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_p99', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_p99point9', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.hvi_request_timer_stddev', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.index_scans', 'metric_type': 'count'}, + {'metric_name': 'n1ql.index_scans_cvi', 'metric_type': 'count'}, + {'metric_name': 'n1ql.index_scans_fts', 'metric_type': 'count'}, + {'metric_name': 'n1ql.index_scans_gsi', 'metric_type': 'count'}, + {'metric_name': 'n1ql.index_scans_hvi', 'metric_type': 'count'}, + {'metric_name': 'n1ql.index_scans_seq', 'metric_type': 'count'}, + {'metric_name': 'n1ql.inserts', 'metric_type': 'count'}, + {'metric_name': 'n1ql.invalid_requests', 'metric_type': 'count'}, + {'metric_name': 'n1ql.load', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.load_factor', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.mem_quota_exceeded_errors', 'metric_type': 'count'}, + {'metric_name': 'n1ql.meter_cu_total', 'metric_type': 'count'}, + {'metric_name': 'n1ql.mutations', 'metric_type': 'count'}, + {'metric_name': 'n1ql.node_memory', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.node_rss', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.op_count_total', 'metric_type': 'count'}, + {'metric_name': 'n1ql.prepared', 'metric_type': 'count'}, + {'metric_name': 'n1ql.primary_scans', 'metric_type': 'count'}, + {'metric_name': 'n1ql.primary_scans_fts', 'metric_type': 'count'}, + {'metric_name': 'n1ql.primary_scans_gsi', 'metric_type': 'count'}, + {'metric_name': 'n1ql.primary_scans_seq', 'metric_type': 'count'}, + {'metric_name': 'n1ql.queued_requests', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.reject_count_total', 'metric_type': 'count'}, + {'metric_name': 'n1ql.request_time', 'metric_type': 'count'}, + {'metric_name': 'n1ql.request_timer_15m_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_1m_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_5m_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_count', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_max', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_mean', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_mean_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_median', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_min', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_p75', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_p95', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_p99', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_p99point9', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.request_timer_stddev', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.requests', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_1000ms', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_250ms', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_5000ms', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_500ms', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_cvi', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_gsi', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_hvi', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_natural_ftssql', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_natural_jsudf', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_natural_sql', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_natural_total', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_search', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_svi', 'metric_type': 'count'}, + {'metric_name': 'n1ql.requests_vector', 'metric_type': 'count'}, + {'metric_name': 'n1ql.result_count', 'metric_type': 'count'}, + {'metric_name': 'n1ql.result_size', 'metric_type': 'count'}, + {'metric_name': 'n1ql.scan_plus', 'metric_type': 'count'}, + {'metric_name': 'n1ql.selects', 'metric_type': 'count'}, + {'metric_name': 'n1ql.service_time', 'metric_type': 'count'}, + {'metric_name': 'n1ql.spills_order', 'metric_type': 'count'}, + {'metric_name': 'n1ql.svi_request_timer_15m_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_1m_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_5m_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_count', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_max', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_mean', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_mean_rate', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_median', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_min', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_p75', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_p95', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_p99', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_p99point9', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.svi_request_timer_stddev', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.temp_hwm', 'metric_type': 'count'}, + {'metric_name': 'n1ql.temp_space_errors', 'metric_type': 'count'}, + {'metric_name': 'n1ql.temp_usage', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.tenant_kv_throttle_count', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.tenant_kv_throttle_seconds_total', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.tenant_memory', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.tenant_reads', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.tenant_retries', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.tenant_writes', 'metric_type': 'gauge'}, + {'metric_name': 'n1ql.throttle_count_total', 'metric_type': 'count'}, + {'metric_name': 'n1ql.throttle_seconds_total', 'metric_type': 'count'}, + {'metric_name': 'n1ql.timeouts', 'metric_type': 'count'}, + {'metric_name': 'n1ql.transaction_time', 'metric_type': 'count'}, + {'metric_name': 'n1ql.transactions', 'metric_type': 'count'}, + {'metric_name': 'n1ql.unauthorized_users', 'metric_type': 'count'}, + {'metric_name': 'n1ql.unbounded', 'metric_type': 'count'}, + {'metric_name': 'n1ql.updates', 'metric_type': 'count'}, + {'metric_name': 'n1ql.user_error_count', 'metric_type': 'count'}, + {'metric_name': 'n1ql.vector_distance_func', 'metric_type': 'count'}, + {'metric_name': 'n1ql.warnings', 'metric_type': 'count'}, + {'metric_name': 'query.cores', 'metric_type': 'gauge'}, + {'metric_name': 'query.cpu_sys_percent', 'metric_type': 'gauge'}, + {'metric_name': 'query.cpu_user_percent', 'metric_type': 'gauge'}, + {'metric_name': 'query.gc_num', 'metric_type': 'gauge'}, + {'metric_name': 'query.gc_pause_percent', 'metric_type': 'gauge'}, + {'metric_name': 'query.gc_pause_time', 'metric_type': 'gauge'}, + {'metric_name': 'query.memory_system', 'metric_type': 'gauge'}, + {'metric_name': 'query.memory_total', 'metric_type': 'gauge'}, + {'metric_name': 'query.memory_usage', 'metric_type': 'gauge'}, + {'metric_name': 'query.request_active_count', 'metric_type': 'gauge'}, + {'metric_name': 'query.request_completed_count', 'metric_type': 'gauge'}, + {'metric_name': 'query.request_per_sec_15min', 'metric_type': 'gauge'}, + {'metric_name': 'query.request_per_sec_1min', 'metric_type': 'gauge'}, + {'metric_name': 'query.request_per_sec_5min', 'metric_type': 'gauge'}, + {'metric_name': 'query.request_prepared_percent', 'metric_type': 'gauge'}, + {'metric_name': 'query.request_time_80percentile', 'metric_type': 'gauge'}, + {'metric_name': 'query.request_time_95percentile', 'metric_type': 'gauge'}, + {'metric_name': 'query.request_time_99percentile', 'metric_type': 'gauge'}, + {'metric_name': 'query.request_time_mean', 'metric_type': 'gauge'}, + {'metric_name': 'query.request_time_median', 'metric_type': 'gauge'}, + {'metric_name': 'query.total_threads', 'metric_type': 'gauge'}, + {'metric_name': 'ram.quota_total', 'metric_type': 'gauge'}, + {'metric_name': 'ram.quota_total_per_node', 'metric_type': 'gauge'}, + {'metric_name': 'ram.quota_used', 'metric_type': 'gauge'}, + {'metric_name': 'ram.quota_used_per_node', 'metric_type': 'gauge'}, + {'metric_name': 'ram.total', 'metric_type': 'gauge'}, + {'metric_name': 'ram.used', 'metric_type': 'gauge'}, + {'metric_name': 'ram.used_by_data', 'metric_type': 'gauge'}, + {'metric_name': 'sdk.invalid_metric_total', 'metric_type': 'count'}, + {'metric_name': 'sgw.audit_num_audits_filtered_by_role', 'metric_type': 'count'}, + {'metric_name': 'sgw.audit_num_audits_filtered_by_user', 'metric_type': 'count'}, + {'metric_name': 'sgw.audit_num_audits_logged', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_abandoned_seqs', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_chan_cache_active_revs', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_chan_cache_bypass_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_chan_cache_channels_added', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_chan_cache_channels_evicted_inactive', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_chan_cache_channels_evicted_nru', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_chan_cache_compact_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_chan_cache_compact_time', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_chan_cache_hits', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_chan_cache_max_entries', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_chan_cache_misses', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_chan_cache_num_channels', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_chan_cache_pending_queries', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_chan_cache_removal_revs', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_chan_cache_tombstone_revs', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_current_skipped_seq_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_high_seq_cached', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_high_seq_stable', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_non_mobile_ignored_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_num_active_channels', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_num_skipped_seqs', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_pending_seq_len', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_rev_cache_bypass', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_rev_cache_hits', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_rev_cache_misses', 'metric_type': 'count'}, + {'metric_name': 'sgw.cache_revision_cache_num_items', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_revision_cache_total_memory', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_skipped_seq_cap', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_skipped_seq_len', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.cache_view_queries', 'metric_type': 'count'}, + {'metric_name': 'sgw.collection_doc_reads_bytes', 'metric_type': 'count'}, + {'metric_name': 'sgw.collection_doc_writes_bytes', 'metric_type': 'count'}, + {'metric_name': 'sgw.collection_import_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.collection_num_doc_reads', 'metric_type': 'count'}, + {'metric_name': 'sgw.collection_num_doc_writes', 'metric_type': 'count'}, + {'metric_name': 'sgw.collection_sync_function_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.collection_sync_function_exception_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.collection_sync_function_reject_access_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.collection_sync_function_reject_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.collection_sync_function_time', 'metric_type': 'count'}, + {'metric_name': 'sgw.config_database_config_bucket_mismatches', 'metric_type': 'count'}, + {'metric_name': 'sgw.config_database_config_collection_conflicts', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_compaction_attachment_start_time', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.database_compaction_tombstone_start_time', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.database_conflict_write_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_crc32c_match_count', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.database_dcp_caching_count', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.database_dcp_caching_time', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.database_dcp_received_count', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.database_dcp_received_time', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.database_doc_reads_bytes_blip', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_doc_writes_bytes', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_doc_writes_bytes_blip', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_doc_writes_xattr_bytes', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_high_seq_feed', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_http_bytes_written', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_num_attachments_compacted', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_num_doc_reads_blip', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_num_doc_reads_rest', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_num_doc_writes', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_num_idle_kv_ops', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_num_public_rest_requests', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_num_replications_active', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.database_num_replications_rejected_limit', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_num_replications_total', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_num_tombstones_compacted', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_public_rest_bytes_read', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_replication_bytes_received', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_replication_bytes_sent', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_sequence_assigned_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_sequence_get_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_sequence_incr_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_sequence_released_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_sequence_reserved_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_sync_function_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_sync_function_exception_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_sync_function_time', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_total_sync_time', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_warn_channel_name_size_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_warn_channels_per_doc_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_warn_grants_per_doc_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.database_warn_xattr_size_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.delta_sync_delta_cache_hit', 'metric_type': 'count'}, + {'metric_name': 'sgw.delta_sync_delta_pull_replication_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.delta_sync_delta_push_doc_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.delta_sync_delta_sync_miss', 'metric_type': 'count'}, + {'metric_name': 'sgw.delta_sync_deltas_requested', 'metric_type': 'count'}, + {'metric_name': 'sgw.delta_sync_deltas_sent', 'metric_type': 'count'}, + {'metric_name': 'sgw.gsi_views__count', 'metric_type': 'count'}, + {'metric_name': 'sgw.gsi_views__error_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.gsi_views__time', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_expected_sequence_len', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_expected_sequence_len_post_cleanup', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_processed_sequence_len', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_processed_sequence_len_post_cleanup', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_pull_attachment_pull_bytes', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_pull_attachment_pull_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_pull_max_pending', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.replication_pull_norev_send_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_pull_num_pull_repl_active_continuous', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.replication_pull_num_pull_repl_active_one_shot', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.replication_pull_num_pull_repl_caught_up', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.replication_pull_num_pull_repl_since_zero', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_pull_num_pull_repl_total_caught_up', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.replication_pull_num_pull_repl_total_continuous', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.replication_pull_num_pull_repl_total_one_shot', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.replication_pull_num_replications_active', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.replication_pull_replacement_rev_send_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_pull_request_changes_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_pull_request_changes_time', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_pull_rev_error_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_pull_rev_processing_time', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.replication_pull_rev_send_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_pull_rev_send_latency', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_push_attachment_push_bytes', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_push_attachment_push_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_push_doc_push_count', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.replication_push_doc_push_error_count', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.replication_push_propose_change_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_push_propose_change_time', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_push_write_processing_time', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.replication_push_write_throttled_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_push_write_throttled_time', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_conflict_resolved_local_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_conflict_resolved_merge_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_conflict_resolved_remote_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_deltas_recv', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_deltas_requested', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_deltas_sent', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_docs_checked_recv', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_docs_checked_sent', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_attachment_bytes_pulled', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_attachment_bytes_pushed', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_attachments_pulled', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_attachments_pushed', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_connect_attempts_pull', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_connect_attempts_push', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_docs_failed_to_pull', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_docs_failed_to_push', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_docs_pulled', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_docs_purged', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_docs_pushed', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_handlers_panicked', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_reconnects_aborted_pull', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_num_reconnects_aborted_push', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_push_conflict_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.replication_sgr_push_rejected_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.resource_utilization_admin_net_bytes_recv', 'metric_type': 'count'}, + {'metric_name': 'sgw.resource_utilization_admin_net_bytes_sent', 'metric_type': 'count'}, + {'metric_name': 'sgw.resource_utilization_error_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.resource_utilization_go_memstats_heapalloc', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_go_memstats_heapidle', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_go_memstats_heapinuse', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_go_memstats_heapreleased', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_go_memstats_pausetotalns', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_go_memstats_stackinuse', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_go_memstats_stacksys', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_go_memstats_sys', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_goroutines_high_watermark', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_node_cpu_percent_utilization', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_num_goroutines', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_process_cpu_percent_utilization', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_process_memory_resident', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_pub_net_bytes_recv', 'metric_type': 'count'}, + {'metric_name': 'sgw.resource_utilization_pub_net_bytes_sent', 'metric_type': 'count'}, + {'metric_name': 'sgw.resource_utilization_system_memory_total', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.resource_utilization_uptime', 'metric_type': 'count'}, + {'metric_name': 'sgw.resource_utilization_warn_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.security_auth_failed_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.security_auth_success_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.security_num_access_errors', 'metric_type': 'count'}, + {'metric_name': 'sgw.security_num_docs_rejected', 'metric_type': 'count'}, + {'metric_name': 'sgw.security_total_auth_time', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.shared_bucket_import_import_cancel_cas', 'metric_type': 'count'}, + {'metric_name': 'sgw.shared_bucket_import_import_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.shared_bucket_import_import_error_count', 'metric_type': 'count'}, + {'metric_name': 'sgw.shared_bucket_import_import_high_seq', 'metric_type': 'count'}, + {'metric_name': 'sgw.shared_bucket_import_import_partitions', 'metric_type': 'gauge'}, + {'metric_name': 'sgw.shared_bucket_import_import_processing_time', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.admin_net_bytes_recv', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.admin_net_bytes_sent', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.assertion_fail_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.abandoned_seqs', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_active_revs', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_bypass_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_channels_added', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_channels_evicted_inactive', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_channels_evicted_nru', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_compact_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_compact_time', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_hits', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_max_entries', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_misses', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_num_channels', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_pending_queries', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_removal_revs', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.chan_cache_tombstone_revs', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.current_skipped_seq_count', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.cache.high_seq_cached', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.cache.high_seq_stable', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.cache.non_mobile_ignored_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.num_active_channels', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.num_skipped_seqs', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.pending_seq_len', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.rev_cache_bypass', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.rev_cache_hits', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.rev_cache_misses', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cache.revision_cache_num_items', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.cache.revision_cache_total_memory', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.cache.skipped_seq_cap', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.cache.skipped_seq_len', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.cache.skipped_sequence_skip_list_nodes', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.cache.view_queries', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.attachment_pull_bytes', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.attachment_pull_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.max_pending', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.norev_send_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.num_pull_repl_active_continuous', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.num_pull_repl_active_one_shot', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.num_pull_repl_caught_up', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.num_pull_repl_since_zero', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.num_pull_repl_total_caught_up', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.num_pull_repl_total_continuous', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.num_pull_repl_total_one_shot', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.num_replications_active', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.replacement_rev_send_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.request_changes_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.request_changes_time', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.rev_error_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.rev_processing_time', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.rev_send_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_pull.rev_send_latency', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_push.attachment_push_bytes', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_push.attachment_push_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_push.doc_push_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_push.doc_push_error_count', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.cbl_replication_push.propose_change_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_push.propose_change_time', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_push.sync_function_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_push.sync_function_time', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_push.write_processing_time', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_push.write_throttled_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.cbl_replication_push.write_throttled_time', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.abandoned_seqs', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.cache_feed.dcp_backfill_completed', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.cache_feed.dcp_backfill_expected', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.cache_feed.dcp_rollback_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.compaction_attachment_start_time', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.database.compaction_tombstone_start_time', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.database.conflict_write_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.corrupt_sequence_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.crc32c_match_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.dcp_caching_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.dcp_caching_time', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.dcp_received_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.dcp_received_time', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.database.doc_reads_bytes_blip', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.doc_writes_bytes', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.doc_writes_bytes_blip', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.doc_writes_xattr_bytes', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.high_seq_feed', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.database.import_feed.dcp_backfill_completed', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.import_feed.dcp_backfill_expected', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.import_feed.dcp_rollback_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.last_sequence_assigned_value', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.database.last_sequence_reserved_value', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.database.num_attachments_compacted', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.num_doc_reads_blip', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.num_doc_reads_rest', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.num_doc_writes', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.num_doc_writes_rejected', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.num_docs_post_filter_public_all_docs', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.num_docs_pre_filter_public_all_docs', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.num_public_all_docs_requests', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.num_public_rest_requests', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.num_replications_active', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.num_replications_rejected_limit', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.num_replications_total', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.num_tombstones_compacted', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.database.public_rest_bytes_read', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.public_rest_bytes_written', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.replication_bytes_received', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.replication_bytes_sent', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.resync_num_changed', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.resync_num_processed', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.sequence_assigned_count', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.database.sequence_get_count', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.database.sequence_incr_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.sequence_released_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.sequence_reserved_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.sync_function_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.sync_function_exception_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.sync_function_time', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.total_init_fatal_errors', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.total_online_fatal_errors', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.total_sync_time', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.warn_channel_name_size_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.warn_channels_per_doc_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.warn_grants_per_doc_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.database.warn_xattr_size_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.error_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.go_memstats_heapalloc', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.go_memstats_heapidle', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.go_memstats_heapinuse', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.go_memstats_heapreleased', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.go_memstats_pausetotalns', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.go_memstats_stackinuse', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.go_memstats_stacksys', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.go_memstats_sys', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.goroutines_high_watermark', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.idle_kv_ops', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.idle_query_ops', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.node_cpu_percent_utilization', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.num_goroutines', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.process_cpu_percent_utilization', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.process_memory_resident', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.pub_net_bytes_recv', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.pub_net_bytes_sent', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.security.auth_failed_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.security.auth_success_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.security.num_access_errors', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.security.num_docs_rejected', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.security.total_auth_time', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.shared_bucket_import.import_cancel_cas', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.shared_bucket_import.import_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.shared_bucket_import.import_error_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.shared_bucket_import.import_feed_processed_count', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.shared_bucket_import.import_high_seq', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.shared_bucket_import.import_partitions', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.shared_bucket_import.import_processing_time', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.system_memory_total', 'metric_type': 'count'}, + {'metric_name': 'sync_gateway.uptime', 'metric_type': 'gauge'}, + {'metric_name': 'sync_gateway.warn_count', 'metric_type': 'count'}, + {'metric_name': 'sys.allocstall', 'metric_type': 'count'}, + {'metric_name': 'sys.cpu_burst_rate', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_cgroup_seconds_total', 'metric_type': 'count'}, + {'metric_name': 'sys.cpu_cgroup_usage_seconds_total', 'metric_type': 'count'}, + {'metric_name': 'sys.cpu_cores_available', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_host_cores_available', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_host_idle_rate', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_host_other_rate', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_host_seconds_total', 'metric_type': 'count'}, + {'metric_name': 'sys.cpu_host_sys_rate', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_host_user_rate', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_host_utilization_rate', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_irq_rate', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_stolen_rate', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_sys_rate', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_throttled_rate', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_user_rate', 'metric_type': 'gauge'}, + {'metric_name': 'sys.cpu_utilization_rate', 'metric_type': 'gauge'}, + {'metric_name': 'sys.disk_queue', 'metric_type': 'gauge'}, + {'metric_name': 'sys.disk_queue_depth', 'metric_type': 'gauge'}, + {'metric_name': 'sys.disk_read_bytes', 'metric_type': 'count'}, + {'metric_name': 'sys.disk_read_time_seconds', 'metric_type': 'count'}, + {'metric_name': 'sys.disk_reads', 'metric_type': 'count'}, + {'metric_name': 'sys.disk_time_seconds', 'metric_type': 'count'}, + {'metric_name': 'sys.disk_usage_ratio', 'metric_type': 'gauge'}, + {'metric_name': 'sys.disk_write_bytes', 'metric_type': 'count'}, + {'metric_name': 'sys.disk_write_time_seconds', 'metric_type': 'count'}, + {'metric_name': 'sys.disk_writes', 'metric_type': 'count'}, + {'metric_name': 'sys.mem_actual_free', 'metric_type': 'gauge'}, + {'metric_name': 'sys.mem_actual_used', 'metric_type': 'gauge'}, + {'metric_name': 'sys.mem_cgroup_actual_used', 'metric_type': 'gauge'}, + {'metric_name': 'sys.mem_cgroup_limit', 'metric_type': 'gauge'}, + {'metric_name': 'sys.mem_cgroup_used', 'metric_type': 'gauge'}, + {'metric_name': 'sys.mem_free', 'metric_type': 'gauge'}, + {'metric_name': 'sys.mem_free_sys', 'metric_type': 'gauge'}, + {'metric_name': 'sys.mem_limit', 'metric_type': 'gauge'}, + {'metric_name': 'sys.mem_total', 'metric_type': 'gauge'}, + {'metric_name': 'sys.mem_used_sys', 'metric_type': 'gauge'}, + {'metric_name': 'sys.pressure_share_time_stalled', 'metric_type': 'gauge'}, + {'metric_name': 'sys.pressure_total_stall_time_usec', 'metric_type': 'count'}, + {'metric_name': 'sys.swap_total', 'metric_type': 'gauge'}, + {'metric_name': 'sys.swap_used', 'metric_type': 'gauge'}, + {'metric_name': 'sysproc.cpu_seconds_total', 'metric_type': 'count'}, + {'metric_name': 'sysproc.cpu_utilization', 'metric_type': 'gauge'}, + {'metric_name': 'sysproc.major_faults_raw', 'metric_type': 'count'}, + {'metric_name': 'sysproc.mem_resident', 'metric_type': 'gauge'}, + {'metric_name': 'sysproc.mem_share', 'metric_type': 'gauge'}, + {'metric_name': 'sysproc.mem_size', 'metric_type': 'gauge'}, + {'metric_name': 'sysproc.minor_faults_raw', 'metric_type': 'gauge'}, + {'metric_name': 'sysproc.page_faults_raw', 'metric_type': 'gauge'}, + {'metric_name': 'sysproc.start_time', 'metric_type': 'count'}, + {'metric_name': 'xdcr.add_docs_cas_changed_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.add_docs_written_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.add_failed_cr_target_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.atr_txn_docs_filtered_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.binary_filtered_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.changes_left_total', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.client_txn_docs_filtered_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_crd_docs_written_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_docs_filtered_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_docs_written_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_eaccesses_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_fatal_resps_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_guardrail_hits_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_hibernated_count_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_impossible_resps_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_not_my_vbs_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_nw_errors_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_other_errors_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_pool_get_timedout_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_queue_full_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_src_docs_written_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_status', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.clog_tgt_docs_written_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_throttled_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_tmpfails_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_unknown_collections_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_unknown_resps_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.clog_write_timedout_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.data_merge_failed_bytes', 'metric_type': 'count'}, + {'metric_name': 'xdcr.data_merged_bytes', 'metric_type': 'count'}, + {'metric_name': 'xdcr.data_replicated_bytes', 'metric_type': 'count'}, + {'metric_name': 'xdcr.data_replicated_uncompress_bytes', 'metric_type': 'count'}, + {'metric_name': 'xdcr.datapool_failed_gets_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.dcp_datach_length_total', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.dcp_dispatch_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.deletion_cloned_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.deletion_docs_cas_changed_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.deletion_docs_written_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.deletion_failed_cr_source_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.deletion_failed_cr_target_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.deletion_filtered_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.deletion_received_from_dcp_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.deletion_target_docs_skipped_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_cas_poisoned_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_checked_total', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.docs_cloned_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_compression_skipped_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_failed_cr_source_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_failed_cr_target_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_filtered_on_txn_xattr_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_filtered_on_user_defined_filter_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_filtered_total', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.docs_merge_cas_changed_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_merge_failed_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_merged_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_opt_repd_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_processed_total', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.docs_received_from_dcp_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_sent_with_poisonedCas_errorMode_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_sent_with_poisonedCas_replaceMode_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_sent_with_subdoc_delete_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_sent_with_subdoc_set_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.docs_unable_to_filter_total', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.docs_written_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.expiry_docs_merge_failed_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.expiry_docs_merged_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.expiry_docs_written_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.expiry_failed_cr_source_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.expiry_failed_cr_target_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.expiry_filtered_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.expiry_merge_cas_changed_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.expiry_received_from_dcp_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.expiry_stripped_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.expiry_target_docs_skipped_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.get_docs_cas_changed_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.guardrail_data_size_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.guardrail_disk_space_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.guardrail_resident_ratio_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.hlv_pruned_at_merge_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.hlv_pruned_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.hlv_updated_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.import_docs_failed_cr_source_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.import_docs_written_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.mobile_docs_filtered_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.num_checkpoints_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.num_failedckpts_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.number_of_replications_total', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.number_of_source_nodes_total', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.number_of_source_replications_total', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.pipeline_errors', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.pipeline_status', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.resp_wait_time_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.seqno_adv_received_from_dcp_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.set_docs_cas_changed_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.set_docs_written_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.set_failed_cr_source_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.set_failed_cr_target_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.set_filtered_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.set_received_from_dcp_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.set_target_docs_skipped_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.size_rep_queue_bytes', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.source_sync_xattr_removed_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.subdoc_cmd_docs_cas_changed_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.subdoc_cmd_docs_skipped_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.system_events_received_from_dcp_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.target_docs_skipped_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.target_eaccess_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.target_sync_xattr_preserved_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.target_tmpfail_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.target_unknown_status_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.throttle_latency_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.throughput_throttle_latency_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.time_committing_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.true_conflicts_detected_total', 'metric_type': 'count'}, + {'metric_name': 'xdcr.wtavg_docs_latency_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.wtavg_get_doc_latency_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.wtavg_merge_latency_seconds', 'metric_type': 'gauge'}, + {'metric_name': 'xdcr.wtavg_meta_latency_seconds', 'metric_type': 'gauge'}] # fmt: skip diff --git a/couchbase/hatch.toml b/couchbase/hatch.toml index aeec7f11a1d85..37389950b9d62 100644 --- a/couchbase/hatch.toml +++ b/couchbase/hatch.toml @@ -5,6 +5,12 @@ python = ["3.13"] # https://www.couchbase.com/support-policy/EOL/ version = ["7.0", "7.1", "7.2", "7.6"] +# Metric source: REST or Prometheus +metricsource = ["rest", "prometheus"] + +[envs.default.env-vars] +COUCHBASE_METRIC_SOURCE = "rest" + [envs.default.overrides] matrix.version.env-vars = [ { key = "COUCHBASE_VERSION", value = "7.0.5", if = ["7.0"] }, @@ -16,3 +22,6 @@ matrix.version.env-vars = [ { key = "COUCHBASE_SYNCGW_VERSION", value = "3.3.0", if = ["7.2"] }, { key = "COUCHBASE_SYNCGW_VERSION", value = "3.3.0", if = ["7.6"] }, ] +matrix.metricsource.env-vars = [ + { key = "COUCHBASE_METRIC_SOURCE", value = "prometheus", if = ["prometheus"] }, +] diff --git a/couchbase/metadata.csv b/couchbase/metadata.csv index 26880e937e707..b8df8acf0e8a0 100644 --- a/couchbase/metadata.csv +++ b/couchbase/metadata.csv @@ -1,4 +1,10 @@ metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric,sample_tags +couchbase.backup.data_size,gauge,,byte,,Repository backed up data size,0,couchbase,,, +couchbase.backup.dispatched,count,,task,,Number of tasks dispatched to be run,0,couchbase,,, +couchbase.backup.location_check,count,,check,,Number of location checks performed,0,couchbase,,, +couchbase.backup.task_duration_seconds,gauge,,second,,Histogram of the task duration,0,couchbase,,, +couchbase.backup.task_orphaned,count,,task,,Number of tasks that were triggered to run but the status is unknown,0,couchbase,,, +couchbase.backup.task_run,count,,task,,Number of tasks run,0,couchbase,,, couchbase.by_bucket.avg_bg_wait_time,gauge,,microsecond,,Average background wait time,-1,couchbase,avg bg wait,, couchbase.by_bucket.avg_disk_commit_time,gauge,,second,,Average disk commit time,-1,couchbase,avg commit time,, couchbase.by_bucket.avg_disk_update_time,gauge,,microsecond,,Average disk update time ,-1,couchbase,avg update time,, @@ -186,45 +192,1166 @@ couchbase.by_node.mem_used,gauge,,byte,,Engine's total memory usage (deprecated) couchbase.by_node.ops,gauge,,operation,,Total number of operations,0,couchbase,node ops,, couchbase.by_node.vb_active_num_non_resident,gauge,,item,,Number of non resident vBuckets in the active state for this bucket,0,couchbase,node vb active num non resident,, couchbase.by_node.vb_replica_curr_items,gauge,,item,,Number of in memory items,0,couchbase,vb replica curr items,, +couchbase.cbas.active_links,gauge,,item,,Number of active links.,0,couchbase,,, +couchbase.cbas.direct_memory_used_bytes,gauge,,byte,,Direct memory used in bytes.,0,couchbase,,, +couchbase.cbas.disk_used_bytes,gauge,,byte,,Disk used in bytes.,0,couchbase,,, +couchbase.cbas.disk_used_bytes_total,gauge,,byte,,Disk used in bytes.,0,couchbase,,, +couchbase.cbas.driver_boot_timestamp_seconds,gauge,,second,,Analytics driver process boot timestamp in seconds since Unix epoch.,0,couchbase,,, +couchbase.cbas.failed_to_parse_records_count,gauge,,record,,Total number of records which failed to parse.,-1,couchbase,,, +couchbase.cbas.failed_to_parse_records_total,count,,record,,Total number of records which failed to parse.,-1,couchbase,,, +couchbase.cbas.gc_count_total,count,,garbage collection,,Total number of garbage collections.,0,couchbase,,, +couchbase.cbas.gc_time_milliseconds_total,count,,millisecond,,Total time of garbage collections in milliseconds.,0,couchbase,,, +couchbase.cbas.gc_time_seconds_total,count,,second,,Total time of garbage collections in fractional seconds.,0,couchbase,,, +couchbase.cbas.heap_memory_committed_bytes,gauge,,byte,,Heap memory committed in bytes.,0,couchbase,,, +couchbase.cbas.heap_memory_used_bytes,gauge,,byte,,Heap memory used in bytes.,0,couchbase,,, +couchbase.cbas.http_requests_failed_total,count,,request,,"Total number of failed http requests, grouped by status code.",-1,couchbase,,, +couchbase.cbas.http_requests_total,count,,request,,Total number of http requests.,0,couchbase,,, +couchbase.cbas.incoming_records_count,gauge,,record,,Total number of incoming records.,0,couchbase,,, +couchbase.cbas.incoming_records_total,count,,record,,Total number of incoming records.,0,couchbase,,, +couchbase.cbas.io_reads_total,count,,read,,Total number of IO reads.,0,couchbase,,, +couchbase.cbas.io_writes_total,count,,write,,Total number of IO writes.,0,couchbase,,, +couchbase.cbas.pending_flush_ops,gauge,,flush,,Total number of pending flush operations.,0,couchbase,,, +couchbase.cbas.pending_merge_ops,gauge,,merge,,Total number of pending merge operations.,0,couchbase,,, +couchbase.cbas.pending_replicate_ops,gauge,,operation,,Total number of pending replication operations.,0,couchbase,,, +couchbase.cbas.pending_requests,gauge,,request,,Number of pending requests.,0,couchbase,,, +couchbase.cbas.queued_http_requests_size,gauge,,request,,Number of queued http requests.,0,couchbase,,, +couchbase.cbas.queued_jobs,gauge,,job,,Number of queued jobs.,0,couchbase,,, +couchbase.cbas.rebalance_cancelled_total,count,,event,,Total number of cancelled rebalances.,0,couchbase,,, +couchbase.cbas.rebalance_failed_total,count,,event,,Total number of rebalance failures.,-1,couchbase,,, +couchbase.cbas.rebalance_successful_total,count,,event,,Total number of successful rebalances.,0,couchbase,,, +couchbase.cbas.requests_total,count,,request,,Total number of received requests.,0,couchbase,,, +couchbase.cbas.running_jobs,gauge,,job,,Number of running jobs.,0,couchbase,,, +couchbase.cbas.system_load_average,gauge,,,,System work load.,0,couchbase,,, +couchbase.cbas.thread_count,gauge,,thread,,Number of threads in use.,0,couchbase,,, +couchbase.cbas.virtual_buffer_cache_used_pages,gauge,,page,,Total number of used memory pages in the virtual buffer cache.,0,couchbase,,, +couchbase.cbas.wrapper_boot_timestamp_seconds,gauge,,second,,Analytics wrapper process boot timestamp in seconds since Unix epoch.,0,couchbase,,, +couchbase.cm.app_telemetry_curr_connections,gauge,,connection,,Number of active app telemetry connections,0,couchbase,,, +couchbase.cm.audit_queue_length,gauge,,entry,,Current number of entries in the audit queue,0,couchbase,,, +couchbase.cm.audit_unsuccessful_retries,count,,event,,Failed attempts to audit,-1,couchbase,,, +couchbase.cm.auth_cache_current_items,gauge,,item,,Current number of items available in cbauth auth cache,0,couchbase,,, +couchbase.cm.auth_cache_hit_total,count,,hit,,Total number of cbauth auth cache hits,0,couchbase,,, +couchbase.cm.auth_cache_max_items,gauge,,item,,Maximum capacity of cbauth auth cache,0,couchbase,,, +couchbase.cm.auth_cache_miss_total,count,,miss,,Total number of cbauth auth cache misses,0,couchbase,,, +couchbase.cm.authentications_total,count,,event,,Number of authentications performed by cluster manager,0,couchbase,,, +couchbase.cm.auto_failover_count,gauge,,event,,Number of auto-failovers,0,couchbase,,, +couchbase.cm.auto_failover_enabled,gauge,,,,"Indicates if auto-failover is enabled (1 = true, 0 = false)",0,couchbase,,, +couchbase.cm.auto_failover_max_count,gauge,,event,,Maximum number of auto-failovers before being disabled,0,couchbase,,, +couchbase.cm.build_streaming_info_total,count,,request,,Number of streaming requests processed,0,couchbase,,, +couchbase.cm.chronicle_append_batch_size_1m_max,gauge,,item,,Maximum append batch size over a minute window,0,couchbase,,, +couchbase.cm.chronicle_append_num_total,count,,operation,,Total number of appends,0,couchbase,,, +couchbase.cm.chronicle_disk_latency_seconds,gauge,,second,,Disk latency,0,couchbase,,, +couchbase.cm.client_cert_cache_current_items,gauge,,item,,Current number of items available in cbauth client_cert cache,0,couchbase,,, +couchbase.cm.client_cert_cache_hit_total,count,,hit,,Total number of cbauth client_cert cache hits,0,couchbase,,, +couchbase.cm.client_cert_cache_max_items,gauge,,item,,Maximum capacity of cbauth client_cert cache,0,couchbase,,, +couchbase.cm.client_cert_cache_miss_total,count,,miss,,Total number of cbauth client_cert cache misses,0,couchbase,,, +couchbase.cm.encr_at_rest_data_status,gauge,,,,"Encryption at rest status per data type (1 - encrypted, 0.5 - partially encrypted, 0 - unencrypted, -1 - unknown)",0,couchbase,,, +couchbase.cm.encr_at_rest_deks_in_use,gauge,,key,,Number of data keys in use per data type,0,couchbase,,, +couchbase.cm.encr_at_rest_drop_deks_events_total,count,,event,,Total number drop DEKs events (when some DEK expires and the system tries to stop using that DEK by re-encrypting data),0,couchbase,,, +couchbase.cm.encr_at_rest_generate_dek_failures_total,count,,event,,Total number of data key generation failures,-1,couchbase,,, +couchbase.cm.encr_at_rest_generate_dek_total,count,,event,,Total number of successful data key generation events,0,couchbase,,, +couchbase.cm.encryption_key_rotation_failures_total,count,,event,,Total number of encryption key rotation failures,-1,couchbase,,, +couchbase.cm.encryption_key_rotations_total,count,,event,,Total number of encryption key rotations,0,couchbase,,, +couchbase.cm.encryption_service_failures_total,count,,event,,Total number of encryption service failures,-1,couchbase,,, +couchbase.cm.erlang_port_count,gauge,,item,,The number of ports in use by the erlang VM,0,couchbase,,, +couchbase.cm.erlang_port_limit,gauge,,item,,The maximum number of ports that the erlang VM can use,0,couchbase,,, +couchbase.cm.erlang_process_count,gauge,,process,,The number of processes in use by the erlang VM,0,couchbase,,, +couchbase.cm.erlang_process_limit,gauge,,process,,The maximum number of processes that the erlang VM can use,0,couchbase,,, +couchbase.cm.failover_safeness_level,gauge,,,,Failover safeness,0,couchbase,,, +couchbase.cm.failover_total,count,,event,,Number of non-graceful failover results,-1,couchbase,,, +couchbase.cm.gc_duration_seconds,gauge,,second,,Time to perform erlang garbage collection,0,couchbase,,, +couchbase.cm.graceful_failover_total,count,,event,,Number of graceful failover results,0,couchbase,,, +couchbase.cm.http_requests_seconds,gauge,,request,second,Number of bucket HTTP requests,0,couchbase,,, +couchbase.cm.http_requests_total,count,,request,,Total number of HTTP requests categorized,0,couchbase,,, +couchbase.cm.index_pausing_runs_total,count,,event,,Number of times indexing was paused on old master node,0,couchbase,,, +couchbase.cm.is_balanced,gauge,,,,"Indicates if cluster is balanced (1 = true, 0 = false). Only reported by the orchestrator node and only updated once every 30 seconds",0,couchbase,,, +couchbase.cm.lease_acquirer_prev_acquire_estimate_in_future_total,count,,event,,Number of times lease period start time estimate is in the future,0,couchbase,,, +couchbase.cm.lease_acquirer_prev_acquire_estimate_minus_start_time_seconds,gauge,,second,,Histogram of lease acquirer estimates,0,couchbase,,, +couchbase.cm.lease_acquirer_start_time_minus_prev_acquire_estimate_seconds,gauge,,second,,Histogram of lease acquirer estimates,0,couchbase,,, +couchbase.cm.lease_acquirer_time_inflight_seconds,gauge,,second,,Histogram of lease inflight seconds,0,couchbase,,, +couchbase.cm.lease_acquirer_used_prev_acquire_estimate_total,count,,event,,Number of times previous estimate was used,0,couchbase,,, +couchbase.cm.lease_acquirer_used_start_estimate_total,count,,event,,Number of times start estimate was used,0,couchbase,,, +couchbase.cm.lease_aquirer_start_time_minus_prev_acquire_estimate_seconds,gauge,,second,,Histogram of lease acquirer estimates,0,couchbase,,, +couchbase.cm.lease_aquirer_time_inflight_seconds,gauge,,second,,Histogram of lease inflight seconds,0,couchbase,,, +couchbase.cm.lease_aquirer_used_start_estimate_total,count,,event,,Number of times start estimate was used,0,couchbase,,, +couchbase.cm.logs_total,count,,item,,Total number of logs logged,0,couchbase,,, +couchbase.cm.memcached_call_time_seconds,gauge,,second,,Amount of time to call memcached,0,couchbase,,, +couchbase.cm.memcached_cmd_total,gauge,,command,,Total number of memcached commands,0,couchbase,,, +couchbase.cm.memcached_e2e_call_time_seconds,gauge,,second,,End to end memcached call times,0,couchbase,,, +couchbase.cm.memcached_q_call_time_seconds,gauge,,second,,Memcached queue call times,0,couchbase,,, +couchbase.cm.mru_cache_add_time_seconds,gauge,,second,,Time to add to MRU cache,0,couchbase,,, +couchbase.cm.mru_cache_flush_time_seconds,gauge,,second,,Time to flush MRU cache,0,couchbase,,, +couchbase.cm.mru_cache_lock_time_seconds,gauge,,second,,Time to lock MRU cache,0,couchbase,,, +couchbase.cm.mru_cache_lookup_time_seconds,gauge,,second,,Time to perform a lookup in the MRU cache,0,couchbase,,, +couchbase.cm.mru_cache_lookup_total,count,,request,,Total number of MRU cache lookups,0,couchbase,,, +couchbase.cm.mru_cache_take_lock_total,count,,event,,Total number of times MRU cache lock was obtained,0,couchbase,,, +couchbase.cm.ns_config_merger_queue_len_1m_max,gauge,,item,,Length of the ns_config merger queue,0,couchbase,,, +couchbase.cm.ns_config_merger_run_time_seconds,gauge,,second,,Amount of time to run the ns_config merger,0,couchbase,,, +couchbase.cm.ns_config_merger_sleep_time_seconds,gauge,,second,,Time ns_config merger was asleep,0,couchbase,,, +couchbase.cm.ns_config_rep_push_keys_retries_total,count,,operation,,Number of total retries pushing keys,0,couchbase,,, +couchbase.cm.odp_report_failed,count,,event,,Number of failures to send on-demand pricing report,-1,couchbase,,, +couchbase.cm.outgoing_http_requests_seconds,gauge,,request,second,Time taken for outgoing HTTP requests,0,couchbase,,, +couchbase.cm.outgoing_http_requests_total,count,,request,,Total number of outgoing HTTP requests,0,couchbase,,, +couchbase.cm.rebalance_in_progress,gauge,,,,"Indicates if a rebalance is running (1 = true, 0 = false). Only reported by the orchestrator node.",0,couchbase,,, +couchbase.cm.rebalance_progress,gauge,,percent,,Estimate of the rebalance progress (0 - 1) for each stage. Only reported by the orchestrator node.,0,couchbase,,, +couchbase.cm.rebalance_stuck,gauge,,,,Boolean indicator of whether the rebalance appears stuck (not making progress),0,couchbase,,, +couchbase.cm.rebalance_total,count,,event,,Number of rebalance results,0,couchbase,,, +couchbase.cm.request_hibernates_total,count,,operation,,Number of times requests were hibernated,0,couchbase,,, +couchbase.cm.request_unhibernates_total,count,,operation,,Number of times requests were unhibernated,0,couchbase,,, +couchbase.cm.resource_limit_reached,gauge,,,,Boolean indicator of whether a resource limit has been reached,0,couchbase,,, +couchbase.cm.rest_request_access_forbidden_total,count,,request,,Number of REST requests failing due inadequate permissions,-1,couchbase,,, +couchbase.cm.rest_request_auth_failure_total,count,,request,,Number of REST requests failing authentication,-1,couchbase,,, +couchbase.cm.rest_request_enters_total,count,,request,,Number of REST requests to enter ns_server,0,couchbase,,, +couchbase.cm.rest_request_failure_total,count,,request,,Number of REST requests failing (see specific code),-1,couchbase,,, +couchbase.cm.rest_request_leaves_total,count,,request,,Number of REST requests to exit ns_server,0,couchbase,,, +couchbase.cm.status_latency_seconds,gauge,,second,,Latency time for status,0,couchbase,,, +couchbase.cm.timer_lag_seconds,gauge,,second,,Number of lag seconds for the canary-in-the-mine,0,couchbase,,, +couchbase.cm.up_cache_current_items,gauge,,item,,Current number of items available in cbauth up cache,0,couchbase,,, +couchbase.cm.up_cache_hit_total,count,,hit,,Total number of cbauth up cache hits,0,couchbase,,, +couchbase.cm.up_cache_max_items,gauge,,item,,Maximum capacity of cbauth up cache,0,couchbase,,, +couchbase.cm.up_cache_miss_total,count,,miss,,Total number of cbauth up cache misses,0,couchbase,,, +couchbase.cm.user_bkts_cache_current_items,gauge,,item,,Current number of items available in cbauth bkts cache,0,couchbase,,, +couchbase.cm.user_bkts_cache_hit_total,count,,hit,,Total number of cbauth bkts cache hits,0,couchbase,,, +couchbase.cm.user_bkts_cache_max_items,gauge,,item,,Maximum capacity of cbauth bkts cache,0,couchbase,,, +couchbase.cm.user_bkts_cache_miss_total,count,,miss,,Total number of cbauth bkts cache misses,0,couchbase,,, +couchbase.cm.uuid_cache_current_items,gauge,,item,,Current number of items available in cbauth uuid cache,0,couchbase,,, +couchbase.cm.uuid_cache_hit_total,count,,hit,,Total number of cbauth uuid cache hits,0,couchbase,,, +couchbase.cm.uuid_cache_max_items,gauge,,item,,Maximum capacity of cbauth uuid cache,0,couchbase,,, +couchbase.cm.uuid_cache_miss_total,count,,miss,,Total number of cbauth uuid cache misses,0,couchbase,,, +couchbase.cm.web_cache_hits_total,count,,hit,,Total number of web cache hits,0,couchbase,,, +couchbase.cm.web_cache_inner_hits_total,count,,hit,,Total number of inner web cache hits,0,couchbase,,, +couchbase.cm.web_cache_updates_total,count,,update,,Total number of web cache updates,0,couchbase,,, +couchbase.eventing.agg_queue_memory,gauge,,byte,,The aggregate memory size of messages across all worker processes,0,couchbase,,, +couchbase.eventing.agg_queue_size,gauge,,message,,The aggregate number of messages across all worker processes,0,couchbase,,, +couchbase.eventing.analytics_op_exception_count,count,,exception,,The total number of analytics query exceptions,-1,couchbase,,, +couchbase.eventing.bkt_ops_cas_mismatch_count,count,,event,,The total number of Key-Value CAS mismatches,-1,couchbase,,, +couchbase.eventing.bucket_op_exception_count,count,,exception,,The total number of Key-Value exceptions,-1,couchbase,,, +couchbase.eventing.checkpoint_failure_count,count,,write,,The total number of failed checkpoint writes,-1,couchbase,,, +couchbase.eventing.dcp_backlog,gauge,,event,,The total number of events not yet processed by eventing function,-1,couchbase,,, +couchbase.eventing.dcp_delete_msg_counter,count,,event,,The total number of delete events processed by worker,0,couchbase,,, +couchbase.eventing.dcp_deletion_sent_to_worker,count,,event,,The total number of delete events sent to worker to be processed by OnDelete function,0,couchbase,,, +couchbase.eventing.dcp_deletion_suppressed_counter,count,,event,,The total number of suppressed delete events,0,couchbase,,, +couchbase.eventing.dcp_expiry_sent_to_worker,count,,event,,The total number of expiry events sent to worker to be processed by OnDelete function,0,couchbase,,, +couchbase.eventing.dcp_mutation_sent_to_worker,count,,event,,The total number of insert or update events sent to worker to be processed by OnUpdate function,0,couchbase,,, +couchbase.eventing.dcp_mutation_suppressed_counter,count,,event,,The total number of suppressed inserts or updates events,0,couchbase,,, +couchbase.eventing.dcp_mutations_msg_counter,count,,event,,The total number of insert or update events processed by worker,0,couchbase,,, +couchbase.eventing.n1ql_op_exception_count,count,,exception,,The total number of Query exceptions,-1,couchbase,,, +couchbase.eventing.on_delete_failure,count,,event,,The total number of failed OnDelete calls,-1,couchbase,,, +couchbase.eventing.on_delete_success,count,,event,,The total number of successful OnDelete calls,0,couchbase,,, +couchbase.eventing.on_update_failure,count,,event,,The total number of failed OnUpdate calls,-1,couchbase,,, +couchbase.eventing.on_update_success,count,,event,,The total number of successful OnUpdate calls,0,couchbase,,, +couchbase.eventing.timeout_count,count,,event,,The total number of JavaScript executions exceeding execution timeout,0,couchbase,,, +couchbase.eventing.timer_callback_failure,count,,event,,The total number of failed timer callback invocations,-1,couchbase,,, +couchbase.eventing.timer_callback_missing_counter,count,,event,,The total number of undefined timer callback functions,0,couchbase,,, +couchbase.eventing.timer_callback_success,count,,event,,The total number of successful timer callback invocations,0,couchbase,,, +couchbase.eventing.timer_cancel_counter,count,,event,,The total number of successful CancelTimer call,0,couchbase,,, +couchbase.eventing.timer_context_size_exception_counter,count,,event,,The total number of timer_create_failure due to payload exceeding timer_context_size,-1,couchbase,,, +couchbase.eventing.timer_create_counter,count,,event,,The total number of successful CreateTimer call,0,couchbase,,, +couchbase.eventing.timer_create_failure,count,,event,,The total number of failed CreateTimer call,-1,couchbase,,, +couchbase.eventing.timer_msg_counter,gauge,,event,,The total number of timer callbacks processed,0,couchbase,,, +couchbase.eventing.worker_restart_count,count,,event,,The total number of times worker is respawned due to worker process crash,0,couchbase,,, +couchbase.eventing.worker_spawn_counter,count,,event,,The total number of times worker process respawned,0,couchbase,,, +couchbase.exposer.request_latencies,gauge,,second,,N/A,0,couchbase,,, +couchbase.exposer.scrapes_total,count,,event,,N/A,0,couchbase,,, +couchbase.exposer.transferred_bytes_total,count,,byte,,N/A,0,couchbase,,, +couchbase.fts.avg_grpc_queries_latency,gauge,,millisecond,,"Average latency per query, using gRPC for streaming, for an index",-1,couchbase,,, +couchbase.fts.avg_internal_queries_latency,gauge,,millisecond,,Average latency of inter-node queries per unit time for an index,-1,couchbase,,, +couchbase.fts.avg_queries_latency,gauge,,millisecond,,Average latency of queries per unit time for an index,-1,couchbase,Search Query Latency,, +couchbase.fts.batch_bytes_added,count,,byte,,Total number of bytes from batches yet to be indexed.,0,couchbase,,, +couchbase.fts.batch_bytes_removed,count,,byte,,Total number of bytes from batches which have been indexed.,0,couchbase,,, +couchbase.fts.boot_timestamp_seconds,gauge,,second,,The time the service booted in fractional seconds since Unix epoch.,0,couchbase,,, +couchbase.fts.counter_cu_total,count,,operation,,The number of distinct operations recording Compute Units (CUs) with Regulator.,0,couchbase,,, +couchbase.fts.counter_ru_total,count,,operation,,The number of distinct operations recording Read Units (RUs) with Regulator.,0,couchbase,,, +couchbase.fts.counter_wu_total,count,,operation,,The number of distinct operations recording Write Units (WUs) with Regulator.,0,couchbase,,, +couchbase.fts.credit_cu_total,count,,unit,,The number of Compute Units (CUs) refunded.,0,couchbase,,, +couchbase.fts.credit_ru_total,count,,unit,,The number of Read Units (RUs) refunded.,0,couchbase,,, +couchbase.fts.credit_wu_total,count,,unit,,The number of Write Units (WUs) refunded.,0,couchbase,,, +couchbase.fts.curr_batches_blocked_by_herder,gauge,,item,,The difference between the number of batches that have been indexed and the number of batches yet to be indexed,0,couchbase,DCP Batches Blocked,, +couchbase.fts.doc_count,count,,document,,Number of documents in the index,0,couchbase,Search Docs,, +couchbase.fts.global_query_timer_count,count,,event,,The number of query timer events received at the global query endpoint,0,couchbase,,, +couchbase.fts.global_query_timer_mean_ns,gauge,,nanosecond,,Mean runtime for queries received at the global query endpoint,0,couchbase,,, +couchbase.fts.global_query_timer_median_ns,gauge,,nanosecond,,Median runtime for queries received at the global query endpoint,0,couchbase,,, +couchbase.fts.global_query_timer_p80_ns,gauge,,nanosecond,,80th percentile runtime for queries received at the global query endpoint,0,couchbase,,, +couchbase.fts.global_query_timer_p99_ns,gauge,,nanosecond,,99th percentile runtime for queries received at the global query endpoint,0,couchbase,,, +couchbase.fts.grpc_query_timer_count,count,,event,,The number of query timer events received at the gRPC endpoint,0,couchbase,,, +couchbase.fts.grpc_query_timer_mean_ns,gauge,,nanosecond,,Mean runtime for queries received at the gRPC endpoint,0,couchbase,,, +couchbase.fts.grpc_query_timer_median_ns,gauge,,nanosecond,,Median runtime for queries received at the gRPC endpoint,0,couchbase,,, +couchbase.fts.grpc_query_timer_p80_ns,gauge,,nanosecond,,80th percentile runtime for queries received at the gRPC endpoint,0,couchbase,,, +couchbase.fts.grpc_query_timer_p99_ns,gauge,,nanosecond,,99th percentile runtime for queries received at the gRPC endpoint,0,couchbase,,, +couchbase.fts.meter_cu_total,count,,second,,The number of Compute Units (CUs) recorded.,0,couchbase,,, +couchbase.fts.meter_ru_total,count,,second,,The number of Read Units (RUs) recorded.,0,couchbase,,, +couchbase.fts.meter_wu_total,count,,second,,The number of Write Units (WUs) recorded.,0,couchbase,,, +couchbase.fts.num_batches_introduced,count,,item,,Total number of batches introduced as part of indexing.,0,couchbase,,, +couchbase.fts.num_bytes_ram_quota,gauge,,byte,,The number of bytes allocated by the cluster manager as maximum usable memory for fts service,0,couchbase,RAM Quota for Search,, +couchbase.fts.num_bytes_used_disk,gauge,,byte,,The number of bytes used on disk by the index,0,couchbase,Search Disk Size,, +couchbase.fts.num_bytes_used_disk_by_root,gauge,,byte,,The number of bytes used on disk by the root segment,0,couchbase,,, +couchbase.fts.num_bytes_used_ram,gauge,,byte,,The number of bytes used in memory,0,couchbase,RAM Used by Search,, +couchbase.fts.num_bytes_used_ram_c,gauge,,byte,,N/A,0,couchbase,,, +couchbase.fts.num_files_on_disk,gauge,,file,,The number of files on disk for an index,0,couchbase,Search Disk Files,, +couchbase.fts.num_indexes,gauge,,index,,Number of search indexes in the cluster,0,couchbase,,, +couchbase.fts.num_knn_queries_rejected_by_throttler,count,,query,,Total number of http query requests with KNN rejected by the throttler,0,couchbase,,, +couchbase.fts.num_knn_search_requests,count,,request,,Total number of search requests with KNN,0,couchbase,,, +couchbase.fts.num_mutations_to_index,gauge,,item,,DCP sequence numbers yet to be indexed for an index,0,couchbase,Search Mutations Remaining,, +couchbase.fts.num_pindexes_actual,gauge,,index,,Total number of pindexes currently,0,couchbase,Search Partitions,, +couchbase.fts.num_pindexes_target,gauge,,index,,Planned/expected number of pindexes,0,couchbase,Search Partitions Expected,, +couchbase.fts.num_recs_to_persist,gauge,,entry,,"The number of entries (terms, records, dictionary rows, etc) by Bleve not yet persisted to storage",0,couchbase,Search Records to Persist,, +couchbase.fts.num_root_filesegments,gauge,,segment,,The number of file segments in the root segment,0,couchbase,Search Disk Segments,, +couchbase.fts.num_root_memorysegments,gauge,,segment,,The number of memory segments in the root segment,0,couchbase,Search Memory Segments,, +couchbase.fts.num_vector_indexes,gauge,,index,,Number of search indexes in the cluster that have vector/vector_base64 fields,0,couchbase,,, +couchbase.fts.op_count_total,count,,operation,,The number of distinct operations recorded with Regulator.,0,couchbase,,, +couchbase.fts.pct_cpu_gc,gauge,,percent,,The percentage of CPU time spent by an index in garbage collection,0,couchbase,,, +couchbase.fts.pct_used_ram,gauge,,percent,,The percentage of RAM quota used by the fts service,0,couchbase,Pct RAM Used by Search,, +couchbase.fts.reject_count_total,count,,event,,The number of times Regulator instructed an operation to be rejected.,0,couchbase,,, +couchbase.fts.scoped_query_timer_count,count,,event,,The number of query timer events received at the scoped query endpoint,0,couchbase,,, +couchbase.fts.scoped_query_timer_mean_ns,gauge,,nanosecond,,Mean runtime for queries received at the scoped query endpoint,0,couchbase,,, +couchbase.fts.scoped_query_timer_median_ns,gauge,,nanosecond,,Median runtime for queries received at the scoped query endpoint,0,couchbase,,, +couchbase.fts.scoped_query_timer_p80_ns,gauge,,nanosecond,,80th percentile runtime for queries received at the scoped query endpoint,0,couchbase,,, +couchbase.fts.scoped_query_timer_p99_ns,gauge,,nanosecond,,99th percentile runtime for queries received at the scoped query endpoint,0,couchbase,,, +couchbase.fts.throttle_count_total,count,,throttle,,The number of times Regulator instructed an operation to throttle.,0,couchbase,,, +couchbase.fts.throttle_seconds_total,count,,second,,The total time spent throttling (in seconds).,0,couchbase,,, +couchbase.fts.tot_batches_flushed_on_maxops,count,,item,,Total number of batches executed due to the batch size being greater than the maximum number of operations per batch,0,couchbase,,, +couchbase.fts.tot_batches_flushed_on_timer,count,,item,,Total number of batches executed at regular intervals,0,couchbase,,, +couchbase.fts.tot_bleve_dest_closed,count,,event,,Total number of times Bleve destinations closed,0,couchbase,,, +couchbase.fts.tot_bleve_dest_opened,count,,event,,The number of times Bleve destinations opened,0,couchbase,,, +couchbase.fts.tot_grpc_listeners_closed,count,,event,,Total number of gRPC listeners closed,0,couchbase,,, +couchbase.fts.tot_grpc_listeners_opened,count,,event,,Total number of gRPC listeners opened,0,couchbase,,, +couchbase.fts.tot_grpc_queryreject_on_memquota,count,,query,,Total number of gRPC queries rejected due to the memory quota being lesser than the estimated memory required for merging search results from all partitions from the query,0,couchbase,,, +couchbase.fts.tot_grpcs_listeners_closed,count,,event,,Total number of gRPC SSL listeners closed,0,couchbase,,, +couchbase.fts.tot_grpcs_listeners_opened,count,,event,,Total number of gRPC SSL listeners opened,0,couchbase,,, +couchbase.fts.tot_http_limitlisteners_closed,count,,event,,Total number of HTTP limit listeners closed,0,couchbase,,, +couchbase.fts.tot_http_limitlisteners_opened,count,,event,,Total number of HTTP limit listeners opened,0,couchbase,,, +couchbase.fts.tot_https_limitlisteners_closed,count,,event,,Total number of HTTPS limit listeners closed,0,couchbase,,, +couchbase.fts.tot_https_limitlisteners_opened,count,,event,,Total number of HTTPS limit listeners opened,0,couchbase,,, +couchbase.fts.tot_queryreject_on_memquota,count,,query,,Total number of queries rejected due to the memory quota being lesser than the estimated memory required for merging search results from all partitions from the query,0,couchbase,,, +couchbase.fts.tot_remote_grpc,count,,request,,Total number of remote(i.e. different node) gRPC requests,0,couchbase,,, +couchbase.fts.tot_remote_grpc_ssl,count,,request,,Total number of remote(i.e. different node) gRPC SSL requests when adding clients.,0,couchbase,,, +couchbase.fts.tot_remote_grpc_tls,count,,request,,Total number of remote(i.e. different node) gRPC SSL requests when adding clients.,0,couchbase,,, +couchbase.fts.tot_remote_http,count,,request,,Total number of remote(i.e. different node) HTTP requests,0,couchbase,,, +couchbase.fts.tot_remote_http2,count,,request,,Total number of remote(i.e. different node) HTTP SSL requests,0,couchbase,,, +couchbase.fts.tot_remote_http_ssl,count,,request,,Total number of remote(i.e. different node) HTTP SSL requests,0,couchbase,,, +couchbase.fts.total_bytes_indexed,gauge,,byte,,Rate of bytes indexed for an index,0,couchbase,Search Index Rate,, +couchbase.fts.total_bytes_query_results,count,,byte,,"Size of results coming back from full text queries for search results, including the entire size of the JSON sent",0,couchbase,Search Result Rate,, +couchbase.fts.total_compaction_written_bytes,count,,byte,,Number of bytes written to disk as a result of compaction,0,couchbase,Search Compaction Rate,, +couchbase.fts.total_create_index_bad_request_error,gauge,,,,N/A,-1,couchbase,,, +couchbase.fts.total_create_index_internal_server_error,gauge,,,,N/A,-1,couchbase,,, +couchbase.fts.total_create_index_request,gauge,,,,N/A,0,couchbase,,, +couchbase.fts.total_create_index_request_ok,gauge,,,,N/A,1,couchbase,,, +couchbase.fts.total_delete_index_bad_request_error,gauge,,,,N/A,-1,couchbase,,, +couchbase.fts.total_delete_index_internal_server_error,gauge,,,,N/A,-1,couchbase,,, +couchbase.fts.total_delete_index_request,gauge,,,,N/A,0,couchbase,,, +couchbase.fts.total_delete_index_request_ok,gauge,,,,N/A,1,couchbase,,, +couchbase.fts.total_gc,count,,garbage collection,,The number of garbage collection events triggered,0,couchbase,,, +couchbase.fts.total_grpc_internal_queries,count,,request,,"The number of internal gRPC requests from the co-ordinating node for the query to other nodes, for an index",0,couchbase,,, +couchbase.fts.total_grpc_queries,count,,query,,"The total number of queries, using gRPC for streaming, for an index",0,couchbase,,, +couchbase.fts.total_grpc_queries_error,count,,query,,"The number of queries that resulted in an error, using gRPC for streaming, for an index",-1,couchbase,,, +couchbase.fts.total_grpc_queries_slow,count,,query,,"The number of queries in the slow query log, using gRPC for streaming, for an index",0,couchbase,,, +couchbase.fts.total_grpc_queries_timeout,count,,query,,"The number of queries that exceeded the timeout, using gRPC for streaming, for an index",0,couchbase,,, +couchbase.fts.total_internal_queries,count,,query,,"The number of internal queries from the co-ordinating node to other nodes, per unit time for an index",0,couchbase,,, +couchbase.fts.total_knn_queries_rejected_by_throttler,gauge,,,,N/A,-1,couchbase,,, +couchbase.fts.total_knn_searches,count,,operation,,Total bleve knn search operations,0,couchbase,,, +couchbase.fts.total_mutations_filtered,count,,operation,,Total number of mutations that qualify for any document filter in an index (in-memory only stat),0,couchbase,,, +couchbase.fts.total_queries,count,,query,,The number of full text queries per second for an index,0,couchbase,Search Query Rate,, +couchbase.fts.total_queries_bad_request_error,count,,query,,The number of FTS queries that resulted in an error due to a bad request,-1,couchbase,Search Query Error BadRequest,, +couchbase.fts.total_queries_consistency_error,count,,query,,The number of FTS queries that resulted in an error due to a failure to meet consistency requirements,-1,couchbase,Search Query Error DissatisfiedConsistency,, +couchbase.fts.total_queries_error,count,,query,,The number of FTS queries for an index that resulted in an error,-1,couchbase,Search Query Error Rate,, +couchbase.fts.total_queries_max_result_window_exceeded_error,count,,query,,The number of FTS queries that resulted in an error due to exceeding the maximum result window,-1,couchbase,Search Query Error MaxResultWindowExceeded,, +couchbase.fts.total_queries_partial_results_error,count,,query,,The number of FTS queries that resulted in an error due to only partial results being returned,-1,couchbase,Search Query Error PartialResults,, +couchbase.fts.total_queries_rejected_by_herder,count,,query,,The number of queries rejected by the app herder when the memory used exceeds the application's query quota,-1,couchbase,Rejected Queries,, +couchbase.fts.total_queries_search_in_context_error,count,,query,,The number of FTS queries that resulted in an error while searching in context,-1,couchbase,Search Query Error SearchInContext,, +couchbase.fts.total_queries_slow,count,,query,,The number of FTS queries in the slow query log,-1,couchbase,Search Slow Queries,, +couchbase.fts.total_queries_timeout,count,,query,,The number of FTS queries for an index that exceeded the timeout,-1,couchbase,Search Query Timeout Rate,, +couchbase.fts.total_queries_to_actives,count,,request,,Total number of searches served by the active partitions of an index on a node,0,couchbase,,, +couchbase.fts.total_queries_to_replicas,count,,request,,Total number of searches served by the replica partitions of an index on a node,0,couchbase,,, +couchbase.fts.total_request_time,count,,nanosecond,,Total time spent processing query requests for an index,0,couchbase,,, +couchbase.fts.total_synonym_searches,count,,operation,,Total bleve synonym search operations,0,couchbase,,, +couchbase.fts.total_term_searchers,count,,request,,Number of bleve term searchers,0,couchbase,Term Searchers Start Rate,, +couchbase.fts.total_term_searchers_finished,count,,request,,Total term searchers that have finished serving a query,0,couchbase,,, +couchbase.fts.total_vectors,gauge,,vector,,The total number of vectors indexed,0,couchbase,,, couchbase.hdd.free,gauge,,byte,,Free hard disk space,1,couchbase,hdd free,, couchbase.hdd.quota_total,gauge,,byte,,Hard disk quota,0,couchbase,hdd quota total,, couchbase.hdd.total,gauge,,byte,,Total hard disk space,0,couchbase,hdd total,, couchbase.hdd.used,gauge,,byte,,Used hard disk space,-1,couchbase,hdd used,, couchbase.hdd.used_by_data,gauge,,byte,,Hard disk used for data,0,couchbase,hdd data used,, couchbase.index.avg_array_length,gauge,,item,,(Array indexes only.) The average number of items indexed per document,0,couchbase,,, -couchbase.index.avg_drain_rate,gauge,,item,second,[Couchbase >= 7] The average number of items flushed from memory to disk storage per second,0,couchbase,,, -couchbase.index.avg_item_size,gauge,,byte,,[Couchbase >= 7] The average size of the keys,0,couchbase,,, -couchbase.index.avg_scan_latency,gauge,,nanosecond,,[Couchbase >= 7] The average time to serve a scan request,0,couchbase,,, +couchbase.index.avg_disk_bps,gauge,,byte,second,"Sum of disk bytes written per second, of all indexes, located on this node",0,couchbase,,, +couchbase.index.avg_drain_rate,gauge,,document,second,"Average number of documents indexed per second, for this index",0,couchbase,Index Drain Rate,, +couchbase.index.avg_item_size,gauge,,byte,,"Average size of the indexed items, for this index",0,couchbase,Index Item Size,, +couchbase.index.avg_mutation_rate,gauge,,operation,second,"Sum of mutation rates of all indexes, located on this node",0,couchbase,,, +couchbase.index.avg_resident_percent,gauge,,percent,,"Average resident percent across all indexes, located on this node",0,couchbase,,, +couchbase.index.avg_scan_latency,gauge,,nanosecond,,"Average latency observed by the index scans, for this index",-1,couchbase,Index Scan Latency,, couchbase.index.cache_hit_percent,gauge,,percent,,[Couchbase >= 7] The percentage of memory accesses that were served from the managed cache,0,couchbase,,, -couchbase.index.cache_hits,count,,,,[Couchbase >= 7] The number of accesses to this index data from RAM,0,couchbase,,, -couchbase.index.cache_misses,count,,,,[Couchbase >= 7] The number of accesses to this index data from disk,0,couchbase,,, -couchbase.index.data_size,gauge,,byte,,[Couchbase >= 7] The size of indexable data that is maintained for the index or partition,0,couchbase,,, -couchbase.index.disk_size,gauge,,byte,,[Couchbase >= 7] The total disk file size consumed by the index or partition,0,couchbase,,, +couchbase.index.cache_hits,count,,hit,,"The number of times the required index page for both scan and mutations is found in memory, for this index",0,couchbase,,, +couchbase.index.cache_misses,count,,miss,,"The number of times the required index page for both scan and mutations is NOT found in memory, for this index",0,couchbase,,, +couchbase.index.codebook_mem_usage,count,,byte,,"Amount of memory used by codebook for this index, includes memory used for coarse codebook and quantization codebook",0,couchbase,,, +couchbase.index.codebook_train_duration,count,,nanosecond,,"Amount of time spent in training the codebook, for this index",0,couchbase,,, +couchbase.index.data_size,gauge,,byte,,"The approximate size of the valid uncompressed index data, for this index",0,couchbase,Index Data Size,, +couchbase.index.data_size_on_disk,gauge,,byte,,"The size of the valid compressed index data, for this index",0,couchbase,,, +couchbase.index.disk_bytes,count,,byte,,"Number of bytes read from and written to disk, including insert, get, and delete operations",0,couchbase,,, +couchbase.index.disk_size,gauge,,byte,,"Total disk space taken up by this index, after compression. This includes index data files, checkpoints etc.",0,couchbase,,, couchbase.index.docid_count,gauge,,item,,(Array indexes only.) The number of documents currently indexed,0,couchbase,,, -couchbase.index.frag_percent,gauge,,percent,,[Couchbase >= 7] The percentage fragmentation of the index,0,couchbase,,, +couchbase.index.frag_percent,gauge,,percent,,"Percentage of invalid index data, for this index",0,couchbase,Index Fragmentation,, +couchbase.index.heap_in_use,gauge,,byte,,Total heap memory in use by indexer process in the node,0,couchbase,,, couchbase.index.initial_build_progress,gauge,,percent,,"[Couchbase >= 7] The percentage of the initial build progress for the index. When the initial build is completed, the value is 100. For an index partition, the value is listed as 0",0,couchbase,,, -couchbase.index.items_count,count,,item,,[Couchbase >= 7] The number of items currently indexed,0,couchbase,,, +couchbase.index.items_count,gauge,,item,,"The actual number of items present in the latest index snapshot, for this index",0,couchbase,Indexed Items,, couchbase.index.last_known_scan_time,gauge,,nanosecond,,"[Couchbase >= 7] Timestamp of the last scan request received for this index (Unix timestamp in nanoseconds). This may be useful for determining whether this index is currently unused. Note: This statistic is persisted to disk every 15 minutes, so it is preserved when the indexer restarts",0,couchbase,,, -couchbase.index.memory_used,gauge,,byte,,[Couchbase >= 7] The amount of memory used by the Index,0,couchbase,,, -couchbase.index.num_docs_indexed,count,,document,,[Couchbase >= 7] The number of documents indexed by the indexer since last startup,0,couchbase,,, -couchbase.index.num_docs_pending,gauge,,document,,[Couchbase >= 7] The number of documents pending to be indexed,0,couchbase,,, -couchbase.index.num_docs_queued,gauge,,document,,[Couchbase >= 7] The number of documents queued to be indexed,0,couchbase,,, -couchbase.index.num_items_flushed,count,,item,,[Couchbase >= 7] The number of items flushed from memory to disk storage,0,couchbase,,, +couchbase.index.log_space_on_disk,gauge,,byte,,"The size of the index data files - including garbage, for this index",0,couchbase,,, +couchbase.index.memory_quota,gauge,,byte,,Configured memory quota for the index service nodes,0,couchbase,Index Service RAM Quota,, +couchbase.index.memory_rss,gauge,,byte,,"Resident set size of the indexer process, running on this node",0,couchbase,,, +couchbase.index.memory_total_storage,gauge,,byte,,"Amount of memory used by the index memory allocator, on this node",0,couchbase,,, +couchbase.index.memory_used,gauge,,byte,,The memory used by this index,0,couchbase,Index RAM Used,, +couchbase.index.memory_used_storage,gauge,,byte,,"Amount of memory used by underlying index storage, on this node",0,couchbase,,, +couchbase.index.memory_used_total,gauge,,byte,,Total memory used by the indexer process,0,couchbase,RAM Used,, +couchbase.index.net_avg_scan_rate,gauge,,scan,second,"Average index scan rate across all indexes, for this node",0,couchbase,,, +couchbase.index.num_diverging_replica_indexes,gauge,,index,,Number of index partitions with diverging replica item counts.,0,couchbase,,, +couchbase.index.num_docs_indexed,count,,update,,"Number of document updates (of type insert, modify, delete) observed by this index",0,couchbase,,, +couchbase.index.num_docs_pending,gauge,,update,,"Number of pending updates that are yet to be received by index service, for this index",0,couchbase,Index Mutations Remaining,, +couchbase.index.num_docs_queued,gauge,,update,,"Number of updates queued (but not yet processed) by index service, for this index",0,couchbase,Index Write Queue,, +couchbase.index.num_indexes,gauge,,index,,"Total number of indexes, located on this node",0,couchbase,,, +couchbase.index.num_items_flushed,count,,document,,Number of documents written from memory to index storage,0,couchbase,,, couchbase.index.num_pending_requests,gauge,,request,,[Couchbase >= 7] The number of requests received but not yet served by the indexer,0,couchbase,,, -couchbase.index.num_requests,count,,request,,[Couchbase >= 7] The number of requests served by the indexer since last startup,0,couchbase,,, -couchbase.index.num_rows_returned,count,,row,,[Couchbase >= 7] The total number of rows returned so far by the indexer,0,couchbase,,, +couchbase.index.num_requests,count,,request,,"Number of scan requests received by the index service, for this index",0,couchbase,Index Request Rate,, +couchbase.index.num_rows_returned,count,,entry,,"Number of rows/index entries returned as the scan result during index scans, for this index",0,couchbase,,, +couchbase.index.num_rows_scanned,count,,entry,,"Number of rows/index entries read during the index scans, for this index",0,couchbase,Index Scan Items,, couchbase.index.num_scan_errors,count,,request,,[Couchbase >= 7] The number of requests that failed due to errors other than timeout,0,couchbase,,, couchbase.index.num_scan_timeouts,count,,request,,"[Couchbase >= 7] The number of requests that timed out, either waiting for snapshots or during scan in progress",0,couchbase,,, -couchbase.index.recs_in_mem,gauge,,record,,"[Couchbase >= 7] For standard index storage, this is the number of records in this index that are stored in memory. For memory-optimized index storage, this is the same as items_count",0,couchbase,,, -couchbase.index.recs_on_disk,gauge,,record,,"[Couchbase >= 7] For standard index storage, this is the number of records in this index that are stored on disk. For memory-optimized index storage, this is 0",0,couchbase,,, -couchbase.index.resident_percent,gauge,,percent,,[Couchbase >= 7] The percentage of data held in memory,0,couchbase,,, -couchbase.index.scan_bytes_read,count,,byte,,[Couchbase >= 7] The number of bytes read by a scan since last startup,0,couchbase,,, -couchbase.index.total_scan_duration,gauge,,nanosecond,,[Couchbase >= 7] The total time spent by the indexer in scanning rows since last startup,0,couchbase,,, +couchbase.index.num_storage_instances,gauge,,instance,,"Total number of storage instances, located on this node",0,couchbase,,, +couchbase.index.partn_is_diverging_replica,gauge,,,,Set to '1' if the index partition has diverging replica item counts,0,couchbase,,, +couchbase.index.partn_items_count,gauge,,item,,"The actual number of items present in the latest index snapshot, for this partition",0,couchbase,,, +couchbase.index.raw_data_size,gauge,,byte,,"Encoded, uncompressed size of the index data, for this index",0,couchbase,,, +couchbase.index.recs_in_mem,gauge,,entry,,"Number of index entries cached in memory, for this index",0,couchbase,,, +couchbase.index.recs_on_disk,gauge,,entry,,"Number of index entries stored on disk, which are not cached in memory, for this index",0,couchbase,,, +couchbase.index.resident_percent,gauge,,percent,,"Ratio of records in memory to total records, for this index",0,couchbase,Index Resident Percent,, +couchbase.index.scan_bytes_read,count,,byte,,"Number of bytes read from the index storage during index scans, for this index",0,couchbase,Index Scan Bytes,, +couchbase.index.scan_cache_hits,count,,hit,,"Number of times the required index page for serving scan request is found in memory, for this index",0,couchbase,,, +couchbase.index.scan_cache_misses,count,,miss,,"Number of times the required index page for serving scan request is NOT found in memory, for this index",0,couchbase,,, +couchbase.index.state,gauge,,,,"The current state of this index; CREATED: 0, READY: 1, INITIAL: 2, CATCHUP: 3, ACTIVE: 4, DELETED: 5, ERROR: 6, NIL: 7, SCHEDULED: 8, RECOVERED: 9. Index is usable only in ACTIVE state",0,couchbase,,, +couchbase.index.storage_avg_item_size,gauge,,byte,,Ratio of total item size and total records,0,couchbase,,, +couchbase.index.storage_bytes_incoming,gauge,,byte,,Aggregated total of bytes that are added to the stores and intended to be written on disc,0,couchbase,,, +couchbase.index.storage_bytes_written,gauge,,byte,,Aggregated total of bytes written to the disc(data and recovery),0,couchbase,,, +couchbase.index.storage_cleaner_blk_read_bs,gauge,,byte,,Total of number bytes read for cleaner log reads (both data and recovery),0,couchbase,,, +couchbase.index.storage_cleaner_num_reads,gauge,,read,,Total of number of cleaner log reads (both data and recovery),0,couchbase,,, +couchbase.index.storage_compression_ratio,gauge,,byte,,Ratio of cumulative number of page bytes compressed and cumulative number of page bytes after compression,0,couchbase,,, +couchbase.index.storage_current_quota,gauge,,byte,,Plasma's internally active memory quota for this node. It is tuned by memtuner.,0,couchbase,,, +couchbase.index.storage_heap_limit,gauge,,byte,,Plasma's global heap limit for managed memory for this node,0,couchbase,,, +couchbase.index.storage_hvi_blk_read_bs,gauge,,byte,,Total number of bytes that were read from disk into memory,0,couchbase,,, +couchbase.index.storage_hvi_blk_reads_bs_get,gauge,,byte,,Total number of bytes that were read from disk into memory for index scans,0,couchbase,,, +couchbase.index.storage_hvi_blk_reads_bs_lookup,gauge,,byte,,Total number of bytes that were read from disk into memory for lookups,0,couchbase,,, +couchbase.index.storage_hvi_buf_memused,gauge,,byte,,Total Memory used by various reusable buffers,0,couchbase,,, +couchbase.index.storage_hvi_bytes_incoming,gauge,,byte,,Total number of bytes that were added to the stores and intended to be written to disk,0,couchbase,,, +couchbase.index.storage_hvi_bytes_written,gauge,,byte,,Total number of bytes that were written to disk,0,couchbase,,, +couchbase.index.storage_hvi_compacts,gauge,,operation,,Total count of compaction operations performed,0,couchbase,,, +couchbase.index.storage_hvi_compression_ratio_avg,gauge,,percent,,Ratio of data bytes to be compressed and data bytes after compression,0,couchbase,,, +couchbase.index.storage_hvi_fragmentation,gauge,,,,The fraction of garbage data present on disk,0,couchbase,,, +couchbase.index.storage_hvi_memory_used,gauge,,byte,,Total memory used by HVI indexes,0,couchbase,,, +couchbase.index.storage_hvi_num_reads,gauge,,read,,Total number of times a disk block is read into memory,0,couchbase,,, +couchbase.index.storage_hvi_num_reads_get,gauge,,read,,Total number of times a disk block was read into memory due to index scans,0,couchbase,,, +couchbase.index.storage_hvi_num_reads_lookup,gauge,,read,,Total number of times a disk block was read into memory due to lookups,0,couchbase,,, +couchbase.index.storage_hvi_resident_ratio,gauge,,percent,,Ratio of cache mem used and cacheable size,0,couchbase,,, +couchbase.index.storage_hvi_total_disk_size,gauge,,byte,,Total disk usage in bytes,0,couchbase,,, +couchbase.index.storage_hvi_total_used_size,gauge,,byte,,Total number of disk bytes used. This size is eligible for cleanups in subsequent compactions.,0,couchbase,,, +couchbase.index.storage_items_count,gauge,,item,,Aggregated number of items that are currently in the stores,0,couchbase,,, +couchbase.index.storage_lookup_blk_reads_bs,gauge,,byte,,Total number of bytes that were read from disc into memory for lookups,0,couchbase,,, +couchbase.index.storage_lookup_num_reads,gauge,,read,,Total number of LSS lookups for looking up items from stores,0,couchbase,,, +couchbase.index.storage_lss_blk_rdr_reads_bs,gauge,,byte,,Total number of bytes that were read from disc into memory from the logs(both data and recovery) for index scans,0,couchbase,,, +couchbase.index.storage_lss_blk_read_bs,gauge,,byte,,Total number of bytes that were read from disc into memory from the logs(both data and recovery),0,couchbase,,, +couchbase.index.storage_lss_fragmentation,gauge,,,,The fraction of garbage data present in the logs,0,couchbase,,, +couchbase.index.storage_lss_num_reads,gauge,,read,,Total number of times an LSS(both data and recovery) block is read from disk into memory,0,couchbase,,, +couchbase.index.storage_lss_used_space,gauge,,byte,,Total number of bytes used by data and recovery logs,0,couchbase,,, +couchbase.index.storage_memory_stats_size_page,gauge,,byte,,Aggregated number of bytes of memory currently in use by Plasma for page records,0,couchbase,,, +couchbase.index.storage_num_burst_visits,gauge,,page,,Aggregated total of pages visited during burst eviction,0,couchbase,,, +couchbase.index.storage_num_evictable,gauge,,page,,Aggregated total of the number of pages can be compressed,0,couchbase,,, +couchbase.index.storage_num_evicted,gauge,,page,,Aggregated total of the number of pages that were evicted and persisted to disc,0,couchbase,,, +couchbase.index.storage_num_pages,gauge,,page,,Aggregated number of pages that are currently in use,0,couchbase,,, +couchbase.index.storage_num_periodic_visits,gauge,,page,,Aggregated total of pages visited during periodic eviction,0,couchbase,,, +couchbase.index.storage_purges,gauge,,event,,Aggregated number of times various pages are compacted due to the MVCCPurger being triggered,0,couchbase,,, +couchbase.index.storage_reclaim_pending_global,gauge,,byte,,Aggregated number of bytes across all plasma instances which have been freed but not yet returned to OS,0,couchbase,,, +couchbase.index.storage_resident_ratio,gauge,,percent,,Ratio of cached records and total records,0,couchbase,,, +couchbase.index.storage_rlss_num_reads,gauge,,read,,Total number of times an LSS block was read into memory due to index scans,0,couchbase,,, +couchbase.index.total_data_size,gauge,,byte,,"Sum of data size of all indexes, located on this node",0,couchbase,,, +couchbase.index.total_disk_size,gauge,,byte,,"Sum of disk size of all indexes, located on this node",0,couchbase,,, +couchbase.index.total_drain_rate,gauge,,,,"Sum of drain rate of all indexes, located on this node",0,couchbase,,, +couchbase.index.total_mutation_queue_size,gauge,,update,,"Total number of index updates queued in the mutation queues, on this node",0,couchbase,,, +couchbase.index.total_pending_scans,gauge,,scan,,"Sum of number of pending scans across all indexes, located on this node",0,couchbase,,, +couchbase.index.total_raw_data_size,gauge,,byte,,"Sum of encoded, uncompressed size of the index data across all indexes, located on this node",0,couchbase,,, +couchbase.index.total_requests,count,,request,,"Sum of number of requests received by all indexes, located on this node",0,couchbase,,, +couchbase.index.total_rows_returned,count,,row,,"Sum of number of rows returned during index scan across all indexes, located on this node",0,couchbase,,, +couchbase.index.total_rows_scanned,count,,row,,"Sum of number of rows scanned during index scans across all indexes, located on this node",0,couchbase,,, +couchbase.index.total_scan_duration,count,,nanosecond,,"Total time taken by the scans requests, for this index",0,couchbase,,, couchbase.indexer.indexer_state,gauge,,,,"[Couchbase >= 7] The current state of the Index service on this node (0 = Active, 1 = Pause, 2 = Warmup)",0,couchbase,,, couchbase.indexer.memory_quota,gauge,,byte,,[Couchbase >= 7] The memory quota assigned to the Index service on this node by user configuration,0,couchbase,,, couchbase.indexer.memory_total_storage,gauge,,byte,,[Couchbase >= 7] The total size allocated in the indexer across all indexes. This also accounts for memory fragmentation,0,couchbase,,, couchbase.indexer.memory_used,gauge,,byte,,[Couchbase >= 7] The amount of memory used by the Index service on this node,0,couchbase,,, couchbase.indexer.total_indexer_gc_pause_ns,gauge,,nanosecond,,[Couchbase >= 7] The total time the indexer has spent in GC pause since the last startup,0,couchbase,,, +couchbase.kv.audit_dropped_events,count,,event,,The number of audit events dropped due to errors while trying to insert them to the audit trail,-1,couchbase,,, +couchbase.kv.audit_enabled,gauge,,,,Boolean value to indicate if audit is enabled or not,0,couchbase,,, +couchbase.kv.auth_cmds,gauge,,command,,The number of authentication commands,0,couchbase,,, +couchbase.kv.auth_errors,gauge,,request,,The number of failed authentication requests,-1,couchbase,,, +couchbase.kv.bg_batch_size,gauge,,item,,Batch size for background fetches,0,couchbase,,, +couchbase.kv.bg_load_seconds,gauge,,second,,Background fetches waiting for disk,-1,couchbase,,, +couchbase.kv.bg_wait_seconds,gauge,,second,,Background fetches waiting in the dispatcher queue,-1,couchbase,,, +couchbase.kv.boot_timestamp_seconds,gauge,,second,,The time KV last restarted (and counters reset),0,couchbase,,, +couchbase.kv.clients,gauge,,item,,The number of references to the bucket,0,couchbase,,, +couchbase.kv.cmd_duration_seconds,gauge,,second,,Per-opcode histogram of time taken to execute operations,0,couchbase,,, +couchbase.kv.cmd_lookup,count,,operation,,The number of lookup operations,0,couchbase,,, +couchbase.kv.cmd_lookup_10s_count,gauge,,operation,,The number of lookup operations performed within the last 10 seconds,0,couchbase,,, +couchbase.kv.cmd_lookup_10s_duration_seconds,gauge,,second,,The total duration of lookup operations performed over the last 10 seconds,0,couchbase,,, +couchbase.kv.cmd_mutation,count,,operation,,The number of mutation operations,0,couchbase,,, +couchbase.kv.cmd_mutation_10s_count,gauge,,operation,,The number of mutation operations performed within the last 10 seconds,0,couchbase,,, +couchbase.kv.cmd_mutation_10s_duration_seconds,gauge,,second,,The total duration of mutation operations performed over the last 10 seconds,0,couchbase,,, +couchbase.kv.cmd_total_gets,count,,operation,,The total number of data retrieval operations (all buckets),0,couchbase,,, +couchbase.kv.cmd_total_ops,count,,operation,,The sum of cmd_total_sets and cmd_total_gets (all buckets),0,couchbase,,, +couchbase.kv.cmd_total_sets,count,,operation,,The total number of mutation operations (all buckets),0,couchbase,,, +couchbase.kv.collection_data_size_bytes,gauge,,byte,,Per-collection data size on disk,0,couchbase,,, +couchbase.kv.collection_history,gauge,,,,Whether history (CDC) is enabled for each collection,0,couchbase,,, +couchbase.kv.collection_item_count,gauge,,item,,Per-collection item count,0,couchbase,,, +couchbase.kv.collection_maxTTL_seconds,gauge,,second,,Per-collection maxTTL (maximum expiry) if configured,0,couchbase,,, +couchbase.kv.collection_mem_used_bytes,gauge,,byte,,Per-collection memory usage,0,couchbase,,, +couchbase.kv.collection_ops,count,,operation,,Per-collection counters of sets/gets/deletes,0,couchbase,,, +couchbase.kv.conflicts_resolved,count,,event,,"Counter of all SetWithMeta/DelWithMeta conflict resolution results. The result may be that the incoming operation was: accepted as it is 'ahead', rejected as it is 'behind', or rejected as it appears identical (by metadata, not comparing document bodies)",0,couchbase,,, +couchbase.kv.conn_timeslice_yields,count,,,,The total number all clients in this bucket yield due to using their entire timeslice,0,couchbase,,, +couchbase.kv.conn_yields,count,,,,The total number all clients in this bucket yield due to consuming the number of ops allowed for the current timeslice,0,couchbase,,, +couchbase.kv.connection_structures,gauge,,item,,Current number of allocated connection structures,0,couchbase,,, +couchbase.kv.couch_docs_actual_disk_size,gauge,,byte,,Amount of disk space used by the Data Service,0,couchbase,,, +couchbase.kv.couch_spatial_data_size,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.couch_spatial_disk_size,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.couch_spatial_ops,gauge,,operation,,N/A,0,couchbase,,, +couchbase.kv.couch_views_actual_disk_size,gauge,,byte,,Amount of disk space used by Views data,0,couchbase,,, +couchbase.kv.couch_views_data_size,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.couch_views_disk_size,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.couch_views_ops,gauge,,operation,,N/A,0,couchbase,,, +couchbase.kv.curr_connections,gauge,,connection,,"The current number of connections. This includes user, system and daemon connections",0,couchbase,,, +couchbase.kv.curr_items,gauge,,item,,"Count of alive (non-deleted) items in active vbuckets, including non-resident items",0,couchbase,,, +couchbase.kv.curr_items_tot,gauge,,item,,Total number of items,0,couchbase,,, +couchbase.kv.curr_temp_items,gauge,,item,,Number of temporary items in memory,0,couchbase,,, +couchbase.kv.current_external_client_connections,gauge,,connection,,The current number of authenticated connections using the labelled SDK,0,couchbase,,, +couchbase.kv.daemon_connections,gauge,,connection,,The number of server sockets currently in use,0,couchbase,,, +couchbase.kv.daemon_memory_allocated_bytes,gauge,,byte,,Total amount of memory allocated (outside the context of a bucket),0,couchbase,,, +couchbase.kv.daemon_memory_resident_bytes,gauge,,byte,,Total amount of memory resident (outside the context of a bucket),0,couchbase,,, +couchbase.kv.datatype_count,gauge,,item,,Count of items in memory with a given datatype combination,0,couchbase,,, +couchbase.kv.dcp_backoff,gauge,,event,,"Number of times Consumer DCP connections (i.e., replica) have paused consuming items because memory usage is too high",0,couchbase,,, +couchbase.kv.dcp_connection_count,gauge,,connection,,Current number of DCP connections (Consumers or Producers),0,couchbase,,, +couchbase.kv.dcp_count,gauge,,connection,,Current number of DCP connections,0,couchbase,,, +couchbase.kv.dcp_items_backfilled,gauge,,item,,Number of items pushed into the DCP stream ready queue from a backfill,0,couchbase,,, +couchbase.kv.dcp_items_remaining,gauge,,item,,Current total number of items remaining for to be sent for all outgoing DCP streams (approximate),0,couchbase,,, +couchbase.kv.dcp_items_sent,gauge,,item,,"Total number of items sent out by all _currently existing_ outgoing DCP streams, since each stream was created",0,couchbase,,, +couchbase.kv.dcp_max_running_backfills,gauge,,event,,Maximum number of backfills across all DCP connections,0,couchbase,,, +couchbase.kv.dcp_num_running_backfills,gauge,,event,,Total number of running backfills across all DCP connections,0,couchbase,,, +couchbase.kv.dcp_paused_count,gauge,,event,,Count of how many times the DCP connection has been paused,0,couchbase,,, +couchbase.kv.dcp_queue_fill,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.dcp_ready_queue_size_bytes,gauge,,byte,,Estimated memory usage of items waiting to be sent across all _existing_ DCP connections,0,couchbase,,, +couchbase.kv.dcp_stream_count,gauge,,item,,Current number of Streams (Active or Passive),0,couchbase,,, +couchbase.kv.dcp_total_data_size_bytes,gauge,,byte,,Total data sent across all _existing_ DCP connections,0,couchbase,,, +couchbase.kv.dcp_total_uncompressed_data_size_bytes,gauge,,byte,,Total equivalent uncompressed size of data sent across all _existing_ DCP connections,0,couchbase,,, +couchbase.kv.dcp_unpaused_count,gauge,,event,,Count of how many times the DCP connection has been unpaused,0,couchbase,,, +couchbase.kv.disk_seconds,gauge,,second,,time spent waiting for disk,-1,couchbase,,, +couchbase.kv.domain_memory_used_bytes,gauge,,byte,,Current memory used in KV for primary/secondary domain,0,couchbase,,, +couchbase.kv.ep_access_scanner_enabled,gauge,,,,True if access scanner task is enabled,0,couchbase,,, +couchbase.kv.ep_access_scanner_last_runtime_seconds,gauge,,second,,Number of seconds that last Access Scanner task run took to complete.,0,couchbase,,, +couchbase.kv.ep_access_scanner_num_items,gauge,,item,,Number of items that last Access Scanner task run wrote to the Access Log.,0,couchbase,,, +couchbase.kv.ep_access_scanner_task_time,gauge,,,,"Time of the next access scanner task (GMT), NOT_SCHEDULED if access scanner has been disabled",0,couchbase,,, +couchbase.kv.ep_ahead_exceptions,count,,event,,Total number of times a vbucket saw an item with a HLC CAS from too far in the future (indicating the clock is behind),0,couchbase,,, +couchbase.kv.ep_allow_sanitize_value_in_deletion,gauge,,,,Let EPE delete/prepare/del_with_meta prune any invalid body in the payload instead of failing,0,couchbase,,, +couchbase.kv.ep_alog_block_size,gauge,,byte,,Logging block size.,0,couchbase,,, +couchbase.kv.ep_alog_max_stored_items,gauge,,item,,,0,couchbase,,, +couchbase.kv.ep_alog_resident_ratio_threshold,gauge,,percent,,,0,couchbase,,, +couchbase.kv.ep_alog_sleep_time,gauge,,minute,,Number of minutes between each sweep for the access log,0,couchbase,,, +couchbase.kv.ep_alog_task_time,gauge,,,,Hour in GMT time when access scanner task is scheduled to run,0,couchbase,,, +couchbase.kv.ep_arena_memory_allocated_bytes,gauge,,byte,,The total memory allocated from the engine's arena,0,couchbase,,, +couchbase.kv.ep_arena_memory_resident_bytes,gauge,,byte,,The resident set size of the engine's arena,0,couchbase,,, +couchbase.kv.ep_backfill_mem_threshold,gauge,,byte,,,0,couchbase,,, +couchbase.kv.ep_behind_exceptions,count,,exception,,Total number of times a vbucket saw an item with a HLC CAS from too far in the past (indicating the clock is ahead),0,couchbase,,, +couchbase.kv.ep_bfilter_enabled,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_bfilter_fp_prob,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_bfilter_key_count,gauge,,item,,,0,couchbase,,, +couchbase.kv.ep_bfilter_residency_threshold,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_bg_fetch_avg_read_amplification_ratio,gauge,,fraction,,Average read amplification for all background fetch operations - ratio of read()s to documents fetched.,0,couchbase,,, +couchbase.kv.ep_bg_fetched,count,,item,,Number of items fetched from disk,0,couchbase,,, +couchbase.kv.ep_bg_fetched_compaction,count,,event,,The number of bgfetches which are triggered by compaction,0,couchbase,,, +couchbase.kv.ep_bg_load_avg_seconds,gauge,,second,,The average time for an item to be loaded from disk,0,couchbase,,, +couchbase.kv.ep_bg_load_seconds,count,,second,,The total elapsed time for items to be loaded from disk,0,couchbase,,, +couchbase.kv.ep_bg_max_load_seconds,gauge,,second,,The longest load time when loading from disk,0,couchbase,,, +couchbase.kv.ep_bg_max_wait_seconds,gauge,,second,,The longest time in the queue waiting to be loaded from disk,0,couchbase,,, +couchbase.kv.ep_bg_meta_fetched,count,,event,,Number of metadata fetches from disk,0,couchbase,,, +couchbase.kv.ep_bg_min_load_seconds,gauge,,second,,The shortest load time when loading from disk,0,couchbase,,, +couchbase.kv.ep_bg_min_wait_seconds,gauge,,second,,The shortest time in the queue waiting to be loaded from disk,0,couchbase,,, +couchbase.kv.ep_bg_num_samples,gauge,,item,,The number of samples included in the average,0,couchbase,,, +couchbase.kv.ep_bg_remaining_items,gauge,,item,,Number of remaining bg fetch items,0,couchbase,,, +couchbase.kv.ep_bg_remaining_jobs,gauge,,job,,Number of remaining bg fetch jobs,0,couchbase,,, +couchbase.kv.ep_bg_wait_avg_seconds,gauge,,second,,The average wait time for an item before it's serviced by the dispatcher,-1,couchbase,,, +couchbase.kv.ep_bg_wait_seconds,gauge,,second,,The total elapse time for the wait queue,0,couchbase,,, +couchbase.kv.ep_blob_num,gauge,,object,,The number of blob objects in the cache,0,couchbase,,, +couchbase.kv.ep_blob_num_allocated_total,count,,object,,The number of blob object allocations,0,couchbase,,, +couchbase.kv.ep_blob_num_freed_total,count,,object,,The number of blob object deallocations,0,couchbase,,, +couchbase.kv.ep_bucket_quota_change_task_poll_interval,gauge,,second,,Time in seconds between the BucketQuotaChangeTask polling memory usage to attempt to reduce the bucket quota,0,couchbase,,, +couchbase.kv.ep_cache_size,gauge,,byte,,Memory quota (in bytes) for this bucket.,0,couchbase,,, +couchbase.kv.ep_checkpoint_computed_max_size_bytes,gauge,,byte,,Actual max size in bytes of a single Checkpoint,0,couchbase,,, +couchbase.kv.ep_checkpoint_consumer_limit_bytes,gauge,,byte,,Max allocation allowed in all checkpoints (including the dcp consumer buffer quota),0,couchbase,,, +couchbase.kv.ep_checkpoint_destruction_tasks,gauge,,task,,Number of tasks responsible for destroying closed unreferenced checkpoints.,0,couchbase,,, +couchbase.kv.ep_checkpoint_max_size,gauge,,byte,,Max size (in bytes) of a single checkpoint. '0' for EPEngine auto-setup.,0,couchbase,,, +couchbase.kv.ep_checkpoint_memory_bytes,gauge,,byte,,Memory of items in all checkpoints,0,couchbase,,, +couchbase.kv.ep_checkpoint_memory_overhead_allocator_bytes,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.ep_checkpoint_memory_overhead_bytes,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.ep_checkpoint_memory_pending_destruction_bytes,gauge,,byte,,Memory of checkpoint structures awaiting destruction by a background task,0,couchbase,,, +couchbase.kv.ep_checkpoint_memory_quota_bytes,gauge,,byte,,Max allocation allowed in all checkpoints,0,couchbase,,, +couchbase.kv.ep_checkpoint_memory_ratio,gauge,,,,Max ratio of the bucket quota that can be allocated in checkpoints. The system enters a TempOOM phase if hit.,0,couchbase,,, +couchbase.kv.ep_checkpoint_memory_recovery_lower_mark,gauge,,,,Fraction of the checkpoint quota (as computed by checkpoint_memory_ratio) that represents the target of checkpoint memory recovery. Memory recovery yields when reached.,0,couchbase,,, +couchbase.kv.ep_checkpoint_memory_recovery_lower_mark_bytes,gauge,,,,Fraction of the checkpoint quota (as computed by checkpoint_memory_ratio) that represents the target of checkpoint memory recovery. Memory recovery yields when reached,0,couchbase,,, +couchbase.kv.ep_checkpoint_memory_recovery_upper_mark,gauge,,,,Fraction of the checkpoint quota (as computed by checkpoint_memory_ratio) that triggers attempt of memory releasing from checkpoint.,0,couchbase,,, +couchbase.kv.ep_checkpoint_memory_recovery_upper_mark_bytes,gauge,,,,Fraction of the checkpoint quota (as computed by checkpoint_memory_ratio) that triggers attempt of memory releasing from checkpoint,0,couchbase,,, +couchbase.kv.ep_checkpoint_memory_unreferenced_bytes,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.ep_checkpoint_remover_task_count,gauge,,task,,Number of concurrent tasks performing ItemExpel and CursorDrop/CheckpointRemoval,0,couchbase,,, +couchbase.kv.ep_chk_expel_enabled,gauge,,,,Enable the ability to expel (remove from memory) items from a checkpoint. An item can be expelled if all cursors in the checkpoint have iterated past the item.,0,couchbase,,, +couchbase.kv.ep_chk_max_items,gauge,,item,,N/A,0,couchbase,,, +couchbase.kv.ep_chk_period,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_chk_persistence_remains,gauge,,item,,Number of remaining vbuckets for checkpoint persistence,0,couchbase,,, +couchbase.kv.ep_chk_persistence_timeout_seconds,gauge,,second,,N/A,0,couchbase,,, +couchbase.kv.ep_chk_remover_stime,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_clock_cas_drift_threshold_exceeded,gauge,,event,,ep_active_ahead_exceptions + ep_replica_ahead_exceptions,0,couchbase,,, +couchbase.kv.ep_collections_drop_compaction_delay,gauge,,millisecond,,How many milliseconds before compaction runs following the drop of a collection,0,couchbase,,, +couchbase.kv.ep_collections_enabled,gauge,,,,"Enable the collections functionality, enabling the storage of collection metadata",0,couchbase,,, +couchbase.kv.ep_commit_num,gauge,,write,,Total number of write commits,0,couchbase,,, +couchbase.kv.ep_commit_time_seconds,gauge,,millisecond,,Number of milliseconds of most recent commit,0,couchbase,,, +couchbase.kv.ep_commit_time_total_seconds,gauge,,millisecond,,Cumulative milliseconds spent committing,0,couchbase,,, +couchbase.kv.ep_compaction_aborted,gauge,,event,,"Counter of how many times compaction aborted, e.g. the vbucket is required to rollback, so compaction is aborted",0,couchbase,,, +couchbase.kv.ep_compaction_exp_mem_threshold,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_compaction_expire_from_start,gauge,,,,Should compaction expire items that were logically deleted at the start of the compaction (true) or at the point in time at which they were visited (false)?,0,couchbase,,, +couchbase.kv.ep_compaction_expiry_fetch_inline,gauge,,,,"If compaction requires a bgfetch before attempting expiry to ensure it does not expire an older version of the document, true: fetch it in the compaction thread. false: queue a bgfetch for the bgfetcher task to complete",0,couchbase,,, +couchbase.kv.ep_compaction_failed,gauge,,event,,"Counter of how many times compaction has failed, e.g. a system call error caused compaction to fail",-1,couchbase,,, +couchbase.kv.ep_compaction_max_concurrent_ratio,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_compaction_write_queue_cap,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_concurrent_pagers,gauge,,task,,Number of eviction pager tasks to create when memory usage is high,0,couchbase,,, +couchbase.kv.ep_connection_cleanup_interval,gauge,,second,,How often connection manager task should release dead connections (in seconds).,0,couchbase,,, +couchbase.kv.ep_connection_manager_interval,gauge,,second,,How often connection manager task should be run (in seconds).,0,couchbase,,, +couchbase.kv.ep_couchstore_file_cache_max_size,gauge,,file,,Maximum number of couchstore files that we will keep open. Default value is 30 * 1024 (i.e. one file for each vBucket and 30 Buckets - the supported limit).,0,couchbase,,, +couchbase.kv.ep_couchstore_midpoint_rollback_optimisation,gauge,,,,Should we have to rollback more than half of the seqnos seen by this vBucket we will instead rollback to 0 and re-stream from the active if set to true,0,couchbase,,, +couchbase.kv.ep_couchstore_mprotect,gauge,,,,Enable couchstore to mprotect the iobuffer,0,couchbase,,, +couchbase.kv.ep_couchstore_tracing,gauge,,,,Enable couchstore tracing,0,couchbase,,, +couchbase.kv.ep_couchstore_write_validation,gauge,,,,Validate couchstore writes ,0,couchbase,,, +couchbase.kv.ep_cross_bucket_ht_quota_sharing,gauge,,,,Allow this Bucket's HashTable quota to be shared with other Buckets which have this setting enabled.,0,couchbase,,, +couchbase.kv.ep_cursor_dropping_checkpoint_mem_lower_mark,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_cursor_dropping_checkpoint_mem_upper_mark,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_cursor_dropping_lower_mark,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_cursor_dropping_lower_threshold_bytes,gauge,,byte,,Memory threshold below which checkpoint remover will discontinue cursor dropping,0,couchbase,,, +couchbase.kv.ep_cursor_dropping_upper_mark,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_cursor_dropping_upper_threshold_bytes,gauge,,byte,,Memory threshold above which checkpoint remover will start cursor dropping,0,couchbase,,, +couchbase.kv.ep_cursor_memory_freed_bytes,gauge,,byte,,N/A,1,couchbase,,, +couchbase.kv.ep_cursors_dropped,gauge,,item,,Number of cursors dropped by the checkpoint remover,0,couchbase,,, +couchbase.kv.ep_data_read_failed,gauge,,operation,,Total number of get failures,-1,couchbase,,, +couchbase.kv.ep_data_traffic_enabled,gauge,,,,True if we want to enable data traffic after warmup is complete,0,couchbase,,, +couchbase.kv.ep_data_write_failed,gauge,,operation,,Total compaction and commit failures,-1,couchbase,,, +couchbase.kv.ep_db_data_size_bytes,gauge,,byte,,Total size of valid data in db files,0,couchbase,,, +couchbase.kv.ep_db_file_size_bytes,gauge,,byte,,Total size of the db files,0,couchbase,,, +couchbase.kv.ep_db_history_file_size_bytes,gauge,,byte,,The total size of all history currently stored by the bucket,0,couchbase,,, +couchbase.kv.ep_db_history_start_timestamp_seconds,gauge,,second,,"The timestamp of the oldest document stored in the history window, oldest of all vbuckets",0,couchbase,,, +couchbase.kv.ep_db_prepare_size_bytes,gauge,,byte,,Total size of SyncWrite prepares in db files,0,couchbase,,, +couchbase.kv.ep_dcp_backfill_byte_drain_ratio,gauge,,percent,,What ratio of the dcp_backfill_byte_limit must be drained for un-pausing a paused backfill,0,couchbase,,, +couchbase.kv.ep_dcp_backfill_byte_limit,gauge,,byte,,Max bytes a connection can backfill into memory before backfill is paused,0,couchbase,,, +couchbase.kv.ep_dcp_backfill_in_progress_per_connection_limit,gauge,,event,,The maximum number of backfills each connection can have in-progress (i.e. KVStore snapshot open and reading data from),0,couchbase,,, +couchbase.kv.ep_dcp_conn_buffer_size,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.ep_dcp_conn_buffer_size_aggr_mem_threshold,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.ep_dcp_conn_buffer_size_aggressive_perc,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.ep_dcp_conn_buffer_size_max,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.ep_dcp_conn_buffer_size_perc,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.ep_dcp_consumer_buffer_ratio,gauge,,percent,,Ratio of the BucketQuota that can be allocated by all DCP consumers for buffered messages,0,couchbase,,, +couchbase.kv.ep_dcp_consumer_control_enabled,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_dcp_consumer_flow_control_ack_ratio,gauge,,percent,,Ratio of freed bytes in the DCP Consumer buffer that triggers a BufferAck message to the Producer,0,couchbase,,, +couchbase.kv.ep_dcp_consumer_flow_control_ack_seconds,gauge,,second,,"Max seconds after which a Consumer acks all the remaining freed bytes, regardless of whether dcp_consumer_flow_control_ack_ratio has kicked-in or not",0,couchbase,,, +couchbase.kv.ep_dcp_consumer_flow_control_enabled,gauge,,,,Whether DCP Consumer on this node enable flow control,0,couchbase,,, +couchbase.kv.ep_dcp_consumer_process_buffered_messages_batch_size,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.ep_dcp_consumer_process_buffered_messages_yield_limit,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_dcp_consumer_process_unacked_bytes_yield_limit,gauge,,event,,The number of DcpConsumerTask iterations before forcing the task to yield.,0,couchbase,,, +couchbase.kv.ep_dcp_enable_noop,gauge,,,,Whether DCP Consumer connections should attempt to negotiate no-ops with the Producer,0,couchbase,,, +couchbase.kv.ep_dcp_idle_timeout,gauge,,second,,The maximum number of seconds between dcp messages before a connection is disconnected,0,couchbase,,, +couchbase.kv.ep_dcp_min_compression_ratio,gauge,,percent,,,0,couchbase,,, +couchbase.kv.ep_dcp_noop_mandatory_for_v5_features,gauge,,,,Forces clients to enable noop for v5 features,0,couchbase,,, +couchbase.kv.ep_dcp_noop_tx_interval,gauge,,second,,The time interval in seconds between noop messages being sent to the consumer,0,couchbase,,, +couchbase.kv.ep_dcp_oso_backfill_large_value_ratio,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_dcp_oso_backfill_small_item_size_threshold,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_dcp_oso_backfill_small_value_ratio,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_dcp_oso_max_collections_per_backfill,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_dcp_producer_catch_exceptions,gauge,,,,"If true, ActiveStream will catch exceptions during item processing and close the stream's related connection (and thus all streams for that connection). If false, exception will be re-thrown.",0,couchbase,,, +couchbase.kv.ep_dcp_producer_processor_run_duration_us,gauge,,percent,,The approximate maximum runtime in microseconds for ActiveStreamCheckpointProcessorTask,0,couchbase,,, +couchbase.kv.ep_dcp_producer_snapshot_marker_yield_limit,gauge,,item,,The number of snapshots before ActiveStreamCheckpointProcessorTask::run yields.,0,couchbase,,, +couchbase.kv.ep_dcp_scan_byte_limit,gauge,,byte,,Max bytes that can be read in a single backfill scan before yielding,0,couchbase,,, +couchbase.kv.ep_dcp_scan_item_limit,gauge,,item,,Max items that can be read in a single backfill scan before yielding,0,couchbase,,, +couchbase.kv.ep_dcp_takeover_max_time,gauge,,second,,Max amount of time for takeover send (in seconds) after which front end ops would return ETMPFAIL,0,couchbase,,, +couchbase.kv.ep_defragmenter_age_threshold,gauge,,event,,How old (measured in number of DefragmenterVisitor passes) must a document be to be considered for defragmentation.,0,couchbase,,, +couchbase.kv.ep_defragmenter_auto_lower_threshold,gauge,,,,"When mode is not static and scored fragmentation is above this value, a sleep time between defragmenter_auto_min_sleep and defragmenter_auto_max_sleep will be used",0,couchbase,,, +couchbase.kv.ep_defragmenter_auto_max_sleep,gauge,,,,The maximum sleep that the auto controller can set,0,couchbase,,, +couchbase.kv.ep_defragmenter_auto_min_sleep,gauge,,,,The minimum sleep that the auto controller can set,0,couchbase,,, +couchbase.kv.ep_defragmenter_auto_pid_d,gauge,,,,The d term for the PID controller,0,couchbase,,, +couchbase.kv.ep_defragmenter_auto_pid_dt,gauge,,,,The dt (interval) term for the PID controller. Value represents milliseconds,0,couchbase,,, +couchbase.kv.ep_defragmenter_auto_pid_i,gauge,,,,The i term for the PID controller,0,couchbase,,, +couchbase.kv.ep_defragmenter_auto_pid_p,gauge,,,,The p term for the PID controller,0,couchbase,,, +couchbase.kv.ep_defragmenter_auto_upper_threshold,gauge,,,,"When mode is auto_linear and scored fragmentation is above this value, the defragmenter will use defragmenter_auto_min_sleep",0,couchbase,,, +couchbase.kv.ep_defragmenter_chunk_duration,gauge,,millisecond,,Maximum time (in ms) defragmentation task will run for before being paused (and resumed at the next defragmenter_interval).,0,couchbase,,, +couchbase.kv.ep_defragmenter_enabled,gauge,,,,True if defragmenter task is enabled,0,couchbase,,, +couchbase.kv.ep_defragmenter_interval,gauge,,second,,How often defragmenter task should be run (in seconds).,0,couchbase,,, +couchbase.kv.ep_defragmenter_num_moved,gauge,,item,,Number of items moved by the defragmentater task.,0,couchbase,,, +couchbase.kv.ep_defragmenter_num_visited,gauge,,item,,Number of items visited (considered for defragmentation) by the defragmenter task.,0,couchbase,,, +couchbase.kv.ep_defragmenter_sleep_time_seconds,gauge,,second,,The amount of time the defragmenter task will sleep before it is scheduled to run again.,0,couchbase,,, +couchbase.kv.ep_defragmenter_stored_value_age_threshold,gauge,,event,,How old (measured in number of DefragmenterVisitor passes) must a StoredValue be to be considered for defragmentation.,0,couchbase,,, +couchbase.kv.ep_defragmenter_sv_num_moved,gauge,,event,,Number of StoredValues moved by the defragmentater task.,0,couchbase,,, +couchbase.kv.ep_degraded_mode,gauge,,,,True if the engine is either warming up or data traffic is disabled,0,couchbase,,, +couchbase.kv.ep_diskqueue_drain,gauge,,item,,Total drained items on disk queue,0,couchbase,,, +couchbase.kv.ep_diskqueue_fill,gauge,,item,,Total enqueued items on disk queue,0,couchbase,,, +couchbase.kv.ep_diskqueue_items,gauge,,item,,Total items in disk queue,0,couchbase,,, +couchbase.kv.ep_diskqueue_memory_bytes,gauge,,byte,,Total memory used in disk queue,0,couchbase,,, +couchbase.kv.ep_diskqueue_pending,gauge,,byte,,Total bytes of pending writes,-1,couchbase,,, +couchbase.kv.ep_durability_timeout_task_interval,gauge,,second,,N/A,0,couchbase,,, +couchbase.kv.ep_ephemeral_metadata_mark_stale_chunk_duration,gauge,,millisecond,,Maximum time (in ms) ephemeral hash table cleaner task will run for before being paused (and resumed at the next ephemeral_metadata_purge_interval).,0,couchbase,,, +couchbase.kv.ep_ephemeral_metadata_purge_age,gauge,,second,,Age in seconds after which Ephemeral metadata is purged entirely from memory. Purging disabled if set to -1.,0,couchbase,,, +couchbase.kv.ep_ephemeral_metadata_purge_interval,gauge,,second,,"Time in seconds between automatic, periodic runs of the Ephemeral metadata purge task. Periodic purging disabled if set to 0.",0,couchbase,,, +couchbase.kv.ep_ephemeral_metadata_purge_stale_chunk_duration,gauge,,millisecond,,Maximum time (in ms) ephemeral stale metadata purge task will run for before being paused (and resumed at the next ephemeral_metadata_purge_interval).,0,couchbase,,, +couchbase.kv.ep_exp_pager_enabled,gauge,,,,True if expiry pager task is enabled,0,couchbase,,, +couchbase.kv.ep_exp_pager_initial_run_time,gauge,,,,Hour in GMT time when expiry pager can be scheduled for initial run,0,couchbase,,, +couchbase.kv.ep_exp_pager_stime,gauge,,second,,Number of seconds between expiry pager runs.,0,couchbase,,, +couchbase.kv.ep_expired_access,gauge,,event,,Number of times an item was expired on application access,0,couchbase,,, +couchbase.kv.ep_expired_compactor,gauge,,event,,Number of times an item was expired by the compactor,0,couchbase,,, +couchbase.kv.ep_expired_pager,gauge,,event,,Number of times an item was expired by the item pager,0,couchbase,,, +couchbase.kv.ep_expiry_pager_concurrency,gauge,,task,,Number of tasks which are created to scan for and delete expired items,0,couchbase,,, +couchbase.kv.ep_expiry_pager_task_time,gauge,,,,"Time of the next expiry pager task (GMT), NOT_SCHEDULED if expiry pager has been disabled",0,couchbase,,, +couchbase.kv.ep_failpartialwarmup,gauge,,,,If true then do not allow traffic to be enabled to the bucket if warmup didn't complete successfully,0,couchbase,,, +couchbase.kv.ep_flush_batch_max_bytes,gauge,,byte,,Max size (in bytes) of a single flush-batch passed to the KVStore for persistence.,0,couchbase,,, +couchbase.kv.ep_flush_duration_total_seconds,gauge,,second,,Cumulative milliseconds spent flushing,0,couchbase,,, +couchbase.kv.ep_flusher_todo,gauge,,item,,Number of items currently being written,0,couchbase,,, +couchbase.kv.ep_flusher_total_batch_limit,gauge,,item,,"Number of items that all flushers can be currently flushing. Each flusher has flusher_total_batch_limit / num_writer_threads individual batch size. Individual batches may be larger than this value, as we cannot split Memory checkpoints across multiple commits.",0,couchbase,,, +couchbase.kv.ep_freq_counter_increment_factor,gauge,,,,The increment factor of the ProbabilisticCounter being used for the frequency counter. The default value of 0.012 is set such that it allows an 8-bit ProbabilisticCounter to mimic a uint16 counter. See the comment on the ProbabilisticCounter class for more information.,0,couchbase,,, +couchbase.kv.ep_fsync_after_every_n_bytes_written,gauge,,,,Perform a file sync() operation after every N bytes written. Disabled if set to 0.,0,couchbase,,, +couchbase.kv.ep_getl_default_timeout,gauge,,second,,The default timeout for a getl lock in (s),0,couchbase,,, +couchbase.kv.ep_getl_max_timeout,gauge,,second,,The maximum timeout for a getl lock in (s),0,couchbase,,, +couchbase.kv.ep_history_retention_bytes,gauge,,byte,,Max bytes of history a bucket should aim to retain on disk.,0,couchbase,,, +couchbase.kv.ep_history_retention_seconds,gauge,,second,,Seconds of history the bucket should aim to retain on disk.,0,couchbase,,, +couchbase.kv.ep_hlc_drift_ahead_threshold_us,gauge,,microsecond,,The s threshold of drift at which we will increment a vbucket's ahead counter.,0,couchbase,,, +couchbase.kv.ep_hlc_drift_behind_threshold_us,gauge,,microsecond,,The s threshold of drift at which we will increment a vbucket's behind counter.,0,couchbase,,, +couchbase.kv.ep_hlc_drift_count,gauge,,event,,The accumulated number of times the corresponding kv_ep_hlc_drift_count has been updated,0,couchbase,,, +couchbase.kv.ep_hlc_drift_seconds,gauge,,second,,"The accumulated drift between this node's HLC and the remote node. For active vbucket's this represents the difference in CAS and local HLC for withMeta operations, for replica vbucket's this represents the difference in CAS and local HLC from DCP replication.",0,couchbase,,, +couchbase.kv.ep_ht_item_memory_bytes,gauge,,byte,,"The total byte size of all items, no matter the vbucket's state, no matter if an item's value is ejected. Tracks the same value as ep_total_cache_size",0,couchbase,,, +couchbase.kv.ep_ht_locks,gauge,,lock,,,0,couchbase,,, +couchbase.kv.ep_ht_resize_interval,gauge,,second,,Interval in seconds to wait between HashtableResizerTask executions.,0,couchbase,,, +couchbase.kv.ep_ht_size,gauge,,item,,Initial number of slots in HashTable objects.,0,couchbase,,, +couchbase.kv.ep_io_bg_fetch_read_count,gauge,,read,,"Accumulated count of read system calls issued by BG fetches, only maintained by couchstore buckets",0,couchbase,,, +couchbase.kv.ep_io_compaction_read_bytes_bytes,gauge,,byte,,Total number of bytes read during compaction,0,couchbase,,, +couchbase.kv.ep_io_compaction_write_bytes_bytes,gauge,,byte,,Total number of bytes written during compaction,0,couchbase,,, +couchbase.kv.ep_io_document_write_bytes_bytes,gauge,,byte,,Total number of bytes written. Only maintained by couchstore buckets and includes Couchstore B-Tree and other overheads,0,couchbase,,, +couchbase.kv.ep_io_total_read_bytes_bytes,gauge,,byte,,Total number of bytes read,0,couchbase,,, +couchbase.kv.ep_io_total_write_bytes_bytes,gauge,,byte,,Total number of bytes written,0,couchbase,,, +couchbase.kv.ep_item_begin_failed,gauge,,event,,Number of times a transaction failed to start due to storage errors,-1,couchbase,,, +couchbase.kv.ep_item_commit_failed,gauge,,event,,Number of times a transaction failed to commit due to storage errors,-1,couchbase,,, +couchbase.kv.ep_item_compressor_chunk_duration,gauge,,millisecond,,Maximum time (in ms) item compression task will run for before being paused (and resumed at the next item_compressor_interval).,0,couchbase,,, +couchbase.kv.ep_item_compressor_interval,gauge,,millisecond,,How often the item compressor task should run (in milliseconds),0,couchbase,,, +couchbase.kv.ep_item_compressor_num_compressed,gauge,,item,,Number of items compressed by the item compressor task.,0,couchbase,,, +couchbase.kv.ep_item_compressor_num_visited,gauge,,item,,Number of items visited (considered for compression) by the item compressor task.,0,couchbase,,, +couchbase.kv.ep_item_eviction_age_percentage,gauge,,percent,,The age percentage used when determining the age threshold in the learning_age_and_mfu eviction policy.,0,couchbase,,, +couchbase.kv.ep_item_eviction_freq_counter_age_threshold,gauge,,second,,,0,couchbase,,, +couchbase.kv.ep_item_eviction_initial_mfu_percentile,gauge,,,,Percentile of existing item MFU distribution to use to determine the MFU to give to new items (0 would insert new items with MFU equal to that of the coldest item present; 100 to that of hottest item present) for the upfront_mfu_only eviction strategy.,0,couchbase,,, +couchbase.kv.ep_item_eviction_initial_mfu_update_interval,gauge,,second,,Time between updates of the initial MFU given to new items (seconds),0,couchbase,,, +couchbase.kv.ep_item_flush_expired,gauge,,event,,Number of times an item is not flushed due to the expiry of the item,0,couchbase,,, +couchbase.kv.ep_item_flush_failed,gauge,,event,,Number of times an item failed to flush due to storage errors,-1,couchbase,,, +couchbase.kv.ep_item_freq_decayer_chunk_duration,gauge,,millisecond,,Maximum time (in ms) itemFreqDecayer task will run for before being paused.,0,couchbase,,, +couchbase.kv.ep_item_freq_decayer_percent,gauge,,percent,,The percent that the frequency counter of a document is decayed when visited by item_freq_decayer.,0,couchbase,,, +couchbase.kv.ep_item_num,gauge,,event,,The number of item objects allocated,0,couchbase,,, +couchbase.kv.ep_item_num_allocated_total,count,,event,,The number of item object allocations,0,couchbase,,, +couchbase.kv.ep_item_num_based_new_chk,gauge,,item,,N/A,0,couchbase,,, +couchbase.kv.ep_item_num_freed_total,count,,event,,The number of item object deallocations,0,couchbase,,, +couchbase.kv.ep_items_expelled_from_checkpoints,count,,item,,Number of items expelled from checkpoints. Expelled refers to items that have been ejected from memory but are still considered to be part of the checkpoint.,0,couchbase,,, +couchbase.kv.ep_items_rm_from_checkpoints,count,,item,,Number of items removed from closed unreferenced checkpoints,0,couchbase,,, +couchbase.kv.ep_keep_closed_chks,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_key_value_size_bytes,gauge,,byte,,"Memory used to store items metadata, keys and values in the system, no matter the vbucket's state",0,couchbase,,, +couchbase.kv.ep_magma_active_disk_usage_bytes,gauge,,byte,,Compressed disk size of latest version of the LSM Trees. This includes history,0,couchbase,,, +couchbase.kv.ep_magma_block_cache_hits,gauge,,hit,,Number of block cache hits,1,couchbase,,, +couchbase.kv.ep_magma_block_cache_mem_used_bytes,gauge,,byte,,Memory used by block cache. Accounts for allocated size of blocks that includes allocator internal fragmentation and any internal cache overheads due to auxilliary structures,0,couchbase,,, +couchbase.kv.ep_magma_block_cache_misses,gauge,,miss,,Number of block cache misses,-1,couchbase,,, +couchbase.kv.ep_magma_bloom_filter_accuracy,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_magma_bloom_filter_accuracy_for_bottom_level,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_magma_bloom_filter_mem_used_bytes,gauge,,byte,,Bloom filter memory usage in all versions of the LSM Trees,0,couchbase,,, +couchbase.kv.ep_magma_buffer_mem_used_bytes,gauge,,byte,,Memory usage for some buffers,0,couchbase,,, +couchbase.kv.ep_magma_bytes_incoming_bytes,gauge,,byte,,"Data written to key, seq, local index as part of the KV frontend writes.",0,couchbase,,, +couchbase.kv.ep_magma_bytes_outgoing_bytes,gauge,,byte,,Total bytes returned via get (excluding bytes returned from sequence iterator),0,couchbase,,, +couchbase.kv.ep_magma_bytes_per_read_ratio,gauge,,fraction,,Bytes read by get / number of Gets,0,couchbase,,, +couchbase.kv.ep_magma_checkpoint_disk_usage_bytes,gauge,,byte,,Checkpoint overhead,0,couchbase,,, +couchbase.kv.ep_magma_checkpoint_every_batch,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_magma_checkpoint_interval,gauge,,second,,Frequency of checkpoint interval; in seconds. A checkpoint provides a rollback point to which the data store can rollback to in the event of a failure.,0,couchbase,,, +couchbase.kv.ep_magma_checkpoint_threshold,gauge,,percent,,"Threshold of data written before a checkpoint is created; threshold is based on a fraction of the total data size. Checkpoints require data to be retained in order to provide rollback capability. If the amount of data written during a checkpoint interval is large, we need to do more frequent checkpoints to reduce space amplification.",0,couchbase,,, +couchbase.kv.ep_magma_compactions,gauge,,event,,"Count of Magma compactions in key, seq and local index.",0,couchbase,,, +couchbase.kv.ep_magma_data_blocks_compressed_size,gauge,,byte,,Data blocks compressed size; actual size in storage,0,couchbase,,, +couchbase.kv.ep_magma_data_blocks_compression_ratio_ratio,gauge,,percent,,The compression ratio calculated by dividing the uncompressed data size by the compressed data size,0,couchbase,,, +couchbase.kv.ep_magma_data_blocks_space_reduction_estimate_pct_ratio,gauge,,percent,,Estimated percentage of space savings in compressed data blocks (0-100),0,couchbase,,, +couchbase.kv.ep_magma_data_blocks_uncompressed_size,gauge,,byte,,Data blocks uncompressed size,0,couchbase,,, +couchbase.kv.ep_magma_delete_frag_ratio,gauge,,,,Magma compaction always removes duplicate keys but not all sstables are visited during compaction.. This is the minimum fragmentation ratio threshold for when a compaction will be triggerred.,0,couchbase,,, +couchbase.kv.ep_magma_delete_memtable_writecache,gauge,,,,Magma uses a lazy update model to maintain the sequence index. It maintains a list of deleted seq #s that were deleted from the key Index.,0,couchbase,,, +couchbase.kv.ep_magma_enable_block_cache,gauge,,,,The block cache is an LRU policy driven cache that is used to maintain index blocks for the sstable's btrees.,0,couchbase,,, +couchbase.kv.ep_magma_enable_direct_io,gauge,,,,Using direct IO tells magma to bypass the file system cache when writing or reading sstables.,0,couchbase,,, +couchbase.kv.ep_magma_enable_group_commit,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_magma_enable_memory_optimized_writes,gauge,,,,"When enabled, if copying a write batch into memtable results in exceeding the write cache quota, Magma avoids the copy and instead flushes the batch to disk on the writer thread itself. This tradeoffs an increase in write latency for reduced memory consumption and obeys quota limits. If copying a batch keeps us under the quota, Magma will to continue to copy and do the flush in background.",0,couchbase,,, +couchbase.kv.ep_magma_enable_upsert,gauge,,,,"When true, the kv_engine will utilize Magma's upsert capabiltiy but accurate document counts for the data store or collections can not be maintained.",0,couchbase,,, +couchbase.kv.ep_magma_enable_wal,gauge,,,,"WAL ensures Magma's atomicity, durability. Disabling it is useful in performance analysis.",0,couchbase,,, +couchbase.kv.ep_magma_expiry_frag_threshold,gauge,,percent,,All compactions perform expiry but not all sstables are visited by compaction. Magma maintains an expiry histogram across the kvstore to help determine which range of sstables need to have compaction run on them because there are a significant number of expired items. The frag threshold is the number of expired keys vs keys in the data store.,0,couchbase,,, +couchbase.kv.ep_magma_expiry_purger_interval,gauge,,second,,Magma maintains statistics about expired documents to run compaction based on magma_expiry_frag_threshold. This config determines the the expiry purger polling interval in seconds to trigger compaction on eligible sstables,0,couchbase,,, +couchbase.kv.ep_magma_filecount_compactions,gauge,,event,,Number of compactions triggered by file count,0,couchbase,,, +couchbase.kv.ep_magma_flusher_thread_percentage,gauge,,percent,,Percentage of storage threads that are flusher threads (i.e. with a value of 20 we will allocate 4 (1/5th) of the storage threads to flushers and the remaining 16 (4/5ths) threads will be compactors).,0,couchbase,,, +couchbase.kv.ep_magma_flushes,gauge,,flush,,Number of write cache flushes performed,0,couchbase,,, +couchbase.kv.ep_magma_fragmentation_percentage,gauge,,percent,,The percentage of fragmentation a magma bucket aims to maintain. A 100 value will disable sequence tree compactions by setting the desired fragmentation percentage to 100%. Smaller compactions of the key and local indexes will still run.,0,couchbase,,, +couchbase.kv.ep_magma_fragmentation_ratio,gauge,,percent,,Fragmentation on disk (excludes history),0,couchbase,,, +couchbase.kv.ep_magma_gets,gauge,,operation,,Number of get operations,0,couchbase,,, +couchbase.kv.ep_magma_group_commit_max_sync_wait_duration_ms,gauge,,millisecond,,,0,couchbase,,, +couchbase.kv.ep_magma_group_commit_max_transaction_count,gauge,,event,,,0,couchbase,,, +couchbase.kv.ep_magma_heartbeat_interval,gauge,,second,,Frequency of heartbeat interval; in seconds. A heartbeat task is scheduled to provide cleanup and maintenance when magma is idle.,0,couchbase,,, +couchbase.kv.ep_magma_histogram_mem_used_bytes,gauge,,byte,,Memory usage for MagmaHistogramStats and file histograms,0,couchbase,,, +couchbase.kv.ep_magma_history_logical_data_size_bytes,gauge,,byte,,The logical data size of history,0,couchbase,,, +couchbase.kv.ep_magma_history_logical_disk_size_bytes,gauge,,byte,,The logical disk size of history,0,couchbase,,, +couchbase.kv.ep_magma_history_size_evicted_bytes,gauge,,byte,,History eviction bytes based on size,0,couchbase,,, +couchbase.kv.ep_magma_history_time_evicted_bytes,gauge,,byte,,History eviction bytes based on time,0,couchbase,,, +couchbase.kv.ep_magma_index_resident_ratio_ratio,gauge,,percent,,Proportion of keyIndex (data+index blocks) and seqIndex (index blocks) in memory,0,couchbase,,, +couchbase.kv.ep_magma_initial_wal_buffer_size,gauge,,byte,,"The WAL buffer is used to stage items to the write ahead log along with control information like begin and end transaction. This parameter refers to the initial WAL buffer size. The WAL buffer will adjust its size up to a maximum of 4MB or down to a minimum of 64KB depending on the transaction batch size with consideration for other magma components which consume memory such as the block cache,...",0,couchbase,,, +couchbase.kv.ep_magma_inserts,gauge,,operation,,Number of DocInsert operations,0,couchbase,,, +couchbase.kv.ep_magma_key_tree_data_block_size,gauge,,byte,,"Magma uses SSTables for storage. SSTables are made up of different types of blocks. Data blocks contain the bulk of the data and contain the key and metadata for each of the items in the block. Larger block sizes can decrease storage space by better block compression but they require more memory, cpu and io bandwidth to read and write them.",0,couchbase,,, +couchbase.kv.ep_magma_key_tree_index_block_size,gauge,,byte,,"Magma uses SSTables for storage. SSTables are made up of different types of blocks. Index blocks contain keys that help traverse the SSTable to locate the data item. Larger block sizes can decrease storage space by better block compression but they require more memory, cpu and io bandwidth to read and write them.",0,couchbase,,, +couchbase.kv.ep_magma_keyindex_filecount_compactions,gauge,,event,,Number of compactions triggered by file count for the KeyIndex,0,couchbase,,, +couchbase.kv.ep_magma_keyindex_writer_compactions,gauge,,event,,Number of compaction performed on the writer thread for the KeyIndex,0,couchbase,,, +couchbase.kv.ep_magma_logical_data_size_bytes,gauge,,byte,,"The logical data size, including history",0,couchbase,,, +couchbase.kv.ep_magma_logical_disk_size_bytes,gauge,,byte,,"The logical disk size, including history",0,couchbase,,, +couchbase.kv.ep_magma_lsmtree_object_mem_used_bytes,gauge,,byte,,Memory used by LSMTree objects,0,couchbase,,, +couchbase.kv.ep_magma_max_checkpoints,gauge,,item,,Maximum # of checkpoints retained for rollback.,0,couchbase,,, +couchbase.kv.ep_magma_max_default_storage_threads,gauge,,thread,,"If the number of storage threads = 0, then we set the number of storage threads based on the number of writer threads up to a maximum of 20 threads and use magma_flusher_thread_percentage to determine the ratio of flusher and compactor threads.",0,couchbase,,, +couchbase.kv.ep_magma_max_level_0_ttl,gauge,,second,,Maximum time (in seconds) that data is kept in level 0 before it is merged.,0,couchbase,,, +couchbase.kv.ep_magma_max_recovery_bytes,gauge,,byte,,"Maximum amount of data that is replayed from the WAL during magma recovery. When this threshold is reached magma, creates a temporary checkpoint to recover at. This is per kvstore and in bytes.",0,couchbase,,, +couchbase.kv.ep_magma_max_write_cache,gauge,,byte,,"Magma uses a common skiplist to buffer all items at the shard level called the write cache. The write cache contains items from all the kvstores that are part of the shard and when it is flushed, each kvstore will receive a few items each. Regardless of how much memory might be available, this would be the maximum amount that could be allocated.",0,couchbase,,, +couchbase.kv.ep_magma_mem_quota_low_watermark_ratio,gauge,,percent,,Fraction of memory quota used by magma as it's low water mark. Magma uses this low watermark to size it's write cache and block cache. This sizing includes bloom filters memory usage but bloom filter eviction is based on the memory quota,0,couchbase,,, +couchbase.kv.ep_magma_mem_quota_ratio,gauge,,percent,,Magma total memory ratio of the Bucket Quota across all shards and Magma limit's it's memory usage to this value.,0,couchbase,,, +couchbase.kv.ep_magma_min_checkpoint_interval,gauge,,second,,Minimum interval between two checkpoints; in seconds. Prevents excessive creation of checkpoints.,0,couchbase,,, +couchbase.kv.ep_magma_min_value_block_size_threshold,gauge,,byte,,Magma creates value blocks for values larger than this size. Value blocks only contain a single KV item and their reads/writes are optimised for memory as it avoids many value copies. Right now compression is turned off for value blocks to reduce memory consumption while building them. This setting should be at least as large as the SeqIndex block size.,0,couchbase,,, +couchbase.kv.ep_magma_per_document_compression_enabled,gauge,,,,Apply Snappy compression to each document when persisted (magma only),0,couchbase,,, +couchbase.kv.ep_magma_read_ahead_buffer_mem_used_bytes,gauge,,byte,,Memory consumed by read ahead buffers. They are used for compactions and sequence iterators. This is included in BufferMemUsed,0,couchbase,,, +couchbase.kv.ep_magma_read_bytes_bytes,gauge,,byte,,Total bytes read from disk as per Magma's manual accounting in various code paths,0,couchbase,,, +couchbase.kv.ep_magma_read_bytes_compact_bytes,gauge,,byte,,Total bytes read from disk by compactors,0,couchbase,,, +couchbase.kv.ep_magma_read_bytes_get_bytes,gauge,,byte,,Total bytes read from disk by gets,0,couchbase,,, +couchbase.kv.ep_magma_readamp_get_ratio,gauge,,percent,,Bytes Read from disk by only Get threads / Bytes outgoing,0,couchbase,,, +couchbase.kv.ep_magma_readamp_ratio,gauge,,percent,,Bytes read from disk / bytes outgoing. Bytes read from disk includes Gets and compactors (excluding WAL),0,couchbase,,, +couchbase.kv.ep_magma_readio,gauge,,read,,Number of read IOs performed,0,couchbase,,, +couchbase.kv.ep_magma_readioamp_ratio,gauge,,percent,,Number of read IOs performed by GetDocs divided by the number of GetDocs,0,couchbase,,, +couchbase.kv.ep_magma_seq_tree_data_block_size,gauge,,byte,,"Magma uses SSTables for storage. SSTables are made up of different types of blocks. Data blocks contain the bulk of the data and contain the key, metadata and value for each of the items in the block. Larger block sizes can decrease storage space by better block compression but they require more memory, cpu and io bandwidth to read and write them.",0,couchbase,,, +couchbase.kv.ep_magma_seq_tree_index_block_size,gauge,,byte,,"Magma uses SSTables for storage. SSTables are made up of different types of blocks. Index blocks contain keys that help traverse the SSTable to locate the data item. Larger block sizes can decrease storage space by better block compression but they require more memory, cpu and io bandwidth to read and write them.",0,couchbase,,, +couchbase.kv.ep_magma_seqindex_data_compactions,gauge,,event,,Count of Magma compactions in seq index that compact the data level. This are already accounted in ep_magma_seqindex_compactions hence not part of the magma_compactions Prometheus stat family.,0,couchbase,,, +couchbase.kv.ep_magma_seqindex_delta_bytes_incoming_bytes,gauge,,byte,,Data written to seq index delta levels as part of frontend update operations. This is already accounted in ep_magma_seqindex_bytes_incoming hence not part of Prometheus stat family magma_bytes_incoming.,0,couchbase,,, +couchbase.kv.ep_magma_seqindex_delta_write_bytes_bytes,gauge,,byte,,"Bytes written by Magma flushes, compactions of the seq index delta levels. This is already accounted into ep_magma_sequndex_write_bytes hence not part of the Prometheus stat family magma_write_bytes.",0,couchbase,,, +couchbase.kv.ep_magma_seqindex_filecount_compactions,gauge,,event,,Number of compactions triggered by file count for the SeqIndex,0,couchbase,,, +couchbase.kv.ep_magma_seqindex_writer_compactions,gauge,,event,,Number of compaction performed on the writer thread for the SeqIndex,0,couchbase,,, +couchbase.kv.ep_magma_sets,gauge,,operation,,Number of set operations (DocUpsert),0,couchbase,,, +couchbase.kv.ep_magma_sync_every_batch,gauge,,,,"Couchstore generates a commit point at the end of every batch of items. During normal operation, Magma checkpoints are taken at every magma_checkpoint_interval. Many of the tests require more frequent checkpoints so this configuration parameter makes sure every batch generates a checkpoint. Each checkpoint generated in this way is a ""Sync"" checkpoint and isn't going to be useful for rollback as...",0,couchbase,,, +couchbase.kv.ep_magma_syncs,gauge,,event,,Number of fsyncs performed,0,couchbase,,, +couchbase.kv.ep_magma_table_meta_mem_used_bytes,gauge,,byte,,Memory used by sstable metadata,0,couchbase,,, +couchbase.kv.ep_magma_table_object_mem_used_bytes,gauge,,byte,,Memory used by SSTable objects,0,couchbase,,, +couchbase.kv.ep_magma_tables,gauge,,file,,Number of files used for tables,0,couchbase,,, +couchbase.kv.ep_magma_tables_created,gauge,,file,,Number of table files created,0,couchbase,,, +couchbase.kv.ep_magma_tables_deleted,gauge,,file,,Number of table files deleted,0,couchbase,,, +couchbase.kv.ep_magma_total_disk_usage_bytes,gauge,,byte,,"Compressed size of all SSTables in all checkpoints, WAL and any other files on disk",0,couchbase,,, +couchbase.kv.ep_magma_total_mem_used_bytes,gauge,,byte,,"Total memory used by bloom filters, write cache, block cache and index blocks This account for all versions of the trees",0,couchbase,,, +couchbase.kv.ep_magma_tree_snapshot_mem_used_bytes,gauge,,byte,,Memory consumed by all LSMTree TreeSnapshots,0,couchbase,,, +couchbase.kv.ep_magma_ttl_compactions,gauge,,event,,Number of time-to-live based compactions,0,couchbase,,, +couchbase.kv.ep_magma_value_separation_size,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.ep_magma_wal_disk_usage_bytes,gauge,,byte,,Disk usage by the WAL,0,couchbase,,, +couchbase.kv.ep_magma_wal_mem_used_bytes,gauge,,byte,,"Total WAL memory used, including WAL buffer and any auxiliary memory",0,couchbase,,, +couchbase.kv.ep_magma_write_bytes_bytes,gauge,,byte,,"Bytes written by Magma flushes, compactions and WAL writes.",0,couchbase,,, +couchbase.kv.ep_magma_write_bytes_compact_bytes,gauge,,byte,,Bytes written by Magma compactions.,0,couchbase,,, +couchbase.kv.ep_magma_write_cache_mem_used_bytes,gauge,,byte,,Memory usage of the write cache,0,couchbase,,, +couchbase.kv.ep_magma_write_cache_ratio,gauge,,percent,,"Memory is maintained across 3 magma components; Bloom filters, Block cache and Write cache. The least important of these is the write cache. If there is insufficent memory for the write cache, the write cache will grow to the size of the batch and then be immediately flushed and freed. If there is available memory, the write cache is limited to 20% of the available memory (after bloom filter an...",0,couchbase,,, +couchbase.kv.ep_magma_writer_compactions,gauge,,event,,Number of compaction performed on the writer thread,0,couchbase,,, +couchbase.kv.ep_max_checkpoints,gauge,,,,"The expected max number of checkpoints in each VBucket on a balanced system. Note: That is not a hard limit on the single vbucket. That is used (together with checkpoint_memory_ratio) for computing checkpoint_max_size, which triggers checkpoint creation.",0,couchbase,,, +couchbase.kv.ep_max_failover_entries,gauge,,entry,,maximum number of failover log entries,0,couchbase,,, +couchbase.kv.ep_max_item_privileged_bytes,gauge,,byte,,Maximum number of bytes allowed for 'privileged' (system) data for an item in addition to the max_item_size bytes,0,couchbase,,, +couchbase.kv.ep_max_item_size,gauge,,byte,,Maximum number of bytes allowed for an item,0,couchbase,,, +couchbase.kv.ep_max_num_bgfetchers,gauge,,object,,Maximum number of bg fetcher objects (the number of concurrent bg fetch tasks we can run). 0 = auto-configure which means we use the same number as the number of shards (max_num_shards - for historic reasons). See also num_reader_threads.,0,couchbase,,, +couchbase.kv.ep_max_num_flushers,gauge,,object,,Maximum number of flusher objects (the number of concurrent flusher tasks we can run). 0 = auto-configure which means we use the same number as the number of shards (max_num_shards - for historic reasons). See also num_writer_threads.,0,couchbase,,, +couchbase.kv.ep_max_num_shards,gauge,,shard,,Maximum mumber of shards (0 = auto-configure),0,couchbase,,, +couchbase.kv.ep_max_num_workers,gauge,,,,Bucket Priority relative to other buckets,0,couchbase,,, +couchbase.kv.ep_max_size,gauge,,byte,,Memory quota (in bytes) for this bucket.,0,couchbase,,, +couchbase.kv.ep_max_threads,gauge,,thread,,Maximum number of threads of any single class (0 = automatically select based on core count),0,couchbase,,, +couchbase.kv.ep_max_ttl,gauge,,second,,"A maximum TTL (in seconds) that will apply to all new documents, documents set with no TTL will be given this value. A value of 0 means this is disabled",0,couchbase,,, +couchbase.kv.ep_max_vbuckets,gauge,,item,,Maximum number of vbuckets expected,0,couchbase,,, +couchbase.kv.ep_mem_freed_by_checkpoint_item_expel_bytes,gauge,,byte,,Memory recovered from Checkpoint by expelling clean items (i.e. items processed by all cursors) from the queue,0,couchbase,,, +couchbase.kv.ep_mem_freed_by_checkpoint_removal_bytes,gauge,,byte,,Amount of memory freed through ckpt removal,0,couchbase,,, +couchbase.kv.ep_mem_high_wat,gauge,,byte,,,0,couchbase,,, +couchbase.kv.ep_mem_high_wat_percent_ratio,gauge,,fraction,,High water mark (as a percentage),0,couchbase,,, +couchbase.kv.ep_mem_low_wat,gauge,,byte,,,0,couchbase,,, +couchbase.kv.ep_mem_low_wat_percent_ratio,gauge,,fraction,,Low water mark (as a percentage),0,couchbase,,, +couchbase.kv.ep_mem_tracker_enabled,gauge,,,,True if memory usage tracker is enabled,0,couchbase,,, +couchbase.kv.ep_mem_used_merge_threshold_percent,gauge,,percent,,What percent of max_data size should we allow the estimated total memory to lag by (EPStats::getEstimatedTotalMemoryUsed),0,couchbase,,, +couchbase.kv.ep_meta_data_disk_bytes,gauge,,byte,,Estimate of how much metadata has been written to disk since startup,0,couchbase,,, +couchbase.kv.ep_meta_data_memory_bytes,gauge,,byte,,"Total memory used by meta data, including the key",0,couchbase,,, +couchbase.kv.ep_min_compression_ratio,gauge,,percent,,specifies a minimum compression ratio below which storing the document will be stored as uncompressed.,0,couchbase,,, +couchbase.kv.ep_mutation_mem_ratio,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_mutation_mem_threshold,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_nexus_concurrent_flush_compaction_enabled,gauge,,,,Should NexusKVStore enable concurrent flushing and compaction?,0,couchbase,,, +couchbase.kv.ep_nexus_implicit_compaction_enabled,gauge,,,,Should NexusKVStore enable implicit compaction?,0,couchbase,,, +couchbase.kv.ep_not_locked_returns_tmpfail,gauge,,,,"Controls which error code should be returned when attempting to unlock an item that is not locked. When value is true, the legacy temporary_failure is used instead of not_locked.",0,couchbase,,, +couchbase.kv.ep_num_access_scanner_runs,gauge,,event,,Number of times we ran accesss scanner to snapshot working set,0,couchbase,,, +couchbase.kv.ep_num_access_scanner_skips,gauge,,event,,Number of times accesss scanner task decided not to generate access log,0,couchbase,,, +couchbase.kv.ep_num_auxio_threads,gauge,,thread,,N/A,0,couchbase,,, +couchbase.kv.ep_num_checkpoints,gauge,,event,,The number of checkpoint objects allocated,0,couchbase,,, +couchbase.kv.ep_num_checkpoints_allocated_total,count,,event,,The number of checkpoint object allocations,0,couchbase,,, +couchbase.kv.ep_num_checkpoints_freed_total,count,,event,,The number of checkpoint object deallocations,0,couchbase,,, +couchbase.kv.ep_num_checkpoints_pending_destruction,gauge,,item,,Number of checkpoints detached from CM and owned by Destroyers,0,couchbase,,, +couchbase.kv.ep_num_eject_failures,count,,item,,Number of items that could not be ejected,-1,couchbase,,, +couchbase.kv.ep_num_expiry_pager_runs,count,,event,,Number of times we ran expiry pager loops to purge expired items from memory/disk,0,couchbase,,, +couchbase.kv.ep_num_freq_decayer_runs,count,,task,,Number of times we ran the freq decayer task because a frequency counter has become saturated,0,couchbase,,, +couchbase.kv.ep_num_non_resident,gauge,,item,,The number of non-resident items,0,couchbase,,, +couchbase.kv.ep_num_nonio_threads,gauge,,thread,,N/A,0,couchbase,,, +couchbase.kv.ep_num_not_my_vbuckets,count,,exception,,Number of times Not My VBucket exception happened during runtime,0,couchbase,,, +couchbase.kv.ep_num_pager_runs,count,,event,,Number of times we ran pager loops to seek additional memory,0,couchbase,,, +couchbase.kv.ep_num_reader_threads,gauge,,thread,,N/A,0,couchbase,,, +couchbase.kv.ep_num_value_ejects,count,,event,,Number of times item values got ejected from memory to disk,0,couchbase,,, +couchbase.kv.ep_num_workers,gauge,,thread,,Global number of shared worker threads,0,couchbase,,, +couchbase.kv.ep_num_writer_threads,gauge,,thread,,N/A,0,couchbase,,, +couchbase.kv.ep_oom_errors,gauge,,event,,Number of times unrecoverable OOMs happened while processing operations,-1,couchbase,,, +couchbase.kv.ep_pager_active_vb_pcnt,gauge,,percent,,N/A,0,couchbase,,, +couchbase.kv.ep_pager_sleep_time_ms,gauge,,millisecond,,How long in milliseconds the ItemPager will sleep for when not being requested to run,0,couchbase,,, +couchbase.kv.ep_pending_compactions,gauge,,task,,"For persistent buckets, the count of compaction tasks.",0,couchbase,,, +couchbase.kv.ep_pending_ops,gauge,,operation,,Number of ops awaiting pending vbuckets,0,couchbase,,, +couchbase.kv.ep_pending_ops_max,gauge,,operation,,Max ops seen awaiting 1 pending vbucket,0,couchbase,,, +couchbase.kv.ep_pending_ops_max_duration_seconds,gauge,,microsecond,,Max time (s) used waiting on pending vbuckets,0,couchbase,,, +couchbase.kv.ep_pending_ops_total,count,,operation,,Total blocked pending ops since reset,0,couchbase,,, +couchbase.kv.ep_persist_vbstate_total,gauge,,event,,Total VB persist state to disk,0,couchbase,,, +couchbase.kv.ep_persistent_metadata_purge_age,gauge,,second,,"Age in seconds after which tombstones may be purged. Defaults to 3 days. Max of 60 days. If this is dynamically changed for a magma bucket then magma may not trigger compactions when it should, this can be avoided by running a full manual compaction after changing this parameter.",0,couchbase,,, +couchbase.kv.ep_pitr_enabled,gauge,,,,Is PiTR enabled or not,0,couchbase,,, +couchbase.kv.ep_pitr_granularity,gauge,,second,,The granularity (interval between each rollback point) in seconds (up to 5 hours),0,couchbase,,, +couchbase.kv.ep_pitr_max_history_age,gauge,,second,,The number of seconds of the oldest entry to keep as part of compaction (up to 48 hours),0,couchbase,,, +couchbase.kv.ep_queue_size,gauge,,item,,Number of items queued for storage,0,couchbase,,, +couchbase.kv.ep_range_scan_kv_store_scan_ratio,gauge,,percent,,"The ratio for calculating how many RangeScans can exist, a ratio of total KVStore scans.",0,couchbase,,, +couchbase.kv.ep_range_scan_max_continue_tasks,gauge,,task,,The maximum number of range scan tasks that can exist concurrently. Setting to 0 results in num_auxio_threads - 1 tasks,0,couchbase,,, +couchbase.kv.ep_range_scan_max_lifetime,gauge,,second,,The maximum lifetime in seconds for a range-scan. Scans that don't complete before this limit are cancelled,0,couchbase,,, +couchbase.kv.ep_range_scan_read_buffer_send_size,gauge,,byte,,The size of a buffer used to store data read during the I/O phase of a range-scan-continue. Once the buffer size is >= to this value the data is sent to the connection,0,couchbase,,, +couchbase.kv.ep_replication_throttle_cap_pcnt,gauge,,percent,,N/A,0,couchbase,,, +couchbase.kv.ep_replication_throttle_queue_cap,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_replication_throttle_threshold,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_retain_erroneous_tombstones,gauge,,,,"whether erroneous tombstones need to be retain during compaction. Erroneous tombstones are those that have invalid meta data in it. For example, a delete time of 0.",0,couchbase,,, +couchbase.kv.ep_rocksdb_block_cache_high_pri_pool_ratio,gauge,,percent,,N/A,0,couchbase,,, +couchbase.kv.ep_rocksdb_block_cache_ratio,gauge,,percent,,N/A,0,couchbase,,, +couchbase.kv.ep_rocksdb_high_pri_background_threads,gauge,,thread,,N/A,0,couchbase,,, +couchbase.kv.ep_rocksdb_low_pri_background_threads,gauge,,thread,,N/A,0,couchbase,,, +couchbase.kv.ep_rocksdb_memtables_ratio,gauge,,percent,,N/A,0,couchbase,,, +couchbase.kv.ep_rocksdb_uc_max_size_amplification_percent,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.ep_rocksdb_write_rate_limit,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.ep_rollback_count,gauge,,event,,Number of rollbacks on consumer,0,couchbase,,, +couchbase.kv.ep_seqno_persistence_timeout,gauge,,second,,Timeout in seconds after which a pending SeqnoPersistence operation is temp-failed,0,couchbase,,, +couchbase.kv.ep_startup_time_seconds,gauge,,second,,System-generated engine startup time,0,couchbase,,, +couchbase.kv.ep_storage_age_highwat_seconds,gauge,,second,,N/A,0,couchbase,,, +couchbase.kv.ep_storage_age_seconds,gauge,,second,,N/A,0,couchbase,,, +couchbase.kv.ep_storedval_num,gauge,,item,,The number of storedval objects allocated,0,couchbase,,, +couchbase.kv.ep_storedval_num_allocated_total,count,,item,,The number of storedval object allocations,0,couchbase,,, +couchbase.kv.ep_storedval_num_freed_total,count,,item,,The number of blob object deallocations,0,couchbase,,, +couchbase.kv.ep_storedval_size_allocated_total_bytes,count,,byte,,The total number of bytes ever allocated for storedval objects,0,couchbase,,, +couchbase.kv.ep_storedval_size_freed_total_bytes,count,,byte,,The total number of bytes ever freed by deallocated storedval objects,0,couchbase,,, +couchbase.kv.ep_sync_writes_max_allowed_replicas,gauge,,item,,The maximum number of supported replicas for SyncWrites. Attempts to issue SyncWrites against a topology with more replicas than this setting will fail with DurabilityImpossible.,0,couchbase,,, +couchbase.kv.ep_tmp_oom_errors,count,,event,,Number of times temporary OOMs happened while processing operations,-1,couchbase,,, +couchbase.kv.ep_total_cache_size_bytes,gauge,,byte,,"The total byte size of all items, no matter the vbucket's state, no matter if an item's value is ejected. Tracks the same value as ep_ht_item_memory",0,couchbase,,, +couchbase.kv.ep_total_deduplicated,gauge,,item,,Total number of items de-duplicated when queued to CheckpointManager,0,couchbase,,, +couchbase.kv.ep_total_deduplicated_flusher,gauge,,item,,Total number of items de-duplicated when flushed to disk,0,couchbase,,, +couchbase.kv.ep_total_del_items,gauge,,item,,Total number of persisted deletions,0,couchbase,,, +couchbase.kv.ep_total_enqueued,gauge,,item,,Total number of items queued for persistence,0,couchbase,,, +couchbase.kv.ep_total_new_items,gauge,,item,,Total number of persisted new items,0,couchbase,,, +couchbase.kv.ep_total_persisted,gauge,,item,,Total number of items persisted,0,couchbase,,, +couchbase.kv.ep_uncommitted_items,gauge,,item,,The amount of items that have not been written to disk,0,couchbase,,, +couchbase.kv.ep_value_size_allocated_total_bytes,count,,byte,,The total number of bytes ever allocated for blob objects,0,couchbase,,, +couchbase.kv.ep_value_size_freed_total_bytes,count,,byte,,The total number of bytes ever freed by deallocated blob objects,0,couchbase,,, +couchbase.kv.ep_vb_total,gauge,,item,,Total vBuckets (count),0,couchbase,,, +couchbase.kv.ep_vbucket_del,gauge,,event,,Number of vbucket deletion events,0,couchbase,,, +couchbase.kv.ep_vbucket_del_avg_walltime_seconds,gauge,,microsecond,,Avg wall time (s) spent by deleting a vbucket,0,couchbase,,, +couchbase.kv.ep_vbucket_del_fail,gauge,,event,,Number of failed vbucket deletion events,-1,couchbase,,, +couchbase.kv.ep_vbucket_del_max_walltime_seconds,gauge,,microsecond,,Max wall time (s) spent by deleting a vbucket,0,couchbase,,, +couchbase.kv.ep_vbucket_mapping_sanity_checking,gauge,,,,Are vBucket mappings (key -> vBucket) checked by the server? This is a sanity checking mode which crc32 hashes the key to ensure that the client is supplying the expected vBucket for each key.,0,couchbase,,, +couchbase.kv.ep_warmup,gauge,,,,Is Warmup of existing data enabled,0,couchbase,,, +couchbase.kv.ep_warmup_access_log,gauge,,key,,Number of keys present in access log,0,couchbase,,, +couchbase.kv.ep_warmup_backfill_scan_chunk_duration,gauge,,millisecond,,The duration (in ms) after which warmup's backfill scans will yield and re-schedule; allowing other tasks on the same threads to run.,0,couchbase,,, +couchbase.kv.ep_warmup_batch_size,gauge,,item,,The size of each batch loaded during warmup.,0,couchbase,,, +couchbase.kv.ep_warmup_dups,gauge,,item,,Duplicates encountered during warmup,0,couchbase,,, +couchbase.kv.ep_warmup_estimate_time_seconds,gauge,,second,,Total time spent in the estimate item count phase of warmup,0,couchbase,,, +couchbase.kv.ep_warmup_estimated_key_count,gauge,,key,,Estimated number of keys in database,0,couchbase,,, +couchbase.kv.ep_warmup_estimated_value_count,gauge,,item,,Estimated number of values in database,0,couchbase,,, +couchbase.kv.ep_warmup_key_count,gauge,,item,,Number of keys warmed up,0,couchbase,,, +couchbase.kv.ep_warmup_keys_time_seconds,gauge,,microsecond,,Time (s) spent by warming keys,0,couchbase,,, +couchbase.kv.ep_warmup_min_item_threshold,gauge,,item,,The minimum number of items that needs to be warmed up before external data mutations is allowed. This is in % of the number of items.,0,couchbase,,, +couchbase.kv.ep_warmup_min_items_threshold,gauge,,percent,,Percentage of total items warmed up before we enable traffic.,0,couchbase,,, +couchbase.kv.ep_warmup_min_memory_threshold,gauge,,percent,,Percentage of max mem warmed up before we enable traffic.,0,couchbase,,, +couchbase.kv.ep_warmup_oom,gauge,,event,,OOMs encountered during warmup,0,couchbase,,, +couchbase.kv.ep_warmup_status,gauge,,,,The current status of the warmup thread,0,couchbase,,, +couchbase.kv.ep_warmup_thread,gauge,,,,Warmup thread status,0,couchbase,,, +couchbase.kv.ep_warmup_time_seconds,gauge,,microsecond,,Time (s) spent by warming data,0,couchbase,,, +couchbase.kv.ep_warmup_value_count,gauge,,item,,Number of values warmed up,0,couchbase,,, +couchbase.kv.ep_workload_monitor_enabled,gauge,,,,,0,couchbase,,, +couchbase.kv.ep_xattr_enabled,gauge,,,,,0,couchbase,,, +couchbase.kv.ephemeral_vb_checkpoint_memory_overhead_bytes,gauge,,byte,,Total memory overhead of all checkpoints,0,couchbase,,, +couchbase.kv.ephemeral_vb_ht_memory_bytes,gauge,,byte,,Total memory used by HashTable items,0,couchbase,,, +couchbase.kv.iovused_high_watermark,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.item_alloc_sizes_bytes,gauge,,byte,,Item allocation size counters (in bytes),0,couchbase,,, +couchbase.kv.items_in_transit,gauge,,item,,The number of items currently in transit (with a reference into the engine),0,couchbase,,, +couchbase.kv.lock_errors,gauge,,error,,The number of times an operation failed due to accessing a locked document,-1,couchbase,,, +couchbase.kv.logical_data_size_bytes,gauge,,byte,,"The logical size of all user data on disk (per-bucket), with compression applied",0,couchbase,,, +couchbase.kv.magma_bytes_incoming_bytes,gauge,,byte,,Data written as part of the KV frontend writes.,0,couchbase,,, +couchbase.kv.magma_compactions,gauge,,event,,Count of Magma compactions,0,couchbase,,, +couchbase.kv.magma_itr,gauge,,item,,Number of items returned by iterators,0,couchbase,,, +couchbase.kv.magma_write_bytes_bytes,gauge,,byte,,"Bytes written by Magma flushes, compactions.",0,couchbase,,, +couchbase.kv.magma_write_bytes_filecount_compact_bytes,gauge,,byte,,Bytes written by Magma compactions due to file count triggers.,0,couchbase,,, +couchbase.kv.manifest_force,gauge,,,,Whether the manifest was set by ns_server with the force flag,0,couchbase,,, +couchbase.kv.manifest_uid,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.max_system_connections,gauge,,connection,,Maximum number of connections to the interfaces marked as system only,0,couchbase,,, +couchbase.kv.max_user_connections,gauge,,connection,,Maximum number of connections to the interfaces marked as user,0,couchbase,,, +couchbase.kv.mem_used_bytes,gauge,,byte,,Engine's total memory usage,0,couchbase,,, +couchbase.kv.mem_used_estimate_bytes,gauge,,byte,,"Engine's total estimated memory usage (this is a faster stat to read, but lags mem_used as it's only updated when a threshold is crossed see mem_used_merge_threshold)",0,couchbase,,, +couchbase.kv.memcache_curr_items,gauge,,item,,Number of active items in memory,0,couchbase,,, +couchbase.kv.memcache_engine_maxbytes,gauge,,byte,,The max size of the bucket,0,couchbase,,, +couchbase.kv.memcache_evictions,gauge,,item,,Number of items evicted from the bucket,0,couchbase,,, +couchbase.kv.memcache_mem_size_bytes,gauge,,byte,,Engine's total memory usage,0,couchbase,,, +couchbase.kv.memcache_reclaimed,gauge,,item,,Number of items allocated by reusing expired objects,0,couchbase,,, +couchbase.kv.memcache_total_items,gauge,,item,,Total number of items in the bucket,0,couchbase,,, +couchbase.kv.memory_overhead_bytes,gauge,,byte,,"The ""unused"" memory caused by the allocator returning bigger chunks than requested",0,couchbase,,, +couchbase.kv.memory_used_bytes,gauge,,byte,,Memory used for various objects,0,couchbase,,, +couchbase.kv.msgused_high_watermark,gauge,,,,N/A,0,couchbase,,, +couchbase.kv.num_high_pri_requests,gauge,,request,,Num of async high priority requests,0,couchbase,,, +couchbase.kv.num_vbuckets,gauge,,item,,Number of vBuckets,0,couchbase,,, +couchbase.kv.op_count_total,count,,operation,,Total operations successfully executed for a bucket since reset,0,couchbase,,, +couchbase.kv.ops,gauge,,operation,,Number of operations,0,couchbase,,, +couchbase.kv.ops_failed,gauge,,operation,,Number of operations failed due to conflict resolution,-1,couchbase,,, +couchbase.kv.read_bytes,gauge,,byte,,The number bytes received from all connections bound to this bucket,0,couchbase,,, +couchbase.kv.reject_count_total,count,,operation,,"Total number of operations rejected for a bucket since reset (e.g., invalid operations)",0,couchbase,,, +couchbase.kv.rejected_conns,gauge,,connection,,The number of connections rejected due to hitting the maximum number of connections,0,couchbase,,, +couchbase.kv.rollback_item_count,gauge,,item,,Num of items rolled back,0,couchbase,,, +couchbase.kv.scope_collection_count,gauge,,item,,Number of collections in the scope,0,couchbase,,, +couchbase.kv.scope_data_limit,gauge,,,,The configured data limit for the scope (not used),0,couchbase,,, +couchbase.kv.stat_reset,gauge,,,,Timestamp when the stats was reset,0,couchbase,,, +couchbase.kv.stat_timings_mem_usage_bytes,gauge,,byte,,The memory footprint for tracing times spent processing stat requests,0,couchbase,,, +couchbase.kv.storage_bytes,gauge,,byte,,Total bytes on disk used by a bucket,0,couchbase,,, +couchbase.kv.subdoc_lookup_extracted_bytes,gauge,,byte,,The total number of bytes from the documents being returned as part of subdoc lookup operations,0,couchbase,,, +couchbase.kv.subdoc_lookup_searched_bytes,gauge,,byte,,The total size of all documents used for subdoc lookup operations,0,couchbase,,, +couchbase.kv.subdoc_mutation_inserted_bytes,gauge,,byte,,The total number of bytes inserted into the documents via subdoc,0,couchbase,,, +couchbase.kv.subdoc_mutation_updated_bytes,gauge,,byte,,The total number of bytes for the documents mutated via subdoc,0,couchbase,,, +couchbase.kv.subdoc_ops,gauge,,operation,,The number of subdoc operations,0,couchbase,,, +couchbase.kv.subdoc_update_races,gauge,,operation,,The number of times a subdoc mutation had to be retried as the document was changed by a different actor while performing the operation,0,couchbase,,, +couchbase.kv.sync_write_commit_duration_seconds,gauge,,second,,Commit duration for SyncWrites,0,couchbase,,, +couchbase.kv.system_connections,gauge,,connection,,The number of connections to system ports in memcached,0,couchbase,,, +couchbase.kv.thread_cpu_usage_seconds,gauge,,second,,Number of seconds the given thread has spent running according to the OS,0,couchbase,,, +couchbase.kv.threads,gauge,,thread,,The number of threads used to serve clients,0,couchbase,,, +couchbase.kv.throttle_count_total,count,,throttle,,Total number of times requests have been throttled for a bucket since reset,0,couchbase,,, +couchbase.kv.throttle_seconds_total,count,,second,,Total time spent throttling requests for a bucket since reset,0,couchbase,,, +couchbase.kv.time_seconds,gauge,,second,,"The servers current time (seconds since January 1st, 1970 at 00:00:00 UTC)",0,couchbase,,, +couchbase.kv.total_connections,count,,connection,,The total number of connections to this system since the process started (or reset),0,couchbase,,, +couchbase.kv.total_memory_overhead_bytes,gauge,,byte,,"Extra memory used by transient data like persistence queue, replication queues, checkpoints, etc",0,couchbase,,, +couchbase.kv.total_memory_used_bytes,gauge,,byte,,Engine's total memory usage,0,couchbase,,, +couchbase.kv.total_resp_errors,gauge,,error,,The number of error messages returned,-1,couchbase,,, +couchbase.kv.uptime_seconds,gauge,,second,,The number of seconds elapsed since process start,0,couchbase,,, +couchbase.kv.user_connections,gauge,,connection,,The number of connections to user ports in memcached,0,couchbase,,, +couchbase.kv.vb_auto_delete_count,gauge,,document,,Cumulative count of documents auto-deleted due to NRU ejection (Ephemeral Buckets only),0,couchbase,,, +couchbase.kv.vb_bloom_filter_memory_bytes,gauge,,byte,,The memory usage in bytes of the per-vBucket Bloom filters,0,couchbase,,, +couchbase.kv.vb_checkpoint_memory_bytes,gauge,,byte,,"Total memory in checkpoints, sum of kv_vb__checkpoint_memory_overhead_bytes and kv_vb_checkpoint_memory_queue_bytes",0,couchbase,,, +couchbase.kv.vb_checkpoint_memory_overhead_allocator_bytes,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.vb_checkpoint_memory_overhead_allocator_index_bytes,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.vb_checkpoint_memory_overhead_allocator_index_key_bytes,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.vb_checkpoint_memory_overhead_allocator_queue_bytes,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.vb_checkpoint_memory_overhead_bytes,gauge,,byte,,Checkpoints memory overhead. That is the sum of kv_vb_checkpoint_memory_overhead_index_bytes and kv_vb_checkpoint_memory_overhead_queue_bytes.,0,couchbase,,, +couchbase.kv.vb_checkpoint_memory_overhead_index_bytes,gauge,,byte,,"Memory overhead in the checkpoints key-index. For every index entry, that accounts the internal structure allocation plus the key-size.",0,couchbase,,, +couchbase.kv.vb_checkpoint_memory_overhead_queue_bytes,gauge,,byte,,"Memory overhead in the checkpoints internal items queue. For every item in the queue, that accounts the internal structure allocation for holding the item's reference.",0,couchbase,,, +couchbase.kv.vb_checkpoint_memory_queue_bytes,gauge,,byte,,"Total memory of all the items queued in checkpoints. For every item in the queue, that accounts the item's key, metadata and value size. The value allocation may have shared ownership HashTable and DCP Stream readyQ.",0,couchbase,,, +couchbase.kv.vb_checkpoint_memory_unreferenced_bytes,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.vb_curr_items,gauge,,item,,"Count of alive (non-deleted) items in the vbucket, including non-resident items",0,couchbase,,, +couchbase.kv.vb_dm_mem_used_bytes,gauge,,byte,,The memory usage in bytes of the per-VBucket Durability Monitor (in-progress SyncWrites),0,couchbase,,, +couchbase.kv.vb_dm_num_tracked,gauge,,item,,The number of items tracked in the per-VBucket Durability Monitor (in-progress SyncWrites),0,couchbase,,, +couchbase.kv.vb_eject,gauge,,item,,Cumulative count of the number of items whose values have been ejected for this vBucket,0,couchbase,,, +couchbase.kv.vb_evictable_mfu,gauge,,item,,Histogram of the per-VBucket tracking MFU values of items which are currently evictable,0,couchbase,,, +couchbase.kv.vb_expired,gauge,,item,,Cumulative count of the number of items which have been expired for this vBucket,0,couchbase,,, +couchbase.kv.vb_ht_avg_size,gauge,,byte,,The average size (number of slots) of the HashTable across all vbuckets,0,couchbase,,, +couchbase.kv.vb_ht_item_memory_bytes,gauge,,byte,,The memory usage of items stored in the HashTable,0,couchbase,,, +couchbase.kv.vb_ht_item_memory_uncompressed_bytes,gauge,,byte,,"The memory usage of items stored in the HashTable, if the values were not compressed",0,couchbase,,, +couchbase.kv.vb_ht_max_size,gauge,,byte,,The maximum HashTable size (number of slots) across all vbuckets,0,couchbase,,, +couchbase.kv.vb_ht_memory_bytes,gauge,,byte,,Memory overhead of the HashTable,0,couchbase,,, +couchbase.kv.vb_ht_tombstone_purged_count,gauge,,item,,Number of purged tombstones (Ephemeral),0,couchbase,,, +couchbase.kv.vb_itm_memory_bytes,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.vb_itm_memory_uncompressed_bytes,gauge,,byte,,N/A,0,couchbase,,, +couchbase.kv.vb_max_history_disk_size_bytes,gauge,,byte,,The total size of history stored per-vBucket (the largest size reported by any vBucket),0,couchbase,,, +couchbase.kv.vb_mem_freed_by_checkpoint_item_expel_bytes,gauge,,byte,,Memory recovered from Checkpoint by expelling clean items (i.e. items processed by all cursors) from the queue,0,couchbase,,, +couchbase.kv.vb_mem_freed_by_checkpoint_removal_bytes,gauge,,byte,,Amount of memory freed through ckpt removal,0,couchbase,,, +couchbase.kv.vb_meta_data_disk_bytes,gauge,,byte,,Estimate of how much metadata has been written to disk since startup,0,couchbase,,, +couchbase.kv.vb_meta_data_memory_bytes,gauge,,byte,,"Total memory used by meta data, including the key",0,couchbase,,, +couchbase.kv.vb_num_non_resident,gauge,,item,,The number of non-resident items,0,couchbase,,, +couchbase.kv.vb_ops_create,gauge,,operation,,Number of operations where an item has been flushed to disk that did not previously exist,0,couchbase,,, +couchbase.kv.vb_ops_delete,gauge,,operation,,Number of operations where a delete has been persisted,0,couchbase,,, +couchbase.kv.vb_ops_get,gauge,,operation,,Number of successful front-end get operations,0,couchbase,,, +couchbase.kv.vb_ops_reject,gauge,,error,,Number of fatal errors in persisting a mutation (including deletion),-1,couchbase,,, +couchbase.kv.vb_ops_update,gauge,,operation,,Number of operations where a new version of an item has been persisted,0,couchbase,,, +couchbase.kv.vb_perc_mem_resident_ratio,gauge,,percent,,Percentage of items which are resident in memory,0,couchbase,,, +couchbase.kv.vb_queue_age_seconds,gauge,,second,,Sum of disk queue item age in seconds,0,couchbase,,, +couchbase.kv.vb_queue_drain,gauge,,item,,Total drained items,0,couchbase,,, +couchbase.kv.vb_queue_fill,gauge,,item,,Total items enqueued on disk queues,0,couchbase,,, +couchbase.kv.vb_queue_memory_bytes,gauge,,byte,,Total memory used by the disk queues,0,couchbase,,, +couchbase.kv.vb_queue_pending_bytes,gauge,,byte,,Total bytes of pending writes in the disk queue,-1,couchbase,,, +couchbase.kv.vb_queue_size,gauge,,item,,Number of items in the disk queues,0,couchbase,,, +couchbase.kv.vb_rollback_item_count,gauge,,operation,,Total number of mutations discarded during rollback,0,couchbase,,, +couchbase.kv.vb_seqlist_count,gauge,,item,,Number of items in the sequence list,0,couchbase,,, +couchbase.kv.vb_seqlist_deleted_count,gauge,,item,,Number of deleted items in the sequence list,0,couchbase,,, +couchbase.kv.vb_seqlist_purged_count,gauge,,item,,Number of tombstones purged from the sequence list,0,couchbase,,, +couchbase.kv.vb_seqlist_read_range_count,gauge,,item,,Number of sequence numbers visible according to the sequence list read range,0,couchbase,,, +couchbase.kv.vb_seqlist_stale_count,gauge,,item,,Number of stale items in the sequence list,0,couchbase,,, +couchbase.kv.vb_seqlist_stale_metadata_bytes,gauge,,byte,,Total bytes of stale metadata (key + fixed metadata) in the sequence list,0,couchbase,,, +couchbase.kv.vb_seqlist_stale_value_bytes,gauge,,byte,,Total bytes of stale values in the sequence list,0,couchbase,,, +couchbase.kv.vb_sync_write_aborted_count,gauge,,operation,,Total number of aborted SyncWrites,0,couchbase,,, +couchbase.kv.vb_sync_write_accepted_count,gauge,,operation,,"Total number of accepted SyncWrites (in-progress, aborted or committed)",0,couchbase,,, +couchbase.kv.vb_sync_write_committed_count,gauge,,operation,,Total number of comitted SyncWrites,0,couchbase,,, +couchbase.kv.written_bytes,gauge,,byte,,The number bytes sent to all connections bound to this bucket,0,couchbase,,, +couchbase.n1ql.active_requests,gauge,,request,,Total number of active requests.,0,couchbase,,, +couchbase.n1ql.allocated_values,count,,item,,The total number of values allocated in the query engine.,0,couchbase,,, +couchbase.n1ql.approx_vector_distance_func,count,,request,,The number of APPROX_VECTOR_DISTANCE() calls made by statements.,0,couchbase,,, +couchbase.n1ql.at_plus,count,,request,,Total number of N1QL requests with at_plus index consistency.,0,couchbase,,, +couchbase.n1ql.audit_actions,count,,record,,The total number of audit records sent to the server. Some requests cause more than one audit record to be emitted. Records in the output queue that have not yet been sent to the server are not counted.,0,couchbase,,, +couchbase.n1ql.audit_actions_failed,count,,record,,The total number of audit records sent to the server that failed.,-1,couchbase,,, +couchbase.n1ql.audit_requests_filtered,count,,request,,The number of potentially auditable requests that cause no audit action to be taken.,0,couchbase,,, +couchbase.n1ql.audit_requests_total,count,,request,,The total number of potentially auditable requests sent to the query engine.,0,couchbase,,, +couchbase.n1ql.boot_timestamp_seconds,gauge,,second,,The time the service booted in fractional seconds since Unix epoch.,0,couchbase,,, +couchbase.n1ql.bucket_reads,gauge,,read,,The total number of reads on the bucket.,0,couchbase,,, +couchbase.n1ql.bucket_retries,gauge,,event,,The total number of retries on the bucket.,0,couchbase,,, +couchbase.n1ql.bucket_writes,gauge,,write,,The total number of writes on the bucket.,0,couchbase,,, +couchbase.n1ql.bulk_get_errors,count,,error,,Count of errors due to bulk get operations,-1,couchbase,,, +couchbase.n1ql.cancelled,count,,request,,Total number of cancelled requests.,0,couchbase,,, +couchbase.n1ql.cas_mismatch_errors,count,,error,,Count of CAS mismatch errors,-1,couchbase,,, +couchbase.n1ql.counter_cu_total,count,,operation,,The number of distinct operations recording Compute Units (CUs) with Regulator.,0,couchbase,,, +couchbase.n1ql.credit_cu_total,count,,unit,,The number of Compute Units (CUs) refunded.,0,couchbase,,, +couchbase.n1ql.credit_ru_total,count,,unit,,The number of Read Units (RUs) refunded.,0,couchbase,,, +couchbase.n1ql.credit_wu_total,count,,unit,,The number of Write Units (WUs) refunded.,0,couchbase,,, +couchbase.n1ql.curl_call_errors,count,,error,,The number of CURL() calls made by statements that failed (returned an error).,-1,couchbase,,, +couchbase.n1ql.curl_calls,count,,event,,The number of CURL() calls made by statements.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_15m_rate,gauge,,,,The 15m.rate latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_1m_rate,gauge,,,,The 1m.rate latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_5m_rate,gauge,,,,The 5m.rate latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_count,gauge,,request,,The number of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_max,gauge,,,,The MAX latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_mean,gauge,,,,The MEAN latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_mean_rate,gauge,,,,The mean.rate latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_median,gauge,,,,The MEDIAN latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_min,gauge,,,,The MIN latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_p75,gauge,,,,The 75% latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_p95,gauge,,,,The 95% latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_p99,gauge,,,,The 99% latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_p99point9,gauge,,,,The 99.9% latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.cvi_request_timer_stddev,gauge,,,,The STDDEV latency of SQL++ Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.deletes,count,,operation,,Total number of DELETE operations.,0,couchbase,,, +couchbase.n1ql.engine_error_count,count,,error,,Total number of system-caused errors.,-1,couchbase,,, +couchbase.n1ql.errors,count,,error,,The total number of N1QL errors returned so far.,-1,couchbase,N1QL Error Rate,, +couchbase.n1ql.ffdc_manual,count,,event,,The total number of ffdc captures triggered due to manual invocation of ffdc admin api,0,couchbase,,, +couchbase.n1ql.ffdc_memory_limit,count,,event,,The total number of ffdc captures triggered due to free memory dropping below 10%,0,couchbase,,, +couchbase.n1ql.ffdc_memory_rate,count,,event,,The total number of ffdc captures triggered due to memory usage rate increasing by 20% of the average memory usage over the past 2 hours,0,couchbase,,, +couchbase.n1ql.ffdc_memory_threshold,count,,event,,The total number of ffdc captures triggered due to memory usage exceeding the 80% threshold,0,couchbase,,, +couchbase.n1ql.ffdc_plus_queue_full,count,,event,,The total number of ffdc captures triggered due to the plus-request queue being full,0,couchbase,,, +couchbase.n1ql.ffdc_request_queue_full,count,,event,,The total number of ffdc captures triggered due to the unbounded-request queue being full,0,couchbase,,, +couchbase.n1ql.ffdc_shutdown,count,,event,,The total number of ffdc captures triggered due to shutdown processing exceeding 30 minutes,0,couchbase,,, +couchbase.n1ql.ffdc_sigterm,count,,event,,The total number of ffdc captures triggered by a SIGTERM signal,0,couchbase,,, +couchbase.n1ql.ffdc_stalled_queue,count,,event,,The total number of ffdc captures triggered due to no requests being processed when the queued requests exceed three times the number of servicers within the last 30 seconds,0,couchbase,,, +couchbase.n1ql.ffdc_total,count,,event,,The total number of ffdc occurrences,0,couchbase,,, +couchbase.n1ql.fts_searches,count,,request,,Total number of SQL++ FTS Searches.,0,couchbase,,, +couchbase.n1ql.fts_searches_svi,count,,request,,Total number of SQL++ FTS Vetcor Searches.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_15m_rate,gauge,,,,The 15m.rate latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_1m_rate,gauge,,,,The 1m.rate latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_5m_rate,gauge,,,,The 5m.rate latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_count,gauge,,request,,The number of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_max,gauge,,,,The MAX latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_mean,gauge,,,,The MEAN latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_mean_rate,gauge,,,,The mean.rate latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_median,gauge,,,,The MEDIAN latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_min,gauge,,,,The MIN latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_p75,gauge,,,,The 75% latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_p95,gauge,,,,The 95% latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_p99,gauge,,,,The 99% latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_p99point9,gauge,,,,The 99.9% latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.hvi_request_timer_stddev,gauge,,,,The STDDEV latency of SQL++ Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.index_scans,count,,scan,,Total number of secondary index scans.,0,couchbase,,, +couchbase.n1ql.index_scans_cvi,count,,scan,,Total number of Composite VECTOR index scans.,0,couchbase,,, +couchbase.n1ql.index_scans_fts,count,,scan,,Total number of index scans performed by FTS.,0,couchbase,,, +couchbase.n1ql.index_scans_gsi,count,,scan,,Total number of index scans performed by GSI.,0,couchbase,,, +couchbase.n1ql.index_scans_hvi,count,,scan,,Total number of Hyperscale VECTOR index scans.,0,couchbase,,, +couchbase.n1ql.index_scans_seq,count,,scan,,Total number of sequential scans.,0,couchbase,,, +couchbase.n1ql.inserts,count,,operation,,Total number of INSERT operations.,0,couchbase,,, +couchbase.n1ql.invalid_requests,count,,request,,Total number of requests for unsupported endpoints.,0,couchbase,N1QL Invalid Request Rate,, +couchbase.n1ql.load,gauge,,,,The current utilization factor of the servicers on the query node.,0,couchbase,,, +couchbase.n1ql.load_factor,gauge,,,,The total load factor of the query node.,0,couchbase,,, +couchbase.n1ql.mem_quota_exceeded_errors,count,,error,,Count of memory quota exceeded errrors,-1,couchbase,,, +couchbase.n1ql.meter_cu_total,count,,second,,The number of Compute Units (CUs) recorded.,0,couchbase,,, +couchbase.n1ql.mutations,count,,operation,,Total number of document mutations.,0,couchbase,,, +couchbase.n1ql.node_memory,gauge,,byte,,"The total size of document memory in use, allocated from the node-wide document memory quota. This quota is defined only when node-quota and node-quota-val-percent settings are set.",0,couchbase,,, +couchbase.n1ql.node_rss,gauge,,byte,,The resident set size (RSS) of the query node process.,0,couchbase,,, +couchbase.n1ql.op_count_total,count,,second,,The number of distinct operations recorded with Regulator.,0,couchbase,,, +couchbase.n1ql.prepared,count,,request,,Total number of prepared statements executed.,0,couchbase,,, +couchbase.n1ql.primary_scans,count,,scan,,Total number of primary index scans.,0,couchbase,,, +couchbase.n1ql.primary_scans_fts,count,,scan,,Total number of primary scans performed by FTS.,0,couchbase,,, +couchbase.n1ql.primary_scans_gsi,count,,scan,,Total number of primary scans performed by GSI.,0,couchbase,,, +couchbase.n1ql.primary_scans_seq,count,,scan,,Total number of primary sequential scans.,0,couchbase,,, +couchbase.n1ql.queued_requests,gauge,,request,,Total number of queued requests.,0,couchbase,,, +couchbase.n1ql.reject_count_total,count,,event,,The number of times Regulator instructed an operation to be rejected.,0,couchbase,,, +couchbase.n1ql.request_time,count,,nanosecond,,Total end-to-end time to process all queries.,0,couchbase,Query Request Time,, +couchbase.n1ql.request_timer_15m_rate,gauge,,,,The 15m.rate latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_1m_rate,gauge,,,,The 1m.rate latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_5m_rate,gauge,,,,The 5m.rate latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_count,gauge,,request,,The number of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_max,gauge,,,,The MAX latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_mean,gauge,,,,The MEAN latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_mean_rate,gauge,,,,The mean.rate latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_median,gauge,,,,The MEDIAN latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_min,gauge,,,,The MIN latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_p75,gauge,,,,The 75% latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_p95,gauge,,,,The 95% latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_p99,gauge,,,,The 99% latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_p99point9,gauge,,,,The 99.9% latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.request_timer_stddev,gauge,,,,The STDDEV latency of SQL++ requests.,0,couchbase,,, +couchbase.n1ql.requests,count,,request,,Total number of N1QL requests.,0,couchbase,N1QL Request Rate,, +couchbase.n1ql.requests_1000ms,count,,query,,Number of queries that take longer than 1000ms.,0,couchbase,Queries > 1000ms,, +couchbase.n1ql.requests_250ms,count,,query,,Number of queries that take longer than 250ms.,0,couchbase,Queries > 250ms,, +couchbase.n1ql.requests_5000ms,count,,query,,Number of queries that take longer than 5000ms.,0,couchbase,Queries > 5000ms,, +couchbase.n1ql.requests_500ms,count,,query,,Number of queries that take longer than 500ms.,0,couchbase,Queries > 500ms,, +couchbase.n1ql.requests_cvi,count,,request,,Total number of SQL++ GSI Composite VECTOR requests.,0,couchbase,,, +couchbase.n1ql.requests_gsi,count,,request,,Total number of SQL++ GSI requests.,0,couchbase,,, +couchbase.n1ql.requests_hvi,count,,request,,Total number of SQL++ GSI Hyperscale VECTOR requests.,0,couchbase,,, +couchbase.n1ql.requests_natural_ftssql,count,,request,,Total number of SQL++ Natural Language FTSSQL requests.,0,couchbase,,, +couchbase.n1ql.requests_natural_jsudf,count,,request,,Total number of SQL++ Natural Language JSUDF requests.,0,couchbase,,, +couchbase.n1ql.requests_natural_sql,count,,request,,Total number of SQL++ Natural Language SQL requests.,0,couchbase,,, +couchbase.n1ql.requests_natural_total,count,,request,,Total number of SQL++ Natural Language requests.,0,couchbase,,, +couchbase.n1ql.requests_search,count,,request,,Total number of SQL++ FTS requests.,0,couchbase,,, +couchbase.n1ql.requests_svi,count,,request,,Total number of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.requests_vector,count,,request,,Total number of SQL++ VECTOR requests.,0,couchbase,,, +couchbase.n1ql.result_count,count,,document,,Total number of results (documents) returned by the query engine.,0,couchbase,Query Result Items,, +couchbase.n1ql.result_size,count,,byte,,Total size of data returned by the query engine.,0,couchbase,Query Result Size,, +couchbase.n1ql.scan_plus,count,,request,,Total number of N1QL requests with request_plus index consistency.,0,couchbase,,, +couchbase.n1ql.selects,count,,request,,Total number of SELECT requests.,0,couchbase,N1QL Select Rate,, +couchbase.n1ql.service_time,count,,nanosecond,,Time to execute all queries.,0,couchbase,Query Execution Time,, +couchbase.n1ql.spills_order,count,,operation,,Number of order by operations that have spilled to disk.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_15m_rate,gauge,,,,The 15m.rate latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_1m_rate,gauge,,,,The 1m.rate latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_5m_rate,gauge,,,,The 5m.rate latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_count,gauge,,request,,The number of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_max,gauge,,,,The MAX latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_mean,gauge,,,,The MEAN latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_mean_rate,gauge,,,,The mean.rate latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_median,gauge,,,,The MEDIAN latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_min,gauge,,,,The MIN latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_p75,gauge,,,,The 75% latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_p95,gauge,,,,The 95% latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_p99,gauge,,,,The 99% latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_p99point9,gauge,,,,The 99.9% latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.svi_request_timer_stddev,gauge,,,,The STDDEV latency of SQL++ FTS VECTOR requests.,0,couchbase,,, +couchbase.n1ql.temp_hwm,count,,byte,,High water mark for temp space use.,0,couchbase,,, +couchbase.n1ql.temp_space_errors,count,,error,,Count of temp space related errors,-1,couchbase,,, +couchbase.n1ql.temp_usage,gauge,,byte,,Current temp space use.,0,couchbase,,, +couchbase.n1ql.tenant_kv_throttle_count,gauge,,throttle,,The total number of times KV has been throttled for queries on this tenant.,0,couchbase,,, +couchbase.n1ql.tenant_kv_throttle_seconds_total,gauge,,second,,The total amount of time KV has been throttled for queries on this tenant.,0,couchbase,,, +couchbase.n1ql.tenant_memory,gauge,,byte,,"The total size of document memory in use, allocated from the tenant-wide document memory quota.",0,couchbase,,, +couchbase.n1ql.tenant_reads,gauge,,read,,The total number of reads on the tenant.,0,couchbase,,, +couchbase.n1ql.tenant_retries,gauge,,event,,The total number of retries on the tenant.,0,couchbase,,, +couchbase.n1ql.tenant_writes,gauge,,write,,The total number of writes on the tenant.,0,couchbase,,, +couchbase.n1ql.throttle_count_total,count,,throttle,,The number of times Regulator instructed an operation to throttle.,0,couchbase,,, +couchbase.n1ql.throttle_seconds_total,count,,second,,The total time spent throttling (in seconds).,0,couchbase,,, +couchbase.n1ql.timeouts,count,,error,,Count of request timeout errors,-1,couchbase,,, +couchbase.n1ql.transaction_time,count,,nanosecond,,Total elapsed time of transactions so far.,0,couchbase,,, +couchbase.n1ql.transactions,count,,transaction,,Total number of transactions.,0,couchbase,,, +couchbase.n1ql.unauthorized_users,count,,error,,Count of unauthorized access errors,-1,couchbase,,, +couchbase.n1ql.unbounded,count,,request,,Total number of N1QL requests with not_bounded index consistency.,0,couchbase,,, +couchbase.n1ql.updates,count,,request,,Total number of UPDATE requests.,0,couchbase,,, +couchbase.n1ql.user_error_count,count,,error,,Total number of user-caused errors.,-1,couchbase,,, +couchbase.n1ql.vector_distance_func,count,,request,,The number of VECTOR_DISTANCE() calls made by statements.,0,couchbase,,, +couchbase.n1ql.warnings,count,,event,,The total number of N1QL warnings returned so far.,0,couchbase,N1QL Warning Rate,, couchbase.query.cores,gauge,,core,,,0,couchbase,cores,, couchbase.query.cpu_sys_percent,gauge,,percent,,,0,couchbase,cpu sys,, couchbase.query.cpu_user_percent,gauge,,percent,,,0,couchbase,cpu user,, @@ -253,6 +1380,189 @@ couchbase.ram.quota_used_per_node,gauge,,byte,,Used RAM quota,0,couchbase,per_no couchbase.ram.total,gauge,,byte,,Total RAM,-1,couchbase,ram total,, couchbase.ram.used,gauge,,byte,,RAM in use,1,couchbase,ram used,, couchbase.ram.used_by_data,gauge,,byte,,RAM used for data,0,couchbase,ram data used,, +couchbase.sdk.invalid_metric_total,count,,item,,Number of invalid metrics received from app telemetry clients,0,couchbase,,, +couchbase.sgw.audit_num_audits_filtered_by_role,count,,event,,The total number of audit events filtered by role.,0,couchbase,,, +couchbase.sgw.audit_num_audits_filtered_by_user,count,,event,,The total number of audit events filtered by user.,0,couchbase,,, +couchbase.sgw.audit_num_audits_logged,count,,event,,The total number of audit events logged.,0,couchbase,,, +couchbase.sgw.cache_abandoned_seqs,count,,item,,"The total number of skipped sequences abandoned, based on cache.channel_cache.max_wait_skipped.",0,couchbase,,, +couchbase.sgw.cache_chan_cache_active_revs,gauge,,item,,The total number of active revisions in the channel cache.,0,couchbase,,, +couchbase.sgw.cache_chan_cache_bypass_count,count,,item,,The total number of transient bypass channel caches created to serve requests when the channel cache was at capacity.,0,couchbase,,, +couchbase.sgw.cache_chan_cache_channels_added,count,,item,,"The total number of channel caches added. The metric doesn't decrease when a channel is removed. That is, it is similar to chan_cache_num_channels but doesn't track removals.",0,couchbase,,, +couchbase.sgw.cache_chan_cache_channels_evicted_inactive,count,,item,,The total number of channel cache channels evicted due to inactivity.,0,couchbase,,, +couchbase.sgw.cache_chan_cache_channels_evicted_nru,count,,item,,"The total number of active channel cache channels evicted, based on 'not recently used' criteria.",0,couchbase,,, +couchbase.sgw.cache_chan_cache_compact_count,count,,event,,The total number of channel cache compaction runs.,0,couchbase,,, +couchbase.sgw.cache_chan_cache_compact_time,count,,nanosecond,,The total amount of time taken by channel cache compaction across all compaction runs.,0,couchbase,,, +couchbase.sgw.cache_chan_cache_hits,count,,request,,The total number of channel cache requests fully served by the cache. This metric is useful in calculating the channel cache hit ratio: channel cache hit ratio = chan_cache_hits / (chan_cache_hits + chan_cache_misses),1,couchbase,,, +couchbase.sgw.cache_chan_cache_max_entries,gauge,,entry,,"The total size of the largest channel cache. This metric helps with channel cache tuning, and provides a hint on cache size variation (when compared to average cache size).",0,couchbase,,, +couchbase.sgw.cache_chan_cache_misses,count,,request,,The total number of channel cache requests not fully served by the cache. This metric is useful when calculating the channel cache hit ratio: channel cache hit ratio = chan_cache_hits / (chan_cache_hits + chan_cache_misses),-1,couchbase,,, +couchbase.sgw.cache_chan_cache_num_channels,gauge,,item,,"The total number of channels being cached. The total number of channels being cached provides insight into potential max cache size requirements and also node usage (for example, chan_cache_num_channels * max_cache_size).",0,couchbase,,, +couchbase.sgw.cache_chan_cache_pending_queries,gauge,,query,,The total number of channel cache pending queries.,0,couchbase,,, +couchbase.sgw.cache_chan_cache_removal_revs,gauge,,item,,The total number of removal revisions in the channel cache. This metric acts as a reminder that removals must be considered when tuning the channel cache size and also helps users understand whether they should be tuning tombstone retention policy (metadata purge interval) and running compact.,0,couchbase,,, +couchbase.sgw.cache_chan_cache_tombstone_revs,gauge,,item,,"The total number of tombstone revisions in the channel cache. This metric acts as a reminder that tombstones and removals must be considered when tuning the channel cache size and also helps users understand whether they should be tuning tombstone retention policy (metadata purge interval), and running compact.",0,couchbase,,, +couchbase.sgw.cache_current_skipped_seq_count,count,,item,,The number of sequences currently in the skipped sequence slice.,0,couchbase,,, +couchbase.sgw.cache_high_seq_cached,count,,,,The highest sequence number cached. Note: There may be skipped sequences lower than high_seq_cached.,0,couchbase,,, +couchbase.sgw.cache_high_seq_stable,count,,,,The highest contiguous sequence number that has been cached.,0,couchbase,,, +couchbase.sgw.cache_non_mobile_ignored_count,count,,document,,Number of non mobile documents that were ignored off the cache feed.,0,couchbase,,, +couchbase.sgw.cache_num_active_channels,gauge,,item,,The total number of active channels.,0,couchbase,,, +couchbase.sgw.cache_num_skipped_seqs,count,,item,,The total number of skipped sequences. This is a cumulative value,0,couchbase,,, +couchbase.sgw.cache_pending_seq_len,gauge,,item,,The total number of pending sequences. These are out-of-sequence entries waiting to be cached.,-1,couchbase,,, +couchbase.sgw.cache_rev_cache_bypass,gauge,,item,,The total number of revision cache bypass operations performed.,0,couchbase,,, +couchbase.sgw.cache_rev_cache_hits,count,,hit,,The total number of revision cache hits. This metric can be used to calculate the ratio of revision cache hits: Rev Cache Hit Ratio = rev_cache_hits / (rev_cache_hits + rev_cache_misses),1,couchbase,,, +couchbase.sgw.cache_rev_cache_misses,count,,miss,,The total number of revision cache misses. This metric can be used to calculate the ratio of revision cache misses: Rev Cache Miss Ratio = rev_cache_misses / (rev_cache_hits + rev_cache_misses),-1,couchbase,,, +couchbase.sgw.cache_revision_cache_num_items,gauge,,item,,The total number of items in the revision cache.,0,couchbase,,, +couchbase.sgw.cache_revision_cache_total_memory,gauge,,byte,,"The approximation of total memory taken up by rev cache for documents. This is measured by the raw document body, the channels allocated to a document and its revision history.",0,couchbase,,, +couchbase.sgw.cache_skipped_seq_cap,gauge,,item,,The current capacity of the skipped sequence slice.,0,couchbase,,, +couchbase.sgw.cache_skipped_seq_len,gauge,,item,,The current length of the pending skipped sequence slice.,0,couchbase,,, +couchbase.sgw.cache_view_queries,count,,query,,The total view_queries.,0,couchbase,,, +couchbase.sgw.collection_doc_reads_bytes,count,,byte,,The total number of bytes read from this collection as part of document writes since Sync Gateway node startup.,0,couchbase,,, +couchbase.sgw.collection_doc_writes_bytes,count,,byte,,The total number of bytes written to this collection as part of document writes since Sync Gateway node startup.,0,couchbase,,, +couchbase.sgw.collection_import_count,count,,document,,The total number of documents imported to this collection since Sync Gateway node startup.,0,couchbase,,, +couchbase.sgw.collection_num_doc_reads,count,,document,,The total number of documents read from this collection since Sync Gateway node startup (i.e. sending to a client),0,couchbase,,, +couchbase.sgw.collection_num_doc_writes,count,,document,,The total number of documents written to this collection since Sync Gateway node startup (i.e. receiving from a client),0,couchbase,,, +couchbase.sgw.collection_sync_function_count,count,,event,,The total number of times that the sync_function is evaluated for this collection.,0,couchbase,,, +couchbase.sgw.collection_sync_function_exception_count,count,,event,,The total number of times the sync function encountered an exception for this collection.,0,couchbase,,, +couchbase.sgw.collection_sync_function_reject_access_count,count,,document,,"The total number of documents rejected by write access functions (requireAccess, requireRole, requireUser) for this collection.",0,couchbase,,, +couchbase.sgw.collection_sync_function_reject_count,count,,document,,The total number of documents rejected by the sync_function for this collection.,0,couchbase,,, +couchbase.sgw.collection_sync_function_time,count,,nanosecond,,The total time spent evaluating the sync_function for this keyspace.,0,couchbase,,, +couchbase.sgw.config_database_config_bucket_mismatches,count,,byte,,The total number of times a database config is polled from a bucket that doesn't match the bucket specified in the database config.,0,couchbase,,, +couchbase.sgw.config_database_config_collection_conflicts,count,,byte,,The total number of times a database config is rolled back to an invalid state (collection conflicts).,0,couchbase,,, +couchbase.sgw.database_compaction_attachment_start_time,gauge,,,,The compaction_attachment_start_time,0,couchbase,,, +couchbase.sgw.database_compaction_tombstone_start_time,gauge,,,,The compaction_tombstone_start_time.,0,couchbase,,, +couchbase.sgw.database_conflict_write_count,count,,write,,"The total number of writes that left the document in a conflicted state. Includes new conflicts, and mutations that don't resolve existing conflicts.",0,couchbase,,, +couchbase.sgw.database_crc32c_match_count,gauge,,event,,"The total number of instances during import when the document cas had changed, but the document was not imported because the document body had not changed.",0,couchbase,,, +couchbase.sgw.database_dcp_caching_count,gauge,,operation,,"The total number of DCP mutations added to Sync Gateway's channel cache. Can be used with dcp_caching_time to monitor cache processing latency. That is, the time between seeing a change on the DCP feed and when it's available in the channel cache: DCP cache latency = dcp_caching_time / dcp_caching_count",0,couchbase,,, +couchbase.sgw.database_dcp_caching_time,gauge,,nanosecond,,"The total time between a DCP mutation arriving at Sync Gateway and being added to channel cache. This metric can be used with dcp_caching_count to monitor cache processing latency. That is, the time between seeing a change on the DCP feed and when it's available in the channel cache: dcp_cache_latency = dcp_caching_time / dcp_caching_count",0,couchbase,,, +couchbase.sgw.database_dcp_received_count,gauge,,operation,,The total number of document mutations received by Sync Gateway over DCP.,0,couchbase,,, +couchbase.sgw.database_dcp_received_time,gauge,,nanosecond,,"The time between a document write and that document being received by Sync Gateway over DCP. If the document was written prior to Sync Gateway starting the feed, it is recorded as the time since the feed was started. This metric can be used to monitor DCP feed processing latency",0,couchbase,,, +couchbase.sgw.database_doc_reads_bytes_blip,count,,byte,,The total number of bytes read via Couchbase Lite 2.x replication since Sync Gateway node startup.,0,couchbase,,, +couchbase.sgw.database_doc_writes_bytes,count,,byte,,The total number of bytes written as part of document writes since Sync Gateway node startup.,0,couchbase,,, +couchbase.sgw.database_doc_writes_bytes_blip,count,,byte,,The total number of bytes written as part of Couchbase Lite document writes since Sync Gateway node startup.,0,couchbase,,, +couchbase.sgw.database_doc_writes_xattr_bytes,count,,byte,,The total size of xattrs written (in bytes).,0,couchbase,,, +couchbase.sgw.database_high_seq_feed,count,,,,Highest sequence number seen on the caching DCP feed.,0,couchbase,,, +couchbase.sgw.database_http_bytes_written,count,,byte,,Number of bytes written over public interface for REST api,0,couchbase,,, +couchbase.sgw.database_num_attachments_compacted,count,,item,,The number of attachments compacted import_feed,0,couchbase,,, +couchbase.sgw.database_num_doc_reads_blip,count,,document,,The total number of documents read via Couchbase Lite 2.x replication since Sync Gateway node startup.,0,couchbase,,, +couchbase.sgw.database_num_doc_reads_rest,count,,document,,The total number of documents read via the REST API since Sync Gateway node startup. Includes Couchbase Lite 1.x replication.,0,couchbase,,, +couchbase.sgw.database_num_doc_writes,count,,document,,"The total number of documents written by any means (replication, rest API interaction or imports) since Sync Gateway node startup.",0,couchbase,,, +couchbase.sgw.database_num_idle_kv_ops,count,,operation,,The total number of idle kv operations.,0,couchbase,,, +couchbase.sgw.database_num_public_rest_requests,count,,request,,The total number of requests sent over the public REST api.,0,couchbase,,, +couchbase.sgw.database_num_replications_active,gauge,,operation,,The total number of active replications.,0,couchbase,,, +couchbase.sgw.database_num_replications_rejected_limit,count,,event,,The total number of times a replication connection is rejected due to it being over the threshold.,0,couchbase,,, +couchbase.sgw.database_num_replications_total,count,,operation,,The total number of replications created since Sync Gateway node startup.,0,couchbase,,, +couchbase.sgw.database_num_tombstones_compacted,count,,item,,Number of tombstones compacted through tombstone compaction task on the database.,0,couchbase,,, +couchbase.sgw.database_public_rest_bytes_read,count,,byte,,The total amount of bytes read over the public REST api,0,couchbase,,, +couchbase.sgw.database_replication_bytes_received,count,,byte,,Total bytes received over replications to the database.,0,couchbase,,, +couchbase.sgw.database_replication_bytes_sent,count,,byte,,Total bytes sent over replications from the database.,0,couchbase,,, +couchbase.sgw.database_sequence_assigned_count,count,,item,,The total number of sequence numbers assigned.,0,couchbase,,, +couchbase.sgw.database_sequence_get_count,count,,event,,The total number of high sequence lookups.,0,couchbase,,, +couchbase.sgw.database_sequence_incr_count,count,,event,,The total number of times the sequence counter document has been incremented.,0,couchbase,,, +couchbase.sgw.database_sequence_released_count,count,,item,,"The total number of unused, reserved sequences released by Sync Gateway.",0,couchbase,,, +couchbase.sgw.database_sequence_reserved_count,count,,item,,The total number of sequences reserved by Sync Gateway.,0,couchbase,,, +couchbase.sgw.database_sync_function_count,count,,event,,"The total number of times that the sync_function is evaluated. The {sync_function_count_ stat is useful in assessing the usage of the sync_function, when used in conjunction with the sync_function_time.",0,couchbase,,, +couchbase.sgw.database_sync_function_exception_count,count,,event,,The total number of times that a sync function encountered an exception (across all collections).,0,couchbase,,, +couchbase.sgw.database_sync_function_time,count,,nanosecond,,"The total time spent evaluating the sync_function. The sync_function_time stat can be useful when: (a). Troubleshooting excessively long push times, where it can help identify potential sync_function bottlenecks (for example, those arising from complex, or inefficient, sync_function design. (b). Assessing the overall contribution of the sync_function processing to overall push replication write...",0,couchbase,,, +couchbase.sgw.database_total_sync_time,count,,second,,The total total sync time is a proxy for websocket connections. Tracking long lived and potentially idle connections. This stat represents the continually growing number of connections per sec.,0,couchbase,,, +couchbase.sgw.database_warn_channel_name_size_count,count,,event,,The total number of warnings relating to the channel name size.,-1,couchbase,,, +couchbase.sgw.database_warn_channels_per_doc_count,count,,event,,The total number of warnings relating to the channel count exceeding the channel count threshold.,-1,couchbase,,, +couchbase.sgw.database_warn_grants_per_doc_count,count,,event,,The total number of warnings relating to the grant count exceeding the grant count threshold.,-1,couchbase,,, +couchbase.sgw.database_warn_xattr_size_count,count,,event,,The total number of warnings relating to the xattr sync data being larger than a configured threshold.,-1,couchbase,,, +couchbase.sgw.delta_sync_delta_cache_hit,count,,request,,The total number of requested deltas that were available in the revision cache.,1,couchbase,,, +couchbase.sgw.delta_sync_delta_pull_replication_count,count,,operation,,The number of delta replications that have been run.,0,couchbase,,, +couchbase.sgw.delta_sync_delta_push_doc_count,count,,document,,The total number of documents pushed as a delta from a previous revision.,0,couchbase,,, +couchbase.sgw.delta_sync_delta_sync_miss,count,,item,,The total number of requested deltas that were not available in the revision cache.,-1,couchbase,,, +couchbase.sgw.delta_sync_deltas_requested,count,,event,,The total number of times a revision is sent as delta from a previous revision.,0,couchbase,,, +couchbase.sgw.delta_sync_deltas_sent,count,,item,,The total number of revisions sent to clients as deltas.,0,couchbase,,, +couchbase.sgw.gsi_views__count,count,,query,,The total number of gsi/view queries performed.,0,couchbase,,, +couchbase.sgw.gsi_views__error_count,count,,error,,The total number of errors that occurred when performing the gsi/view query,-1,couchbase,,, +couchbase.sgw.gsi_views__time,count,,nanosecond,,The total time taken to perform gsi/view queries.,0,couchbase,,, +couchbase.sgw.replication_expected_sequence_len,count,,item,,The length of expectedSeqs list in the ISGR checkpointer.,0,couchbase,,, +couchbase.sgw.replication_expected_sequence_len_post_cleanup,count,,item,,The length of expectedSeqs list in the ISGR checkpointer after the cleanup task has been run.,0,couchbase,,, +couchbase.sgw.replication_processed_sequence_len,count,,item,,The length of processedSeqs list in the ISGR checkpointer.,0,couchbase,,, +couchbase.sgw.replication_processed_sequence_len_post_cleanup,count,,item,,The length of processedSeqs list in the ISGR checkpointer after the cleanup task has been run.,0,couchbase,,, +couchbase.sgw.replication_pull_attachment_pull_bytes,count,,byte,,The total size of attachments pulled. This is the pre-compressed size.,0,couchbase,,, +couchbase.sgw.replication_pull_attachment_pull_count,count,,item,,The total number of attachments pulled.,0,couchbase,,, +couchbase.sgw.replication_pull_max_pending,gauge,,document,,"The high watermark for the number of documents buffered during feed processing, waiting on a missing earlier sequence.",0,couchbase,,, +couchbase.sgw.replication_pull_norev_send_count,count,,message,,The total number of norev messages sent during replication.,0,couchbase,,, +couchbase.sgw.replication_pull_num_pull_repl_active_continuous,gauge,,operation,,The total number of continuous pull replications in the active state.,0,couchbase,,, +couchbase.sgw.replication_pull_num_pull_repl_active_one_shot,gauge,,operation,,The total number of one-shot pull replications in the active state.,0,couchbase,,, +couchbase.sgw.replication_pull_num_pull_repl_caught_up,gauge,,operation,,The total number of replications which have caught up to the latest changes.,0,couchbase,,, +couchbase.sgw.replication_pull_num_pull_repl_since_zero,count,,operation,,The total number of new replications started (/_changes?since=0).,0,couchbase,,, +couchbase.sgw.replication_pull_num_pull_repl_total_caught_up,gauge,,operation,,The total number of pull replications which have caught up to the latest changes across all replications.,0,couchbase,,, +couchbase.sgw.replication_pull_num_pull_repl_total_continuous,gauge,,operation,,The total number of continuous pull replications.,0,couchbase,,, +couchbase.sgw.replication_pull_num_pull_repl_total_one_shot,gauge,,operation,,The total number of one-shot pull replications.,0,couchbase,,, +couchbase.sgw.replication_pull_num_replications_active,gauge,,operation,,The total number of active replications.,0,couchbase,,, +couchbase.sgw.replication_pull_replacement_rev_send_count,count,,item,,The total number of replacement revisions sent instead of a norev during replication.,0,couchbase,,, +couchbase.sgw.replication_pull_request_changes_count,count,,request,,The total number of changes requested. This metric can be used to calculate the latency of requested changes: changes request latency = request_changes_time / request_changes_count,0,couchbase,,, +couchbase.sgw.replication_pull_request_changes_time,count,,nanosecond,,Total time taken to handle changes request response. This metric can be used to calculate the latency of requested changes: changes request latency = request_changes_time / request_changes_count,0,couchbase,,, +couchbase.sgw.replication_pull_rev_error_count,count,,error,,The total number of rev messages that were failed to be processed during replication.,-1,couchbase,,, +couchbase.sgw.replication_pull_rev_processing_time,gauge,,nanosecond,,The total amount of time processing rev messages (revisions) during pull revision. This metric can be used with rev_send_count to calculate the average processing time per revision: average processing time per revision = rev_processing_time / rev_send_count,0,couchbase,,, +couchbase.sgw.replication_pull_rev_send_count,count,,item,,The total number of rev messages processed during replication. This metric can be used with rev_processing_time to calculate the average processing time per revision: average processing time per revision = rev_processing_time / rev_send_count,0,couchbase,,, +couchbase.sgw.replication_pull_rev_send_latency,count,,nanosecond,,"The total amount of time between Sync Gateway receiving a request for a revision and that revision being sent. In a pull replication, Sync Gateway sends a /_changes request to the client and the client responds with the list of revisions it wants to receive. So, rev_send_latency measures the time between the client asking for those revisions and Sync Gateway sending them to the client. Note: Me...",0,couchbase,,, +couchbase.sgw.replication_push_attachment_push_bytes,count,,byte,,The total number of attachment bytes pushed.,0,couchbase,,, +couchbase.sgw.replication_push_attachment_push_count,count,,item,,The total number of attachments pushed.,0,couchbase,,, +couchbase.sgw.replication_push_doc_push_count,gauge,,document,,The total number of documents pushed.,0,couchbase,,, +couchbase.sgw.replication_push_doc_push_error_count,gauge,,document,,The total number of documents that failed to push.,-1,couchbase,,, +couchbase.sgw.replication_push_propose_change_count,count,,item,,"The total number of changes and-or proposeChanges messages processed since node start-up. The propose_change_count stat can be useful when: (a). Assessing the number of redundant requested changes being pushed by the client. Do this by comparing the propose_change_count value with the number of actual writes num_doc_writes, which could indicate that clients are pushing changes already known to ...",0,couchbase,,, +couchbase.sgw.replication_push_propose_change_time,count,,nanosecond,,The total time spent processing changes and/or proposeChanges messages. The propose_change_time stat can be useful in diagnosing push replication issues arising from potential bottlenecks changes and-or proposeChanges processing. Note: The propose_change_time is not included in the write_processing_time,0,couchbase,,, +couchbase.sgw.replication_push_write_processing_time,gauge,,nanosecond,,"Total time spent processing writes. Measures complete request-to-response time for a write. The write_processing_time stat can be useful when: (a). Determining the average time per write: average time per write = write_processing_time / num_doc_writes stat value (b). Assessing the benefit of adding additional Sync Gateway nodes, as it can point to Sync Gateway being a bottleneck (c). Troublesho...",0,couchbase,,, +couchbase.sgw.replication_push_write_throttled_count,count,,throttle,,The total number of times a revision was throttled during push replication from clients. The write_throttled_count stat can be useful to to determine an appropriate limit of concurrent revisions for each client. There's a direct tradeoff with memory and CPU usage for replicating clients and large amounts of concurrent revisions.,0,couchbase,,, +couchbase.sgw.replication_push_write_throttled_time,count,,nanosecond,,The total time (in nanoseconds) waiting for an available slot to handle a pushed revision after being throttled. The write_throttled_time stat can be useful to determine whether clients are waiting too long for an available slot to push a revision. There's a direct tradeoff with memory and CPU usage for replicating clients and large amounts of concurrent revisions.,0,couchbase,,, +couchbase.sgw.replication_sgr_conflict_resolved_local_count,count,,document,,The total number of conflicting documents that were resolved successfully locally (by the active replicator),0,couchbase,,, +couchbase.sgw.replication_sgr_conflict_resolved_merge_count,count,,document,,The total number of conflicting documents that were resolved successfully by a merge action (by the active replicator),0,couchbase,,, +couchbase.sgw.replication_sgr_conflict_resolved_remote_count,count,,document,,The total number of conflicting documents that were resolved successfully remotely (by the active replicator),0,couchbase,,, +couchbase.sgw.replication_sgr_deltas_recv,count,,document,,The total number of documents that were purged since replication started.,0,couchbase,,, +couchbase.sgw.replication_sgr_deltas_requested,count,,item,,The total number of deltas requested.,0,couchbase,,, +couchbase.sgw.replication_sgr_deltas_sent,count,,item,,The total number of deltas sent.,0,couchbase,,, +couchbase.sgw.replication_sgr_docs_checked_recv,count,,item,,The total number of document changes received over changes message.,0,couchbase,,, +couchbase.sgw.replication_sgr_docs_checked_sent,count,,document,,"The total number of documents checked for changes since replication started. This represents the number of potential change notifications pushed by Sync Gateway. This is not necessarily the number of documents pushed, as a given target might already have the change and this is used by Inter-Sync Gateway and SG Replicate. This metric can be useful when analyzing replication history, and to filte...",0,couchbase,,, +couchbase.sgw.replication_sgr_num_attachment_bytes_pulled,count,,byte,,The total number of bytes in all the attachments that were pulled since replication started.,0,couchbase,,, +couchbase.sgw.replication_sgr_num_attachment_bytes_pushed,count,,byte,,The total number of bytes in all the attachments that were pushed since replication started.,0,couchbase,,, +couchbase.sgw.replication_sgr_num_attachments_pulled,count,,item,,The total number of attachments that were pulled since replication started.,0,couchbase,,, +couchbase.sgw.replication_sgr_num_attachments_pushed,count,,item,,The total number of attachments that were pushed since replication started.,0,couchbase,,, +couchbase.sgw.replication_sgr_num_connect_attempts_pull,count,,attempt,,Number of connection attempts made for pull replication connection.,0,couchbase,,, +couchbase.sgw.replication_sgr_num_connect_attempts_push,count,,attempt,,Number of connection attempts made for push replication connection.,0,couchbase,,, +couchbase.sgw.replication_sgr_num_docs_failed_to_pull,count,,operation,,The total number of document pulls that failed since replication started.,-1,couchbase,,, +couchbase.sgw.replication_sgr_num_docs_failed_to_push,count,,document,,The total number of documents that failed to be pushed since replication started. Used by Inter-Sync Gateway and SG Replicate.,-1,couchbase,,, +couchbase.sgw.replication_sgr_num_docs_pulled,count,,document,,The total number of documents that were pulled since replication started.,0,couchbase,,, +couchbase.sgw.replication_sgr_num_docs_purged,count,,document,,The total number of documents that were purged since replication started.,0,couchbase,,, +couchbase.sgw.replication_sgr_num_docs_pushed,count,,document,,The total number of documents that were pushed since replication started. Used by Inter-Sync Gateway and SG Replicate.,0,couchbase,,, +couchbase.sgw.replication_sgr_num_handlers_panicked,count,,event,,The number of times a handler panicked and didn't know how to recover from it.,0,couchbase,,, +couchbase.sgw.replication_sgr_num_reconnects_aborted_pull,count,,event,,Number of times pull replication connection reconnect loops have failed.,-1,couchbase,,, +couchbase.sgw.replication_sgr_num_reconnects_aborted_push,count,,event,,Number of times push replication connection reconnect loops have failed.,-1,couchbase,,, +couchbase.sgw.replication_sgr_push_conflict_count,count,,document,,The total number of pushed documents that conflicted since replication started.,0,couchbase,,, +couchbase.sgw.replication_sgr_push_rejected_count,count,,document,,The total number of pushed documents that were rejected since replication started.,0,couchbase,,, +couchbase.sgw.resource_utilization_admin_net_bytes_recv,count,,byte,,"The total number of bytes received (since node start-up) on the network interface to which the Sync Gateway api.admin_interface is bound. By default, that is the number of bytes received on 127.0.0.1:4985 since node start-up.",0,couchbase,,, +couchbase.sgw.resource_utilization_admin_net_bytes_sent,count,,byte,,"The total number of bytes sent (since node start-up) on the network interface to which the Sync Gateway api.admin_interface is bound.By default, that is the number of bytes sent on 127.0.0.1:4985 since node start-up.",0,couchbase,,, +couchbase.sgw.resource_utilization_error_count,count,,error,,The total number of errors logged.,-1,couchbase,,, +couchbase.sgw.resource_utilization_go_memstats_heapalloc,gauge,,byte,,"HeapAlloc is bytes of allocated heap objects. ""Allocated"" heap objects include all reachable objects, as well as unreachable objects that the garbage collector has not yet freed. Specifically, HeapAlloc increases as heap objects are allocated and decreases as the heap is swept and unreachable objects are freed. Sweeping occurs incrementally between GC cycles, so these two processes occur simult...",0,couchbase,,, +couchbase.sgw.resource_utilization_go_memstats_heapidle,gauge,,byte,,"HeapIdle is bytes in idle (unused) spans. Idle spans have no objects in them. These spans could be (and may already have been) returned to the OS, or they can be reused for heap allocations, or they can be reused as stack memory. HeapIdle minus HeapReleased estimates the amount of memory that could be returned to the OS, but is being retained by the runtime so it can grow the heap without reque...",0,couchbase,,, +couchbase.sgw.resource_utilization_go_memstats_heapinuse,gauge,,byte,,"HeapInuse is bytes in in-use spans. In-use spans have at least one object in them. These spans an only be used for other objects of roughly the same size. HeapInuse minus HeapAlloc estimates the amount of memory that has been dedicated to particular size classes, but is not currently being used. This is an upper bound on fragmentation, but in general this memory can be reused efficiently.",0,couchbase,,, +couchbase.sgw.resource_utilization_go_memstats_heapreleased,gauge,,byte,,HeapReleased is bytes of physical memory returned to the OS. This counts heap memory from idle spans that was returned to the OS and has not yet been reacquired for the heap.,0,couchbase,,, +couchbase.sgw.resource_utilization_go_memstats_pausetotalns,gauge,,nanosecond,,"PauseTotalNs is the cumulative nanoseconds in GC stop-the-world pauses since the program started. During a stop-the-world pause, all goroutines are paused and only the garbage collector can run.",0,couchbase,,, +couchbase.sgw.resource_utilization_go_memstats_stackinuse,gauge,,byte,,StackInuse is bytes in stack spans. In-use stack spans have at least one stack in them. These spans can only be used for other stacks of the same size. There is no StackIdle because unused stack spans are returned to the heap (and hence counted toward HeapIdle).,0,couchbase,,, +couchbase.sgw.resource_utilization_go_memstats_stacksys,gauge,,byte,,"StackSys is bytes of stack memory obtained from the OS. StackSys is StackInuse, plus any memory obtained directly from the OS for OS thread stacks (which should be minimal).",0,couchbase,,, +couchbase.sgw.resource_utilization_go_memstats_sys,gauge,,byte,,"Sys is the total bytes of memory obtained from the OS. Sys is the sum of the XSys fields below. Sys measures the virtual address space reserved by the Go runtime for the heap, stacks, and other internal data structures. It's likely that not all of the virtual address space is backed by physical memory at any given moment, though in general it all was at some point.",0,couchbase,,, +couchbase.sgw.resource_utilization_goroutines_high_watermark,gauge,,item,,Peak number of go routines since process start.,0,couchbase,,, +couchbase.sgw.resource_utilization_node_cpu_percent_utilization,gauge,,percent,,"The node CPU utilization as percentage value, since the last time this stat was called. The CPU usage calculation is performed based on user and system CPU time, but it does not include components such as iowait.",0,couchbase,,, +couchbase.sgw.resource_utilization_num_goroutines,gauge,,item,,The total number of goroutines.,0,couchbase,,, +couchbase.sgw.resource_utilization_process_cpu_percent_utilization,gauge,,percent,,"The CPU's utilization as percentage value * 10. The extra 10 multiplier is a mistake left for backwards compatibility. Please consider using node_cpu_percent_utilization. The CPU usage calculation is performed based on user and system CPU time, but it does not include components such as iowait. The derivation means that the values of process_cpu_percent_utilization and %Cpu, returned when runni...",0,couchbase,,, +couchbase.sgw.resource_utilization_process_memory_resident,gauge,,byte,,"The memory utilization (Resident Set Size) for the process, in bytes.",0,couchbase,,, +couchbase.sgw.resource_utilization_pub_net_bytes_recv,count,,byte,,"The total number of bytes received (since node start-up) on the network interface to which the Sync Gateway api.public_interface is bound. By default, that is the number of bytes received on 127.0.0.1:4984 since node start-up",0,couchbase,,, +couchbase.sgw.resource_utilization_pub_net_bytes_sent,count,,byte,,"The total number of bytes sent (since node start-up) on the network interface to which Sync Gateway api.public_interface is bound. By default, that is the number of bytes sent on 127.0.0.1:4984 since node start-up.",0,couchbase,,, +couchbase.sgw.resource_utilization_system_memory_total,gauge,,byte,,The total memory available on the system in bytes.,0,couchbase,,, +couchbase.sgw.resource_utilization_uptime,count,,nanosecond,,The total uptime.,0,couchbase,,, +couchbase.sgw.resource_utilization_warn_count,count,,event,,The total number of warnings logged.,-1,couchbase,,, +couchbase.sgw.security_auth_failed_count,count,,event,,The total number of unsuccessful authentications. This metric is useful in monitoring the number of authentication errors.,-1,couchbase,,, +couchbase.sgw.security_auth_success_count,count,,event,,The total number of successful authentications. This metric is useful in monitoring the number of authenticated requests.,0,couchbase,,, +couchbase.sgw.security_num_access_errors,count,,document,,"The total number of documents rejected by write access functions (requireAccess, requireRole, requireUser).",-1,couchbase,,, +couchbase.sgw.security_num_docs_rejected,count,,document,,The total number of documents rejected by the sync_function.,0,couchbase,,, +couchbase.sgw.security_total_auth_time,gauge,,nanosecond,,The total time spent in authenticating all requests. This metric can be compared with auth_success_count and auth_failed_count to derive an average success and-or fail rate.,0,couchbase,,, +couchbase.sgw.shared_bucket_import_import_cancel_cas,count,,event,,The total number of imports cancelled due to cas failure.,-1,couchbase,,, +couchbase.sgw.shared_bucket_import_import_count,count,,document,,The total number of docs imported.,0,couchbase,,, +couchbase.sgw.shared_bucket_import_import_error_count,count,,error,,The total number of errors arising as a result of a document import.,-1,couchbase,,, +couchbase.sgw.shared_bucket_import_import_high_seq,count,,,,The highest sequence number value imported.,0,couchbase,,, +couchbase.sgw.shared_bucket_import_import_partitions,gauge,,item,,The total number of import partitions.,0,couchbase,,, +couchbase.sgw.shared_bucket_import_import_processing_time,gauge,,nanosecond,,The total time taken to process a document import.,0,couchbase,,, couchbase.sync_gateway.admin_net_bytes_recv,count,,byte,,The total number of bytes received (since node start-up) on the network interface to which the Sync Gateway admin interface is bound.,0,couchbase,,, couchbase.sync_gateway.admin_net_bytes_sent,count,,byte,,The total number of bytes sent (since node start-up) on the network interface to which the Sync Gateway admin interface is bound.,0,couchbase,,, couchbase.sync_gateway.assertion_fail_count,count,,event,,The total number of assertion failures logged. This is a good indicator of a bug and should be reported.,-1,couchbase,,, @@ -312,9 +1622,15 @@ couchbase.sync_gateway.cbl_replication_push.doc_push_count,count,,document,,The couchbase.sync_gateway.cbl_replication_push.doc_push_error_count,gauge,,document,,The total number of documents that failed to push.,0,couchbase,,, couchbase.sync_gateway.cbl_replication_push.propose_change_count,count,,message,,The total number of changes and-or proposeChanges messages processed since node start-up.,0,couchbase,,, couchbase.sync_gateway.cbl_replication_push.propose_change_time,count,,,,The total time spent processing changes and/or proposeChanges messages.,0,couchbase,,, +couchbase.sync_gateway.cbl_replication_push.sync_function_count,count,,,,The total number of times that the sync_function is evaluated.,0,couchbase,,, +couchbase.sync_gateway.cbl_replication_push.sync_function_time,count,,,,The total time spent evaluating the sync_function.,0,couchbase,,, couchbase.sync_gateway.cbl_replication_push.write_processing_time,count,,,,Total time spent processing writes.,0,couchbase,,, couchbase.sync_gateway.cbl_replication_push.write_throttled_count,count,,throttle,,The total number of times a revision was throttled during push replication from clients. The write_throttled_count stat can be useful to to determine an appropriate limit of concurrent revisions for each client. There's a direct tradeoff with memory and CPU usage for replicating clients and large amounts of concurrent revisions.,0,couchbase,,, couchbase.sync_gateway.cbl_replication_push.write_throttled_time,count,,nanosecond,,The total time (in nanoseconds) waiting for an available slot to handle a pushed revision after being throttled. The write_throttled_time stat can be useful to determine whether clients are waiting too long for an available slot to push a revision. There's a direct tradeoff with memory and CPU usage for replicating clients and large amounts of concurrent revisions.,0,couchbase,,, +couchbase.sync_gateway.database.abandoned_seqs,count,,,,The total number of skipped sequences abandoned.,0,couchbase,,, +couchbase.sync_gateway.database.cache_feed.dcp_backfill_completed,count,,,,The total number of backfill items processed.,0,couchbase,,, +couchbase.sync_gateway.database.cache_feed.dcp_backfill_expected,count,,,,The total expected number of sequences in backfill.,0,couchbase,,, +couchbase.sync_gateway.database.cache_feed.dcp_rollback_count,count,,,,The total number of rollbacks that occur.,0,couchbase,,, couchbase.sync_gateway.database.compaction_attachment_start_time,gauge,,,,The compaction_attachment_start_time,0,couchbase,,, couchbase.sync_gateway.database.compaction_tombstone_start_time,gauge,,,,The compaction_tombstone_start_time.,0,couchbase,,, couchbase.sync_gateway.database.conflict_write_count,count,,,,"The total number of writes that left the document in a conflicted state. Includes new conflicts, and mutations that don't resolve existing conflicts.",0,couchbase,,, @@ -329,6 +1645,9 @@ couchbase.sync_gateway.database.doc_writes_bytes,count,,,,The total number of by couchbase.sync_gateway.database.doc_writes_bytes_blip,count,,,,The total number of bytes written as part ofCouchbase Lite 2.x document writes since Sync Gateway node startup.,0,couchbase,,, couchbase.sync_gateway.database.doc_writes_xattr_bytes,count,,byte,,The total size of xattrs written (in bytes).,0,couchbase,,, couchbase.sync_gateway.database.high_seq_feed,gauge,,,,Highest sequence number seen on the caching DCP feed.,0,couchbase,,, +couchbase.sync_gateway.database.import_feed.dcp_backfill_completed,count,,,,The total number of backfill items processed.,0,couchbase,,, +couchbase.sync_gateway.database.import_feed.dcp_backfill_expected,count,,,,The total expected number of sequences in backfill.,0,couchbase,,, +couchbase.sync_gateway.database.import_feed.dcp_rollback_count,count,,,,The total number of rollbacks that occur.,0,couchbase,,, couchbase.sync_gateway.database.last_sequence_assigned_value,gauge,,,,The value of the last sequence number assigned. Callers using Set should be holding a mutex or ensure concurrent updates to this value are otherwise safe.,0,couchbase,,, couchbase.sync_gateway.database.last_sequence_reserved_value,gauge,,,,The value of the last sequence number reserved (which may not yet be assigned). Callers using Set should be holding a mutex or ensure concurrent updates to this value are otherwise safe.,0,couchbase,,, couchbase.sync_gateway.database.num_attachments_compacted,count,,item,,The number of attachments compacted import_feed,0,couchbase,,, @@ -357,7 +1676,7 @@ couchbase.sync_gateway.database.sequence_released_count,count,,,,"The total numb couchbase.sync_gateway.database.sequence_reserved_count,count,,,,The total number of sequences reserved by Sync Gateway.,0,couchbase,,, couchbase.sync_gateway.database.sync_function_count,count,,event,,"The total number of times that the sync_function is evaluated. The {sync_function_count_ stat is useful in assessing the usage of the sync_function, when used in conjunction with the sync_function_time.",0,couchbase,,, couchbase.sync_gateway.database.sync_function_exception_count,count,,event,,The total number of times that a sync function encountered an exception (across all collections).,-1,couchbase,,, -couchbase.sync_gateway.database.sync_function_time,count,,nanosecond,,"The total time spent evaluating the sync_function.",0,couchbase,,, +couchbase.sync_gateway.database.sync_function_time,count,,nanosecond,,The total time spent evaluating the sync_function.,0,couchbase,,, couchbase.sync_gateway.database.total_init_fatal_errors,count,,error,,The total number of errors that occurred that prevented the database from being initialized.,-1,couchbase,,, couchbase.sync_gateway.database.total_online_fatal_errors,count,,error,,The total number of errors that occurred that prevented the database from being brought online.,-1,couchbase,,, couchbase.sync_gateway.database.total_sync_time,count,,second,,The total total sync time is a proxy for websocket connections. Tracking long lived and potentially idle connections. This stat represents the continually growing number of connections per sec.,0,couchbase,,, @@ -398,3 +1717,172 @@ couchbase.sync_gateway.shared_bucket_import.import_processing_time,count,,,,The couchbase.sync_gateway.system_memory_total,count,,byte,,The total memory available on the system in bytes.,0,couchbase,,, couchbase.sync_gateway.uptime,gauge,,,,The total uptime.,0,couchbase,,, couchbase.sync_gateway.warn_count,count,,byte,,The total number of warnings logged.,0,couchbase,,, +couchbase.sys.allocstall,count,,event,,Number of alloc stalls,0,couchbase,,, +couchbase.sys.cpu_burst_rate,gauge,,percent,,Rate at which CPUs overran their quota,0,couchbase,,, +couchbase.sys.cpu_cgroup_seconds_total,count,,second,,"Number of CPU seconds utilized in the cgroup, by mode",0,couchbase,,, +couchbase.sys.cpu_cgroup_usage_seconds_total,count,,second,,Number of 'user' and 'system' CPU seconds utilized in the cgroup,0,couchbase,,, +couchbase.sys.cpu_cores_available,gauge,,core,,Number of available CPU cores in the control group,0,couchbase,,, +couchbase.sys.cpu_host_cores_available,gauge,,core,,Number of available CPU cores in the host,0,couchbase,,, +couchbase.sys.cpu_host_idle_rate,gauge,,percent,,Idle CPU utilization rate in the host,0,couchbase,,, +couchbase.sys.cpu_host_other_rate,gauge,,percent,,Other (not idle/user/sys/irq/stolen) CPU utilization rate in the host,0,couchbase,,, +couchbase.sys.cpu_host_seconds_total,count,,second,,"Number of CPU seconds utilized in the host, by mode",0,couchbase,,, +couchbase.sys.cpu_host_sys_rate,gauge,,percent,,System CPU utilization rate in the host,0,couchbase,,, +couchbase.sys.cpu_host_user_rate,gauge,,percent,,User space CPU utilization rate in the host,0,couchbase,,, +couchbase.sys.cpu_host_utilization_rate,gauge,,percent,,CPU utilization rate in the host,0,couchbase,,, +couchbase.sys.cpu_irq_rate,gauge,,percent,,IRQ rate,0,couchbase,,, +couchbase.sys.cpu_stolen_rate,gauge,,percent,,CPU stolen rate,0,couchbase,,, +couchbase.sys.cpu_sys_rate,gauge,,percent,,System CPU utilization rate in the control group,0,couchbase,,, +couchbase.sys.cpu_throttled_rate,gauge,,percent,,Rate at which CPUs were throttled,0,couchbase,,, +couchbase.sys.cpu_user_rate,gauge,,percent,,User space CPU utilization rate in the control group,0,couchbase,,, +couchbase.sys.cpu_utilization_rate,gauge,,percent,,CPU utilization rate in the control group,0,couchbase,,, +couchbase.sys.disk_queue,gauge,,item,,Current disk queue length of the disk,0,couchbase,,, +couchbase.sys.disk_queue_depth,gauge,,item,,Maximum disk queue length of the disk,0,couchbase,,, +couchbase.sys.disk_read_bytes,count,,byte,,Number of bytes read by the disk,0,couchbase,,, +couchbase.sys.disk_read_time_seconds,count,,second,,Amount of time that the disk spent reading,0,couchbase,,, +couchbase.sys.disk_reads,count,,read,,Number of reads that the disk performed,0,couchbase,,, +couchbase.sys.disk_time_seconds,count,,second,,Amount of time that the disk spent performing IO,0,couchbase,,, +couchbase.sys.disk_usage_ratio,gauge,,percent,,Total usage % of a disk or partition,0,couchbase,,, +couchbase.sys.disk_write_bytes,count,,byte,,Number of bytes written by the disk,0,couchbase,,, +couchbase.sys.disk_write_time_seconds,count,,second,,Amount of time that the disk spent writing,0,couchbase,,, +couchbase.sys.disk_writes,count,,write,,Number of writes that the disk performed,0,couchbase,,, +couchbase.sys.mem_actual_free,gauge,,byte,,"Amount of system memory available, including buffers/cache",0,couchbase,,, +couchbase.sys.mem_actual_used,gauge,,byte,,"Amount of system memory used, excluding buffers/cache",0,couchbase,,, +couchbase.sys.mem_cgroup_actual_used,gauge,,byte,,"Amount of system memory used, excluding buffers/cache, in the control group",0,couchbase,,, +couchbase.sys.mem_cgroup_limit,gauge,,byte,,"System memory limit, in the control group",0,couchbase,,, +couchbase.sys.mem_cgroup_used,gauge,,byte,,"Amount of system memory used, including buffers/cache, in the control group",0,couchbase,,, +couchbase.sys.mem_free,gauge,,byte,,"Amount of system memory free, excluding buffers/cache",0,couchbase,,, +couchbase.sys.mem_free_sys,gauge,,byte,,Amount of free system memory (not being used for anything including buffers/cache),0,couchbase,,, +couchbase.sys.mem_limit,gauge,,byte,,System memory limit,0,couchbase,,, +couchbase.sys.mem_total,gauge,,byte,,Total amount of system memory,0,couchbase,,, +couchbase.sys.mem_used_sys,gauge,,byte,,"Amount of system memory used, including buffers/cache",0,couchbase,,, +couchbase.sys.pressure_share_time_stalled,gauge,,percent,,Percentage of time that tasks were stalled on a given resource,0,couchbase,,, +couchbase.sys.pressure_total_stall_time_usec,count,,microsecond,,Absolute stall time when tasks were stalled on a given resource,0,couchbase,,, +couchbase.sys.swap_total,gauge,,byte,,Total amount of swap space,0,couchbase,,, +couchbase.sys.swap_used,gauge,,byte,,Amount of swap space used,0,couchbase,,, +couchbase.sysproc.cpu_seconds_total,count,,second,,"Amount of user CPU cycles used, by process",0,couchbase,,, +couchbase.sysproc.cpu_utilization,gauge,,percent,,"CPU utilization rate, by process",0,couchbase,,, +couchbase.sysproc.major_faults_raw,count,,fault,,"Number of major page faults, by process",0,couchbase,,, +couchbase.sysproc.mem_resident,gauge,,byte,,"Amount of resident memory used, by process",0,couchbase,,, +couchbase.sysproc.mem_share,gauge,,byte,,"Amount of shared memory used, by process",0,couchbase,,, +couchbase.sysproc.mem_size,gauge,,byte,,"Amount of memory used, by process",0,couchbase,,, +couchbase.sysproc.minor_faults_raw,gauge,,fault,,"Number of minor page faults, by process",0,couchbase,,, +couchbase.sysproc.page_faults_raw,gauge,,fault,,"Number of page faults, by process",0,couchbase,,, +couchbase.sysproc.start_time,count,,,,OS specific time when process was started,0,couchbase,,, +couchbase.xdcr.add_docs_cas_changed_total,count,,operation,,Number of Add operations that failed because the CAS on the Target changed,-1,couchbase,,, +couchbase.xdcr.add_docs_written_total,count,,operation,,Number of Add operations successfully written to the Target,0,couchbase,,, +couchbase.xdcr.add_failed_cr_target_total,count,,operation,,Number of Add operations failed Conflict Resolution at the Target,-1,couchbase,,, +couchbase.xdcr.atr_txn_docs_filtered_total,count,,document,,Total number of documents filtered and not replicated because the documents were ATR documents,0,couchbase,,, +couchbase.xdcr.binary_filtered_total,count,,document,,Number of documents filtered that were binary documents,0,couchbase,,, +couchbase.xdcr.changes_left_total,gauge,,operation,,"Given the vBuckets of this node, the number of sequence numbers that need to be processed (either replicated or handled) before catching up to the high sequence numbers for the vBuckets",0,couchbase,xdcr_changes_left_total,, +couchbase.xdcr.client_txn_docs_filtered_total,count,,document,,Total number of documents filtered and not replicated because the documents were transaction client records,0,couchbase,,, +couchbase.xdcr.clog_crd_docs_written_total,count,,operation,,Number of CRDs written to the conflict bucket.,0,couchbase,,, +couchbase.xdcr.clog_docs_filtered_total,count,,record,,Number of conflict records filtered.,0,couchbase,,, +couchbase.xdcr.clog_docs_written_total,count,,document,,"Total number of conflict docs written. This counter includes all three types of conflict doc - source doc, target doc and CRD for the conflict detected.",0,couchbase,,, +couchbase.xdcr.clog_eaccesses_total,count,,error,,Number of EACCESS errors encountered while writing the conflict records to the conflict bucket. It is likely that something has gone wrong with the previliges of the user used for conflict writing,-1,couchbase,,, +couchbase.xdcr.clog_fatal_resps_total,count,,error,,Number of fatal errors encountered while writing the conflict records to the conflict bucket. It includes EINVAL and XATTR_EINVAL.,-1,couchbase,,, +couchbase.xdcr.clog_guardrail_hits_total,count,,error,,"Number of guardrail hit errors encountered while writing the conflict records to the conflict bucket. It includes resident ratio, data size and disk space guardrail errors.",-1,couchbase,,, +couchbase.xdcr.clog_hibernated_count_total,count,,document,,"Number of docs which were identified as conflicts, but could not be logged because the conflict logger was hibernated.",-1,couchbase,,, +couchbase.xdcr.clog_impossible_resps_total,count,,error,,"Number of errors which by design should not have been returned, encountered while writing the conflict records to the conflict bucket. It includes EEXISTS, ENOENT and LOCKED errors.",-1,couchbase,,, +couchbase.xdcr.clog_not_my_vbs_total,count,,error,,Number of NOT_MY_VBUCKET errors encountered while writing the conflict records to the conflict bucket. It mostly is an indicator of topology changes.,-1,couchbase,,, +couchbase.xdcr.clog_nw_errors_total,count,,error,,Number of network errors encountered while writing the conflict records to the conflict bucket.,-1,couchbase,,, +couchbase.xdcr.clog_other_errors_total,count,,error,,Number of unidentified errors encountered while writing the conflict records to the conflict bucket. One should turn on debug logging for the replication to catch the unknown response.,-1,couchbase,,, +couchbase.xdcr.clog_pool_get_timedout_total,count,,record,,Number of conflict records for which the conflict logger had trouble getting a connection to the conflict bucket.,-1,couchbase,,, +couchbase.xdcr.clog_queue_full_total,count,,document,,"Number of docs which were identified as conflicts, but could not be logged because the logging queue was full.",-1,couchbase,,, +couchbase.xdcr.clog_src_docs_written_total,count,,document,,Number of source conflict docs written to the conflict bucket.,-1,couchbase,,, +couchbase.xdcr.clog_status,gauge,,,,Indicates if the conflict logger of the replication is running or hibernated or if it does not exist.,0,couchbase,,, +couchbase.xdcr.clog_tgt_docs_written_total,count,,document,,Number of target conflict docs written to the conflict bucket.,-1,couchbase,,, +couchbase.xdcr.clog_throttled_total,count,,record,,Number of conflict records which were throttled due to resource management and hence not written to conflict bucket.,-1,couchbase,,, +couchbase.xdcr.clog_tmpfails_total,count,,error,,Number of TMPFAIL errors encountered while writing the conflict records to the conflict bucket. It indicates that the data service was temporarily busy and could not process the incoming write.,-1,couchbase,,, +couchbase.xdcr.clog_unknown_collections_total,count,,error,,Number of UNKNOWN_COLLECTION errors encountered while writing the conflict records to the conflict bucket. It indicates that where was a change to the collections setup which affected the conflict writes.,-1,couchbase,,, +couchbase.xdcr.clog_unknown_resps_total,count,,response,,Number of unknown responses returned by the source KV while writing the conflict records to the conflict bucket. One should turn on debug logging for the replication to catch the unknown response.,-1,couchbase,,, +couchbase.xdcr.clog_write_timedout_total,count,,record,,Number of conflict records for which the write to conflict bucket was timed out.,-1,couchbase,,, +couchbase.xdcr.data_merge_failed_bytes,count,,byte,,Amount of data failed to merge as part of Source custom conflict-resolution,-1,couchbase,,, +couchbase.xdcr.data_merged_bytes,count,,byte,,Amount of data merged for a Replication when performing Source custom conflict-resolution,0,couchbase,,, +couchbase.xdcr.data_replicated_bytes,count,,byte,,Amount of data replicated for a Replication,0,couchbase,xdcr_data_replicated_bytes,, +couchbase.xdcr.data_replicated_uncompress_bytes,count,,byte,,Theoretical amount of data replicated for a Replication if compression were not used,0,couchbase,,, +couchbase.xdcr.datapool_failed_gets_total,count,,operation,,The total number of failed GET() operation on a reusable datapool within XDCR for the purpose of avoiding garbage generation,0,couchbase,,, +couchbase.xdcr.dcp_datach_length_total,gauge,,item,,The number of items sent by the Data Service waiting for the XDCR Source Nozzle to ingest and process,0,couchbase,,, +couchbase.xdcr.dcp_dispatch_time_seconds,gauge,,second,,"The rolling average amount of time it takes for a document to be received by XDCR from the Data Service, to the time it is queued up in the Target Nozzle ready to be sent",-1,couchbase,,, +couchbase.xdcr.deletion_cloned_total,count,,event,,The number of times a Source Deletion or Expiration is cloned to be written to multiple Target Namespaces,0,couchbase,,, +couchbase.xdcr.deletion_docs_cas_changed_total,count,,operation,,Number of Deletions failed because Target CAS changed,-1,couchbase,,, +couchbase.xdcr.deletion_docs_written_total,count,,operation,,Number of Deletions written to Target,0,couchbase,,, +couchbase.xdcr.deletion_failed_cr_source_total,count,,operation,,Number of Deletions that failed Source-side Conflict Resolution,-1,couchbase,,, +couchbase.xdcr.deletion_failed_cr_target_total,count,,operation,,Number of Deletions that failed Conflict Resolution at the Target,-1,couchbase,,, +couchbase.xdcr.deletion_filtered_total,count,,operation,,Number of Deletions that were filtered Source-side,0,couchbase,,, +couchbase.xdcr.deletion_received_from_dcp_total,count,,operation,,Number of Deletions received from the Data Service,0,couchbase,,, +couchbase.xdcr.deletion_target_docs_skipped_total,count,,document,,Subset of the number of documents that originated from the target that were delete operations,0,couchbase,,, +couchbase.xdcr.docs_cas_poisoned_total,count,,document,,Total number of documents not replicated because cas is beyond acceptable drift threshold,-1,couchbase,,, +couchbase.xdcr.docs_checked_total,gauge,,document,,"Across vBuckets for this node, the sum of all sequence numbers that have been considered to be checkpointed",0,couchbase,xdcr_docs_checked_total,, +couchbase.xdcr.docs_cloned_total,count,,document,,Number of Source Document Mutation cloned to be written to different Target Namespaces,0,couchbase,,, +couchbase.xdcr.docs_compression_skipped_total,count,,document,,"Total number of documents whose compression was skipped before replication, due to a larger snappy-compressed size",0,couchbase,,, +couchbase.xdcr.docs_failed_cr_source_total,count,,document,,Number of documents (or tombstones) that were not replicated to the Target due to Conflict Resolution evaluated on the Source,-1,couchbase,xdcr_docs_failed_cr_source_total,, +couchbase.xdcr.docs_failed_cr_target_total,count,,document,,Number of documents failed Conflict Resolution at the Target,-1,couchbase,xdcr_docs_failed_cr_target_total,, +couchbase.xdcr.docs_filtered_on_txn_xattr_total,count,,document,,Total number of documents filtered and not replicated due to the presence of transaction related xattrs in it,0,couchbase,,, +couchbase.xdcr.docs_filtered_on_user_defined_filter_total,count,,document,,Total number of documents filtered and not replicated because of user defined filter expressions,0,couchbase,,, +couchbase.xdcr.docs_filtered_total,gauge,,document,,Total number of documents filtered and not replicated due to any type of filtering,0,couchbase,xdcr_docs_filtered_total,, +couchbase.xdcr.docs_merge_cas_changed_total,count,,document,,Number of documents from Source custom conflict-resolution that failed to merge back to Source because the Source CAS changed,0,couchbase,,, +couchbase.xdcr.docs_merge_failed_total,count,,document,,Number of conflicting docs failed to merge as part of Source custom conflict-resolution,0,couchbase,,, +couchbase.xdcr.docs_merged_total,count,,document,,Number of conflicting docs successfully merged and written to the Source after performing Source custom conflict-resolution,0,couchbase,,, +couchbase.xdcr.docs_opt_repd_total,count,,document,,Number of Documents Optimistically Replicated to the Target Cluster,0,couchbase,xdcr_docs_opt_repd_total,, +couchbase.xdcr.docs_processed_total,gauge,,document,,Number of Documents processed for a Replication,0,couchbase,,, +couchbase.xdcr.docs_received_from_dcp_total,count,,document,,Number of Document Mutations received from the Data Service,0,couchbase,xdcr_docs_received_from_dcp_total,, +couchbase.xdcr.docs_sent_with_poisonedCas_errorMode_total,count,,document,,The total number of documents that failed the set_with_meta operation due to the set CAS exceeding the acceptable threshold on the target data service.,-1,couchbase,,, +couchbase.xdcr.docs_sent_with_poisonedCas_replaceMode_total,count,,document,,"The total number of documents replicated to the target, where the target data service regenerated CAS values because the set CAS exceeded the acceptable threshold on the target's data service.",0,couchbase,,, +couchbase.xdcr.docs_sent_with_subdoc_delete_total,count,,document,,The number of deletes issued using subdoc command instead of delete_with_meta to avoid cas rollback on target,0,couchbase,,, +couchbase.xdcr.docs_sent_with_subdoc_set_total,count,,document,,The number of sets issued using subdoc command instead of set_with_meta to avoid cas rollback on target,0,couchbase,,, +couchbase.xdcr.docs_unable_to_filter_total,gauge,,document,,Number of Document Mutations that couldn't be filtered due to inability to parse the document through Advanced Filtering engine and were not replicated,-1,couchbase,,, +couchbase.xdcr.docs_written_total,count,,document,,Number of docs Document Mutations written/sent to the Target,0,couchbase,,, +couchbase.xdcr.expiry_docs_merge_failed_total,count,,document,,Number of conflicting expiry docs failed to merge as part of Source custom conflict-resolution,-1,couchbase,,, +couchbase.xdcr.expiry_docs_merged_total,count,,document,,Number of Expirations merged and written to the Source,0,couchbase,,, +couchbase.xdcr.expiry_docs_written_total,count,,document,,Number of Expirations written to the Target,0,couchbase,,, +couchbase.xdcr.expiry_failed_cr_source_total,count,,document,,Number of Expirations that failed Source-side Conflict Resolution,-1,couchbase,,, +couchbase.xdcr.expiry_failed_cr_target_total,count,,document,,Number of Expirations that failed Conflict Resolution at the Target,-1,couchbase,,, +couchbase.xdcr.expiry_filtered_total,count,,document,,Number of Expirations filtered Source-side,0,couchbase,,, +couchbase.xdcr.expiry_merge_cas_changed_total,count,,document,,Number of expiry from Source custom conflict-resolution that failed to merge back to Source because the Source CAS changed,-1,couchbase,,, +couchbase.xdcr.expiry_received_from_dcp_total,count,,document,,Number of Expirations or documents with TTL received from the Data Service,0,couchbase,,, +couchbase.xdcr.expiry_stripped_total,count,,document,,Number of Document Mutations replicated that had the TTL changed to 0 before writing to Target (Source is unmodified),0,couchbase,,, +couchbase.xdcr.expiry_target_docs_skipped_total,count,,document,,Subset of the number of mutations (with Expiry flag set) and deletions/expirations that originated from the Target,0,couchbase,,, +couchbase.xdcr.get_docs_cas_changed_total,count,,operation,,Number of get operations that were retried because the CAS on the target changed,-1,couchbase,,, +couchbase.xdcr.guardrail_data_size_total,count,,write,,The number of writes that target rejected because each target data node is holding too much data,-1,couchbase,,, +couchbase.xdcr.guardrail_disk_space_total,count,,write,,The number of writes that target rejected because a data node is running out of disk space,-1,couchbase,,, +couchbase.xdcr.guardrail_resident_ratio_total,count,,write,,The number of writes that target rejected due to the target bucket being under the resident ratio threshold,-1,couchbase,,, +couchbase.xdcr.hlv_pruned_at_merge_total,count,,operation,,Number of mutations with HLV pruned when it is merged with target document,0,couchbase,,, +couchbase.xdcr.hlv_pruned_total,count,,operation,,Number of mutations with HLV pruned,0,couchbase,,, +couchbase.xdcr.hlv_updated_total,count,,operation,,Number of mutations with HLV updated,0,couchbase,,, +couchbase.xdcr.import_docs_failed_cr_source_total,count,,operation,,Number of mobile import mutations failed Source side Conflict Resolution. This is only counted in LWW buckets when enableCrossClusterVersioning is true,-1,couchbase,,, +couchbase.xdcr.import_docs_written_total,count,,operation,,Number of import mutations sent,0,couchbase,,, +couchbase.xdcr.mobile_docs_filtered_total,count,,document,,Total number of documents filtered and not replicated because the documents were mobile records,0,couchbase,,, +couchbase.xdcr.num_checkpoints_total,count,,operation,,The number of times checkpoint operation has completed successfully since this XDCR process instance is made aware of this replication,0,couchbase,,, +couchbase.xdcr.num_failedckpts_total,count,,operation,,The number of times checkpoint operation has encountered an error since this XDCR process instance is made aware of this replication,-1,couchbase,,, +couchbase.xdcr.number_of_replications_total,gauge,,event,,The total number of replications that exists to replicate to a particular target cluster,0,couchbase,,, +couchbase.xdcr.number_of_source_nodes_total,gauge,,node,,"For a given source cluster, the number of data service nodes that it contains",0,couchbase,,, +couchbase.xdcr.number_of_source_replications_total,gauge,,event,,"For a given source cluster, the total number of outbound replications to this cluster",0,couchbase,,, +couchbase.xdcr.pipeline_errors,gauge,,error,,The number of currently present errors for a specific Replication Pipeline,-1,couchbase,,, +couchbase.xdcr.pipeline_status,gauge,,,,"The pipeline status for a specific pipeline, where it could be paused, running or, error",0,couchbase,,, +couchbase.xdcr.resp_wait_time_seconds,gauge,,second,,The rolling average amount of time it takes from when a MemcachedRequest is created to be ready to route to an outnozzle to the time that the response has been heard back from the target node after a successful write,0,couchbase,,, +couchbase.xdcr.seqno_adv_received_from_dcp_total,count,,event,,The number of seqno advance events received from source data service,0,couchbase,,, +couchbase.xdcr.set_docs_cas_changed_total,count,,operation,,Number of Set operations that failed because the CAS on the Target changed,-1,couchbase,,, +couchbase.xdcr.set_docs_written_total,count,,operation,,Number of Set operations successfully written to the Target,0,couchbase,,, +couchbase.xdcr.set_failed_cr_source_total,count,,operation,,Number of Set operations that failed Source-side Conflict Resolution,-1,couchbase,,, +couchbase.xdcr.set_failed_cr_target_total,count,,operation,,Number of Set operations that failed Conflict Resolution at the Target,-1,couchbase,,, +couchbase.xdcr.set_filtered_total,count,,document,,Number of documents filtered that was of a DCP mutation,0,couchbase,,, +couchbase.xdcr.set_received_from_dcp_total,count,,operation,,Number of Sets received from the Data Service,0,couchbase,,, +couchbase.xdcr.set_target_docs_skipped_total,count,,document,,Subset of the number of documents that originated from the target that were set operations,0,couchbase,,, +couchbase.xdcr.size_rep_queue_bytes,gauge,,byte,,Amount of data being queued to be sent in a Target Nozzle,0,couchbase,,, +couchbase.xdcr.source_sync_xattr_removed_total,count,,operation,,Number of mutations with source mobile extended attributes removed,0,couchbase,,, +couchbase.xdcr.subdoc_cmd_docs_cas_changed_total,count,,operation,,Number of Subdoc sets and delete operations that failed because the CAS on the Target changed,-1,couchbase,,, +couchbase.xdcr.subdoc_cmd_docs_skipped_total,count,,operation,,Number of document mutations that were not replicated to the target because they resulted in subdoc commands breaching the maximum paths limit.,0,couchbase,,, +couchbase.xdcr.system_events_received_from_dcp_total,count,,event,,The number of system events received from source data service,0,couchbase,,, +couchbase.xdcr.target_docs_skipped_total,count,,operation,,Number of Document Mutations that were not replicated to the Target because they originated from the Target,0,couchbase,,, +couchbase.xdcr.target_eaccess_total,count,,error,,The total number of EACCESS errors returned from the target node.,-1,couchbase,,, +couchbase.xdcr.target_sync_xattr_preserved_total,count,,operation,,Number of mutations with target mobile extended attributes preserved,0,couchbase,,, +couchbase.xdcr.target_tmpfail_total,count,,error,,The total number of TMPFAIL errors returned from the target node.,-1,couchbase,,, +couchbase.xdcr.target_unknown_status_total,count,,write,,The total number of writes to target data service that returned with a status code that XDCR cannot comprehend,0,couchbase,,, +couchbase.xdcr.throttle_latency_seconds,gauge,,second,,The rolling average of the latency time introduced due to bandwith throttler,0,couchbase,,, +couchbase.xdcr.throughput_throttle_latency_seconds,gauge,,second,,The rolling average of the latency time introduced due to throughput throttler,0,couchbase,,, +couchbase.xdcr.time_committing_seconds,gauge,,second,,The rolling average amount of time it takes for a checkpoint operation to complete,0,couchbase,,, +couchbase.xdcr.true_conflicts_detected_total,count,,event,,"Number of true conflicts detected when the conflict logging feature is turned on. Logging of all these conflicts to a conflict bucket is best-effort, based on the system's state.",-1,couchbase,,, +couchbase.xdcr.wtavg_docs_latency_seconds,gauge,,second,,The rolling average amount of time it takes for the source cluster to receive the acknowledgement of a SET_WITH_META response after the Memcached request has been composed to be processed by the XDCR Target Nozzle,0,couchbase,xdcr_wtavg_docs_latency_seconds,, +couchbase.xdcr.wtavg_get_doc_latency_seconds,gauge,,second,,The rolling average amount of time it takes once a get document command is composed to be sent to the time the request is handled once the target node has responded,0,couchbase,,, +couchbase.xdcr.wtavg_merge_latency_seconds,gauge,,second,,"The rolling average amount of time it takes from routing, conflict detection and resolution, to receive the acknowledgement of merge",0,couchbase,,, +couchbase.xdcr.wtavg_meta_latency_seconds,gauge,,second,,The rolling average amount of time it takes once a getMeta command is composed to be sent to the time the request is handled once the target node has responded,0,couchbase,xdcr_wtavg_meta_latency_seconds,, diff --git a/couchbase/scripts/.gitignore b/couchbase/scripts/.gitignore new file mode 100644 index 0000000000000..7d56e7eaa1ac0 --- /dev/null +++ b/couchbase/scripts/.gitignore @@ -0,0 +1,6 @@ +# Ignore all files in scripts/ except the generation script and docs +* +!.gitignore +!generate_metrics_code.py +!__init__.py +!README.md diff --git a/couchbase/scripts/README.md b/couchbase/scripts/README.md new file mode 100644 index 0000000000000..bc2ceadf01a2a --- /dev/null +++ b/couchbase/scripts/README.md @@ -0,0 +1,50 @@ +# Couchbase Integration Scripts + +## generate_metrics_code.py + +Generates `datadog_checks/couchbase/metrics_generated.py` from `metadata.csv`. + +### Usage + +From the couchbase integration directory: + +```bash +python scripts/generate_metrics_code.py < metadata.csv > datadog_checks/couchbase/metrics_generated.py +``` + +### When to Run + +Run this script after updating `metadata.csv` with: +- New Prometheus metrics +- Corrected metric types +- Updated metric metadata + +### What It Does + +The script: +1. Reads metric definitions from `metadata.csv` (via stdin) +2. Extracts metric names and types +3. Strips the `couchbase.` namespace prefix +4. Generates Python code with a `METRIC_DATA` list +5. Outputs to stdout (typically redirected to `metrics_generated.py`) + +### Output Format + +The generated file contains `METRIC_DATA`, a list of dictionaries with: +- `metric_name`: Metric name without the `couchbase.` prefix (e.g., `cm.uuid_cache_max_items`) +- `metric_type`: One of: `gauge`, `counter`, or `histogram` + +This data is used by `metrics.py` to: +- Generate metric name mappings (Couchbase raw names → Datadog names) +- Create type overrides (fix Couchbase's missing/incorrect Prometheus TYPE metadata) +- Handle histogram metrics (_bucket, _count, _sum suffixes) + +### Example + +```bash +# After curating metadata.csv +python scripts/generate_metrics_code.py < metadata.csv > datadog_checks/couchbase/metrics_generated.py + +# Verify the output +python -c "from datadog_checks.couchbase.metrics_generated import METRIC_DATA; print(f'{len(METRIC_DATA)} metrics')" +``` diff --git a/couchbase/scripts/__init__.py b/couchbase/scripts/__init__.py new file mode 100644 index 0000000000000..c9f1f2a9882c7 --- /dev/null +++ b/couchbase/scripts/__init__.py @@ -0,0 +1,3 @@ +# (C) Datadog, Inc. 2025-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) diff --git a/couchbase/scripts/generate_metrics_code.py b/couchbase/scripts/generate_metrics_code.py new file mode 100644 index 0000000000000..59f370282a732 --- /dev/null +++ b/couchbase/scripts/generate_metrics_code.py @@ -0,0 +1,77 @@ +# (C) Datadog, Inc. 2025-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +# Generate metrics_generated.py from metadata.csv. +# +# WHAT: Extracts metric names and types from metadata.csv and generates Python code +# containing METRIC_DATA list used by the Prometheus check. +# +# WHY: Couchbase's Prometheus endpoint often omits or incorrectly specifies metric +# TYPE metadata. This causes OpenMetrics to assign "unknown" type to metrics, +# which results in metrics being silently discarded. By generating metric type +# information from our curated metadata.csv, we can provide type_overrides to +# OpenMetricsBaseCheck, ensuring all metrics are collected with correct types. +# +# This also provides metric name mappings to transform Couchbase's raw metric +# names (e.g., "kv_dcp_backoff") into Datadog-style names (e.g., "kv.dcp_backoff"). +# +# Usage: scripts/generate_metrics_code.py < metadata.csv > datadog_checks/couchbase/metrics_generated.py +# + +import csv +import datetime +import pprint + + +def get_metric_data_from_metadata_csv(f): + """Parse metadata.csv from the supplied file.""" + metric_data = [] + + reader = csv.DictReader(f) + for row in reader: + _, metric_name_without_namespace = row["metric_name"].split(".", 1) + metric_data.append( + { + "metric_name": metric_name_without_namespace, + "metric_type": row["metric_type"], + } + ) + + return metric_data + + +def generate_metric_data_code(metric_data): + """Generate Python code for the metric data.""" + + timestamp = datetime.datetime.now(datetime.timezone.utc).replace(microsecond=0).isoformat() + + sys.stdout.write("""# (C) Datadog, Inc. 2025-present +# All rights reserved +# Licensed under a 3-clause BSD style license (see LICENSE) + +# This file was auto-generated by couchbase/scripts/generate_metrics_code.py\n""") + sys.stdout.write(f"""#\n# Generated at: {timestamp}\n""") + sys.stdout.write("""# +# Many of the metrics from Couchbase's Prometheus/OpenMetrics endpoints either +# don't specify metric types at all, or the metric type is not known to Datadog, +# so this lets us use our curated units from metadata.csv instead. + +METRIC_DATA = """) + + metric_data_pretty = pprint.pformat( + sorted(metric_data, key=lambda md: md["metric_name"]), + indent=4, + width=200, + sort_dicts=True, + ) + + sys.stdout.write(metric_data_pretty) + sys.stdout.write(" # fmt: skip\n") + + +if __name__ == "__main__": + import sys + + metric_metadata = get_metric_data_from_metadata_csv(sys.stdin) + generate_metric_data_code(metric_metadata) diff --git a/couchbase/tests/common.py b/couchbase/tests/common.py index b90d71c94de7f..07ccb82338341 100644 --- a/couchbase/tests/common.py +++ b/couchbase/tests/common.py @@ -37,8 +37,18 @@ COUCHBASE_MINOR_VERSION = int(os.getenv('COUCHBASE_VERSION').split(".")[1]) COUCHBASE_SYNCGW_MAJOR_VERSION = int(os.getenv('COUCHBASE_SYNCGW_VERSION').split(".")[0]) COUCHBASE_SYNCGW_MINOR_VERSION = int(os.getenv('COUCHBASE_SYNCGW_VERSION').split(".")[1]) +COUCHBASE_METRIC_SOURCE = os.getenv('COUCHBASE_METRIC_SOURCE', 'rest') + +PROMETHEUS_URL = '{}/metrics'.format(URL) DEFAULT_INSTANCE = {'server': URL, 'user': USER, 'password': PASSWORD, 'timeout': 1, 'tags': CUSTOM_TAGS} +PROMETHEUS_INSTANCE = { + 'prometheus_url': PROMETHEUS_URL, + 'user': USER, + 'password': PASSWORD, + 'timeout': 1, + 'tags': CUSTOM_TAGS, +} SYNC_GATEWAY_METRICS = [ "couchbase.sync_gateway.admin_net_bytes_recv", @@ -211,6 +221,7 @@ 'couchbase.index.disk_size', 'couchbase.index.frag_percent', 'couchbase.index.initial_build_progress', + 'couchbase.index.items_count', 'couchbase.index.last_known_scan_time', 'couchbase.index.num_docs_pending', 'couchbase.index.num_docs_queued', @@ -218,13 +229,11 @@ 'couchbase.index.recs_in_mem', 'couchbase.index.recs_on_disk', 'couchbase.index.resident_percent', - 'couchbase.index.total_scan_duration', ] INDEX_STATS_COUNT_METRICS = [ 'couchbase.index.cache_hits', 'couchbase.index.cache_misses', - 'couchbase.index.items_count', 'couchbase.index.num_docs_indexed', 'couchbase.index.num_items_flushed', 'couchbase.index.num_requests', @@ -232,6 +241,7 @@ 'couchbase.index.num_scan_errors', 'couchbase.index.num_scan_timeouts', 'couchbase.index.scan_bytes_read', + 'couchbase.index.total_scan_duration', ] OPTIONAL_BY_BUCKET_METRICS = [ diff --git a/couchbase/tests/conftest.py b/couchbase/tests/conftest.py index 5d5136982e14c..173e368e9f888 100644 --- a/couchbase/tests/conftest.py +++ b/couchbase/tests/conftest.py @@ -19,6 +19,7 @@ BUCKET_NAME, CB_CONTAINER_NAME, COUCHBASE_MAJOR_VERSION, + COUCHBASE_METRIC_SOURCE, COUCHBASE_MINOR_VERSION, COUCHBASE_SYNCGW_MAJOR_VERSION, COUCHBASE_SYNCGW_MINOR_VERSION, @@ -27,6 +28,7 @@ INDEX_STATS_URL, PASSWORD, PORT, + PROMETHEUS_INSTANCE, QUERY_URL, SG_URL, URL, @@ -36,25 +38,37 @@ @pytest.fixture def instance(): + if COUCHBASE_METRIC_SOURCE == "prometheus": + return deepcopy(PROMETHEUS_INSTANCE) return deepcopy(DEFAULT_INSTANCE) @pytest.fixture -def instance_query(instance): - instance['query_monitoring_url'] = QUERY_URL - return instance +def rest_instance(): + return deepcopy(DEFAULT_INSTANCE) + + +@pytest.fixture +def prometheus_instance(): + return deepcopy(PROMETHEUS_INSTANCE) + + +@pytest.fixture +def instance_query(rest_instance): + rest_instance['query_monitoring_url'] = QUERY_URL + return rest_instance @pytest.fixture -def instance_sg(instance): - instance['sync_gateway_url'] = SG_URL - return instance +def instance_sg(rest_instance): + rest_instance['sync_gateway_url'] = SG_URL + return rest_instance @pytest.fixture -def instance_index_stats(instance): - instance['index_stats_url'] = INDEX_STATS_URL - return instance +def instance_index_stats(rest_instance): + rest_instance['index_stats_url'] = INDEX_STATS_URL + return rest_instance @pytest.fixture @@ -86,7 +100,10 @@ def dd_environment(): conditions=conditions, sleep=15, ): - yield deepcopy(DEFAULT_INSTANCE) + if COUCHBASE_METRIC_SOURCE == "prometheus": + yield deepcopy(PROMETHEUS_INSTANCE) + else: + yield deepcopy(DEFAULT_INSTANCE) @pytest.fixture() diff --git a/couchbase/tests/test_e2e.py b/couchbase/tests/test_e2e.py index b2058988cedf3..ec38bb3904b32 100644 --- a/couchbase/tests/test_e2e.py +++ b/couchbase/tests/test_e2e.py @@ -6,10 +6,19 @@ from datadog_checks.dev.utils import get_metadata_metrics -from .common import BUCKET_NAME, BUCKET_TAGS, CHECK_TAGS, PORT, _assert_bucket_metrics, _assert_stats +from .common import ( + BUCKET_NAME, + BUCKET_TAGS, + CHECK_TAGS, + COUCHBASE_METRIC_SOURCE, + PORT, + _assert_bucket_metrics, + _assert_stats, +) @pytest.mark.e2e +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') def test_e2e(dd_agent_check, instance, couchbase_container_ip): """ Test couchbase metrics not including 'couchbase.query.' @@ -26,3 +35,24 @@ def test_e2e(dd_agent_check, instance, couchbase_container_ip): aggregator.assert_all_metrics_covered() aggregator.assert_metrics_using_metadata(get_metadata_metrics()) + + +@pytest.mark.e2e +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "prometheus", reason='Prometheus-specific test') +def test_e2e_prometheus(dd_agent_check, instance): + """ + Test Prometheus-based metrics collection end-to-end + """ + aggregator = dd_agent_check(instance) + + # Verify we collected a substantial number of Prometheus metrics + metrics = aggregator.metric_names + couchbase_metrics = [m for m in metrics if m.startswith('couchbase.')] + + assert len(couchbase_metrics) > 100, f"Expected at least 100 Prometheus metrics, got {len(couchbase_metrics)}" + + # Verify some key metric categories are present + kv_metrics = [m for m in couchbase_metrics if m.startswith('couchbase.kv.')] + assert len(kv_metrics) > 0, "Expected KV metrics from Prometheus endpoint" + + aggregator.assert_metrics_using_metadata(get_metadata_metrics()) diff --git a/couchbase/tests/test_integration.py b/couchbase/tests/test_integration.py index bdddea5d66db8..252535f565995 100644 --- a/couchbase/tests/test_integration.py +++ b/couchbase/tests/test_integration.py @@ -20,6 +20,7 @@ BUCKET_TAGS, CHECK_TAGS, COUCHBASE_MAJOR_VERSION, + COUCHBASE_METRIC_SOURCE, INDEX_STATS_COUNT_METRICS, INDEX_STATS_GAUGE_METRICS, INDEX_STATS_INDEXER_METRICS, @@ -34,6 +35,7 @@ pytestmark = [pytest.mark.usefixtures("dd_environment"), pytest.mark.integration] +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') def test_service_check(aggregator, instance, couchbase_container_ip): """ Assert the OK service check @@ -53,6 +55,7 @@ def test_service_check(aggregator, instance, couchbase_container_ip): ) +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') def test_query_monitoring_metrics(aggregator, dd_run_check, instance_query, couchbase_container_ip): """ Test system vitals metrics (prefixed "couchbase.query.") @@ -66,6 +69,7 @@ def test_query_monitoring_metrics(aggregator, dd_run_check, instance_query, couc aggregator.assert_metrics_using_metadata(get_metadata_metrics()) +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') def test_sync_gateway_metrics(aggregator, dd_run_check, instance_sg, couchbase_container_ip): """ Test Sync Gateway metrics (prefixed "couchbase.sync_gateway.") @@ -83,6 +87,7 @@ def test_sync_gateway_metrics(aggregator, dd_run_check, instance_sg, couchbase_c aggregator.assert_metrics_using_metadata(get_metadata_metrics()) +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') def test_metadata(instance_query, dd_run_check, datadog_agent): check = Couchbase('couchbase', {}, [instance_query]) check.check_id = 'test:123' @@ -115,6 +120,7 @@ def test_metadata(instance_query, dd_run_check, datadog_agent): @pytest.mark.skipif(COUCHBASE_MAJOR_VERSION < 7, reason='Index metrics are only available for Couchbase 7+') +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') def test_index_stats_metrics(aggregator, dd_run_check, instance_index_stats, couchbase_container_ip): """ Test Index Statistics metrics (prefixed "couchbase.index." and "couchbase.indexer.") @@ -134,6 +140,7 @@ def test_index_stats_metrics(aggregator, dd_run_check, instance_index_stats, cou aggregator.assert_metrics_using_metadata(get_metadata_metrics()) +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') def test_metrics(aggregator, dd_run_check, instance, couchbase_container_ip): """ Test couchbase metrics not including 'couchbase.query.' @@ -153,3 +160,33 @@ def test_metrics(aggregator, dd_run_check, instance, couchbase_container_ip): aggregator.assert_all_metrics_covered() aggregator.assert_metrics_using_metadata(get_metadata_metrics()) + + +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "prometheus", reason='Prometheus-specific test') +def test_prometheus_check_instantiation(instance): + """ + Test that the Prometheus check is instantiated correctly + """ + couchbase = Couchbase('couchbase', {}, [instance]) + # Verify the check is using CouchbaseCheckV2 + from datadog_checks.couchbase.check import CouchbaseCheckV2 + + assert isinstance(couchbase, CouchbaseCheckV2), f"Expected CouchbaseCheckV2, got {type(couchbase)}" + + +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "prometheus", reason='Prometheus-specific test') +def test_prometheus_metrics_collection(aggregator, dd_run_check, instance): + """ + Test that the Prometheus check collects metrics from the /metrics endpoint + """ + couchbase = Couchbase('couchbase', {}, [instance]) + dd_run_check(couchbase) + + # Verify that metrics were collected + metrics = aggregator.metric_names + couchbase_metrics = [m for m in metrics if m.startswith('couchbase.')] + + assert len(couchbase_metrics) > 0, "Expected to collect couchbase.* metrics from Prometheus endpoint" + assert len(couchbase_metrics) > 50, ( + f"Expected to collect at least 50 metrics, but only got {len(couchbase_metrics)}" + ) diff --git a/couchbase/tests/test_unit.py b/couchbase/tests/test_unit.py index 25a437c02f842..4022a9e8b1e48 100644 --- a/couchbase/tests/test_unit.py +++ b/couchbase/tests/test_unit.py @@ -7,10 +7,11 @@ from datadog_checks.couchbase import Couchbase from datadog_checks.dev.utils import get_metadata_metrics -from .common import MOCKED_COUCHBASE_METRICS, QUERY_STATS +from .common import COUCHBASE_METRIC_SOURCE, MOCKED_COUCHBASE_METRICS, QUERY_STATS from .conftest import mock_http_responses +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') def test_camel_case_to_joined_lower(instance): couchbase = Couchbase('couchbase', {}, [instance]) @@ -34,6 +35,7 @@ def test_camel_case_to_joined_lower(instance): ) +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') def test_extract_seconds_value(instance): couchbase = Couchbase('couchbase', {}, [instance]) @@ -52,6 +54,7 @@ def test_extract_seconds_value(instance): ) +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') def test__get_query_monitoring_data(instance_query): """ `query_monitoring_url` can potentially fail, be sure we don't raise when the @@ -61,6 +64,7 @@ def test__get_query_monitoring_data(instance_query): couchbase._get_query_monitoring_data() +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') @pytest.mark.parametrize( 'test_case, extra_config, expected_http_kwargs', [ @@ -93,6 +97,7 @@ def test_config(test_case, extra_config, expected_http_kwargs, instance): assert check.http.options == http_wargs +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') @pytest.mark.parametrize( 'test_input, expected_tags', [ @@ -124,6 +129,7 @@ def test_extract_index_tags(instance, test_input, expected_tags): assert eval(str(test_output)) == expected_tags +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') def test_unit(dd_run_check, check, instance, mocker, aggregator): mocker.patch("requests.Session.get", wraps=mock_http_responses) @@ -140,6 +146,7 @@ def test_unit(dd_run_check, check, instance, mocker, aggregator): aggregator.assert_metrics_using_metadata(get_metadata_metrics()) +@pytest.mark.skipif(COUCHBASE_METRIC_SOURCE != "rest", reason='REST-specific test') def test_unit_query_metrics(dd_run_check, check, instance_query, mocker, aggregator): mocker.patch("requests.Session.get", wraps=mock_http_responses)