@@ -52,6 +52,10 @@ ARG_SHORT_EPHEMERAL='E'
5252ARG_LONG_EPHEMERAL=' ephemeral'
5353ARG_SHORT_TIMEOUT=' m'
5454ARG_LONG_TIMEOUT=' download-timeout'
55+ ARG_SHORT_DISABLE_INSTALLATION_TELEMETRY=' S'
56+ ARG_LONG_DISABLE_INSTALLATION_TELEMETRY=' disable-installation-telemetry'
57+ ARG_SHORT_INSTALLATION_LOGFILE_ENDPOINT=' l'
58+ ARG_LONG_INSTALLATION_LOGFILE_ENDPOINT=' installation-logfile-endpoint'
5559
5660PACKAGE_GITHUB_ORG=" SumoLogic"
5761PACKAGE_GITHUB_REPO=" sumologic-otel-collector-packaging"
@@ -67,6 +71,8 @@ readonly ARG_SHORT_INSTALL_HOSTMETRICS ARG_LONG_INSTALL_HOSTMETRICS
6771readonly ARG_SHORT_REMOTELY_MANAGED ARG_LONG_REMOTELY_MANAGED
6872readonly ARG_SHORT_EPHEMERAL ARG_LONG_EPHEMERAL
6973readonly ARG_SHORT_TIMEOUT ARG_LONG_TIMEOUT
74+ readonly ARG_SHORT_DISABLE_INSTALLATION_TELEMETRY ARG_LONG_DISABLE_INSTALLATION_TELEMETRY
75+ readonly ARG_SHORT_INSTALLATION_LOGFILE_ENDPOINT ARG_LONG_INSTALLATION_LOGFILE_ENDPOINT
7076readonly DEPRECATED_ARG_LONG_TOKEN DEPRECATED_ENV_TOKEN DEPRECATED_ARG_LONG_SKIP_TOKEN
7177readonly PACKAGE_GITHUB_ORG PACKAGE_GITHUB_REPO
7278
@@ -131,6 +137,10 @@ CURL_MAX_TIME=1800
131137# set by check_dependencies therefore cannot be set by set_defaults
132138SYSTEMD_DISABLED=false
133139
140+ DISABLE_INSTALLATION_TELEMETRY=false
141+ INSTALLATION_LOGFILE=" ${TMPDIR:=/ tmp} /sumologic-otel-collector_installation.log"
142+ INSTALLATION_LOGFILE_ENDPOINT=' https://open-events.sumologic.net/api/v1/collector/installation/logs'
143+
134144# ########################### Functions
135145
136146function usage() {
@@ -164,6 +174,7 @@ Supported arguments:
164174 -${ARG_SHORT_EPHEMERAL} , --${ARG_LONG_EPHEMERAL} Delete the collector from Sumo Logic after 12 hours of inactivity.
165175 -${ARG_SHORT_TIMEOUT} , --${ARG_LONG_TIMEOUT} <timeout> Timeout in seconds after which download will fail. Default is ${CURL_MAX_TIME} .
166176 -${ARG_SHORT_YES} , --${ARG_LONG_YES} Disable confirmation asks.
177+ -${ARG_SHORT_DISABLE_INSTALLATION_TELEMETRY} , --${ARG_LONG_DISABLE_INSTALLATION_TELEMETRY} Do not report installation logs to Sumologic.
167178
168179 -${ARG_SHORT_HELP} , --${ARG_LONG_HELP} Prints this help and usage.
169180
@@ -172,6 +183,18 @@ Supported env variables:
172183EOF
173184}
174185
186+ # shellcheck disable=SC2317 # Don't warn about unreachable commands in this function
187+ # ShellCheck may incorrectly believe that code is unreachable if it's invoked in
188+ # a trap, like the reporter function.
189+ function reporter {
190+ if ! $DISABLE_INSTALLATION_TELEMETRY ; then
191+ echo " SUMOLOGIC_INSTALLATION_TOKEN=${SUMOLOGIC_INSTALLATION_TOKEN} " >> " $INSTALLATION_LOGFILE "
192+ curl --silent --location -X POST --data-binary @" ${INSTALLATION_LOGFILE} " " ${INSTALLATION_LOGFILE_ENDPOINT} "
193+ rm -f " ${INSTALLATION_LOGFILE} "
194+ fi
195+ }
196+ trap reporter EXIT
197+
175198function set_defaults() {
176199 HOME_DIRECTORY=" /var/lib/otelcol-sumo"
177200 FILE_STORAGE=" ${HOME_DIRECTORY} /file_storage"
@@ -269,7 +292,7 @@ function parse_options() {
269292 " --${ARG_LONG_TIMEOUT} " )
270293 set -- " $@ " " -${ARG_SHORT_TIMEOUT} "
271294 ;;
272- " -${ARG_SHORT_TOKEN} " |" -${ARG_SHORT_HELP} " |" -${ARG_SHORT_API} " |" -${ARG_SHORT_OPAMP_API} " |" -${ARG_SHORT_TAG} " |" -${ARG_SHORT_SKIP_CONFIG} " |" -${ARG_SHORT_VERSION} " |" -${ARG_SHORT_FIPS} " |" -${ARG_SHORT_YES} " |" -${ARG_SHORT_SKIP_SYSTEMD} " |" -${ARG_SHORT_UNINSTALL} " |" -${ARG_SHORT_PURGE} " |" -${ARG_SHORT_SKIP_TOKEN} " |" -${ARG_SHORT_DOWNLOAD} " |" -${ARG_SHORT_CONFIG_BRANCH} " |" -${ARG_SHORT_BINARY_BRANCH} " |" -${ARG_SHORT_BRANCH} " |" -${ARG_SHORT_KEEP_DOWNLOADS} " |" -${ARG_SHORT_TIMEOUT} " |" -${ARG_SHORT_INSTALL_HOSTMETRICS} " |" -${ARG_SHORT_REMOTELY_MANAGED} " |" -${ARG_SHORT_EPHEMERAL} " )
295+ " -${ARG_SHORT_TOKEN} " |" -${ARG_SHORT_HELP} " |" -${ARG_SHORT_API} " |" -${ARG_SHORT_OPAMP_API} " |" -${ARG_SHORT_TAG} " |" -${ARG_SHORT_SKIP_CONFIG} " |" -${ARG_SHORT_VERSION} " |" -${ARG_SHORT_FIPS} " |" -${ARG_SHORT_YES} " |" -${ARG_SHORT_SKIP_SYSTEMD} " |" -${ARG_SHORT_UNINSTALL} " |" -${ARG_SHORT_PURGE} " |" -${ARG_SHORT_SKIP_TOKEN} " |" -${ARG_SHORT_DOWNLOAD} " |" -${ARG_SHORT_CONFIG_BRANCH} " |" -${ARG_SHORT_BINARY_BRANCH} " |" -${ARG_SHORT_BRANCH} " |" -${ARG_SHORT_KEEP_DOWNLOADS} " |" -${ARG_SHORT_TIMEOUT} " |" -${ARG_SHORT_INSTALL_HOSTMETRICS} " |" -${ARG_SHORT_REMOTELY_MANAGED} " |" -${ARG_SHORT_EPHEMERAL} " | " - ${ARG_SHORT_DISABLE_INSTALLATION_TELEMETRY} " | " - ${ARG_SHORT_INSTALLATION_LOGFILE_ENDPOINT} " )
273296 set -- " $@ " " ${arg} "
274297 ;;
275298 " --${ARG_LONG_INSTALL_HOSTMETRICS} " )
@@ -281,6 +304,12 @@ function parse_options() {
281304 " --${ARG_LONG_EPHEMERAL} " )
282305 set -- " $@ " " -${ARG_SHORT_EPHEMERAL} "
283306 ;;
307+ " --${ARG_LONG_DISABLE_INSTALLATION_TELEMETRY} " )
308+ set -- " $@ " " -${ARG_SHORT_DISABLE_INSTALLATION_TELEMETRY} "
309+ ;;
310+ " --${ARG_LONG_INSTALLATION_LOGFILE_ENDPOINT} " )
311+ set -- " $@ " " -${ARG_SHORT_INSTALLATION_LOGFILE_ENDPOINT} "
312+ ;;
284313 -* )
285314 echo " Unknown option ${arg} " ; usage; exit 1 ;;
286315 * )
@@ -293,7 +322,7 @@ function parse_options() {
293322
294323 while true ; do
295324 set +e
296- getopts " ${ARG_SHORT_HELP}${ARG_SHORT_TOKEN} :${ARG_SHORT_API} :${ARG_SHORT_OPAMP_API} :${ARG_SHORT_TAG} :${ARG_SHORT_VERSION} :${ARG_SHORT_FIPS}${ARG_SHORT_YES}${ARG_SHORT_SKIP_SYSTEMD}${ARG_SHORT_UNINSTALL}${ARG_SHORT_PURGE}${ARG_SHORT_SKIP_TOKEN}${ARG_SHORT_SKIP_CONFIG}${ARG_SHORT_DOWNLOAD}${ARG_SHORT_KEEP_DOWNLOADS}${ARG_SHORT_CONFIG_BRANCH} :${ARG_SHORT_BINARY_BRANCH} :${ARG_SHORT_BRANCH} :${ARG_SHORT_EPHEMERAL}${ARG_SHORT_REMOTELY_MANAGED}${ARG_SHORT_INSTALL_HOSTMETRICS}${ARG_SHORT_TIMEOUT} :" opt
325+ getopts " ${ARG_SHORT_HELP}${ARG_SHORT_TOKEN} :${ARG_SHORT_API} :${ARG_SHORT_OPAMP_API} :${ARG_SHORT_TAG} :${ARG_SHORT_VERSION} :${ARG_SHORT_FIPS}${ARG_SHORT_YES}${ARG_SHORT_SKIP_SYSTEMD}${ARG_SHORT_UNINSTALL}${ARG_SHORT_PURGE}${ARG_SHORT_SKIP_TOKEN}${ARG_SHORT_SKIP_CONFIG}${ARG_SHORT_DOWNLOAD}${ARG_SHORT_KEEP_DOWNLOADS}${ARG_SHORT_CONFIG_BRANCH} :${ARG_SHORT_BINARY_BRANCH} :${ARG_SHORT_BRANCH} :${ARG_SHORT_EPHEMERAL}${ARG_SHORT_REMOTELY_MANAGED}${ARG_SHORT_INSTALL_HOSTMETRICS}${ARG_SHORT_TIMEOUT} :${ARG_SHORT_DISABLE_INSTALLATION_TELEMETRY}${ARG_SHORT_INSTALLATION_LOGFILE_ENDPOINT} : " opt
297326 set -e
298327
299328 # Invalid argument catched, print and exit
@@ -305,7 +334,7 @@ function parse_options() {
305334
306335 # Validate opt and set arguments
307336 case " $opt " in
308- " ${ARG_SHORT_HELP} " ) usage; exit 0 ;;
337+ " ${ARG_SHORT_HELP} " ) usage; DISABLE_INSTALLATION_TELEMETRY=true exit 0 ;;
309338 " ${ARG_SHORT_TOKEN} " ) SUMOLOGIC_INSTALLATION_TOKEN=" ${OPTARG} " ;;
310339 " ${ARG_SHORT_API} " ) API_BASE_URL=" ${OPTARG} " ;;
311340 " ${ARG_SHORT_OPAMP_API} " ) OPAMP_API_URL=" ${OPTARG} " ;;
@@ -332,6 +361,8 @@ function parse_options() {
332361 " ${ARG_SHORT_EPHEMERAL} " ) EPHEMERAL=true ;;
333362 " ${ARG_SHORT_KEEP_DOWNLOADS} " ) KEEP_DOWNLOADS=true ;;
334363 " ${ARG_SHORT_TIMEOUT} " ) CURL_MAX_TIME=" ${OPTARG} " ;;
364+ " ${ARG_SHORT_DISABLE_INSTALLATION_TELEMETRY} " ) DISABLE_INSTALLATION_TELEMETRY=true ;;
365+ " ${ARG_SHORT_INSTALLATION_LOGFILE_ENDPOINT} " ) INSTALLATION_LOGFILE_ENDPOINT=" ${OPTARG} " ;;
335366 " ${ARG_SHORT_TAG} " )
336367 if [[ " ${OPTARG} " != ?* " =" * ]]; then
337368 echo " Invalid tag: '${OPTARG} '. Should be in 'key=value' format"
@@ -1746,6 +1777,9 @@ function plutil_replace_key() {
17461777
17471778# ########################### Main code
17481779
1780+ # Redirect a copy of stdout and stderr into $INSTALLATION_LOGFILE
1781+ exec > >( tee " ${INSTALLATION_LOGFILE} " ) 2>&1
1782+
17491783OS_TYPE=" $( get_os_type) "
17501784ARCH_TYPE=" $( get_arch_type) "
17511785readonly OS_TYPE ARCH_TYPE
0 commit comments