diff --git a/proxmox-metrics/Cargo.toml b/proxmox-metrics/Cargo.toml index 98e36838..e97d55f2 100644 --- a/proxmox-metrics/Cargo.toml +++ b/proxmox-metrics/Cargo.toml @@ -18,6 +18,7 @@ openssl.workspace = true serde.workspace = true serde_json.workspace = true tokio = { workspace = true, features = [ "net", "sync" ] } +url.workspace = true proxmox-async.workspace = true proxmox-http = { workspace = true, features = [ "client" ] } diff --git a/proxmox-metrics/src/influxdb/http.rs b/proxmox-metrics/src/influxdb/http.rs index b8c5c1e6..8167b593 100644 --- a/proxmox-metrics/src/influxdb/http.rs +++ b/proxmox-metrics/src/influxdb/http.rs @@ -93,12 +93,17 @@ impl InfluxDbHttp { "" }; + let encoded_org: String = + url::form_urlencoded::byte_serialize(organization.as_bytes()).collect(); + let encoded_bucket: String = + url::form_urlencoded::byte_serialize(bucket.as_bytes()).collect(); + let writeuri = http::uri::Builder::new() .scheme(uri_parts.scheme.clone().unwrap()) .authority(uri_parts.authority.clone().unwrap()) .path_and_query(format!( "{}/api/v2/write?org={}&bucket={}", - base_path, organization, bucket + base_path, encoded_org, encoded_bucket )) .build()?;