Skip to content

Commit e65184a

Browse files
authored
Add sensitive param to get_from_env_opt (#5910)
1 parent 1f1fbd6 commit e65184a

File tree

14 files changed

+41
-26
lines changed

14 files changed

+41
-26
lines changed

quickwit/quickwit-cli/src/logger.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ impl EventFormat<'_> {
152152
/// Gets the log format from the environment variable `QW_LOG_FORMAT`. Returns a JSON
153153
/// formatter if the variable is set to `json`, otherwise returns a full formatter.
154154
fn get_from_env() -> Self {
155-
if get_from_env_opt::<String>("QW_LOG_FORMAT")
155+
if get_from_env_opt::<String>("QW_LOG_FORMAT", false)
156156
.map(|log_format| log_format.eq_ignore_ascii_case("json"))
157157
.unwrap_or(false)
158158
{

quickwit/quickwit-cli/src/main.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,11 @@ use tracing::error;
3333
/// QW_RUNTIME_NUM_THREADS environment variable.
3434
fn get_main_runtime_num_threads() -> usize {
3535
let default_num_runtime_threads: usize = quickwit_common::num_cpus().div_ceil(3);
36-
quickwit_common::get_from_env("QW_TOKIO_RUNTIME_NUM_THREADS", default_num_runtime_threads)
36+
quickwit_common::get_from_env(
37+
"QW_TOKIO_RUNTIME_NUM_THREADS",
38+
default_num_runtime_threads,
39+
false,
40+
)
3741
}
3842

3943
fn main() -> anyhow::Result<()> {

quickwit/quickwit-common/src/cpus.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ fn parse_cpu_to_mcpu(cpu_string: &str) -> Result<usize, &'static str> {
8888
//
8989
// We then get the number of vCPUs by ceiling any non integer value.
9090
fn get_num_cpus_from_env(env_key: &str) -> Option<usize> {
91-
let k8s_cpu_limit_str: String = crate::get_from_env_opt(env_key)?;
91+
let k8s_cpu_limit_str: String = crate::get_from_env_opt(env_key, false)?;
9292
let mcpus = parse_cpu_to_mcpu(&k8s_cpu_limit_str)
9393
.inspect_err(|err_msg| {
9494
warn!(

quickwit/quickwit-common/src/lib.rs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,31 +87,36 @@ pub fn split_file(split_id: impl Display) -> String {
8787
fn get_from_env_opt_aux<T: Debug>(
8888
key: &str,
8989
parse_fn: impl FnOnce(&str) -> Option<T>,
90+
sensitive: bool,
9091
) -> Option<T> {
9192
let value_str = std::env::var(key).ok()?;
9293
let Some(value) = parse_fn(&value_str) else {
9394
error!(value=%value_str, "failed to parse environment variable `{key}` value");
9495
return None;
9596
};
96-
info!(value=?value, "using environment variable `{key}` value");
97+
if sensitive {
98+
info!("using environment variable `{key}` value");
99+
} else {
100+
info!(value=?value, "using environment variable `{key}` value");
101+
}
97102
Some(value)
98103
}
99104

100-
pub fn get_from_env<T: FromStr + Debug>(key: &str, default_value: T) -> T {
101-
if let Some(value) = get_from_env_opt(key) {
105+
pub fn get_from_env<T: FromStr + Debug>(key: &str, default_value: T, sensitive: bool) -> T {
106+
if let Some(value) = get_from_env_opt(key, sensitive) {
102107
value
103108
} else {
104109
info!(default_value=?default_value, "using environment variable `{key}` default value");
105110
default_value
106111
}
107112
}
108113

109-
pub fn get_from_env_opt<T: FromStr + Debug>(key: &str) -> Option<T> {
110-
get_from_env_opt_aux(key, |val_str| val_str.parse().ok())
114+
pub fn get_from_env_opt<T: FromStr + Debug>(key: &str, sensitive: bool) -> Option<T> {
115+
get_from_env_opt_aux(key, |val_str| val_str.parse().ok(), sensitive)
111116
}
112117

113118
pub fn get_bool_from_env_opt(key: &str) -> Option<bool> {
114-
get_from_env_opt_aux(key, parse_bool_lenient)
119+
get_from_env_opt_aux(key, parse_bool_lenient, false)
115120
}
116121

117122
pub fn get_bool_from_env(key: &str, default_value: bool) -> bool {
@@ -305,11 +310,11 @@ mod tests {
305310
// way, we are keeping it that way
306311

307312
const TEST_KEY: &str = "TEST_KEY";
308-
assert_eq!(super::get_from_env(TEST_KEY, 10), 10);
313+
assert_eq!(super::get_from_env(TEST_KEY, 10, false), 10);
309314
unsafe { std::env::set_var(TEST_KEY, "15") };
310-
assert_eq!(super::get_from_env(TEST_KEY, 10), 15);
315+
assert_eq!(super::get_from_env(TEST_KEY, 10, false), 15);
311316
unsafe { std::env::set_var(TEST_KEY, "1invalidnumber") };
312-
assert_eq!(super::get_from_env(TEST_KEY, 10), 10);
317+
assert_eq!(super::get_from_env(TEST_KEY, 10, false), 10);
313318
}
314319

315320
#[test]

quickwit/quickwit-common/src/shared_consts.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ pub fn split_deletion_grace_period() -> Duration {
4040
let deletion_grace_period_secs: u64 = crate::get_from_env(
4141
"QW_SPLIT_DELETION_GRACE_PERIOD_SECS",
4242
DEFAULT_DELETION_GRACE_PERIOD.as_secs(),
43+
false,
4344
);
4445
let deletion_grace_period_secs_clamped: u64 = deletion_grace_period_secs.clamp(
4546
MINIMUM_DELETION_GRACE_PERIOD.as_secs(),

quickwit/quickwit-control-plane/src/indexing_scheduler/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ fn get_default_load_per_shard() -> NonZeroU32 {
187187
let default_load_per_shard = quickwit_common::get_from_env(
188188
"QW_DEFAULT_LOAD_PER_SHARD",
189189
PIPELINE_FULL_CAPACITY.cpu_millis() / 4,
190+
false,
190191
);
191192
NonZeroU32::new(default_load_per_shard).unwrap()
192193
})

quickwit/quickwit-index-management/src/garbage_collection.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -292,14 +292,15 @@ async fn list_splits_metadata(
292292
fn get_maximum_split_deletion_rate_per_sec() -> Option<usize> {
293293
static MAX_SPLIT_DELETION_RATE_PER_SEC: OnceLock<Option<usize>> = OnceLock::new();
294294
*MAX_SPLIT_DELETION_RATE_PER_SEC.get_or_init(|| {
295-
quickwit_common::get_from_env_opt::<usize>("QW_MAX_SPLIT_DELETION_RATE_PER_SEC")
295+
quickwit_common::get_from_env_opt::<usize>("QW_MAX_SPLIT_DELETION_RATE_PER_SEC", false)
296296
})
297297
}
298298

299299
fn get_index_gc_concurrency() -> Option<usize> {
300300
static INDEX_GC_CONCURRENCY: OnceLock<Option<usize>> = OnceLock::new();
301-
*INDEX_GC_CONCURRENCY
302-
.get_or_init(|| quickwit_common::get_from_env_opt::<usize>("QW_INDEX_GC_CONCURRENCY"))
301+
*INDEX_GC_CONCURRENCY.get_or_init(|| {
302+
quickwit_common::get_from_env_opt::<usize>("QW_INDEX_GC_CONCURRENCY", false)
303+
})
303304
}
304305

305306
/// Removes any splits marked for deletion which haven't been

quickwit/quickwit-ingest/src/ingest_v2/ingester.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ const DEFAULT_BATCH_NUM_BYTES: usize = 1024 * 1024; // 1 MiB
101101
fn get_batch_num_bytes() -> usize {
102102
static BATCH_NUM_BYTES_CELL: OnceCell<usize> = OnceCell::new();
103103
*BATCH_NUM_BYTES_CELL.get_or_init(|| {
104-
quickwit_common::get_from_env("QW_INGEST_BATCH_NUM_BYTES", DEFAULT_BATCH_NUM_BYTES)
104+
quickwit_common::get_from_env("QW_INGEST_BATCH_NUM_BYTES", DEFAULT_BATCH_NUM_BYTES, false)
105105
})
106106
}
107107

quickwit/quickwit-ingest/src/ingest_v2/router.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ fn ingest_request_timeout() -> Duration {
6666
let duration_ms = quickwit_common::get_from_env(
6767
"QW_INGEST_REQUEST_TIMEOUT_MS",
6868
DEFAULT_INGEST_REQUEST_TIMEOUT.as_millis() as u64,
69+
false,
6970
);
7071
let minimum_ingest_request_timeout: Duration =
7172
PERSIST_REQUEST_TIMEOUT * (MAX_PERSIST_ATTEMPTS as u32) + Duration::from_secs(5);

quickwit/quickwit-search/src/list_fields.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ use crate::{
4949
/// when building the response. This is a workaround until a way is found to
5050
/// prune the long tail of rare fields.
5151
static FIELD_LIST_SIZE_LIMIT: LazyLock<usize> =
52-
LazyLock::new(|| quickwit_common::get_from_env("QW_FIELD_LIST_SIZE_LIMIT", 100_000));
52+
LazyLock::new(|| quickwit_common::get_from_env("QW_FIELD_LIST_SIZE_LIMIT", 100_000, false));
5353

5454
const DYNAMIC_FIELD_PREFIX: &str = "_dynamic.";
5555

0 commit comments

Comments
 (0)