move DiskStatus and MemStatus to protobuf

This commit is contained in:
Chris Lu
2018-10-15 22:25:28 -07:00
parent eec951cad2
commit 46eb77f9bb
10 changed files with 242 additions and 86 deletions

View File

@@ -1,14 +1,9 @@
package stats
type DiskStatus struct {
Dir string
All uint64
Used uint64
Free uint64
}
import "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb"
func NewDiskStatus(path string) (disk *DiskStatus) {
disk = &DiskStatus{Dir: path}
disk.fillInStatus()
func NewDiskStatus(path string) (disk *volume_server_pb.DiskStatus) {
disk = &volume_server_pb.DiskStatus{Dir: path}
fillInDiskStatus(disk)
return
}

View File

@@ -2,6 +2,8 @@
package stats
func (disk *DiskStatus) fillInStatus() {
import "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb"
func fillInDiskStatus(status *volume_server_pb.DiskStatus) {
return
}

View File

@@ -4,9 +4,11 @@ package stats
import (
"syscall"
"github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb"
)
func (disk *DiskStatus) fillInStatus() {
func fillInDiskStatus(disk *volume_server_pb.DiskStatus) {
fs := syscall.Statfs_t{}
err := syscall.Statfs(disk.Dir, &fs)
if err != nil {

View File

@@ -2,27 +2,18 @@ package stats
import (
"runtime"
"github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb"
)
type MemStatus struct {
Goroutines int
All uint64
Used uint64
Free uint64
Self uint64
Heap uint64
Stack uint64
}
func MemStat() MemStatus {
mem := MemStatus{}
mem.Goroutines = runtime.NumGoroutine()
func MemStat() *volume_server_pb.MemStatus {
mem := &volume_server_pb.MemStatus{}
mem.Goroutines = int32(runtime.NumGoroutine())
memStat := new(runtime.MemStats)
runtime.ReadMemStats(memStat)
mem.Self = memStat.Alloc
mem.Heap = memStat.HeapAlloc
mem.Stack = memStat.StackInuse
mem.fillInStatus()
fillInMemStatus(mem)
return mem
}

View File

@@ -2,6 +2,8 @@
package stats
func (mem *MemStatus) fillInStatus() {
import "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb"
func fillInMemStatus(status *volume_server_pb.MemStatus) {
return
}

View File

@@ -4,9 +4,11 @@ package stats
import (
"syscall"
"github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb"
)
func (mem *MemStatus) fillInStatus() {
func fillInMemStatus(mem *volume_server_pb.MemStatus) {
//system memory usage
sysInfo := new(syscall.Sysinfo_t)
err := syscall.Sysinfo(sysInfo)