mirror of
git://code.qt.io/qt/qt5.git
synced 2026-03-27 00:41:26 +08:00
Install telegraf on all provisioned VMs
Install binaries as early as possible in the provisioning process, and start them, in order to monitor provisioning too. To achieve this, some OS auto-detection logic is introduced in shell script common.sourced.sh. The script can be sourced and used in all kind of other generic scripts. ioping is also installed from custom-compiled binaries in order to monitor the disk latency of the VMs. Reason we don't use ioping from the repositories, is that the units differ between ioping versions (new ioping reports latencies in nanoseconds, old in microseconds). Fixes: QTQAINFRA-3092 Change-Id: I9d9afb791955725d4bd0b32dae97dfc0bd4a76a3 Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.5 (GNU/Linux)
|
||||
|
||||
mQGiBEyvJq8RBAD64FtKbU3VFsZ4PAzcSi9rETc1qXZLVQYtrE38niriIJUuT/tC
|
||||
kxGjkduD7ozP6rxL+M8fk9UdbbmzhHhXzQT2blyYy2iwpZP5+AFeQawz+oyMRVze
|
||||
x6IY5qO31TiRu+aEBptk6nco4DULlKABlvtjKI+gJ4buJm+TumyrPaxe9wCgpFwl
|
||||
O0fEjpOfQd+6Du0sCnPX7+8D/3xYVj9q5ILmrJ9zehBKjRYEcaP0rZVqudH51FUS
|
||||
I0LQNHsJdzKLzhT+Zj7TJU4KnCN4sX7amfYL3GT9qyZEBDx2alubvEsI36wtNq0i
|
||||
ewU4XmyZ+Rd7Q4mAPNoBGe5DsUA8wn/7iHGg9aJHu+GXvH7T3DVoUxW5W2KqPw+h
|
||||
jzqGBACWGuuCefa683uf6aKqpTS3JB+01BDPf+sG9qJ+k7xcJOsEiXIe1X5vH9ov
|
||||
kEvTM12kzY7SGwlsFsTDT1xioDl62g5nPlZMXErUBVnjoMtjl9bDwUPJY/vP1S9M
|
||||
VaONBMoJEON3HRui9jhdEK25LTdrcFlFpRzJI3AgdXwy8aQyiLRGZGV2ZWw6bGFu
|
||||
Z3VhZ2VzOmdvIE9CUyBQcm9qZWN0IDxkZXZlbDpsYW5ndWFnZXM6Z29AYnVpbGQu
|
||||
b3BlbnN1c2Uub3JnPohmBBMRAgAmBQJc9DoCAhsDBQkUY8NTBgsJCAcDAgQVAggD
|
||||
BBYCAwECHgECF4AACgkQr0z+TTB9e/lQZgCfXIjj30HyCPvUbSbSd6zOS0seAegA
|
||||
n3DXayMpRphNmyJgLvl5qKfsX7f6iEYEExECAAYFAkyvJq8ACgkQOzARt2udZSOg
|
||||
qQCeOba7kjk7CI+64GOkhhTGSdjnjdQAn2IC5tx+PW38XKwl3Jr5YVp0RyR0
|
||||
=AOj6
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
47
coin/provisioning/common/linux/telegraf-coin.conf
Normal file
47
coin/provisioning/common/linux/telegraf-coin.conf
Normal file
@@ -0,0 +1,47 @@
|
||||
[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 = "/var/log/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"
|
||||
|
||||
|
||||
# Monitor I/O latency
|
||||
[[inputs.exec]]
|
||||
data_format = "influx"
|
||||
commands = [ "/usr/bin/telegraf-ioping.sh /" ]
|
||||
51
coin/provisioning/common/macos/telegraf-coin.conf
Normal file
51
coin/provisioning/common/macos/telegraf-coin.conf
Normal file
@@ -0,0 +1,51 @@
|
||||
[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 = "/var/log/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]] # linux-only
|
||||
# percpu = true
|
||||
# totalcpu = true
|
||||
# collect_cpu_time = false
|
||||
# report_active = false
|
||||
[[inputs.disk]]
|
||||
ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
|
||||
#[[inputs.diskio]] # linux-only
|
||||
[[inputs.kernel]]
|
||||
[[inputs.mem]]
|
||||
[[inputs.processes]]
|
||||
[[inputs.swap]]
|
||||
[[inputs.system]]
|
||||
#[[inputs.kernel_vmstat]] # linux-only
|
||||
[[inputs.netstat]]
|
||||
|
||||
|
||||
# Monitor Coin process
|
||||
[[inputs.procstat]]
|
||||
exe = "coin-"
|
||||
# Buggy on macOS if using the "native" pid_finder, see:
|
||||
# https://github.com/influxdata/telegraf/issues/6265
|
||||
# Tested 1.12.1 version that "native" pid_finder has been fixed,
|
||||
# but it is slow and times out frequently
|
||||
pid_finder = "pgrep"
|
||||
|
||||
|
||||
# Monitor I/O latency
|
||||
[[inputs.exec]]
|
||||
data_format = "influx"
|
||||
commands = [ "/usr/bin/telegraf-ioping.sh /" ]
|
||||
@@ -0,0 +1,52 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
|
||||
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
|
||||
vqIHrEqk446nGPDqJPS5
|
||||
=9iF7
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
26
coin/provisioning/common/shared/telegraf/telegraf-ioping.sh
Normal file
26
coin/provisioning/common/shared/telegraf/telegraf-ioping.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Measure I/O latency once, return data in InfluxDB format
|
||||
#
|
||||
# Run one ioping command for read, and one for write.
|
||||
# Each one sends 3 requests and reports the minimum time, in nanoseconds.
|
||||
# (Because of limitations of ioping, we can't just send one request and get
|
||||
# the number back in the batch format. Additionally, the number seems to be
|
||||
# fluctuating quite a bit so taking the smallest number out of 3 requests is
|
||||
# stabilising it a bit.)
|
||||
|
||||
|
||||
set -e
|
||||
|
||||
[ x"$1" = x ] && echo "$0 takes a path as a first argument" && exit 1
|
||||
|
||||
# Try to run in high priority to avoid slow-downs because of
|
||||
# factors other than I/O.
|
||||
renice -n -10 -p $$ >/dev/null 2>&1 || true
|
||||
|
||||
|
||||
rlatency="$(ioping -B -k -c 3 -i 0.1 "$1" | cut -d " " -f 5)"
|
||||
wlatency="$(ioping -B -k -c 3 -i 0.1 -W "$1" | cut -d " " -f 5)"
|
||||
|
||||
printf "ioping,path=$1 read_latency_ns=%u,write_latency_ns=%u\n" \
|
||||
$rlatency $wlatency
|
||||
@@ -0,0 +1,6 @@
|
||||
https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_windows_i386.zip d2dea67a28fd7a9e21395d14f0b7ce1b6413e85cc9ffd89cc7ff8f35e8af5837
|
||||
https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_windows_amd64.zip 88d8c8146b561f43726e61688b42d0b5ab88fc22607b94df5a2c8245bbb27e29
|
||||
https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_darwin_amd64.tar.gz 58a2b294c1b6408c396b5526719cf7cad557f7075fed10ff0b2a74141ea2d629
|
||||
https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_linux_amd64.tar.gz 070a76800d1a5f33413b8948286f75caa55ebd924f6fb6996a753b9979799ef5
|
||||
https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_linux_i386.tar.gz 964077b6846708f579a100d7ea6090e2d8350ace75ec735d539bc452bc551038
|
||||
https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1-static_linux_amd64.tar.gz bb03814c99c037ce0758e3884660910f2f6fd78f3d49a8e1ef531693b3cfe25d
|
||||
139
coin/provisioning/common/unix/common.sourced.sh
Normal file
139
coin/provisioning/common/unix/common.sourced.sh
Normal file
@@ -0,0 +1,139 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
#############################################################################
|
||||
##
|
||||
## 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$
|
||||
##
|
||||
#############################################################################
|
||||
|
||||
|
||||
# Script to be sourced from everywhere you need a common environment. Defines:
|
||||
export PROVISIONING_DIR
|
||||
export PROVISIONING_OS
|
||||
export PROVISIONING_OS_ID
|
||||
export PROVISIONING_ARCH
|
||||
export CMD_PKG_INSTALL
|
||||
export CMD_PKG_LOCALINSTALL
|
||||
export CMD_INSTALL
|
||||
|
||||
|
||||
|
||||
if [ x"$IS_PROVISIONING_COMMON_SOURCED" != x ]
|
||||
then
|
||||
echo "common.sourced.sh has already been sourced, re-sourcing skipped"
|
||||
return
|
||||
fi
|
||||
|
||||
# Do not export; you want children to re-source, because they only inherit the
|
||||
# variables but not the functions
|
||||
IS_PROVISIONING_COMMON_SOURCED=1
|
||||
|
||||
|
||||
fatal () {
|
||||
echo "$1" 1>&2
|
||||
if [ x"$2" != x ]
|
||||
then exit "$2"
|
||||
else exit
|
||||
fi
|
||||
}
|
||||
|
||||
is_script_executed () {
|
||||
[ x"$(basename "$0")" = x"$1" ]
|
||||
}
|
||||
|
||||
|
||||
is_script_executed common.sourced.sh \
|
||||
&& fatal "Script common.sourced.sh should always be sourced, not executed"
|
||||
|
||||
|
||||
set_common_environment () {
|
||||
# Unfortunately we can't find the provisioning directory from a sourced
|
||||
# script in a portable way
|
||||
# PROVISIONING_DIR="$(dirname "$0")/../../"
|
||||
|
||||
[ x"$PROVISIONING_DIR" = x ] \
|
||||
&& fatal "PROVISIONING_DIR variable needs to be set before calling set_common_environment"
|
||||
|
||||
uname_s="$(uname -s)"
|
||||
case "$uname_s" in
|
||||
Linux)
|
||||
PROVISIONING_OS=linux
|
||||
. /etc/os-release
|
||||
PROVISIONING_OS_ID="$ID"
|
||||
case "$PROVISIONING_OS_ID" in
|
||||
suse|sles|opensuse*)
|
||||
CMD_PKG_INSTALL="sudo zypper -nq install"
|
||||
CMD_PKG_LOCALINSTALL="sudo zypper --no-gpg-checks -nq install"
|
||||
;;
|
||||
debian|ubuntu)
|
||||
CMD_PKG_INSTALL="sudo apt -y install"
|
||||
CMD_PKG_LOCALINSTALL="sudo apt -y install"
|
||||
;;
|
||||
rhel|centos|fedora)
|
||||
CMD_PKG_INSTALL="sudo yum -y install"
|
||||
CMD_PKG_LOCALINSTALL="sudo yum -y --nogpgcheck localinstall"
|
||||
;;
|
||||
*) fatal "Unknown ID in /etc/os-release: $PROVISIONING_OS_ID" ;;
|
||||
esac
|
||||
;;
|
||||
Darwin)
|
||||
PROVISIONING_OS=macos
|
||||
PROVISIONING_OS_ID=macos
|
||||
CMD_PKG_INSTALL="brew install"
|
||||
CMD_PKG_LOCALINSTALL="echo 'TODO how to install a package file on macOS'"
|
||||
;;
|
||||
*)
|
||||
fatal "Unknown system in uname: $uname_s" 42
|
||||
;;
|
||||
esac
|
||||
|
||||
uname_m="$(uname -m)"
|
||||
case "$uname_m" in
|
||||
x86_64|amd64) PROVISIONING_ARCH=amd64 ;;
|
||||
i[3456]86) PROVISIONING_ARCH=x86 ;;
|
||||
*) fatal "Unknown architecture in uname: $uname_m" 43 ;;
|
||||
esac
|
||||
|
||||
CMD_INSTALL="sudo install"
|
||||
}
|
||||
|
||||
set_common_environment
|
||||
|
||||
set_dry_run () {
|
||||
if [ x"$PROVISIONING_DRY_RUN" != x ]
|
||||
then
|
||||
CMD_PKG_INSTALL="echo DRYRUN: $CMD_PKG_INSTALL"
|
||||
CMD_PKG_LOCALINSTALL="echo DRYRUN: $CMD_PKG_LOCALINSTALL"
|
||||
CMD_INSTALL="echo DRYRUN: $CMD_INSTALL"
|
||||
fi
|
||||
}
|
||||
|
||||
set_dry_run
|
||||
98
coin/provisioning/common/unix/telegraf_install.sh
Executable file
98
coin/provisioning/common/unix/telegraf_install.sh
Executable file
@@ -0,0 +1,98 @@
|
||||
#!/bin/sh
|
||||
|
||||
#############################################################################
|
||||
##
|
||||
## 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$
|
||||
##
|
||||
#############################################################################
|
||||
|
||||
|
||||
# This script installs telegraf and ioping and our script telegraf-ioping.sh
|
||||
# to the /usr/bin directory.
|
||||
#
|
||||
# The reasons we don't install to /usr/local/bin are:
|
||||
# 1. On SLES and RHEL, the PATH of sudo (secure_path setting in /etc/sudoers)
|
||||
# does not include /usr/local/bin.
|
||||
# 2. On macOS /usr/local/bin does not even exist early in provisioning.
|
||||
|
||||
|
||||
######################## BOILERPLATE ###########################
|
||||
set -e
|
||||
|
||||
|
||||
PROVISIONING_DIR="$(dirname "$0")/../../"
|
||||
. "$PROVISIONING_DIR"/common/unix/common.sourced.sh
|
||||
|
||||
. "$PROVISIONING_DIR"/common/unix/DownloadURL.sh
|
||||
|
||||
is_script_executed telegraf_install.sh \
|
||||
|| fatal "Script telegraf_install.sh should be executed, not sourced"
|
||||
|
||||
################################################################
|
||||
|
||||
|
||||
[ "$PROVISIONING_OS" = linux ] \
|
||||
&& ioping_sha256=259abf04bcb84f4126ff97c04b6651e1cf5ea6d8a9ff364c769a26c95b6eeb44 \
|
||||
|| ioping_sha256=55de6a2f1a5343e0ce8df31d82d47a9e79c7e612edbc6dfb39b5fc6fb358b2e3
|
||||
DownloadURL "http://ci-files01-hki.intra.qt.io/input/ioping/ioping.${PROVISIONING_OS}-${PROVISIONING_ARCH}" \
|
||||
'' "$ioping_sha256" ioping
|
||||
$CMD_INSTALL -m 755 ./ioping /usr/bin/
|
||||
rm -f ioping
|
||||
|
||||
# 2. Install custom ioping monitoring script
|
||||
$CMD_INSTALL -m 755 "$PROVISIONING_DIR"/common/shared/telegraf/telegraf-ioping.sh /usr/bin/
|
||||
|
||||
# 3. Download and install telegraf
|
||||
|
||||
[ x"$PROVISIONING_OS" = xmacos ] && os=darwin || os=linux
|
||||
[ x"$PROVISIONING_ARCH" = xx86 ] && arch=i386 || arch=amd64
|
||||
package_filename=telegraf-1.12.1_${os}_${arch}.tar.gz
|
||||
package_sha256_list="$PROVISIONING_DIR"/common/shared/telegraf/telegraf_packages.sha256.txt
|
||||
package_sha256=$(sed -n "s/.*$package_filename *//p" "$package_sha256_list")
|
||||
|
||||
DownloadURL \
|
||||
http://ci-files01-hki.intra.qt.io/input/telegraf/"$package_filename" \
|
||||
https://dl.influxdata.com/telegraf/releases/"$package_filename" \
|
||||
"$package_sha256" \
|
||||
telegraf.tar.gz
|
||||
|
||||
tar -xzf ./telegraf.tar.gz -C /tmp
|
||||
telegraf_binary=$(find /tmp/telegraf* -name telegraf -type f | grep /bin/ | head -1)
|
||||
$CMD_INSTALL -m 755 "$telegraf_binary" /usr/bin/
|
||||
rm -rf /tmp/telegraf*
|
||||
|
||||
# 4. Edit config file with passwords
|
||||
"$PROVISIONING_DIR"/common/unix/telegraf_password.sh
|
||||
|
||||
# 5. Start telegraf in background (-b) and with retaining the environment (-E)
|
||||
# in order to report as hostname = $COIN_UNIQUE_JOB_ID.
|
||||
/usr/bin/sudo -b -E telegraf --config /etc/telegraf-coin.conf >/dev/null 2>&1
|
||||
|
||||
echo DONE: "Installed and started telegraf: $package_filename"
|
||||
60
coin/provisioning/common/unix/telegraf_password.sh
Executable file
60
coin/provisioning/common/unix/telegraf_password.sh
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
|
||||
#############################################################################
|
||||
##
|
||||
## 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$
|
||||
##
|
||||
#############################################################################
|
||||
|
||||
|
||||
######################## BOILERPLATE ###########################
|
||||
set -e
|
||||
|
||||
|
||||
PROVISIONING_DIR="$(dirname "$0")/../../"
|
||||
. "$PROVISIONING_DIR"/common/unix/common.sourced.sh
|
||||
|
||||
is_script_executed telegraf_password.sh \
|
||||
|| fatal "Script telegraf_password.sh should be executed, not sourced, to avoid leaking secrets in the logs"
|
||||
# Avoid leaking secrets in the logs
|
||||
set +x
|
||||
################################################################
|
||||
|
||||
|
||||
# Provisioning should run even without the secrets repository
|
||||
influxdb_password=$(cut -d : -f 2 ~qt/work/influxdb/coin_vms_writer.auth) \
|
||||
|| influxdb_password=no_password_provided
|
||||
|
||||
rm -f ~qt/work/influxdb/coin_vms_writer.auth
|
||||
sed "s|COIN_VMS_WRITER_PASS|$influxdb_password|" \
|
||||
"$PROVISIONING_DIR"/common/"$PROVISIONING_OS"/telegraf-coin.conf \
|
||||
> .telegraf-coin.conf.final
|
||||
$CMD_INSTALL -m 600 .telegraf-coin.conf.final /etc/telegraf-coin.conf
|
||||
rm -f .telegraf-coin.conf.final
|
||||
@@ -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"
|
||||
|
||||
68
coin/provisioning/common/windows/install_telegraf.ps1
Normal file
68
coin/provisioning/common/windows/install_telegraf.ps1
Normal file
@@ -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
|
||||
41
coin/provisioning/common/windows/telegraf-coin.conf
Normal file
41
coin/provisioning/common/windows/telegraf-coin.conf
Normal file
@@ -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"
|
||||
39
coin/provisioning/common/windows/telegraf_password.ps1
Normal file
39
coin/provisioning/common/windows/telegraf_password.ps1
Normal file
@@ -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"
|
||||
3
coin/provisioning/qtci-linux-RHEL-6.6-x86_64/04-install_telegraf.sh
Executable file
3
coin/provisioning/qtci-linux-RHEL-6.6-x86_64/04-install_telegraf.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||
3
coin/provisioning/qtci-linux-RHEL-7.4-x86_64/04-install_telegraf.sh
Executable file
3
coin/provisioning/qtci-linux-RHEL-7.4-x86_64/04-install_telegraf.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||
3
coin/provisioning/qtci-linux-SLES-12-x86_64/04-install_telegraf.sh
Executable file
3
coin/provisioning/qtci-linux-SLES-12-x86_64/04-install_telegraf.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||
3
coin/provisioning/qtci-linux-SLES-15-x86_64/04-install_telegraf.sh
Executable file
3
coin/provisioning/qtci-linux-SLES-15-x86_64/04-install_telegraf.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||
3
coin/provisioning/qtci-linux-Ubuntu-16.04-x86/04-install_telegraf.sh
Executable file
3
coin/provisioning/qtci-linux-Ubuntu-16.04-x86/04-install_telegraf.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||
3
coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/04-install_telegraf.sh
Executable file
3
coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/04-install_telegraf.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||
3
coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/04-install_telegraf.sh
Executable file
3
coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/04-install_telegraf.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||
3
coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/04-install_telegraf.sh
Executable file
3
coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/04-install_telegraf.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||
3
coin/provisioning/qtci-macos-10.12-x86_64/26-install_telegraf.sh
Executable file
3
coin/provisioning/qtci-macos-10.12-x86_64/26-install_telegraf.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||
3
coin/provisioning/qtci-macos-10.13-x86_64/26-install_telegraf.sh
Executable file
3
coin/provisioning/qtci-macos-10.13-x86_64/26-install_telegraf.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||
3
coin/provisioning/qtci-macos-10.14-x86_64/26-install_telegraf.sh
Executable file
3
coin/provisioning/qtci-macos-10.14-x86_64/26-install_telegraf.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
"$(dirname "$0")"/../common/unix/telegraf_install.sh
|
||||
@@ -0,0 +1 @@
|
||||
. "$PSScriptRoot\..\common\windows\install_telegraf.ps1"
|
||||
@@ -0,0 +1 @@
|
||||
. "$PSScriptRoot\..\common\windows\install_telegraf.ps1"
|
||||
@@ -0,0 +1 @@
|
||||
. "$PSScriptRoot\..\common\windows\install_telegraf.ps1"
|
||||
@@ -0,0 +1 @@
|
||||
. "$PSScriptRoot\..\common\windows\install_telegraf.ps1"
|
||||
@@ -0,0 +1 @@
|
||||
. "$PSScriptRoot\..\common\windows\install_telegraf.ps1"
|
||||
@@ -0,0 +1 @@
|
||||
. "$PSScriptRoot\..\common\windows\install_telegraf.ps1"
|
||||
Reference in New Issue
Block a user