Monitor performance
Monitor Pinecone index performance metrics (query latency, throughput, and errors) in the Pinecone console or via Prometheus and Datadog.
Pinecone generates time-series performance metrics for each Pinecone index. You can monitor these metrics directly in the Pinecone console or with tools like Prometheus or Datadog.
Monitor in the Pinecone Console
Section titled “Monitor in the Pinecone Console”To view performance metrics in the Pinecone console:
- Open the Pinecone console.
- Select the project containing the index you want to monitor.
- Go to Database > Indexes.
- Select the index.
- Go to the Metrics tab.
Monitor with Datadog
Section titled “Monitor with Datadog”To monitor Pinecone with Datadog, use Datadog's Pinecone integration.
Monitor with Prometheus
Section titled “Monitor with Prometheus”To monitor all serverless indexes in a project, insert the following snippet into the scrape_configs section of your prometheus.yml file and update it with values for your Prometheus integration:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'pinecone-serverless-metrics'
http_sd_configs:
- url: https://api.pinecone.io/prometheus/projects/PROJECT_ID/metrics/discovery
refresh_interval: 1m
authorization:
type: Bearer
credentials: API_KEY
authorization:
type: Bearer
credentials: API_KEY-
Replace
PROJECT_IDwith the unique ID of the project you want to monitor. You can find the project ID in the Pinecone console. -
Replace both instances of
API_KEYwith an API key for the project you want to monitor. The first instance is for service discovery, and the second instance is for the discovered targets. If necessary, you can create an new API key in the Pinecone console.
For more configuration details, see the Prometheus docs.
Available metrics
Section titled “Available metrics”The following metrics are available when you integrate Pinecone with Prometheus:
| Name | Type | Description |
|---|---|---|
pinecone_db_record_total |
gauge | The total number of records in the index. |
pinecone_db_storage_size_bytes |
gauge | The total size of the index in bytes. |
pinecone_db_op_upsert_count |
counter | The number of upsert requests. |
pinecone_db_op_upsert_duration_sum |
counter | The total time taken processing upsert requests in milliseconds. |
pinecone_db_op_query_count |
counter | The number of query requests. |
pinecone_db_op_query_duration_sum |
counter | The total time taken processing query requests in milliseconds. |
pinecone_db_op_fetch_count |
counter | The number of fetch requests. |
pinecone_db_op_fetch_duration_sum |
counter | The total time taken processing fetch requests in milliseconds. |
pinecone_db_op_update_count |
counter | The number of update requests. |
pinecone_db_op_update_duration_sum |
counter | The total time taken processing update requests in milliseconds. |
pinecone_db_op_delete_count |
counter | The number of delete requests. |
pinecone_db_op_delete_duration_sum |
counter | The total time taken processing delete requests in milliseconds. |
pinecone_db_op_list_count |
counter | The number of list requests. |
pinecone_db_op_list_duration_sum |
counter | The total time taken processing list requests in milliseconds. |
pinecone_db_write_unit_count |
counter | The total number of write units consumed by an index. |
pinecone_db_read_unit_count |
counter | The total number of read units consumed by an index. |
pinecone_db_scheduled_backup_failure_total |
counter | The number of terminal failures for scheduled backup create operations. |
pinecone_db_drn_cpu_usage_percent |
gauge | The CPU usage percentage for a dedicated read node shard, averaged across replicas. |
pinecone_db_index_fullness |
gauge | The greater of storage and memory fullness for a dedicated read nodes index, on a scale of 0 to 1. |
pinecone_db_index_memory_fullness |
gauge | The memory used by a dedicated read nodes index as a ratio of its total memory capacity, on a scale of 0 to 1. |
pinecone_db_index_storage_fullness |
gauge | The storage used by a dedicated read nodes index as a ratio of its total storage capacity, on a scale of 0 to 1. |
Metric labels
Section titled “Metric labels”Each metric contains the following labels:
| Label | Description |
|---|---|
index_name |
Name of the index to which the metric applies. |
cloud |
Cloud where the index is deployed: aws, gcp, or azure. |
region |
Region where the index is deployed. |
capacity_mode |
Type of index: serverless or byoc. |
instance |
Server instance (only available for counter metrics). |
shard_id |
Shard identifier (only available for per-shard dedicated read node metrics). |
Example queries
Section titled “Example queries”Return the total number of records per index:
sum by (index_name) (pinecone_db_record_total)Return the total number of records in Pinecone index docs-example:
pinecone_db_record_total{index_name="docs-example"}For each index, return the total number of upsert requests per second:
sum by (index_name) (rate(pinecone_db_op_upsert_count[5m]))Return the average processing time in milliseconds for upsert requests per index:
(sum by (index_name) (rate(pinecone_db_op_upsert_duration_sum[1m])))/(sum by (index_name) (rate(pinecone_db_op_upsert_count[1m])))For each index, return the total number of read units consumed per second:
sum by (index_name) (rate(pinecone_db_read_unit_count[5m]))Return the total write units consumed per second for the Pinecone index docs-example:
sum (rate(pinecone_db_write_unit_count{index_name="docs-example"}[5m]))Return the highest CPU usage percentage across all shards of Pinecone index docs-example:
max(pinecone_db_drn_cpu_usage_percent{index_name="docs-example"})For each dedicated read nodes index, return the highest CPU usage percentage across its shards:
max by (index_name) (pinecone_db_drn_cpu_usage_percent)Return the fullness of Pinecone index docs-example:
pinecone_db_index_fullness{index_name="docs-example"}Return the indexes that are at least 80% full:
pinecone_db_index_fullness >= 0.8