you are a proffesional bash programmer.
you need to write a bash script start_metrics.sh with logging to file start_metrtics.log and config in variable on top of file.
need to print logging to stdout if we have started a script whith an argument "-v" !
config url="http://10.59.20.16:8000".
config bash array metrics is contain elements for parse and execution ,
example metrics=( "RAID_mismatch_virt04|./check_linux_raid_mismatch.sh|-p1 1|400"
"RAID_rvirt04|./check_raid.pl")
Script need to Process each element in the metrics array :
0. for example split element of array "RAID_mismatch_virt04|./check_linux_raid_mismatch.sh|-p1 1|400" to
and execute "./check_linux_raid_mismatch.sh -p1 1 400" something like
```
for metric in "${metrics[@]}"; do
# Split the metric into its components
IFS='|' read -r -a components <<< "$metric"
# Extract the command and parameters
metric_name=${components[0]}
cmd=${components[1]}
params=${components[@]:2}
# Execute the command with parameters and redirect stderr to a file
output=$( "$cmd" $params 2> >(tee /tmp/stderr.tmp >&2) )
exitcode=$?
....
done
```
and firstly save exitcode to variable $exitcode, stdout to variable $stdout.
redirect stderr to file and then read file to variable $srtderr and delete file with stderr
2. save for every execution duration of execution, exitcode, stdout and stderr to variables $dur, $exitcode$,
3. format $mess="fed-hw;$metric_name;$errorcode;$stdout"
4. send
```
curl \
--request "POST" \
--user 'fed_monitor:l3tm31n' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode "perfdata=$mess" \
--url $url
```
in log need to save curl commond and stdout and stderr of curl execution
every main step need to be in log file.
first log entry is "---start" and concat with date.
finish entry is string "=== Stop" and concat with duration of total execution of script and number of success and failed metrics