aboutsummaryrefslogtreecommitdiffstats
path: root/coin/provisioning/common/windows
diff options
context:
space:
mode:
Diffstat (limited to 'coin/provisioning/common/windows')
-rw-r--r--coin/provisioning/common/windows/helpers.ps12
-rw-r--r--coin/provisioning/common/windows/install_telegraf.ps168
-rw-r--r--coin/provisioning/common/windows/telegraf-coin.conf41
-rw-r--r--coin/provisioning/common/windows/telegraf_password.ps139
4 files changed, 149 insertions, 1 deletions
diff --git a/coin/provisioning/common/windows/helpers.ps1 b/coin/provisioning/common/windows/helpers.ps1
index 0f39beed..3ccb42ac 100644
--- a/coin/provisioning/common/windows/helpers.ps1
+++ b/coin/provisioning/common/windows/helpers.ps1
@@ -3,7 +3,7 @@ function Verify-Checksum
Param (
[string]$File=$(throw("You must specify a filename to get the checksum of.")),
[string]$Expected=$(throw("Checksum required")),
- [ValidateSet("sha1","md5")][string]$Algorithm="sha1"
+ [ValidateSet("sha256","sha1","md5")][string]$Algorithm="sha1"
)
Write-Host "Verifying checksum of $File"
$fs = new-object System.IO.FileStream $File, "Open"
diff --git a/coin/provisioning/common/windows/install_telegraf.ps1 b/coin/provisioning/common/windows/install_telegraf.ps1
new file mode 100644
index 00000000..258c6c59
--- /dev/null
+++ b/coin/provisioning/common/windows/install_telegraf.ps1
@@ -0,0 +1,68 @@
+#############################################################################
+##
+## Copyright (C) 2019 The Qt Company Ltd.
+## Contact: http://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL21$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see http://www.qt.io/terms-conditions. For further
+## information use the contact form at http://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 2.1 or version 3 as published by the Free
+## Software Foundation and appearing in the file LICENSE.LGPLv21 and
+## LICENSE.LGPLv3 included in the packaging of this file. Please review the
+## following information to ensure the GNU Lesser General Public License
+## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+##
+## As a special exception, The Qt Company gives you certain additional
+## rights. These rights are described in The Qt Company LGPL Exception
+## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+. "$PSScriptRoot\..\..\common\windows\helpers.ps1"
+
+
+# Install a specific version of Telegraf
+# https://github.com/influxdata/telegraf/releases
+
+$version = "1.12.1"
+
+if (Is64BitWinHost) {
+ $arch = "amd64"
+ $sha256 = "88d8c8146b561f43726e61688b42d0b5ab88fc22607b94df5a2c8245bbb27e29"
+} else {
+ $arch = "i386"
+ $sha256 = "d2dea67a28fd7a9e21395d14f0b7ce1b6413e85cc9ffd89cc7ff8f35e8af5837"
+}
+
+$filename = "telegraf-" + $version + "_windows_" + $arch + ".zip"
+
+$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\" + $filename
+$url_official = "https://dl.influxdata.com/telegraf/releases/" + $filename
+$tempfile = "C:\Windows\Temp\" + $filename
+
+Write-Host "Fetching Telegraf $version..."
+Download $url_official $url_cache $tempfile
+Verify-Checksum $tempfile $sha256 sha256
+
+Write-Host "Installing telegraf.exe under C:\Utils\telegraf"
+Extract-7Zip $tempfile C:\Utils "telegraf"
+Copy-Item "$PSScriptRoot\..\..\common\windows\telegraf-coin.conf" C:\telegraf-coin.conf
+
+. "$PSScriptRoot\telegraf_password.ps1"
+
+Start-Process -FilePath C:\Utils\telegraf\telegraf.exe -ArgumentList "--config C:\telegraf-coin.conf"
+
+Write-Output "Telegraf = $version" >> ~\versions.txt
diff --git a/coin/provisioning/common/windows/telegraf-coin.conf b/coin/provisioning/common/windows/telegraf-coin.conf
new file mode 100644
index 00000000..9a4d22e8
--- /dev/null
+++ b/coin/provisioning/common/windows/telegraf-coin.conf
@@ -0,0 +1,41 @@
+[global_tags]
+[agent]
+ interval = "10s"
+ round_interval = true
+ metric_batch_size = 100
+ metric_buffer_limit = 10000
+ collection_jitter = "0s"
+ flush_interval = "10s"
+ flush_jitter = "5s"
+ precision = ""
+ logfile = "C:\\telegraf-coin.log"
+ hostname = "$COIN_UNIQUE_JOB_ID"
+ omit_hostname = false
+[[outputs.influxdb]]
+ urls= ["https://qtinfluxdb01.intra.qt.io:8086"]
+ insecure_skip_verify = true
+ database = "coin_vms"
+ skip_database_creation = true
+ username = "coin_vms_writer"
+ password = "COIN_VMS_WRITER_PASS"
+[[inputs.cpu]]
+ percpu = true
+ totalcpu = true
+ collect_cpu_time = false
+ report_active = false
+[[inputs.disk]]
+ ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
+[[inputs.diskio]]
+[[inputs.kernel]]
+[[inputs.mem]]
+#[[inputs.processes]]
+[[inputs.swap]]
+[[inputs.system]]
+#[[inputs.kernel_vmstat]] # linux-only
+[[inputs.netstat]]
+
+
+# Monitor Coin process
+[[inputs.procstat]]
+ exe = "coin-"
+ pid_finder = "native"
diff --git a/coin/provisioning/common/windows/telegraf_password.ps1 b/coin/provisioning/common/windows/telegraf_password.ps1
new file mode 100644
index 00000000..11d04dbc
--- /dev/null
+++ b/coin/provisioning/common/windows/telegraf_password.ps1
@@ -0,0 +1,39 @@
+#############################################################################
+##
+## Copyright (C) 2019 The Qt Company Ltd.
+## Contact: http://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL21$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see http://www.qt.io/terms-conditions. For further
+## information use the contact form at http://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 2.1 or version 3 as published by the Free
+## Software Foundation and appearing in the file LICENSE.LGPLv21 and
+## LICENSE.LGPLv3 included in the packaging of this file. Please review the
+## following information to ensure the GNU Lesser General Public License
+## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+##
+## As a special exception, The Qt Company gives you certain additional
+## rights. These rights are described in The Qt Company LGPL Exception
+## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+
+$colon_file = Get-Content "C:\Users\qt\work\influxdb\coin_vms_writer.auth"
+$influxdb_password = $colon_file.Substring($colon_file.LastIndexOf(':') + 1)
+$telegraf_conf = "C:\telegraf-coin.conf"
+(Get-Content $telegraf_conf) | ForEach-Object { $_.Replace("COIN_VMS_WRITER_PASS", $influxdb_password) } | Out-File -Encoding UTF8 $telegraf_conf
+Remove-Item "C:\Users\qt\work\influxdb\coin_vms_writer.auth"