Выборка данных
function Get-InfluxDb {
<#
 .SYNOPSIS
  Получение данных из InfluxDB

 .PARAMETER Url
  URL InfluxDB HTTP API, должен включать имя БД, например: http://localhost:8086/query?db=databasename

 .PARAMETER Query
  Текст запроса к базе данных

 .LINK
  https://gist.github.com/adamdriscoll/2761b9066254556d0b4b856c041ed69f

#>
    param(
        [Parameter()]
        $Url = 'http://192.168.102.209:8086/query?db=icinga2',
        [Parameter()]
        $Query
    )

    $Results = Invoke-RestMethod -Uri "$Url&q=$Query"

    foreach($series in $results.results.series) {

        $ResultSeries = @{
            Fields = @()
        }

        foreach($tag in $series.tags.PSObject.Properties) {
            $ResultSeries[$tag.Name] = $Tag.Value
        }

        $Columns = $series.columns
        foreach($value in $series.values) {
            $Result = @{}
            for($i = 0; $i -lt $Columns.Length; $i++) {

                if ($Columns[$i] -eq 'time') {
                    $result.time = [DateTime]$value[$i]
                } else {
                    $Result[$columns[$i]] = $value[$i]
                }
            }
            $ResultSeries.fields += $result

        }
        $ResultSeries

    }
}



# # $Query = "SHOW SERIES FROM `"powershell`" WHERE `"hostname`" = 'ts3.mkucou.local'"
# $Query = "SELECT value FROM `"load`" WHERE `"hostname`" = 'ts3.mkucou.local' AND time > now() - 1h"

# # Выборка за последний день
# $Query = "SELECT value FROM `"powershell`" WHERE `"hostname`" = 'ups-ap9606.pshome2.local' AND time > now() - 1d"


# # Выборка за последний день с интервалом в 1 час
# $Query = "SELECT mean(value) FROM `"powershell`" WHERE `"hostname`" = 'ups-ap9606.pshome2.local' AND `"service`" = 'in-volt'  AND time > now() - 1d GROUP BY time(1h)"




$hostname = "l022-3"
$servicename = "hdd2-smart"
$metricname = "Raw_Read_Error_Rate"
$period = "1d"
$interval = "15m"
$graphTitle = "Метрики $servicename ($metricname) по хосту: $hostname за период - $period"

$Query = "SELECT mean(value) FROM `"powershell`" WHERE `"hostname`" = '$hostname' AND `"service`" = '$servicename' AND `"metric`" = '$metricname'  AND time > now() - $period GROUP BY time($interval)"

$result = Get-InfluxDb -Query $Query

$result_time = @()
$result_value = @()

foreach ($res in $result.Values.Values) {
    if ($result.Values.Values.IndexOf($res) % 2 -eq 0) {
        $result_time += $res
    } else {
        $result_value += $res
    }
}
Рисуем график по данным
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms.DataVisualization

$Chart = New-object System.Windows.Forms.DataVisualization.Charting.Chart
$ChartArea = New-Object System.Windows.Forms.DataVisualization.Charting.ChartArea
$Series = New-Object -TypeName System.Windows.Forms.DataVisualization.Charting.Series
$ChartTypes = [System.Windows.Forms.DataVisualization.Charting.SeriesChartType]

$Series.ChartType = $ChartTypes::Line

$Chart.Series.Add($Series)
$Chart.ChartAreas.Add($ChartArea)

$Chart.Series['Series1'].Points.DataBindXY($result_time, $result_value)

$Chart.Width = 700
$Chart.Height = 400
$Chart.Left = 10
$Chart.Top = 10
$Chart.BackColor = [System.Drawing.Color]::White
$Chart.BorderColor = 'Black'
$Chart.BorderDashStyle = 'Solid'

$ChartTitle = New-Object System.Windows.Forms.DataVisualization.Charting.Title
$ChartTitle.Text = $graphTitle
$Font = New-Object System.Drawing.Font @('Microsoft Sans Serif','12', [System.Drawing.FontStyle]::Bold)
$ChartTitle.Font =$Font
$Chart.Titles.Add($ChartTitle)

#region Windows Form to Display Chart
$AnchorAll = [System.Windows.Forms.AnchorStyles]::Bottom -bor [System.Windows.Forms.AnchorStyles]::Right -bor
    [System.Windows.Forms.AnchorStyles]::Top -bor [System.Windows.Forms.AnchorStyles]::Left
$Form = New-Object Windows.Forms.Form
$Form.Width = 740
$Form.Height = 490
$Form.controls.add($Chart)
$Chart.Anchor = $AnchorAll

$Form.Add_Shown({$Form.Activate()})
[void]$Form.ShowDialog()
#endregion Windows Form to Display Chart




# Сохраняем в файл
$Chart.SaveImage('C:\temp\chart.jpeg', 'jpeg')

Ссылки