From 7355f97b62fa2ce2fd62ec0ddd9a0d2ea9dd447c Mon Sep 17 00:00:00 2001 From: Yuce Tekol Date: Mon, 18 Dec 2017 18:07:31 +0300 Subject: [PATCH 1/2] Added BSIFieldCount diagnostics; refactored schema diagnostics --- server.go | 56 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/server.go b/server.go index a285d1cca..55e113225 100644 --- a/server.go +++ b/server.go @@ -584,24 +584,7 @@ func (s *Server) monitorDiagnostics() { // Flush the diagnostics metrics at startup, then on each tick interval flush := func() { - numFrames := 0 - numSlices := uint64(0) - for _, index := range s.Holder.Indexes() { - numSlices += index.MaxSlice() + 1 - for _, f := range index.Frames() { - numFrames++ - if f.rangeEnabled { - s.diagnostics.Set("BSIEnabled", true) - } - if f.timeQuantum != "" { - s.diagnostics.Set("TimeQuantumEnabled", true) - } - } - } - - s.diagnostics.Set("NumIndexes", len(s.Holder.Indexes())) - s.diagnostics.Set("NumFrames", numFrames) - s.diagnostics.Set("NumSlices", numSlices) + enrichDiagnosticsWithSchemaProperties(s.diagnostics, s.Holder) openFiles, err := CountOpenFiles() if err == nil { s.diagnostics.Set("OpenFiles", openFiles) @@ -723,3 +706,40 @@ type StatusHandler interface { ClusterStatus() (proto.Message, error) HandleRemoteStatus(proto.Message) error } + +type diagnosticsFrameProperties struct { + BSIFieldCount int + TimeQuantumEnabled bool +} + +func enrichDiagnosticsWithSchemaProperties(d *diagnostics.Diagnostics, holder *Holder) { + // NOTE: this function is not in the diagnostics package, since circular imports are not allowed. + var numSlices uint64 + numFrames := 0 + numIndexes := 0 + bsiFieldCount := 0 + timeQuantumEnabled := false + + for _, index := range holder.Indexes() { + numSlices += index.MaxSlice() + 1 + numIndexes += 1 + for _, frame := range index.Frames() { + numFrames += 1 + if frame.rangeEnabled { + if fields, err := frame.GetFields(); err == nil { + bsiFieldCount += len(fields.Fields) + } + } + if frame.TimeQuantum() != "" { + timeQuantumEnabled = true + } + } + } + + d.Set("NumIndexes", numIndexes) + d.Set("NumFrames", numFrames) + d.Set("NumSlices", numSlices) + d.Set("BSIFieldCount", bsiFieldCount) + d.Set("BSIEnabled", bsiFieldCount > 0) + d.Set("TimeQuantumEnaled", timeQuantumEnabled) +} From bdf813d7ee2ee5182e2df53fd79721eaa2f05d8b Mon Sep 17 00:00:00 2001 From: Yuce Tekol Date: Tue, 19 Dec 2017 23:59:04 +0300 Subject: [PATCH 2/2] update --- server.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server.go b/server.go index 55e113225..1701f639c 100644 --- a/server.go +++ b/server.go @@ -740,6 +740,5 @@ func enrichDiagnosticsWithSchemaProperties(d *diagnostics.Diagnostics, holder *H d.Set("NumFrames", numFrames) d.Set("NumSlices", numSlices) d.Set("BSIFieldCount", bsiFieldCount) - d.Set("BSIEnabled", bsiFieldCount > 0) - d.Set("TimeQuantumEnaled", timeQuantumEnabled) + d.Set("TimeQuantumEnabled", timeQuantumEnabled) }