fn: Status should expose if data was served from cache. (#1123)

This is useful in scenarios where gRPC client might want
to reliably observe/report the status latency metrics
and remove any possible duplicates. If the status query
was served from cache, then these latencies show last
execution latency.
This commit is contained in:
Tolga Ceylan
2018-07-13 17:35:00 -07:00
committed by GitHub
parent 277a0beadf
commit 564db4e9d2
5 changed files with 54 additions and 41 deletions

View File

@@ -584,6 +584,7 @@ type RunnerStatus struct {
CreatedAt string `protobuf:"bytes,8,opt,name=createdAt" json:"createdAt,omitempty"`
StartedAt string `protobuf:"bytes,9,opt,name=startedAt" json:"startedAt,omitempty"`
CompletedAt string `protobuf:"bytes,10,opt,name=completedAt" json:"completedAt,omitempty"`
Cached bool `protobuf:"varint,11,opt,name=cached" json:"cached,omitempty"`
}
func (m *RunnerStatus) Reset() { *m = RunnerStatus{} }
@@ -654,6 +655,13 @@ func (m *RunnerStatus) GetCompletedAt() string {
return ""
}
func (m *RunnerStatus) GetCached() bool {
if m != nil {
return m.Cached
}
return false
}
func init() {
proto.RegisterType((*TryCall)(nil), "TryCall")
proto.RegisterType((*DataFrame)(nil), "DataFrame")
@@ -809,46 +817,47 @@ var _RunnerProtocol_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("runner.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 655 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xed, 0x8a, 0xd3, 0x40,
0x14, 0x6d, 0xd2, 0x36, 0x4d, 0x6f, 0xb2, 0x1f, 0x0c, 0x22, 0xa1, 0x2e, 0x58, 0xa2, 0x42, 0x41,
0xc8, 0x6a, 0x55, 0x58, 0x04, 0x05, 0x5d, 0xbb, 0x44, 0x61, 0x41, 0xa6, 0xe2, 0xdf, 0x32, 0x9b,
0x99, 0xb6, 0xd1, 0x69, 0xa6, 0xcc, 0x4c, 0x17, 0xfb, 0xcf, 0xd7, 0xf0, 0xa5, 0x7c, 0x00, 0x9f,
0x46, 0x66, 0x92, 0x66, 0xc3, 0x0a, 0x5d, 0xff, 0xe5, 0x9e, 0x33, 0xf7, 0x63, 0xce, 0xb9, 0x19,
0x08, 0xe5, 0xa6, 0x28, 0x98, 0x4c, 0xd6, 0x52, 0x68, 0x31, 0x78, 0xb0, 0x10, 0x62, 0xc1, 0xd9,
0xa9, 0x8d, 0xae, 0x36, 0xf3, 0x53, 0xb6, 0x5a, 0xeb, 0x6d, 0x49, 0xc6, 0xbf, 0x1d, 0xe8, 0x7d,
0x91, 0xdb, 0x73, 0xc2, 0x39, 0x1a, 0xc1, 0xf1, 0x4a, 0x50, 0xc6, 0xd5, 0x2c, 0x23, 0x9c, 0xcf,
0xbe, 0x29, 0x51, 0x44, 0xce, 0xd0, 0x19, 0xf5, 0xf1, 0x61, 0x89, 0x9b, 0x53, 0x9f, 0x94, 0x28,
0xd0, 0x10, 0x42, 0xc5, 0x85, 0x9e, 0x2d, 0x89, 0x5a, 0xce, 0x72, 0x1a, 0xb9, 0xf6, 0x14, 0x18,
0x2c, 0x25, 0x6a, 0xf9, 0x91, 0xa2, 0x33, 0x00, 0xf6, 0x43, 0xb3, 0x42, 0xe5, 0xa2, 0x50, 0x51,
0x7b, 0xd8, 0x1e, 0x05, 0xe3, 0x28, 0xa9, 0x3a, 0x25, 0x93, 0x9a, 0x9a, 0x14, 0x5a, 0x6e, 0x71,
0xe3, 0xec, 0xe0, 0x0d, 0x1c, 0xdd, 0xa2, 0xd1, 0x31, 0xb4, 0xbf, 0xb3, 0x6d, 0x35, 0x8b, 0xf9,
0x44, 0xf7, 0xa0, 0x7b, 0x4d, 0xf8, 0x86, 0x55, 0x9d, 0xcb, 0xe0, 0xb5, 0x7b, 0xe6, 0xc4, 0xcf,
0xa1, 0xff, 0x81, 0x68, 0x72, 0x21, 0xc9, 0x8a, 0x21, 0x04, 0x1d, 0x4a, 0x34, 0xb1, 0x99, 0x21,
0xb6, 0xdf, 0xa6, 0x18, 0x13, 0x73, 0x9b, 0xe8, 0x63, 0xf3, 0x19, 0xbf, 0x04, 0x48, 0xb5, 0x5e,
0xa7, 0x8c, 0x50, 0x26, 0xff, 0xb7, 0x59, 0xfc, 0x15, 0x42, 0x93, 0x85, 0x99, 0x5a, 0x5f, 0x32,
0x4d, 0xd0, 0x43, 0x08, 0x94, 0x26, 0x7a, 0xa3, 0x66, 0x99, 0xa0, 0xcc, 0xe6, 0x77, 0x31, 0x94,
0xd0, 0xb9, 0xa0, 0x0c, 0x3d, 0x81, 0xde, 0xd2, 0xb6, 0x50, 0x91, 0x6b, 0xf5, 0x08, 0x92, 0x9b,
0xb6, 0x78, 0xc7, 0xc5, 0x6f, 0xe1, 0xc8, 0x68, 0x84, 0x99, 0xda, 0x70, 0x3d, 0xd5, 0x44, 0x6a,
0xf4, 0x08, 0x3a, 0x4b, 0xad, 0xd7, 0x11, 0x1d, 0x3a, 0xa3, 0x60, 0x7c, 0x90, 0x34, 0xfb, 0xa6,
0x2d, 0x6c, 0xc9, 0xf7, 0x1e, 0x74, 0x56, 0x4c, 0x93, 0xf8, 0x8f, 0x03, 0xa1, 0x29, 0x70, 0x91,
0x17, 0xb9, 0x5a, 0x32, 0x8a, 0x22, 0xe8, 0xa9, 0x4d, 0x96, 0x31, 0xa5, 0xec, 0x50, 0x3e, 0xde,
0x85, 0x86, 0xa1, 0x4c, 0x93, 0x9c, 0xab, 0xea, 0x6a, 0xbb, 0x10, 0x9d, 0x40, 0x9f, 0x49, 0x29,
0xa4, 0x19, 0x3c, 0x6a, 0xdb, 0xab, 0xdc, 0x00, 0x68, 0x00, 0xbe, 0x0d, 0xa6, 0x5a, 0x46, 0x1d,
0x9b, 0x58, 0xc7, 0x26, 0x33, 0x93, 0x8c, 0x68, 0x46, 0xdf, 0xe9, 0xa8, 0x6b, 0xc9, 0x1b, 0xc0,
0xb0, 0xca, 0x5c, 0xc9, 0xb2, 0x5e, 0xc9, 0xd6, 0x00, 0x1a, 0x42, 0x90, 0x89, 0xd5, 0x9a, 0xb3,
0x92, 0xef, 0x59, 0xbe, 0x09, 0xc5, 0x53, 0xe8, 0x9f, 0xf3, 0x9c, 0x15, 0xfa, 0x52, 0x2d, 0xd0,
0x09, 0xb4, 0xb5, 0x2c, 0x9d, 0x0a, 0xc6, 0xfe, 0x6e, 0xb9, 0xd2, 0x16, 0x36, 0x30, 0x1a, 0x56,
0xde, 0xbb, 0x96, 0x86, 0xa4, 0xde, 0x0a, 0xa3, 0x98, 0x61, 0x8c, 0x62, 0x57, 0x82, 0x6e, 0xe3,
0x5f, 0x0e, 0xf4, 0xb1, 0xfd, 0x63, 0x4c, 0xd5, 0x57, 0x10, 0x4a, 0xab, 0xfd, 0xcc, 0x0e, 0x56,
0x95, 0x3f, 0x4e, 0x6e, 0x99, 0x92, 0xb6, 0x70, 0x20, 0x1b, 0x1e, 0xdd, 0xd9, 0x0e, 0x3d, 0x05,
0x7f, 0x5e, 0x79, 0x62, 0x25, 0x35, 0x4e, 0x36, 0x8d, 0x4a, 0x5b, 0xb8, 0x3e, 0x50, 0xcf, 0xf6,
0xd3, 0x85, 0xb0, 0x9c, 0x6d, 0x6a, 0x37, 0x09, 0xdd, 0x07, 0x8f, 0x64, 0x3a, 0xbf, 0x2e, 0xb7,
0xb1, 0x8b, 0xab, 0xc8, 0xe0, 0x73, 0x92, 0xf3, 0xaa, 0xb6, 0x8f, 0xab, 0x08, 0x1d, 0x82, 0x9b,
// 665 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xff, 0x8a, 0xd3, 0x40,
0x10, 0x6e, 0xd2, 0x36, 0x4d, 0x27, 0xb9, 0x1f, 0x2c, 0x22, 0xa1, 0x1e, 0x58, 0xa2, 0x42, 0x41,
0xc8, 0x69, 0x55, 0x38, 0x04, 0x05, 0x3d, 0x7b, 0x44, 0xe1, 0x40, 0xb6, 0xe2, 0xbf, 0x65, 0x2f,
0xbb, 0x6d, 0xa3, 0xdb, 0x6c, 0xd9, 0xdd, 0x1e, 0xf6, 0x4d, 0xf4, 0xa5, 0x7c, 0x00, 0x9f, 0x46,
0x76, 0x93, 0xe6, 0xc2, 0x09, 0x3d, 0xff, 0xcb, 0x7c, 0xdf, 0xce, 0xce, 0xcc, 0xf7, 0x4d, 0x16,
0x42, 0xb9, 0x29, 0x0a, 0x26, 0x93, 0xb5, 0x14, 0x5a, 0x0c, 0x1e, 0x2c, 0x84, 0x58, 0x70, 0x76,
0x6a, 0xa3, 0xab, 0xcd, 0xfc, 0x94, 0xad, 0xd6, 0x7a, 0x5b, 0x92, 0xf1, 0x6f, 0x07, 0x7a, 0x5f,
0xe4, 0xf6, 0x9c, 0x70, 0x8e, 0x46, 0x70, 0xbc, 0x12, 0x94, 0x71, 0x35, 0xcb, 0x08, 0xe7, 0xb3,
0x6f, 0x4a, 0x14, 0x91, 0x33, 0x74, 0x46, 0x7d, 0x7c, 0x58, 0xe2, 0xe6, 0xd4, 0x27, 0x25, 0x0a,
0x34, 0x84, 0x50, 0x71, 0xa1, 0x67, 0x4b, 0xa2, 0x96, 0xb3, 0x9c, 0x46, 0xae, 0x3d, 0x05, 0x06,
0x4b, 0x89, 0x5a, 0x7e, 0xa4, 0xe8, 0x0c, 0x80, 0xfd, 0xd0, 0xac, 0x50, 0xb9, 0x28, 0x54, 0xd4,
0x1e, 0xb6, 0x47, 0xc1, 0x38, 0x4a, 0xaa, 0x4a, 0xc9, 0xa4, 0xa6, 0x26, 0x85, 0x96, 0x5b, 0xdc,
0x38, 0x3b, 0x78, 0x03, 0x47, 0xb7, 0x68, 0x74, 0x0c, 0xed, 0xef, 0x6c, 0x5b, 0xf5, 0x62, 0x3e,
0xd1, 0x3d, 0xe8, 0x5e, 0x13, 0xbe, 0x61, 0x55, 0xe5, 0x32, 0x78, 0xed, 0x9e, 0x39, 0xf1, 0x73,
0xe8, 0x7f, 0x20, 0x9a, 0x5c, 0x48, 0xb2, 0x62, 0x08, 0x41, 0x87, 0x12, 0x4d, 0x6c, 0x66, 0x88,
0xed, 0xb7, 0xb9, 0x8c, 0x89, 0xb9, 0x4d, 0xf4, 0xb1, 0xf9, 0x8c, 0x5f, 0x02, 0xa4, 0x5a, 0xaf,
0x53, 0x46, 0x28, 0x93, 0xff, 0x5b, 0x2c, 0xfe, 0x0a, 0xa1, 0xc9, 0xc2, 0x4c, 0xad, 0x2f, 0x99,
0x26, 0xe8, 0x21, 0x04, 0x4a, 0x13, 0xbd, 0x51, 0xb3, 0x4c, 0x50, 0x66, 0xf3, 0xbb, 0x18, 0x4a,
0xe8, 0x5c, 0x50, 0x86, 0x9e, 0x40, 0x6f, 0x69, 0x4b, 0xa8, 0xc8, 0xb5, 0x7a, 0x04, 0xc9, 0x4d,
0x59, 0xbc, 0xe3, 0xe2, 0xb7, 0x70, 0x64, 0x34, 0xc2, 0x4c, 0x6d, 0xb8, 0x9e, 0x6a, 0x22, 0x35,
0x7a, 0x04, 0x9d, 0xa5, 0xd6, 0xeb, 0x88, 0x0e, 0x9d, 0x51, 0x30, 0x3e, 0x48, 0x9a, 0x75, 0xd3,
0x16, 0xb6, 0xe4, 0x7b, 0x0f, 0x3a, 0x2b, 0xa6, 0x49, 0xfc, 0xc7, 0x81, 0xd0, 0x5c, 0x70, 0x91,
0x17, 0xb9, 0x5a, 0x32, 0x8a, 0x22, 0xe8, 0xa9, 0x4d, 0x96, 0x31, 0xa5, 0x6c, 0x53, 0x3e, 0xde,
0x85, 0x86, 0xa1, 0x4c, 0x93, 0x9c, 0xab, 0x6a, 0xb4, 0x5d, 0x88, 0x4e, 0xa0, 0xcf, 0xa4, 0x14,
0xd2, 0x34, 0x1e, 0xb5, 0xed, 0x28, 0x37, 0x00, 0x1a, 0x80, 0x6f, 0x83, 0xa9, 0x96, 0x51, 0xc7,
0x26, 0xd6, 0xb1, 0xc9, 0xcc, 0x24, 0x23, 0x9a, 0xd1, 0x77, 0x3a, 0xea, 0x5a, 0xf2, 0x06, 0x30,
0xac, 0x32, 0x23, 0x59, 0xd6, 0x2b, 0xd9, 0x1a, 0x40, 0x43, 0x08, 0x32, 0xb1, 0x5a, 0x73, 0x56,
0xf2, 0x3d, 0xcb, 0x37, 0xa1, 0x78, 0x0a, 0xfd, 0x73, 0x9e, 0xb3, 0x42, 0x5f, 0xaa, 0x05, 0x3a,
0x81, 0xb6, 0x96, 0xa5, 0x53, 0xc1, 0xd8, 0xdf, 0x2d, 0x57, 0xda, 0xc2, 0x06, 0x46, 0xc3, 0xca,
0x7b, 0xd7, 0xd2, 0x90, 0xd4, 0x5b, 0x61, 0x14, 0x33, 0x8c, 0x51, 0xec, 0x4a, 0xd0, 0x6d, 0xfc,
0xcb, 0x81, 0x3e, 0xb6, 0x7f, 0x8c, 0xb9, 0xf5, 0x15, 0x84, 0xd2, 0x6a, 0x3f, 0xb3, 0x8d, 0x55,
0xd7, 0x1f, 0x27, 0xb7, 0x4c, 0x49, 0x5b, 0x38, 0x90, 0x0d, 0x8f, 0xee, 0x2c, 0x87, 0x9e, 0x82,
0x3f, 0xaf, 0x3c, 0xb1, 0x92, 0x1a, 0x27, 0x9b, 0x46, 0xa5, 0x2d, 0x5c, 0x1f, 0xa8, 0x7b, 0xfb,
0xe9, 0x42, 0x58, 0xf6, 0x36, 0xb5, 0x9b, 0x84, 0xee, 0x83, 0x47, 0x32, 0x9d, 0x5f, 0x97, 0xdb,
0xd8, 0xc5, 0x55, 0x64, 0xf0, 0x39, 0xc9, 0x79, 0x75, 0xb7, 0x8f, 0xab, 0x08, 0x1d, 0x82, 0x9b,
0xd3, 0xca, 0x25, 0x37, 0xa7, 0x4d, 0xcf, 0xbb, 0x7b, 0x3c, 0xf7, 0xf6, 0x79, 0xde, 0xdb, 0xe7,
0xb9, 0xbf, 0xd7, 0xf3, 0xfe, 0x1d, 0x9e, 0xc3, 0x3f, 0x9e, 0x8f, 0x17, 0x70, 0x58, 0x2a, 0xf0,
0xd9, 0xbc, 0x58, 0x99, 0xe0, 0xe8, 0x31, 0x78, 0x93, 0x62, 0x41, 0x16, 0x0c, 0x41, 0x52, 0xaf,
0xc3, 0x00, 0x92, 0xda, 0xc4, 0x91, 0xf3, 0xcc, 0x41, 0xa7, 0xe0, 0xed, 0x34, 0x4b, 0xca, 0x27,
0x30, 0xd9, 0x3d, 0x81, 0xc9, 0xc4, 0x3c, 0x81, 0x83, 0x83, 0xa4, 0x29, 0xed, 0x95, 0x67, 0xe9,
0x17, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xe9, 0xb8, 0x88, 0x3f, 0x05, 0x00, 0x00,
0xb9, 0xbf, 0xd7, 0xf3, 0xfe, 0x1d, 0x9e, 0xc3, 0x3f, 0x9e, 0x9b, 0xc9, 0x32, 0x92, 0x19, 0xd5,
0x82, 0x72, 0xb2, 0x32, 0x1a, 0x2f, 0xe0, 0xb0, 0x54, 0xe6, 0xb3, 0x79, 0xc9, 0x32, 0xc1, 0xd1,
0x63, 0xf0, 0x26, 0xc5, 0x82, 0x2c, 0x18, 0x82, 0xa4, 0x5e, 0x93, 0x01, 0x24, 0xb5, 0xb9, 0x23,
0xe7, 0x99, 0x83, 0x4e, 0xc1, 0xdb, 0x69, 0x99, 0x94, 0x4f, 0x63, 0xb2, 0x7b, 0x1a, 0x93, 0x89,
0x79, 0x1a, 0x07, 0x07, 0x49, 0x53, 0xf2, 0x2b, 0xcf, 0xd2, 0x2f, 0xfe, 0x06, 0x00, 0x00, 0xff,
0xff, 0x17, 0xde, 0x8c, 0x60, 0x57, 0x05, 0x00, 0x00,
}

View File

@@ -72,6 +72,7 @@ message RunnerStatus {
string createdAt = 8; // call latency details: initialization time
string startedAt = 9; // call latency details: start time in container
string completedAt = 10; // call latency details: end time
bool cached = 11; // true if status response was provided from cache
}
service RunnerProtocol {

View File

@@ -805,6 +805,7 @@ func (pr *pureRunner) handleStatusCall(ctx context.Context) (*runner.RunnerStatu
pr.status.lock.Unlock()
cacheObj.Cached = true
cacheObj.Active = atomic.LoadInt32(&pr.status.inflight)
return &cacheObj, nil
}

View File

@@ -118,6 +118,7 @@ func TranslateGRPCStatusToRunnerStatus(status *pb.RunnerStatus) *pool.RunnerStat
return &pool.RunnerStatus{
ActiveRequestCount: status.Active,
StatusFailed: status.Failed,
Cached: status.Cached,
StatusId: status.Id,
Details: status.Details,
ErrorCode: status.ErrorCode,