Skip to content

Commit 49bf1b0

Browse files
authored
Add CLI parameter for ClickHouse IP address to oxdb (#1245)
1 parent 7c6155e commit 49bf1b0

File tree

1 file changed

+38
-11
lines changed

1 file changed

+38
-11
lines changed

oximeter/db/src/bin/oxdb.rs

Lines changed: 38 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use oximeter::{
1414
};
1515
use oximeter_db::{query, Client, DbWrite};
1616
use slog::{debug, info, o, Drain, Level, Logger};
17+
use std::net::IpAddr;
1718
use std::net::SocketAddr;
1819
use uuid::Uuid;
1920

@@ -53,6 +54,10 @@ fn level_from_str(s: &str) -> Result<Level, anyhow::Error> {
5354
/// Tools for developing with the Oximeter timeseries database.
5455
#[derive(Debug, Parser)]
5556
struct OxDb {
57+
/// IP address at which to connect to the database
58+
#[clap(short, long, default_value = "::1")]
59+
address: IpAddr,
60+
5661
/// Port on which to connect to the database
5762
#[clap(short, long, default_value = "8123", action)]
5863
port: u16,
@@ -135,8 +140,12 @@ enum Subcommand {
135140
},
136141
}
137142

138-
async fn make_client(port: u16, log: &Logger) -> Result<Client, anyhow::Error> {
139-
let address = SocketAddr::new("::1".parse().unwrap(), port);
143+
async fn make_client(
144+
address: IpAddr,
145+
port: u16,
146+
log: &Logger,
147+
) -> Result<Client, anyhow::Error> {
148+
let address = SocketAddr::new(address, port);
140149
let client = Client::new(address, &log);
141150
client
142151
.init_db()
@@ -199,12 +208,13 @@ async fn insert_samples(
199208
}
200209

201210
async fn populate(
211+
address: IpAddr,
202212
port: u16,
203213
log: Logger,
204214
args: PopulateArgs,
205215
) -> Result<(), anyhow::Error> {
206216
info!(log, "populating Oximeter database");
207-
let client = make_client(port, &log).await?;
217+
let client = make_client(address, port, &log).await?;
208218
let n_timeseries = args.n_projects * args.n_instances * args.n_cpus;
209219
debug!(
210220
log,
@@ -251,20 +261,25 @@ async fn populate(
251261
Ok(())
252262
}
253263

254-
async fn wipe_db(port: u16, log: Logger) -> Result<(), anyhow::Error> {
255-
let client = make_client(port, &log).await?;
264+
async fn wipe_db(
265+
address: IpAddr,
266+
port: u16,
267+
log: Logger,
268+
) -> Result<(), anyhow::Error> {
269+
let client = make_client(address, port, &log).await?;
256270
client.wipe_db().await.context("Failed to wipe database")
257271
}
258272

259273
async fn query(
274+
address: IpAddr,
260275
port: u16,
261276
log: Logger,
262277
timeseries_name: String,
263278
filters: Vec<String>,
264279
start: Option<query::Timestamp>,
265280
end: Option<query::Timestamp>,
266281
) -> Result<(), anyhow::Error> {
267-
let client = make_client(port, &log).await?;
282+
let client = make_client(address, port, &log).await?;
268283
let filters = filters.iter().map(|s| s.as_str()).collect::<Vec<_>>();
269284
let timeseries = client
270285
.select_timeseries_with(
@@ -291,9 +306,13 @@ async fn main() {
291306
match args.cmd {
292307
Subcommand::Describe => describe_data(),
293308
Subcommand::Populate { populate_args } => {
294-
populate(args.port, log, populate_args).await.unwrap();
309+
populate(args.address, args.port, log, populate_args)
310+
.await
311+
.unwrap();
312+
}
313+
Subcommand::Wipe => {
314+
wipe_db(args.address, args.port, log).await.unwrap()
295315
}
296-
Subcommand::Wipe => wipe_db(args.port, log).await.unwrap(),
297316
Subcommand::Query {
298317
timeseries_name,
299318
filters,
@@ -312,9 +331,17 @@ async fn main() {
312331
(_, Some(end)) => Some(query::Timestamp::Exclusive(end)),
313332
(None, None) => None,
314333
};
315-
query(args.port, log, timeseries_name, filters, start, end)
316-
.await
317-
.unwrap();
334+
query(
335+
args.address,
336+
args.port,
337+
log,
338+
timeseries_name,
339+
filters,
340+
start,
341+
end,
342+
)
343+
.await
344+
.unwrap();
318345
}
319346
}
320347
}

0 commit comments

Comments
 (0)