pub fn merge_process_properties(
properties: &mut HashMap<String, String>,
raw: &str,
) -> Result<(), Error>Expand description
Merges a PROCESS_PROPERTIES_ENV_VAR-formatted list into properties,
leaving keys already present untouched. Precedence is therefore
explicit TelemetryGuardBuilder::with_process_property calls > environment >
populate_default_system_properties defaults: an operator
can add deployment tags but cannot spoof the version that micromegas_main
stamps nor the identity properties derived from the host, both of which
dashboards filter on. Within one list the first occurrence of a key wins,
consistent with that rule.
The whole list is parsed before anything is merged, so a malformed entry
fails the call with properties untouched rather than applying half a
config. Blank entries are dropped and each entry is trimmed: a k8s manifest
rendering an unset optional var produces "", hand-written lists routinely
carry a trailing comma, and a space after a comma would otherwise create a
key no query could match.
Keys in the server-reserved RESERVED_PROPERTY_PREFIX namespace are
rejected here, turning the ingestion service’s silent strip into a startup
failure the operator can see.