This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-rover.git


The following commit(s) were added to refs/heads/main by this push:
     new b083cf6  Enhance the boottime for getting the nanosecond (#63)
b083cf6 is described below

commit b083cf6cf5810ee1a6cd0bd7169abbb03ec0769f
Author: mrproliu <[email protected]>
AuthorDate: Fri Dec 2 14:11:30 2022 +0800

    Enhance the boottime for getting the nanosecond (#63)
---
 pkg/tools/host/time.go | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/pkg/tools/host/time.go b/pkg/tools/host/time.go
index b1ef253..7cc8a78 100644
--- a/pkg/tools/host/time.go
+++ b/pkg/tools/host/time.go
@@ -21,20 +21,23 @@ import (
        "fmt"
        "time"
 
-       v3 "skywalking.apache.org/repo/goapi/collect/common/v3"
+       "golang.org/x/sys/unix"
 
-       "github.com/shirou/gopsutil/host"
+       v3 "skywalking.apache.org/repo/goapi/collect/common/v3"
 )
 
 // BootTime the System boot time
 var BootTime time.Time
 
 func init() {
-       boot, err := host.BootTime()
+       var ts unix.Timespec
+       err := unix.ClockGettime(unix.CLOCK_MONOTONIC, &ts)
+       now := time.Now()
        if err != nil {
                panic(fmt.Errorf("init boot time error: %v", err))
        }
-       BootTime = time.Unix(int64(boot), 0)
+       bootTimeNano := now.UnixNano() - ts.Nano()
+       BootTime = time.Unix(bootTimeNano/1e9, bootTimeNano%1e9)
 }
 
 func TimeToInstant(bpfTime uint64) *v3.Instant {

Reply via email to