Repository navigation
feat(portworx): add Portworx StackPack - #35
Conversation
Adds a StackPack for Portworx Enterprise 3.x on Kubernetes. Metrics come from a ServiceMonitor the agent's OpenTelemetry scraper picks up; topology comes from the StorageCluster and StorageNode custom resources. Portworx nodes and volumes merge into the Kubernetes node and persistent volume components. Includes presentations, 20 monitors ported from the Portworx operator's alert rules plus pool and volume health checks, and three dashboards.
|
@abonillabeeche Thanks for contributing. We are still getting used to the stackpacks flow and have to figure out in what way this will land in the product, who will review. Merging this as is would put it on equal footing with our current stackpacks, but prooably we want to first mark this experimental and list this under 3rd party technologies, we'll keep you posted. |
|
Thanks @craffit, makes sense. Happy to mark it experimental and move it under 3rd-party technologies whenever you settle on the layout. Just point me at the convention. |
|
@abonillabeeche, the contribution flow is ready: Portworx stays in contrib as an opt-in community integration. We tested validation, packaging, installation and local Helm delivery with your unchanged pack. Please:
CONTRIBUTING.md covers ownership. The repository README covers installation. For adding the image through Helm, see the StackPack installation docs, which explain After approval and merge, CI publishes the individual image to Quay. Customers add it through Helm or upload its I also left one inline question about the Volume down query's handling of missing metrics. We reproduced that case with synthetic data; we did not test real Portworx alert behavior. |
Mark the StackPack experimental/community-maintained, add the Maintainer line and tested SUSE Observability version the new per-pack CI and CONTRIBUTING.md require, and document required permissions and removal steps. Fix the "Volume down" monitor: it used "+" to combine px_volume_status and px_volume_state, which inner-joins the two series and drops a volume that only reports one of them. Use "or" fallbacks so either metric alone still triggers the alert.
|
Thanks both — pushed 85140db covering everything:
On the inline question: not intentional, and I can't promise Portworx always emits both metrics together, so I fixed the query instead of just documenting an assumption. The original |
Summary
Adds a
portworxStackPack for Portworx Enterprise 3.x on Kubernetes.Data path. No Prometheus server is needed:
ServiceMonitorlabelledobservability.suse.com/agent: scrapeon the Portworx service (px-api,:9001/metrics).StorageClusterandStorageNodeCRs (core.libopenstorage.org).Topology.
portworx clustercomponent perStorageCluster.StorageNodemerges into its Kubernetes node, throughadditionalIdentifiersand ranked below the Kubernetes source, so the node keeps typenode.px_volume_replication_status, the only volume metric reported for every volume.member ofcluster, volumeprovided bycluster.Presentations. A Portworx main menu group with Clusters, Storage nodes and Volumes lists, plus a Portworx metrics tab on each of the three component kinds:
Monitors. 20 monitors, each with a remediation hint that uses
pxctlcommands checked against 3.7.1. Most port the Portworx operator'sPrometheusRulewith Portworx's thresholds:Dashboards. Cluster overview, Volumes and Nodes and pools, modelled on the Portworx Grafana dashboards.
Setup (in
resources/configuration.md):exportMetrics: trueon the StorageCluster.so-agent-portworxServiceMonitor. Itslabelkeepdrops the PVC labels Portworx copies onto every volume series, which would otherwise create many series.core.libopenstorage.orgtootel.k8sResourceCollector.crDiscovery.apiGroups.include.Testing
Tested on Portworx 3.7.1 (operator, internal KVDB) on a 3-node RKE2 / SUSE Virtualization cluster, with agent chart 1.6.12:
stack-pack-validatorfrom the CI image passes (33 nodes).sts stackpack test-deploy:Notes:
px_volume_reads_total/px_volume_writes_totalcarry onlyvolumeid, so per-volume IOPS use the*_iopsgauges.Coverage was checked against Portworx's alert reference (https://docs.portworx.com/portworx-enterprise/reference/portworx-alerts) and its Grafana dashboards. Stork, Autopilot and KVDB/etcd metrics (
:9091,:9628,:9019) need extra scrapes and are left for a follow-up.