• Kubernetes Submit Queue's avatar
    Merge pull request #59328 from vmware/vSphereVolumeMetricsProvider · d9632f66
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 58317, 58687, 57872, 59063, 59328). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.
    
    Volume metrics support for vSphere Cloud Provider
    
    **What this PR does / why we need it**:
    This PR adds Volume metrics support for vSphere Cloud Provider. With this we can monitor the available space, capacity and used space on volumes created using vSphere. 
    
    **Which issue(s) this PR fixes**
    Fixes # https://github.com/kubernetes/kubernetes/issues/43527
    Fixes # https://github.com/vmware/kubernetes/issues/208
    
    **Special notes for your reviewer**:
    Performed following steps to ensure metrics are reported correctly for vSphere Volumes.
    
    - Created Dynamic PV using the PV claim of size 1Gi.
    ```
    $ kubectl get pvc
    NAME        STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    thinclaim   Bound     pvc-bbc18f6a-0a04-11e8-bb1c-0050569c126b   1Gi        RWO            thin           5m
    ```
    
    - Created Pod using this claim.
    - Verified volume stats metrics.
    
    ```
    / # df -h | grep /dev/sdb
    Filesystem                Size      Used Available Use% Mounted on
    /dev/sdb                975.9M      1.3M    923.4M   0% /mnt/volume1
    ```
    
    ```
    # HELP kubelet_volume_stats_available_bytes Number of available bytes in the volume
    # TYPE kubelet_volume_stats_available_bytes gauge
    kubelet_volume_stats_available_bytes{namespace="default",persistentvolumeclaim="thinclaim"} 9.68261632e+08
    
    # HELP kubelet_volume_stats_capacity_bytes Capacity in bytes of the volume
    # TYPE kubelet_volume_stats_capacity_bytes gauge
    kubelet_volume_stats_capacity_bytes{namespace="default",persistentvolumeclaim="thinclaim"} 1.02330368e+09
    
    # HELP kubelet_volume_stats_used_bytes Number of used bytes in the volume
    # TYPE kubelet_volume_stats_used_bytes gauge
    kubelet_volume_stats_used_bytes{namespace="default",persistentvolumeclaim="thinclaim"} 1.355776e+06
    ```
    
    - Download 512MB file in the Pod on attached volume and Verified volume stats metrics is updated successfully.
    
    ```
    /mnt/volume1 # df -h | grep /dev/sdb
    Filesystem                Size      Used Available Use% Mounted on
    /dev/sdb                975.9M    513.8M    410.9M  56% /mnt/volume1
    ```
    ```
    # HELP kubelet_volume_stats_available_bytes Number of available bytes in the volume
    # TYPE kubelet_volume_stats_available_bytes gauge
    kubelet_volume_stats_available_bytes{namespace="default",persistentvolumeclaim="thinclaim"} 4.30862336e+08
    
    # HELP kubelet_volume_stats_capacity_bytes Capacity in bytes of the volume
    # TYPE kubelet_volume_stats_capacity_bytes gauge
    kubelet_volume_stats_capacity_bytes{namespace="default",persistentvolumeclaim="thinclaim"} 1.02330368e+09
    
    # HELP kubelet_volume_stats_used_bytes Number of used bytes in the volume
    # TYPE kubelet_volume_stats_used_bytes gauge
    kubelet_volume_stats_used_bytes{namespace="default",persistentvolumeclaim="thinclaim"} 5.38755072e+08
    ```
    
    **Release note**:
    
    ```release-note
    Volume metrics support for vSphere Cloud Provider
    ```
    d9632f66
Name
Last commit
Last update
..
aws_ebs Loading commit data...
azure_dd Loading commit data...
azure_file Loading commit data...
cephfs Loading commit data...
cinder Loading commit data...
configmap Loading commit data...
csi Loading commit data...
downwardapi Loading commit data...
empty_dir Loading commit data...
fc Loading commit data...
flexvolume Loading commit data...
flocker Loading commit data...
gce_pd Loading commit data...
git_repo Loading commit data...
glusterfs Loading commit data...
host_path Loading commit data...
iscsi Loading commit data...
local Loading commit data...
nfs Loading commit data...
photon_pd Loading commit data...
portworx Loading commit data...
projected Loading commit data...
quobyte Loading commit data...
rbd Loading commit data...
scaleio Loading commit data...
secret Loading commit data...
storageos Loading commit data...
testing Loading commit data...
util Loading commit data...
validation Loading commit data...
vsphere_volume Loading commit data...
BUILD Loading commit data...
OWNERS Loading commit data...
doc.go Loading commit data...
metrics_cached.go Loading commit data...
metrics_du.go Loading commit data...
metrics_du_test.go Loading commit data...
metrics_errors.go Loading commit data...
metrics_nil.go Loading commit data...
metrics_nil_test.go Loading commit data...
metrics_statfs.go Loading commit data...
metrics_statfs_test.go Loading commit data...
plugins.go Loading commit data...
plugins_test.go Loading commit data...
util.go Loading commit data...
util_test.go Loading commit data...
volume.go Loading commit data...
volume_linux.go Loading commit data...
volume_unsupported.go Loading commit data...