some refinement
This commit is contained in:
@@ -47,7 +47,7 @@ func (c *Collector) SetBroadcaster(broadcaster websocket.Broadcaster) {
|
||||
c.broadcaster = broadcaster
|
||||
}
|
||||
|
||||
func (c *Collector) addToHistory(dataType websocket.DataType, data interface{}) {
|
||||
func (c *Collector) addToHistory(dataType websocket.DataType, data json.RawMessage) {
|
||||
entry := websocket.HistoryEntry{
|
||||
Type: string(dataType),
|
||||
Timestamp: time.Now().UnixNano(),
|
||||
@@ -149,9 +149,8 @@ func (c *Collector) SearchHistory(ctx context.Context, query string, limit int)
|
||||
if query == "" {
|
||||
filtered = append(filtered, entry)
|
||||
} else {
|
||||
// Basic string filter for in-memory
|
||||
data, _ := json.Marshal(entry.Data)
|
||||
if strings.Contains(strings.ToLower(string(data)), lowerQuery) {
|
||||
// Basic string filter for in-memory, no need to re-marshal RawMessage
|
||||
if strings.Contains(strings.ToLower(string(entry.Data)), lowerQuery) {
|
||||
filtered = append(filtered, entry)
|
||||
}
|
||||
}
|
||||
@@ -180,17 +179,12 @@ func (c *Collector) ConsumeTraces(ctx context.Context, td ptrace.Traces) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// Parse to interface{} for history storage
|
||||
var data interface{}
|
||||
if err := json.Unmarshal(buf, &data); err != nil {
|
||||
log.Printf("failed to unmarshal traces for history: %v", err)
|
||||
} else {
|
||||
c.addToHistory(websocket.DataTypeTraces, data)
|
||||
}
|
||||
// Store and broadcast raw bytes as json.RawMessage to avoid unsafe interface{} usage
|
||||
c.addToHistory(websocket.DataTypeTraces, buf)
|
||||
|
||||
entry := websocket.Entry{
|
||||
Type: string(websocket.DataTypeTraces),
|
||||
Data: data,
|
||||
Data: buf,
|
||||
}
|
||||
|
||||
c.broadcaster.Broadcast(&entry)
|
||||
@@ -206,17 +200,12 @@ func (c *Collector) ConsumeMetrics(ctx context.Context, md pmetric.Metrics) erro
|
||||
return err
|
||||
}
|
||||
|
||||
// Parse to interface{} for history storage
|
||||
var data interface{}
|
||||
if err := json.Unmarshal(buf, &data); err != nil {
|
||||
log.Printf("failed to unmarshal metrics for history: %v", err)
|
||||
} else {
|
||||
c.addToHistory(websocket.DataTypeMetrics, data)
|
||||
}
|
||||
// Store and broadcast raw bytes as json.RawMessage to avoid unsafe interface{} usage
|
||||
c.addToHistory(websocket.DataTypeMetrics, buf)
|
||||
|
||||
entry := websocket.Entry{
|
||||
Type: string(websocket.DataTypeMetrics),
|
||||
Data: data,
|
||||
Data: buf,
|
||||
}
|
||||
|
||||
c.broadcaster.Broadcast(&entry)
|
||||
@@ -232,17 +221,12 @@ func (c *Collector) ConsumeLogs(ctx context.Context, ld plog.Logs) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// Parse to interface{} for history storage
|
||||
var data interface{}
|
||||
if err := json.Unmarshal(buf, &data); err != nil {
|
||||
log.Printf("failed to unmarshal logs for history: %v", err)
|
||||
} else {
|
||||
c.addToHistory(websocket.DataTypeLogs, data)
|
||||
}
|
||||
// Store and broadcast raw bytes as json.RawMessage to avoid unsafe interface{} usage
|
||||
c.addToHistory(websocket.DataTypeLogs, buf)
|
||||
|
||||
entry := websocket.Entry{
|
||||
Type: string(websocket.DataTypeLogs),
|
||||
Data: data,
|
||||
Data: buf,
|
||||
}
|
||||
|
||||
c.broadcaster.Broadcast(&entry)
|
||||
|
||||
Reference in New Issue
Block a user