Configure the Prometheus receiver to collect Portworx by Everpure metrics

Configure the Prometheus receiver to collect Pure Storage metrics from Portworx.

Portworx by Everpure is a Kubernetes data services platform that provides persistent storage, data protection, disaster recovery, and storage management for containerized applications.

Splunk Observability Cloud uses the Prometheus receiver to collect metrics from Portworx. Portworx exposes a Prometheus-compatible /metrics endpoint that provides operational and performance metrics, enabling you to monitor the health and performance of your Portworx deployment.

This data integration requires installing Portworx on your container platform. For instructions, see Install Portworx Enterprise on Kubernetes or Install Portworx Enterprise on OpenShift in the Portworx documentation.

  1. Deploy the Splunk Distribution of the OpenTelemetry Collector to your host or container platform:
  2. Activate the Prometheus receiver for Portworx manually in the Splunk Distribution of the OpenTelemetry Collector configuration by making the following changes to your values.yaml configuration file.
    1. Add prometheus/portworx to the receiver_creator/cisco_ai_pods section. For example:
      YAML
      prometheus/portworx: 
        config: 
          config: 
            scrape_configs: 
              - job_name: portworx-metrics 
                static_configs: 
                  - targets: 
                    - '`endpoint`:17001' 
                    - '`endpoint`:17018'
    2. By default, Portworx exposes a high number of metrics. Add the following configuration under the processors section to filter only the metrics required for the built-in dashboard:
      YAML
      processors:  
        filter/portworx_metrics:  
          metrics:  
            include:  
              match_type: strict  
              metric_names:  
                - "autopilot_errors_total"
                - "px_backup_stats_backup_duration_seconds"
                - "px_backup_stats_backup_size"
                - "px_backup_stats_backup_status"
                - "px_backup_stats_backup_uploaded_bytes_mbs"
                - "px_cluster_cpu_percent"
                - "px_cluster_disk_available_bytes"
                - "px_cluster_disk_total_bytes"
                - "px_cluster_disk_utilized_bytes"
                - "px_cluster_memory_utilized_percent"
                - "px_cluster_pendingio"
                - "px_cluster_status_nodes_offline"
                - "px_cluster_status_nodes_online"
                - "px_cluster_status_quorum"
                - "px_cluster_status_size"
                - "px_cluster_trashcan_volumes"
                - "px_kvdb_health_state_cluster_view"
                - "px_kvdb_health_state_node_view"
                - "px_license_expiry"
                - "px_license_next_refresh"
                - "px_license_type"
                - "px_network_io_bytessent"
                - "px_network_io_received_bytes"
                - "px_network_io_received_bytes_total"
                - "px_network_io_sent_bytes_total"
                - "px_node_stats_cpu_usage"
                - "px_node_stats_free_mem"
                - "px_node_stats_num_reads"
                - "px_node_stats_num_writes"
                - "px_node_stats_read_iops"
                - "px_node_stats_read_latency_seconds"
                - "px_node_stats_read_ms"
                - "px_node_stats_readthroughput"
                - "px_node_stats_total_mem"
                - "px_node_stats_used_mem"
                - "px_node_stats_write_iops"
                - "px_node_stats_write_latency_seconds"
                - "px_node_stats_write_ms"
                - "px_node_stats_writethroughput"
                - "px_node_status_node_status"
                - "px_px_cache_dirty_blocks"
                - "px_px_cache_read_hits"
                - "px_px_cache_read_miss"
                - "px_px_cache_status"
                - "px_px_cache_total_blocks"
                - "px_px_cache_used_blocks"
                - "px_px_cache_write_hits"
                - "px_px_cache_write_miss"
                - "px_rebalance_overloaded_pools_total"
                - "px_rebalance_rebalance_job_state"
                - "px_volume_capacity_bytes"
                - "px_volume_depth_io"
                - "px_volume_read_bytes"
                - "px_volume_read_iops"
                - "px_volume_read_latency_seconds"
                - "px_volume_reads"
                - "px_volume_reads_total"
                - "px_volume_readthroughput"
                - "px_volume_status"
                - "px_volume_usage_bytes"
                - "px_volume_write_iops"
                - "px_volume_write_latency_seconds"
                - "px_volume_writes"
                - "px_volume_writes_total"
                - "px_volume_writethroughput"
                - "px_volume_written_bytes"
                - "stork_action_created_total"
                - "stork_action_status"
                - "stork_migration_duration"
                - "stork_migration_status"
    3. Under the service section, add a new pipline for Portworx and export the metrics to the target endpoints. For example:
      YAML
      service: 
        pipelines: 
          metrics/portworx: 
            receivers:  
              - prometheus/portworx 
            processors:  
              - filter/portworx_metrics  
              - memory_limiter 
              - batch 
              - resourcedetection 
              - resource 
            exporters: 
              - signalfx/histograms
  3. Restart the Splunk Distribution of the OpenTelemetry Collector.

Configuration settings

Learn about the configuration options for the Prometheus receiver.

To view the configuration options for the Prometheus receiver, see Settings.

Metrics

The following metrics are available for Portworx by Everpure. For more information on these metrics, see Portworx Metrics for monitoring in the Portworx documentation.

These metrics are considered custom metrics in Splunk Observability Cloud.

