1
1
use crate :: db:: {
2
- models:: { MixingNodeKind , NodeStats , ScraperNodeInfo } ,
2
+ models:: { NodeStats , ScrapeNodeKind , ScraperNodeInfo } ,
3
3
DbPool ,
4
4
} ;
5
5
use anyhow:: Result ;
6
6
7
7
pub ( crate ) async fn insert_node_packet_stats (
8
8
pool : & DbPool ,
9
- node_id : i64 ,
10
- node_kind : & MixingNodeKind ,
9
+ node_kind : & ScrapeNodeKind ,
11
10
stats : & NodeStats ,
12
11
timestamp_utc : i64 ,
13
12
) -> Result < ( ) > {
14
13
let mut conn = pool. acquire ( ) . await ?;
15
14
16
15
match node_kind {
17
- MixingNodeKind :: LegacyMixnode => {
16
+ ScrapeNodeKind :: LegacyMixnode { mix_id } => {
18
17
sqlx:: query!(
19
18
r#"
20
19
INSERT INTO mixnode_packet_stats_raw (
21
20
mix_id, timestamp_utc, packets_received, packets_sent, packets_dropped
22
21
) VALUES (?, ?, ?, ?, ?)
23
22
"# ,
24
- node_id ,
23
+ mix_id ,
25
24
timestamp_utc,
26
25
stats. packets_received,
27
26
stats. packets_sent,
@@ -30,7 +29,8 @@ pub(crate) async fn insert_node_packet_stats(
30
29
. execute ( & mut * conn)
31
30
. await ?;
32
31
}
33
- MixingNodeKind :: NymNode => {
32
+ ScrapeNodeKind :: MixingNymNode { node_id }
33
+ | ScrapeNodeKind :: EntryExitNymNode { node_id, .. } => {
34
34
sqlx:: query!(
35
35
r#"
36
36
INSERT INTO nym_nodes_packet_stats_raw (
@@ -60,7 +60,7 @@ pub(crate) async fn get_raw_node_stats(
60
60
let packets = match node. node_kind {
61
61
// if no packets are found, it's fine to assume 0 because that's also
62
62
// SQL default value if none provided
63
- MixingNodeKind :: LegacyMixnode => {
63
+ ScrapeNodeKind :: LegacyMixnode { mix_id } => {
64
64
sqlx:: query_as!(
65
65
NodeStats ,
66
66
r#"
@@ -73,12 +73,13 @@ pub(crate) async fn get_raw_node_stats(
73
73
ORDER BY timestamp_utc DESC
74
74
LIMIT 1 OFFSET 1
75
75
"# ,
76
- node . node_id
76
+ mix_id
77
77
)
78
78
. fetch_optional ( & mut * conn)
79
79
. await ?
80
80
}
81
- MixingNodeKind :: NymNode => {
81
+ ScrapeNodeKind :: MixingNymNode { node_id }
82
+ | ScrapeNodeKind :: EntryExitNymNode { node_id, .. } => {
82
83
sqlx:: query_as!(
83
84
NodeStats ,
84
85
r#"
@@ -91,7 +92,7 @@ pub(crate) async fn get_raw_node_stats(
91
92
ORDER BY timestamp_utc DESC
92
93
LIMIT 1 OFFSET 1
93
94
"# ,
94
- node . node_id
95
+ node_id
95
96
)
96
97
. fetch_optional ( & mut * conn)
97
98
. await ?
@@ -110,15 +111,15 @@ pub(crate) async fn insert_daily_node_stats(
110
111
let mut conn = pool. acquire ( ) . await ?;
111
112
112
113
match node. node_kind {
113
- MixingNodeKind :: LegacyMixnode => {
114
+ ScrapeNodeKind :: LegacyMixnode { mix_id } => {
114
115
let total_stake = sqlx:: query_scalar!(
115
116
r#"
116
117
SELECT
117
118
total_stake
118
119
FROM mixnodes
119
120
WHERE mix_id = ?
120
121
"# ,
121
- node . node_id
122
+ mix_id
122
123
)
123
124
. fetch_one ( & mut * conn)
124
125
. await ?;
@@ -136,7 +137,7 @@ pub(crate) async fn insert_daily_node_stats(
136
137
packets_sent = mixnode_daily_stats.packets_sent + excluded.packets_sent,
137
138
packets_dropped = mixnode_daily_stats.packets_dropped + excluded.packets_dropped
138
139
"# ,
139
- node . node_id ,
140
+ mix_id ,
140
141
date_utc,
141
142
total_stake,
142
143
packets. packets_received,
@@ -146,15 +147,16 @@ pub(crate) async fn insert_daily_node_stats(
146
147
. execute ( & mut * conn)
147
148
. await ?;
148
149
}
149
- MixingNodeKind :: NymNode => {
150
+ ScrapeNodeKind :: MixingNymNode { node_id }
151
+ | ScrapeNodeKind :: EntryExitNymNode { node_id, .. } => {
150
152
let total_stake = sqlx:: query_scalar!(
151
153
r#"
152
154
SELECT
153
155
total_stake
154
156
FROM nym_nodes
155
157
WHERE node_id = ?
156
158
"# ,
157
- node . node_id
159
+ node_id
158
160
)
159
161
. fetch_one ( & mut * conn)
160
162
. await ?;
@@ -172,7 +174,7 @@ pub(crate) async fn insert_daily_node_stats(
172
174
packets_sent = nym_node_daily_mixing_stats.packets_sent + excluded.packets_sent,
173
175
packets_dropped = nym_node_daily_mixing_stats.packets_dropped + excluded.packets_dropped
174
176
"# ,
175
- node . node_id,
177
+ node_id,
176
178
date_utc,
177
179
total_stake,
178
180
packets. packets_received,
0 commit comments