charts.d: fix `current_time_ms_from_date` on macOS (#9636)
Ilya Mashchenko committed
Aug 3, 2020 at 14:21 UTC
bdda59ce541dc0be0092328ba74f01f057871989
1 file changed
+13
-5
collectors/charts.d.plugin/loopsleepms.sh.inc
+13
-5
@@ -10,16 +10,24 @@ fi
10
# -----------------------------------------------------------------------------
11
# use the date command as a high resolution timer
12
13
+# macOS 'date' doesnt support '%N' precision
14
+# echo $(/bin/date +"%N") is "N"
15
+if [ "$($LOOPSLEEP_DATE +"%N")" = "N" ]; then
16
+ LOOPSLEEP_DATE_FORMAT="%s * 1000"
17
+else
18
+ LOOPSLEEP_DATE_FORMAT="%s * 1000 + 10#%-N / 1000000"
19
+fi
20
+
21
now_ms=
22
LOOPSLEEPMS_HIGHRES=1
23
test "$($LOOPSLEEP_DATE +%N)" = "%N" && LOOPSLEEPMS_HIGHRES=0
24
test -z "$($LOOPSLEEP_DATE +%N)" && LOOPSLEEPMS_HIGHRES=0
25
current_time_ms_from_date() {
18
- if [ $LOOPSLEEPMS_HIGHRES -eq 0 ]; then
19
- now_ms="$($LOOPSLEEP_DATE +'%s')000"
20
- else
21
- now_ms="$(($($LOOPSLEEP_DATE +'%s * 1000 + 10#%-N / 1000000')))"
22
- fi
26
+ if [ $LOOPSLEEPMS_HIGHRES -eq 0 ]; then
27
+ now_ms="$($LOOPSLEEP_DATE +'%s')000"
28
+ else
29
+ now_ms="$(($($LOOPSLEEP_DATE +"$LOOPSLEEP_DATE_FORMAT")))"
30
+ fi
31
}
32
33
# -----------------------------------------------------------------------------