Телеграф не работает для одного сценария PowerShell - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть скрипт Powershell для сбора данных с сервера базы данных. Сценарий работает нормально в ОС, но завершается неудачно с кодом выхода 1, затем я запускаю тест телеграфа (telegraf --config telegraf.d\my_db_conf.conf --test --debug)

Вывод:

2020-04-09T22 : 44: 14Z E! [input.exec]: Ошибка в плагине: exe c: выход из состояния 1 для команды 'powershell C: / Progra ~ 1 / telegraf /telegraf.d/Scripts/script.ps1': C: / Progra ~ 1 / telegraf / telegraf.d / Scripts / script.ps1: Термин ...

Мне бы очень хотелось узнать, что будет после "Термина ...", но я не могу это уловить в журнале или в консоли.

Сценарий PowerShell:

    $sql = @"
select ...
from sys.stats s
join ... 
where ...
"@;
    $dbs = Invoke-SqlCmd -Database master -Query "select name from sys.databases where name != 'tempdb'" -QueryTimeout 60;
    $stats = @();
    $results = @();
    foreach($db in $dbs) {
        $stats += Invoke-Sqlcmd -Database $db.name -Query $sql -QueryTimeout 60;
        $stats | % {
            $results += @{
                database_name = $_.database_name;
                schema_name = $_.schema_name;
                table_name = $_.table_name;
                stat_name = $_.stat_name;
                stat_leading_column = $_.stat_leading_column;
                last_udpdate_date = $_.last_updated;
                rows = $_.rows;
                unfiltered_rows = $_.unfiltered_rows;
                rows_sampled = $_.rows_sampled;
                modifications = $_.modification_counter;
                update_threshold = $_.update_threshold;
            }
        }
    }
    $json_result = ConvertTo-Json -InputObject $results;
    return $json_result;

Конфигурация сборщика:

[[inputs.exec]]
    interval = "6h"
    commands = ["powershell C:/Progra~1/telegraf/telegraf.d/Scripts/script.ps1"]
    timeout = "2m"
    name_override = "sql_statistics"

Существует несколько сценариев PowerShell, которые используют одну и ту же конфигурацию (разные name_override и разные commands параметры), которые работают просто отлично.

...