Skip to content

Commit

Permalink
Graphql logging (#1746)
Browse files Browse the repository at this point in the history
* initial logging

* Fixed spans

* Removed auth, tidied config

* on way to fixing

* Adding future test

* fmt

* Fixed for now

* make the server actually shut down

* this info isn't showing up for some reason

* Pushed logger throughout

* minor fixes

* fix

* merge

* fmt

---------

Co-authored-by: Ben Steer <[email protected]>
Co-authored-by: Ben Steer <[email protected]>
Co-authored-by: Lucas Jeub <[email protected]>
  • Loading branch information
4 people authored Sep 18, 2024
1 parent 142f3aa commit b38d95f
Show file tree
Hide file tree
Showing 93 changed files with 1,706 additions and 1,476 deletions.
508 changes: 336 additions & 172 deletions Cargo.lock

Large diffs are not rendered by default.

9 changes: 4 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -111,11 +111,11 @@ criterion = "0.5.1"
crossbeam-channel = "0.5.11"
base64 = "0.22.1"
poem = { version = "3.0.1", features = ["cookie"] }
opentelemetry = "0.23.0"
opentelemetry_sdk = { version = "0.23.0", features = ["rt-tokio"] }
opentelemetry-jaeger = { version = "0.22.0", features = ["rt-tokio"] }
opentelemetry = "0.25.0"
opentelemetry_sdk = { version = "0.25.0", features = ["rt-tokio"] }
opentelemetry-otlp = { version = "0.25.0"}
tracing = "0.1.37"
tracing-opentelemetry = "0.24.0"
tracing-opentelemetry = "0.26.0"
tracing-subscriber = { version = "0.3.16", features = ["std", "env-filter"] }
indoc = "2.0.5"
walkdir = "2"
Expand All @@ -135,7 +135,6 @@ bytemuck = { version = "1.18.0", features = ["derive"] }
ouroboros = "0.18.3"
url = "2.2"
base64-compat = { package = "base64-compat", version = "1.0.0" }

prost = "0.13.1"
prost-types = "0.13.1"
prost-build = "0.13.1"
Expand Down
1 change: 1 addition & 0 deletions examples/rust/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ chrono = { workspace = true }
regex = { workspace = true }
serde = { workspace = true }
itertools = { workspace = true }
tracing = { workspace = true }

[[bin]]
name = "btc"
Expand Down
17 changes: 10 additions & 7 deletions examples/rust/src/bin/bench/main.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
use raphtory::{
algorithms::centrality::pagerank::unweighted_page_rank, io::csv_loader::CsvLoader, prelude::*,
algorithms::centrality::pagerank::unweighted_page_rank, io::csv_loader::CsvLoader,
logging::global_info_logger, prelude::*,
};
use serde::Deserialize;
use std::{
env,
path::{Path, PathBuf},
time::Instant,
};
use tracing::info;

#[derive(Deserialize, std::fmt::Debug)]
pub struct Benchr {
Expand All @@ -15,7 +17,8 @@ pub struct Benchr {
}

fn main() {
println!("Hello, world!");
global_info_logger();
info!("Hello, world!");
let args: Vec<String> = env::args().collect();

let default_data_dir: PathBuf = [env!("CARGO_MANIFEST_DIR"), "src/bin/bench/data"]
Expand All @@ -33,13 +36,13 @@ fn main() {
}

let encoded_data_dir = data_dir.join("graphdb.bincode");
println!("Loading data");
info!("Loading data");
let graph = if encoded_data_dir.exists() {
let now = Instant::now();
let g = Graph::decode(encoded_data_dir.as_path())
.expect("Failed to load graph from encoded data files");

println!(
info!(
"Loaded graph from encoded data files {} with {} nodes, {} edges which took {} seconds",
encoded_data_dir.to_str().unwrap(),
g.count_nodes(),
Expand All @@ -66,7 +69,7 @@ fn main() {
})
.expect("Failed to load graph from CSV data files");

println!(
info!(
"Loaded graph from CSV data files {} with {} nodes, {} edges which took {} seconds",
encoded_data_dir.to_str().unwrap(),
g.count_nodes(),
Expand All @@ -78,7 +81,7 @@ fn main() {

g
};
println!("Data loaded\nPageRanking");
info!("Data loaded\nPageRanking");
unweighted_page_rank(&graph, Some(25), Some(8), None, true, None);
println!("Done PR");
info!("Done PR");
}
10 changes: 6 additions & 4 deletions examples/rust/src/bin/btc/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#![allow(dead_code)]

use chrono::{DateTime, Utc};
use raphtory::{io::csv_loader::CsvLoader, prelude::*};
use raphtory::{io::csv_loader::CsvLoader, logging::global_info_logger, prelude::*};
use regex::Regex;
use serde::Deserialize;
use std::{
Expand All @@ -16,6 +16,7 @@ use std::{
thread::JoinHandle,
time::Instant,
};
use tracing::info;

#[derive(Deserialize, std::fmt::Debug)]
pub struct Sent {
Expand All @@ -38,6 +39,7 @@ pub struct Received {
}

fn main() {
global_info_logger();
let args: Vec<String> = env::args().collect();

let default_data_dir: PathBuf = [env!("CARGO_MANIFEST_DIR"), "src/bin/btc/data"]
Expand Down Expand Up @@ -65,7 +67,7 @@ fn main() {
let g = Graph::decode(encoded_data_dir.as_path())
.expect("Failed to load graph from encoded data files");

println!(
info!(
"Loaded graph from path {} with {} nodes, {} edges, took {} seconds",
encoded_data_dir.to_str().unwrap(),
g.count_nodes(),
Expand All @@ -87,7 +89,7 @@ fn main() {
let time = sent.time.timestamp();

if src == test_v || dst == test_v {
println!("{} sent {} to {}", sent.addr, sent.amount_btc, sent.txn);
info!("{} sent {} to {}", sent.addr, sent.amount_btc, sent.txn);
}

g.add_edge(
Expand All @@ -101,7 +103,7 @@ fn main() {
})
.expect("Failed to load graph from CSV data files");

println!(
info!(
"Loaded graph from CSV data files {} with {} nodes, {} edges which took {} seconds",
encoded_data_dir.to_str().unwrap(),
g.count_nodes(),
Expand Down
15 changes: 9 additions & 6 deletions examples/rust/src/bin/crypto/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ use raphtory::{
},
db::api::view::*,
graph_loader::stable_coins::stable_coin_graph,
logging::global_info_logger,
};
use std::{env, time::Instant};
use tracing::info;

fn main() {
global_info_logger();
let args: Vec<String> = env::args().collect();

let data_dir = if args.len() < 2 {
Expand All @@ -28,21 +31,21 @@ fn main() {
vec!["Dai", "LUNC", "USD", "USDP", "USDT", "USTC"]
);

println!("Pagerank");
info!("Pagerank");
let now = Instant::now();
let _ = unweighted_page_rank(&g, Some(20), None, None, true, None);
println!("Time taken: {} secs", now.elapsed().as_secs());
info!("Time taken: {} secs", now.elapsed().as_secs());

let now = Instant::now();

let _ = unweighted_page_rank(&g, Some(20), None, None, true, None);
println!("Time taken: {} secs", now.elapsed().as_secs());
info!("Time taken: {} secs", now.elapsed().as_secs());

let now = Instant::now();
let _ = unweighted_page_rank(&g.layers("USDT").unwrap(), Some(20), None, None, true, None);
println!("Time taken: {} secs", now.elapsed().as_secs());
info!("Time taken: {} secs", now.elapsed().as_secs());

println!("Generic taint");
info!("Generic taint");
let now = Instant::now();
let _ = temporally_reachable_nodes(
&g.layers("USDT").unwrap(),
Expand All @@ -52,5 +55,5 @@ fn main() {
vec!["0xd30b438df65f4f788563b2b3611bd6059bff4ad9"],
None,
);
println!("Time taken: {} secs", now.elapsed().as_secs());
info!("Time taken: {} secs", now.elapsed().as_secs());
}
37 changes: 21 additions & 16 deletions examples/rust/src/bin/hulongbay/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ use raphtory::{
},
},
io::csv_loader::CsvLoader,
logging::global_info_logger,
prelude::*,
};
use regex::Regex;
Expand All @@ -21,6 +22,7 @@ use std::{
path::Path,
time::Instant,
};
use tracing::{error, info};

#[derive(Deserialize, Debug)]
pub struct Edge {
Expand Down Expand Up @@ -65,7 +67,7 @@ pub fn loader(data_dir: &Path) -> Result<Graph, Box<dyn Error>> {
let now = Instant::now();
let g = Graph::decode(encoded_data_dir.as_path())?;

println!(
info!(
"Loaded graph from path {} with {} nodes, {} edges, took {} seconds",
encoded_data_dir.display(),
g.count_nodes(),
Expand Down Expand Up @@ -96,7 +98,7 @@ pub fn loader(data_dir: &Path) -> Result<Graph, Box<dyn Error>> {
.unwrap();
})?;

println!(
info!(
"Loaded graph from CSV data files {} with {} nodes, {} edges which took {} seconds",
encoded_data_dir.display(),
g.count_nodes(),
Expand All @@ -110,16 +112,17 @@ pub fn loader(data_dir: &Path) -> Result<Graph, Box<dyn Error>> {
}

fn try_main() -> Result<(), Box<dyn Error>> {
global_info_logger();
let args: Vec<String> = env::args().collect();
let data_dir = Path::new(args.get(1).ok_or(MissingArgumentError)?);

let graph = loader(data_dir)?;
let now = Instant::now();
let actual_tri_count = triangle_count(&graph, None);

println!("Actual triangle count: {:?}", actual_tri_count);
info!("Actual triangle count: {:?}", actual_tri_count);

println!(
info!(
"Counting triangles took {} seconds",
now.elapsed().as_secs()
);
Expand All @@ -136,39 +139,39 @@ fn try_main() -> Result<(), Box<dyn Error>> {
.rev()
.take(50)
.for_each(|(cc, count)| {
println!("CC {} has {} nodes", cc, count);
info!("CC {} has {} nodes", cc, count);
});

println!(
info!(
"Connected Components took {} seconds",
now.elapsed().as_secs()
);

let now = Instant::now();
let num_edges: usize = graph.nodes().out_degree().sum();
println!(
info!(
"Counting edges by summing degrees returned {} in {} seconds",
num_edges,
now.elapsed().as_secs()
);
let earliest_time = graph.start().ok_or(GraphEmptyError)?;
let latest_time = graph.end().ok_or(GraphEmptyError)?;
println!("graph time range: {}-{}", earliest_time, latest_time);
info!("graph time range: {}-{}", earliest_time, latest_time);
let now = Instant::now();
let window = graph.window(i64::MIN, i64::MAX);
println!("Creating window took {} seconds", now.elapsed().as_secs());
info!("Creating window took {} seconds", now.elapsed().as_secs());

let now = Instant::now();
let num_windowed_edges: usize = window.nodes().out_degree().sum();
println!(
info!(
"Counting edges in window by summing degrees returned {} in {} seconds",
num_windowed_edges,
now.elapsed().as_secs()
);

let now = Instant::now();
let num_windowed_edges2 = window.count_edges();
println!(
info!(
"Window num_edges returned {} in {} seconds",
num_windowed_edges2,
now.elapsed().as_secs()
Expand All @@ -178,33 +181,34 @@ fn try_main() -> Result<(), Box<dyn Error>> {
}

fn try_main_bm() -> Result<(), Box<dyn Error>> {
global_info_logger();
let args: Vec<String> = env::args().collect();
let data_dir = Path::new(args.get(1).ok_or(MissingArgumentError)?);

let graph = loader(data_dir)?;

let now = Instant::now();
let num_edges: usize = graph.nodes().iter().map(|v| v.out_degree()).sum();
println!(
info!(
"Counting edges by summing degrees returned {} in {} milliseconds",
num_edges,
now.elapsed().as_millis()
);
let earliest_time = graph.start().ok_or(GraphEmptyError)?;
let latest_time = graph.end().ok_or(GraphEmptyError)?;
println!("graph time range: {}-{}", earliest_time, latest_time);
info!("graph time range: {}-{}", earliest_time, latest_time);

let now = Instant::now();
let num_edges2 = graph.count_edges();
println!(
info!(
"num_edges returned {} in {} milliseconds",
num_edges2,
now.elapsed().as_millis()
);

let now = Instant::now();
let num_exploded_edges = graph.edges().explode().iter().count();
println!(
info!(
"counted {} exploded edges in {} milliseconds",
num_exploded_edges,
now.elapsed().as_millis()
Expand All @@ -222,8 +226,9 @@ fn try_motif() -> Result<(), Box<dyn Error>> {
}

fn main() {
global_info_logger();
if let Err(e) = try_motif() {
eprintln!("Failed: {}", e);
error!("Failed: {}", e);
std::process::exit(1)
}
}
9 changes: 5 additions & 4 deletions examples/rust/src/bin/lotr/main.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
use raphtory::{
algorithms::pathing::temporal_reachability::temporally_reachable_nodes,
io::csv_loader::CsvLoader, prelude::*,
io::csv_loader::CsvLoader, logging::global_info_logger, prelude::*,
};
use serde::Deserialize;
use std::{
env,
path::{Path, PathBuf},
time::Instant,
};
use tracing::info;

#[derive(Deserialize, std::fmt::Debug)]
pub struct Lotr {
Expand All @@ -18,7 +19,7 @@ pub struct Lotr {

fn main() {
let args: Vec<String> = env::args().collect();

global_info_logger();
let default_data_dir: PathBuf = [env!("CARGO_MANIFEST_DIR"), "src/bin/lotr/data"]
.iter()
.collect();
Expand All @@ -40,7 +41,7 @@ fn main() {
let g = Graph::decode(encoded_data_dir.as_path())
.expect("Failed to load graph from encoded data files");

println!(
info!(
"Loaded graph from encoded data files {} with {} nodes, {} edges which took {} seconds",
encoded_data_dir.to_str().unwrap(),
g.count_nodes(),
Expand Down Expand Up @@ -82,7 +83,7 @@ fn main() {
})
.expect("Failed to load graph from CSV data files");

println!(
info!(
"Loaded graph from CSV data files {} with {} nodes, {} edges which took {} seconds",
encoded_data_dir.to_str().unwrap(),
g.count_nodes(),
Expand Down
Loading

0 comments on commit b38d95f

Please sign in to comment.