mirror of
https://github.com/SigNoz/signoz.git
synced 2026-10-07 02:30:42 +01:00
#### Description Server counterpart to SigNoz/signoz-otel-collector#891, which makes the collector write each log body to both the legacy `body` column and `body_v2` while a `json_body_dual_ingestion` flag is on. - Adds the `json_body_dual_ingestion` feature flag (experimental, off by default). - Normalize is placed by read mode, so user pipelines always see the body the explorer shows. With `use_json_body` on it stays ahead of user pipelines. With dual ingestion alone, reads are still on the legacy `body`, so it runs after them and only feeds `body_v2`. - Whenever dual ingestion is on, the operator carries `json_body_dual_ingestion: true` so it stashes the original body for the exporter to restore. Running last under dual makes that stash the post-pipeline body, exactly what legacy ingestion stores today. - The pipeline preview follows the same rule and normalizes only under `use_json_body`. Design notes: [Normalize Operator and Pipelines](https://app.notion.com/p/signoz/Normalize-Operator-and-Pipelines-3d7fcc6bcd19802396b9e8e817e30381), [Dual JSON body ingestion](https://app.notion.com/p/signoz/Dual-JSON-body-ingestion-3c6fcc6bcd198049963bce6ce2648af8) #### Additional Information - Collectors must run a build containing SigNoz/signoz-otel-collector#891 before this flag is turned on. Verified locally against v0.144.9: an older collector does not reject the unknown operator key, it silently ignores it (operator configs are decoded with `confmap.WithIgnoreUnused()`), runs normalize, and writes the normalized body into the legacy `body` column until it is upgraded. No collector release includes #891 yet. - The exporter's own `json_body_dual_ingestion` key is collector deploy config and is flipped together with this flag; the server does not set it. - Toggling either flag does not bump the pipeline config version, so connected agents need a new pipeline save to pick up the operator or its position. Same caveat as `use_json_body` today. - Under dual, normalize is last among the SigNoz pipelines; custom collector processors placed after them still see the normalized map. 🤖 Generated with [Claude Code](https://claude.com/claude-code)