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

To view performance metrics in the Pinesone console:

  1. Open the Pinecone console.
  2. Select the project containing the index you want to monitor.
  3. Go to Database > Indexes.
  4. Select the index.
  5. Go to the Metrics tab.

Monitor with Datadog

To monitor Pinecone with Datadog, use Datadog’s Pinecone integration.

This feature is available only on Standard and Enterprise plans.

Monitor with Prometheus

This feature is available only on Standard and Enterprise plans.

Configuration

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:

This method uses HTTP service discovery to automatically discover and target all serverless indexes across all regions in a project.

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_ID with 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_KEY with 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

The following metrics are available when you integrate Pinecone with Prometheus:

NameTypeDescription
pinecone_db_record_totalgaugeThe total number of records in the index.
pinecone_db_op_upsert_totalcounterThe number of upsert requests made to an index.
pinecone_db_op_upsert_duration_totalcounterThe total time taken processing upsert requests for an index in milliseconds.
pinecone_db_op_query_totalcounterThe number of query requests made to an index.
pinecone_db_op_query_duration_totalcounterThe total time taken processing query requests for an index in milliseconds.
pinecone_db_op_fetch_totalcounterThe number of fetch requests made to an index.
pinecone_db_op_fetch_duration_totalcounterThe total time taken processing fetch requests for an index in milliseconds.
pinecone_db_op_update_totalcounterThe number of update requests made to an index.
pinecone_db_op_update_duration_totalcounterThe total time taken processing update requests for an index in milliseconds.
pinecone_db_op_delete_totalcounterThe number of delete requests made to an index.
pinecone_db_op_delete_duration_totalcounterThe total time taken processing delete requests for an index in milliseconds.
pinecone_db_write_unit_totalcounterThe total number of write units consumed by an index.
pinecone_db_read_unit_totalcounterThe total number of read units consumed by an index.
pinecone_db_storage_size_bytesgaugeThe total size of the index in bytes.

Metric labels

Each metric contains the following labels:

LabelDescription
index_nameName of the index to which the metric applies.
cloudCloud where the index is deployed: aws, gcp, or azure.
regionRegion where the index is deployed.
capacity_modeType of index: pod or serverless.

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 example-index:

pinecone_db_record_total{index_name="example-index"}

Return the total number of upsert requests per index:

sum by (index_name) (pinecone_db_op_upsert_total)

Return the average processing time in millisconds for upsert requests per index:

sum by (index_name) (pinecone_db_op_upsert_duration_total/pinecone_db_op_upsert_total) 

Return the total read units consumed per index:

sum by (index_name) (pinecone_db_read_unit_total)

Return the total write units consumed for the Pinecone index example-index:

pinecone_db_write_unit_total{index_name="example-index"}