Public/3PAR/Get-3ParVirtualVolumeMetric.ps1
Function Get-3ParVirtualVolumeMetric { <# .SYNOPSIS Returns the 3Par Virtual Volume metrics (as returned by Get-3parStatVV) as a metric object which can then be transmitted to Influx. .DESCRIPTION This function requires the HPE3PARPSToolkit module from HP. .PARAMETER Measure The name of the measure to be (ultimately) updated or created when this metric object is transmitted to Influx. .PARAMETER SANIPAddress The IP address of the 3PAR SAN to be queried. .PARAMETER SANUserName The username for connecting to the 3PAR. .PARAMETER SANPwdFile The encrypted password file for connecting to the 3PAR. This should be created with Set-3parPoshSshConnectionPasswordFile. .EXAMPLE Get-3ParVirtualVolumeMetric -Measure 'Test3PARVV' -SANIPAddress 1.2.3.4 -SANUsername admin -SANPwdFile C:\scripts\3par.pwd Description ----------- This command will return a PowerShell object with the 3PAR Virtual Volume metrics for a measure called 'Test3PARVV'. #> [cmdletbinding()] param( [String] $Measure = '3PARVirtualVolume', [Parameter(Mandatory = $true)] [String] $SANIPAddress, [Parameter(Mandatory = $true)] [String] $SANUserName, [Parameter(Mandatory = $true)] [String] $SANPwdFile ) try { Import-Module HPE3PARPSToolkit -ErrorAction Stop Set-3parPoshSshConnectionUsingPasswordFile -SANIPAddress $SANIPAddress -SANUserName $SANUserName -epwdFile $SANPwdFile -ErrorAction Stop | Out-Null } catch { throw $_ } $3Par = Get-3parSystem if ($3Par) { $VVStats = (Get-3parStatVV -Iteration 1) | Where-Object {$_.VVname -notin 'admin', '.srdata'} if ($VVStats) { ForEach ($VV in $VVStats) { $TagData = @{ System_Name = $3Par.System_Name VVname = $VV.VVname } $Metrics = @{} $VV.PSObject.Properties | Where-Object {$_.Name -notin 'VVname', 'Time', 'Date', 'r/w'} | ForEach-Object { if ($_.Value) { $Metrics.Add($_.Name, [float]$_.Value) } } [pscustomobject]@{ PSTypeName = 'Metric' Measure = $Measure Tags = $TagData Metrics = $Metrics } } } else { Write-Verbose 'No Virtual Volume data returned' } } else { Write-Verbose 'No 3par system data returned' } } |