Skip to main content

merge_process_properties

Function merge_process_properties 

Source
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.