Metric name Description
autopilot_errors_total Total number of Autopilot errors.
px_backup_stats_backup_duration_seconds Duration in seconds for this backup.
px_backup_stats_backup_size Size in bytes for this backup.
px_backup_stats_backup_status

Status for this backup:

  • 0 = InProgress

  • 1 = Done

  • 2 = Failed

px_backup_stats_backup_uploaded_bytes_mbs Delta bytes uploaded in MB/s from the last interval for this backup.
px_cluster_cpu_percent Percentage of CPU used.
px_cluster_disk_available_bytes Available storage space in bytes for this node.
px_cluster_disk_total_bytes Total storage space in bytes for this node.
px_cluster_disk_utilized_bytes Utilized storage space in bytes for this node.
px_cluster_memory_utilized_percent Percentage of memory utilization.
px_cluster_pendingio Number of read and write operations currently in progress for this node.
px_cluster_status_nodes_offline Number of offline nodes in the cluster, including storage and storageless nodes.
px_cluster_status_nodes_online Number of online nodes in the cluster, including storage and storageless nodes.
px_cluster_status_quorum Indicates whether the cluster is in quorum.
px_cluster_status_size Node count for the Portworx cluster.
px_cluster_trashcan_volumes Number of volumes currently in the trashcan.
px_kvdb_health_state_cluster_view This node's view of other nodes' KVDB state. 1 = healthy, 2 = not healthy.
px_kvdb_health_state_node_view This node's KVDB state. 1 = healthy, 2 = not healthy.
px_license_expiry License expiry in days; a negative value indicates that the license has expired.
px_license_next_refresh Next license refresh timestamp in minutes; a negative value indicates that the license will not be refreshed.
px_license_type

License type:

  • 0 = PX-Developer

  • 1 = Legacy Enterprise

  • 2 = Trial

  • 3 = PX-Enterprise

  • 4 = PX-Enterprise floating

  • 5 = IBM Cloud Pak for Data

  • 6 = CISCO OEM

  • 7 = PX-Essential

  • 8 = Portworx CSI for FA/FB

  • 9 = Invalid license

px_network_io_bytessent Number of bytes sent during this interval.
px_network_io_received_bytes Number of bytes received during this interval.
px_network_io_received_bytes_total Total number of bytes received.
px_network_io_sent_bytes_total Total number of bytes sent.
px_node_stats_cpu_usage Percent of CPU consumption.
px_node_stats_free_mem Available memory in bytes.
px_node_stats_num_reads Number of read operations in the last interval for this node.
px_node_stats_num_writes Number of write operations in the last interval for this node.
px_node_stats_read_iops Average number of completed read operations per second for this node.
px_node_stats_read_latency_seconds Average time spent per read operation for this node.
px_node_stats_read_ms Total time in milliseconds spent reading in the last interval for this node.
px_node_stats_readthroughput Average number of bytes read per second for this node.
px_node_stats_total_mem Total memory in bytes.
px_node_stats_used_mem Used memory in bytes.
px_node_stats_write_iops Average number of completed write operations per second for this node.
px_node_stats_write_latency_seconds Average time spent per write operation for this node.
px_node_stats_write_ms Total time in milliseconds spent writing in the last interval for this node.
px_node_stats_writethroughput Average number of bytes written per second for this node.
px_node_status_node_status Status of this Portworx node.
px_px_cache_dirty_blocks Number of dirty blocks in the cache.
px_px_cache_read_hits Number of read hits for the cache.
px_px_cache_read_miss Number of read misses for the cache.
px_px_cache_status Whether the cache is enabled: 0=No, 1=Yes.
px_px_cache_total_blocks Number of total blocks in the cache.
px_px_cache_used_blocks Number of used blocks in the cache.
px_px_cache_write_hits Number of write hits for the cache.
px_px_cache_write_miss Number of write misses for the cache.
px_rebalance_overloaded_pools_total Number of overloaded pools.
px_rebalance_rebalance_job_state

Rebalance job state:

  • 0 = pending

  • 1 = running

  • 2 = done

  • 3 = paused

  • 4 = cancelled

px_volume_capacity_bytes Configured size in bytes for this volume.
px_volume_depth_io Number of I/O operations currently in progress for this volume.
px_volume_read_bytes Number of successfully read bytes during this interval for this volume.
px_volume_read_iops Average number of completed read operations per second for this volume.
px_volume_read_latency_seconds Average time spent per successfully completed read operation in seconds for this volume.
px_volume_reads Number of successfully completed read operations during this interval for this volume.
px_volume_reads_total Total number of successfully completed read operations for this volume.
px_volume_readthroughput Number of bytes read per second during this interval for this volume.
px_volume_status Status of this volume.
px_volume_usage_bytes Used storage space in bytes for this volume.
px_volume_write_iops Average number of completed write operations per second for this volume.
px_volume_write_latency_seconds Average time spent per successfully completed write operation in seconds for this volume.
px_volume_writes Number of successfully completed write operations during this interval for this volume.
px_volume_writes_total Total number of successfully completed write operations for this volume.
px_volume_writethroughput Number of bytes written per second during this interval for this volume.
px_volume_written_bytes Number of successfully written bytes during this interval for this volume.
stork_action_created_total Increments when a Failover or Failback action is created.
stork_action_status Status of Failover or Failback actions.
stork_migration_duration Duration of migration in seconds, identified by migration stage.
stork_migration_status Migration status used to filter and list migrations by status within the cluster.