add timestamp to stats

This commit is contained in:
Asim Aslam 2019-12-04 23:51:07 +00:00
parent 26755f86b1
commit 78647c7027
5 changed files with 63 additions and 49 deletions

View File

@ -38,6 +38,7 @@ func (d *Debug) Stats(ctx context.Context, req *proto.StatsRequest, rsp *proto.S
var mstat runtime.MemStats
runtime.ReadMemStats(&mstat)
rsp.Timestamp = uint64(time.Now().Unix())
rsp.Started = uint64(d.started)
rsp.Uptime = uint64(time.Now().Unix() - d.started)
rsp.Memory = mstat.Alloc

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: github.com/micro/go-micro/debug/proto/debug.proto
// source: micro/go-micro/debug/service/proto/debug.proto
package debug
@ -32,7 +32,7 @@ func (m *HealthRequest) Reset() { *m = HealthRequest{} }
func (m *HealthRequest) String() string { return proto.CompactTextString(m) }
func (*HealthRequest) ProtoMessage() {}
func (*HealthRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_7cb19b1a05a6e0a9, []int{0}
return fileDescriptor_dea322649cde1ef2, []int{0}
}
func (m *HealthRequest) XXX_Unmarshal(b []byte) error {
@ -72,7 +72,7 @@ func (m *HealthResponse) Reset() { *m = HealthResponse{} }
func (m *HealthResponse) String() string { return proto.CompactTextString(m) }
func (*HealthResponse) ProtoMessage() {}
func (*HealthResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_7cb19b1a05a6e0a9, []int{1}
return fileDescriptor_dea322649cde1ef2, []int{1}
}
func (m *HealthResponse) XXX_Unmarshal(b []byte) error {
@ -112,7 +112,7 @@ func (m *StatsRequest) Reset() { *m = StatsRequest{} }
func (m *StatsRequest) String() string { return proto.CompactTextString(m) }
func (*StatsRequest) ProtoMessage() {}
func (*StatsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_7cb19b1a05a6e0a9, []int{2}
return fileDescriptor_dea322649cde1ef2, []int{2}
}
func (m *StatsRequest) XXX_Unmarshal(b []byte) error {
@ -141,16 +141,18 @@ func (m *StatsRequest) GetService() string {
}
type StatsResponse struct {
// timestamp of recording
Timestamp uint64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
// unix timestamp
Started uint64 `protobuf:"varint,1,opt,name=started,proto3" json:"started,omitempty"`
Started uint64 `protobuf:"varint,2,opt,name=started,proto3" json:"started,omitempty"`
// in seconds
Uptime uint64 `protobuf:"varint,2,opt,name=uptime,proto3" json:"uptime,omitempty"`
Uptime uint64 `protobuf:"varint,3,opt,name=uptime,proto3" json:"uptime,omitempty"`
// in bytes
Memory uint64 `protobuf:"varint,3,opt,name=memory,proto3" json:"memory,omitempty"`
Memory uint64 `protobuf:"varint,4,opt,name=memory,proto3" json:"memory,omitempty"`
// num threads
Threads uint64 `protobuf:"varint,4,opt,name=threads,proto3" json:"threads,omitempty"`
Threads uint64 `protobuf:"varint,5,opt,name=threads,proto3" json:"threads,omitempty"`
// total gc in nanoseconds
Gc uint64 `protobuf:"varint,5,opt,name=gc,proto3" json:"gc,omitempty"`
Gc uint64 `protobuf:"varint,6,opt,name=gc,proto3" json:"gc,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -160,7 +162,7 @@ func (m *StatsResponse) Reset() { *m = StatsResponse{} }
func (m *StatsResponse) String() string { return proto.CompactTextString(m) }
func (*StatsResponse) ProtoMessage() {}
func (*StatsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_7cb19b1a05a6e0a9, []int{3}
return fileDescriptor_dea322649cde1ef2, []int{3}
}
func (m *StatsResponse) XXX_Unmarshal(b []byte) error {
@ -181,6 +183,13 @@ func (m *StatsResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_StatsResponse proto.InternalMessageInfo
func (m *StatsResponse) GetTimestamp() uint64 {
if m != nil {
return m.Timestamp
}
return 0
}
func (m *StatsResponse) GetStarted() uint64 {
if m != nil {
return m.Started
@ -237,7 +246,7 @@ func (m *LogRequest) Reset() { *m = LogRequest{} }
func (m *LogRequest) String() string { return proto.CompactTextString(m) }
func (*LogRequest) ProtoMessage() {}
func (*LogRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_7cb19b1a05a6e0a9, []int{4}
return fileDescriptor_dea322649cde1ef2, []int{4}
}
func (m *LogRequest) XXX_Unmarshal(b []byte) error {
@ -303,7 +312,7 @@ func (m *Record) Reset() { *m = Record{} }
func (m *Record) String() string { return proto.CompactTextString(m) }
func (*Record) ProtoMessage() {}
func (*Record) Descriptor() ([]byte, []int) {
return fileDescriptor_7cb19b1a05a6e0a9, []int{5}
return fileDescriptor_dea322649cde1ef2, []int{5}
}
func (m *Record) XXX_Unmarshal(b []byte) error {
@ -356,34 +365,34 @@ func init() {
}
func init() {
proto.RegisterFile("github.com/micro/go-micro/debug/proto/debug.proto", fileDescriptor_7cb19b1a05a6e0a9)
proto.RegisterFile("micro/go-micro/debug/service/proto/debug.proto", fileDescriptor_dea322649cde1ef2)
}
var fileDescriptor_7cb19b1a05a6e0a9 = []byte{
// 400 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xcd, 0x8a, 0x13, 0x41,
0x10, 0xc7, 0x33, 0x99, 0x24, 0xbb, 0xa9, 0x35, 0x51, 0x1a, 0x95, 0x21, 0x78, 0x08, 0x7d, 0x1a,
0x11, 0x3b, 0xee, 0x7a, 0x11, 0xbd, 0x2a, 0x78, 0x58, 0x2f, 0xed, 0x13, 0x74, 0x7a, 0x8a, 0xc9,
0xe8, 0x76, 0x3a, 0x76, 0xd7, 0x2c, 0xe4, 0x26, 0xf8, 0x3a, 0x3e, 0xa4, 0xf4, 0x47, 0x5c, 0x07,
0x84, 0xdc, 0xea, 0xf7, 0xef, 0x7f, 0xd7, 0x07, 0x55, 0x70, 0xdd, 0x76, 0xb4, 0xeb, 0xb7, 0x42,
0x5b, 0xb3, 0x31, 0x9d, 0x76, 0x76, 0xd3, 0xda, 0xd7, 0x29, 0x68, 0x70, 0xdb, 0xb7, 0x9b, 0x83,
0xb3, 0x94, 0x63, 0x11, 0x63, 0xfe, 0x12, 0x16, 0x9f, 0x51, 0xdd, 0xd1, 0x4e, 0xe2, 0x8f, 0x1e,
0x3d, 0xb1, 0x0a, 0x2e, 0x3c, 0xba, 0xfb, 0x4e, 0x63, 0x55, 0xac, 0x8b, 0x7a, 0x2e, 0x4f, 0xc8,
0x6b, 0x58, 0x9e, 0xac, 0xfe, 0x60, 0xf7, 0x1e, 0xd9, 0x73, 0x98, 0x79, 0x52, 0xd4, 0xfb, 0x6c,
0xcd, 0xc4, 0x6b, 0x78, 0xf4, 0x95, 0x14, 0xf9, 0xf3, 0x39, 0x7f, 0x15, 0xb0, 0xc8, 0xd6, 0x9c,
0x33, 0x78, 0x49, 0x39, 0xc2, 0x26, 0x7a, 0x27, 0xf2, 0x84, 0xa1, 0x5a, 0x7f, 0xa0, 0xce, 0x60,
0x35, 0x8e, 0x0f, 0x99, 0x82, 0x6e, 0xd0, 0x58, 0x77, 0xac, 0xca, 0xa4, 0x27, 0x0a, 0x99, 0x68,
0xe7, 0x50, 0x35, 0xbe, 0x9a, 0xa4, 0x4c, 0x19, 0xd9, 0x12, 0xc6, 0xad, 0xae, 0xa6, 0x51, 0x1c,
0xb7, 0x9a, 0x7f, 0x03, 0xb8, 0xb5, 0xed, 0xd9, 0x6e, 0xd3, 0xbc, 0x0e, 0x95, 0x89, 0x1d, 0x5c,
0xca, 0x4c, 0xec, 0x29, 0x4c, 0xb5, 0xed, 0xf7, 0x14, 0x1b, 0x28, 0x65, 0x82, 0xa0, 0xfa, 0x6e,
0xaf, 0x31, 0x56, 0x2f, 0x65, 0x02, 0xfe, 0xbb, 0x80, 0x99, 0x44, 0x6d, 0x5d, 0xc3, 0x5e, 0xc0,
0x3c, 0x0c, 0xe0, 0x49, 0x99, 0x43, 0x2c, 0x55, 0xca, 0x07, 0x21, 0x7c, 0xbf, 0x57, 0x77, 0x7d,
0x9a, 0x76, 0x2e, 0x13, 0xb0, 0x6b, 0xb8, 0x34, 0x48, 0xaa, 0x51, 0xa4, 0xaa, 0x72, 0x5d, 0xd6,
0x57, 0x37, 0xcf, 0x44, 0x4a, 0x27, 0xbe, 0x64, 0xfd, 0xd3, 0x9e, 0xdc, 0x51, 0xfe, 0xb5, 0xad,
0x3e, 0xc0, 0x62, 0xf0, 0xc4, 0x9e, 0x40, 0xf9, 0x1d, 0x8f, 0x79, 0xb8, 0x10, 0xfe, 0xbf, 0xd6,
0xfb, 0xf1, 0xbb, 0xe2, 0xe6, 0x67, 0x01, 0xd3, 0x8f, 0xe1, 0x5e, 0xd8, 0x2b, 0x98, 0xa5, 0xf5,
0xb3, 0xa5, 0x18, 0x9c, 0xcc, 0xea, 0xb1, 0x18, 0xde, 0x05, 0x1f, 0xb1, 0x1a, 0xa6, 0x71, 0xad,
0x6c, 0x21, 0xfe, 0xbd, 0x84, 0xd5, 0x52, 0x0c, 0xb6, 0xcd, 0x47, 0x6c, 0x0d, 0x93, 0x5b, 0xdb,
0x7a, 0x76, 0x25, 0x1e, 0x56, 0xb0, 0xba, 0xc8, 0x33, 0xf1, 0xd1, 0x9b, 0x62, 0x3b, 0x8b, 0x97,
0xfa, 0xf6, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x35, 0x1e, 0x9c, 0xa7, 0xde, 0x02, 0x00, 0x00,
var fileDescriptor_dea322649cde1ef2 = []byte{
// 399 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0xc1, 0x6e, 0xd4, 0x30,
0x10, 0xdd, 0x6c, 0x36, 0x69, 0x77, 0xca, 0x2e, 0xc8, 0x2a, 0xc8, 0x8a, 0x38, 0xac, 0x7c, 0x0a,
0x42, 0x78, 0xa1, 0x5c, 0x10, 0x5c, 0x41, 0xe2, 0x50, 0x2e, 0xe6, 0x0b, 0xdc, 0x64, 0x94, 0x06,
0x9a, 0x38, 0xd8, 0x93, 0x4a, 0x7b, 0xe3, 0x57, 0xb8, 0xf3, 0x91, 0x28, 0xb6, 0x97, 0x36, 0x02,
0xa9, 0xb7, 0x79, 0x6f, 0x9e, 0x9e, 0x67, 0xc6, 0x0f, 0x64, 0xd7, 0x56, 0xd6, 0xec, 0x1b, 0xf3,
0x2a, 0x14, 0x35, 0x5e, 0x8d, 0xcd, 0xde, 0xa1, 0xbd, 0x6d, 0x2b, 0xdc, 0x0f, 0xd6, 0x50, 0xe4,
0xa4, 0xaf, 0xc5, 0x0b, 0xd8, 0x7c, 0x46, 0x7d, 0x43, 0xd7, 0x0a, 0x7f, 0x8c, 0xe8, 0x88, 0x71,
0x38, 0x89, 0x6a, 0x9e, 0xec, 0x92, 0x72, 0xad, 0x8e, 0x50, 0x94, 0xb0, 0x3d, 0x4a, 0xdd, 0x60,
0x7a, 0x87, 0xec, 0x19, 0xe4, 0x8e, 0x34, 0x8d, 0x2e, 0x4a, 0x23, 0x12, 0x25, 0x3c, 0xfa, 0x4a,
0x9a, 0xdc, 0xc3, 0x9e, 0xbf, 0x12, 0xd8, 0x44, 0x69, 0xf4, 0x7c, 0x0e, 0x6b, 0x6a, 0x3b, 0x74,
0xa4, 0xbb, 0xc1, 0xab, 0x57, 0xea, 0x8e, 0xf0, 0x4e, 0xa4, 0x2d, 0x61, 0xcd, 0x97, 0xbe, 0x77,
0x84, 0xd3, 0x2c, 0xe3, 0x30, 0x09, 0x79, 0xea, 0x1b, 0x11, 0x4d, 0x7c, 0x87, 0x9d, 0xb1, 0x07,
0xbe, 0x0a, 0x7c, 0x40, 0x93, 0x13, 0x5d, 0x5b, 0xd4, 0xb5, 0xe3, 0x59, 0x70, 0x8a, 0x90, 0x6d,
0x61, 0xd9, 0x54, 0x3c, 0xf7, 0xe4, 0xb2, 0xa9, 0xc4, 0x37, 0x80, 0x4b, 0xd3, 0x3c, 0xb8, 0x4b,
0xb8, 0x86, 0x45, 0xdd, 0xf9, 0xd1, 0x4e, 0x55, 0x44, 0xec, 0x1c, 0xb2, 0xca, 0x8c, 0x3d, 0xf9,
0xc1, 0x52, 0x15, 0xc0, 0xc4, 0xba, 0xb6, 0xaf, 0xd0, 0x8f, 0x95, 0xaa, 0x00, 0xc4, 0xef, 0x04,
0x72, 0x85, 0x95, 0xb1, 0xf5, 0xbf, 0x87, 0x48, 0xef, 0x1f, 0xe2, 0x1c, 0xb2, 0x5b, 0x7d, 0x33,
0xa2, 0x7f, 0x6b, 0xad, 0x02, 0x60, 0x6f, 0xe0, 0xb4, 0x43, 0xd2, 0xb5, 0x26, 0xcd, 0xd3, 0x5d,
0x5a, 0x9e, 0x5d, 0x3c, 0x95, 0xc1, 0x4e, 0x7e, 0x89, 0xfc, 0xa7, 0x9e, 0xec, 0x41, 0xfd, 0x95,
0x15, 0x1f, 0x60, 0x33, 0x6b, 0xb1, 0x27, 0x90, 0x7e, 0xc7, 0x43, 0x5c, 0x6e, 0x2a, 0xff, 0xff,
0xd6, 0xfb, 0xe5, 0xbb, 0xe4, 0xe2, 0x67, 0x02, 0xd9, 0xc7, 0x29, 0x4d, 0xec, 0x25, 0xe4, 0x21,
0x1c, 0x6c, 0x2b, 0x67, 0x81, 0x2a, 0x1e, 0xcb, 0x79, 0x6a, 0xc4, 0x82, 0x95, 0x90, 0xf9, 0x4f,
0x67, 0x1b, 0x79, 0x3f, 0x27, 0xc5, 0x56, 0xce, 0xb2, 0x20, 0x16, 0x6c, 0x07, 0xab, 0x4b, 0xd3,
0x38, 0x76, 0x26, 0xef, 0xbe, 0xa0, 0x38, 0x89, 0x3b, 0x89, 0xc5, 0xeb, 0xe4, 0x2a, 0xf7, 0x39,
0x7e, 0xfb, 0x27, 0x00, 0x00, 0xff, 0xff, 0x7e, 0xac, 0xb1, 0x40, 0xf9, 0x02, 0x00, 0x00,
}

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-micro. DO NOT EDIT.
// source: github.com/micro/go-micro/debug/proto/debug.proto
// source: micro/go-micro/debug/service/proto/debug.proto
package debug

View File

@ -22,16 +22,18 @@ message StatsRequest {
}
message StatsResponse {
// timestamp of recording
uint64 timestamp = 1;
// unix timestamp
uint64 started = 1;
uint64 started = 2;
// in seconds
uint64 uptime = 2;
uint64 uptime = 3;
// in bytes
uint64 memory = 3;
uint64 memory = 4;
// num threads
uint64 threads = 4;
uint64 threads = 5;
// total gc in nanoseconds
uint64 gc = 5;
uint64 gc = 6;
}
// LogRequest requests service logs

View File

@ -3,17 +3,19 @@ package stats
// Stats provides stats interface
type Stats interface {
// Read a stat snapshot
Read() (*Stat, error)
// Read stat snapshot
Read() ([]*Stat, error)
// Write a stat snapshot
Write(*Stat) error
}
// A runtime stat
type Stat struct {
// Timestamp of recording
Timestamp int64
// Start time as unix timestamp
Started int64
// Uptime in nanoseconds
// Uptime in seconds
Uptime int64
// Memory usage in bytes
Memory uint64