perf(go): skip empty parsed raw payloads

This commit is contained in:
lingniu
2026-07-03 08:51:30 +08:00
parent d4c164480f
commit c916120ea2
2 changed files with 29 additions and 1 deletions

View File

@@ -72,7 +72,7 @@ func (w *Writer) AppendRawFrame(ctx context.Context, env envelope.FrameEnvelope)
}
rawHex, rawHexChunks := chunkPayload(env, "raw_hex", env.RawHex)
rawText, rawTextChunks := chunkPayload(env, "raw_text", env.RawText)
parsedJSON, parsedChunks := chunkPayload(env, "parsed_json", jsonString(env.Parsed))
parsedJSON, parsedChunks := chunkPayload(env, "parsed_json", parsedJSONString(env.Parsed))
_, err := w.exec.ExecContext(ctx, fmt.Sprintf(`INSERT INTO %s
(ts, frame_id, event_id, message_id, event_time, received_at, raw_size_bytes,
raw_hex, raw_text, parsed_json, parse_status, parse_error, source_endpoint)
@@ -317,6 +317,13 @@ func jsonString(value any) string {
return string(data)
}
func parsedJSONString(value map[string]any) string {
if len(value) == 0 {
return ""
}
return jsonString(value)
}
func floatField(env envelope.FrameEnvelope, key string) (float64, bool) {
if env.Fields == nil {
return 0, false