Skip to content

Commit d622b2d

Browse files
committed
Set log filters + improve logs.
1 parent 4f81dc4 commit d622b2d

File tree

2 files changed

+32
-20
lines changed

2 files changed

+32
-20
lines changed

src/forwarder.rs

+22-18
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use crate::traits::PrintFullError;
1616
static SERVERS: OnceCell<RwLock<Vec<Server>>> = OnceCell::const_new();
1717

1818
struct Server {
19-
host: String,
19+
server: String,
2020
uplink_only: bool,
2121
gateway_id_prefixes: Vec<lrwn_filters::EuiPrefix>,
2222
downlink_tx: UnboundedSender<(GatewayId, Vec<u8>)>,
@@ -43,21 +43,21 @@ impl Server {
4343
// Check if we already have a socket for the given Gateway ID to the
4444
// server and if not, we create it.
4545
if let std::collections::hash_map::Entry::Vacant(e) = self.sockets.entry(gateway_id) {
46-
info!(gateway_id = %gateway_id, server = %self.host, "Initializing forwarder to server");
46+
info!(gateway_id = %gateway_id, server = %self.server, "Initializing forwarder to server");
4747

4848
let socket = UdpSocket::bind("0.0.0.0:0")
4949
.await
5050
.context("UDP socket bind")?;
5151
socket
52-
.connect(&self.host)
52+
.connect(&self.server)
5353
.await
5454
.context("UDP socket connect")?;
5555

5656
let socket = Arc::new(socket);
5757
let (stop_tx, stop_rx) = oneshot::channel::<()>();
5858

5959
tokio::spawn(handle_downlink(
60-
self.host.clone(),
60+
self.server.clone(),
6161
stop_rx,
6262
self.uplink_only,
6363
socket.clone(),
@@ -142,23 +142,29 @@ async fn handle_uplink_packet(gateway_id: GatewayId, data: &[u8]) -> Result<()>
142142
let socket = server.get_server_socket(gateway_id).await?;
143143
socket.last_uplink = SystemTime::now();
144144

145+
let span = tracing::info_span!("", addr = %socket.socket.peer_addr().unwrap());
146+
let _enter = span.enter();
147+
145148
match packet_type {
146149
PacketType::PushData => {
150+
info!(packet_type = %packet_type, "Sending UDP packet");
147151
socket.push_data_token = Some(random_token);
148152
socket.socket.send(data).await.context("Send UDP packet")?;
149-
inc_server_udp_sent_count(&server.host, packet_type).await;
153+
inc_server_udp_sent_count(&server.server, packet_type).await;
150154
}
151155
PacketType::PullData => {
156+
info!(packet_type = %packet_type, "Sending UDP packet");
152157
socket.pull_data_token = Some(random_token);
153158
socket.socket.send(data).await.context("Send UDP packet")?;
154-
inc_server_udp_sent_count(&server.host, packet_type).await;
159+
inc_server_udp_sent_count(&server.server, packet_type).await;
155160
}
156161
PacketType::TxAck => {
157162
if let Some(pull_resp_token) = socket.pull_resp_token {
158163
if pull_resp_token == random_token {
164+
info!(packet_type = %packet_type, "Sending UDP packet");
159165
socket.pull_resp_token = None;
160166
socket.socket.send(data).await.context("Send UDP packet")?;
161-
inc_server_udp_sent_count(&server.host, packet_type).await;
167+
inc_server_udp_sent_count(&server.server, packet_type).await;
162168
}
163169
}
164170
}
@@ -243,12 +249,10 @@ async fn handle_downlink_packet(
243249
}
244250
}
245251
PacketType::PullAck => {
246-
let token = get_random_token(data)?;
247-
info!(token = token, "PULL_DATA acknowledged");
252+
// TODO: keep ack stats
248253
}
249254
PacketType::PushAck => {
250-
let token = get_random_token(data)?;
251-
info!(token = token, "PUSH_DATA acknowledged");
255+
// TODO: keep ack stats
252256
}
253257

254258
_ => {}
@@ -271,13 +275,13 @@ async fn handle_pull_resp(
271275
}
272276

273277
async fn add_server(
274-
host: String,
278+
server: String,
275279
uplink_only: bool,
276280
gateway_id_prefixes: Vec<lrwn_filters::EuiPrefix>,
277281
downlink_tx: UnboundedSender<(GatewayId, Vec<u8>)>,
278282
) -> Result<()> {
279283
info!(
280-
host = host,
284+
server = server,
281285
uplink_only = uplink_only,
282286
gateway_id_prefixes = ?gateway_id_prefixes,
283287
"Adding server"
@@ -289,7 +293,7 @@ async fn add_server(
289293

290294
let mut servers = servers.write().await;
291295
servers.push(Server {
292-
host,
296+
server,
293297
uplink_only,
294298
gateway_id_prefixes,
295299
downlink_tx,
@@ -316,26 +320,26 @@ async fn cleanup_sockets() {
316320
if duration < Duration::from_secs(60) {
317321
true
318322
} else {
319-
warn!(server = server.host, gateway_id = %k, "Cleaning up inactive socket");
323+
warn!(server = server.server, gateway_id = %k, "Cleaning up inactive socket");
320324
false
321325
}
322326
} else {
323-
warn!(server = server.host, gateway_id = %k, "Cleaning up inactive socket");
327+
warn!(server = server.server, gateway_id = %k, "Cleaning up inactive socket");
324328
false
325329
}
326330
});
327331
}
328332
}
329333
}
330334

331-
async fn set_pull_resp_token(host: &str, gateway_id: GatewayId, token: u16) -> Result<()> {
335+
async fn set_pull_resp_token(srv: &str, gateway_id: GatewayId, token: u16) -> Result<()> {
332336
let servers = SERVERS
333337
.get_or_init(|| async { RwLock::new(Vec::new()) })
334338
.await;
335339
let mut servers = servers.write().await;
336340

337341
for server in servers.iter_mut() {
338-
if server.host.eq(host) {
342+
if server.server.eq(srv) {
339343
if let Some(v) = server.sockets.get_mut(&gateway_id) {
340344
v.pull_resp_token = Some(token);
341345
}

src/main.rs

+10-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
use std::str::FromStr;
2+
13
use clap::{Parser, Subcommand};
24
use signal_hook::{consts::SIGINT, consts::SIGTERM, iterator::Signals};
3-
use tracing::info;
4-
use tracing_subscriber::prelude::*;
5+
use tracing::{info, Level};
6+
use tracing_subscriber::{filter, prelude::*};
57

68
use chirpstack_packet_multiplexer::{cmd, config, forwarder, listener, monitoring};
79

@@ -31,8 +33,14 @@ async fn main() {
3133
return;
3234
}
3335

36+
let filter = filter::Targets::new().with_targets(vec![(
37+
"chirpstack_packet_multiplexer",
38+
Level::from_str(&config.logging.level).unwrap(),
39+
)]);
40+
3441
tracing_subscriber::registry()
3542
.with(tracing_subscriber::fmt::layer())
43+
.with(filter)
3644
.init();
3745

3846
info!(

0 commit comments

Comments
 (0)