flowparser_sflow/counter_records/
memcache_counters.rs1use nom::IResult;
2use nom::number::complete::{be_u32, be_u64};
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct MemcacheCounters {
7 pub cmd_set: u32,
8 pub cmd_touch: u32,
9 pub cmd_flush: u32,
10 pub get_hits: u32,
11 pub get_misses: u32,
12 pub delete_hits: u32,
13 pub delete_misses: u32,
14 pub incr_hits: u32,
15 pub incr_misses: u32,
16 pub decr_hits: u32,
17 pub decr_misses: u32,
18 pub cas_hits: u32,
19 pub cas_misses: u32,
20 pub cas_badval: u32,
21 pub auth_cmds: u32,
22 pub auth_errors: u32,
23 pub threads: u32,
24 pub conn_yields: u32,
25 pub listen_disabled_num: u32,
26 pub curr_connections: u32,
27 pub rejected_connections: u32,
28 pub total_connections: u32,
29 pub connection_structures: u32,
30 pub evictions: u32,
31 pub reclaimed: u32,
32 pub curr_items: u32,
33 pub total_items: u32,
34 pub bytes_read: u64,
35 pub bytes_written: u64,
36 pub bytes: u64,
37 pub limit_maxbytes: u64,
38}
39
40pub(crate) fn parse_memcache_counters(input: &[u8]) -> IResult<&[u8], MemcacheCounters> {
41 let (input, cmd_set) = be_u32(input)?;
42 let (input, cmd_touch) = be_u32(input)?;
43 let (input, cmd_flush) = be_u32(input)?;
44 let (input, get_hits) = be_u32(input)?;
45 let (input, get_misses) = be_u32(input)?;
46 let (input, delete_hits) = be_u32(input)?;
47 let (input, delete_misses) = be_u32(input)?;
48 let (input, incr_hits) = be_u32(input)?;
49 let (input, incr_misses) = be_u32(input)?;
50 let (input, decr_hits) = be_u32(input)?;
51 let (input, decr_misses) = be_u32(input)?;
52 let (input, cas_hits) = be_u32(input)?;
53 let (input, cas_misses) = be_u32(input)?;
54 let (input, cas_badval) = be_u32(input)?;
55 let (input, auth_cmds) = be_u32(input)?;
56 let (input, auth_errors) = be_u32(input)?;
57 let (input, threads) = be_u32(input)?;
58 let (input, conn_yields) = be_u32(input)?;
59 let (input, listen_disabled_num) = be_u32(input)?;
60 let (input, curr_connections) = be_u32(input)?;
61 let (input, rejected_connections) = be_u32(input)?;
62 let (input, total_connections) = be_u32(input)?;
63 let (input, connection_structures) = be_u32(input)?;
64 let (input, evictions) = be_u32(input)?;
65 let (input, reclaimed) = be_u32(input)?;
66 let (input, curr_items) = be_u32(input)?;
67 let (input, total_items) = be_u32(input)?;
68 let (input, bytes_read) = be_u64(input)?;
69 let (input, bytes_written) = be_u64(input)?;
70 let (input, bytes) = be_u64(input)?;
71 let (input, limit_maxbytes) = be_u64(input)?;
72
73 Ok((
74 input,
75 MemcacheCounters {
76 cmd_set,
77 cmd_touch,
78 cmd_flush,
79 get_hits,
80 get_misses,
81 delete_hits,
82 delete_misses,
83 incr_hits,
84 incr_misses,
85 decr_hits,
86 decr_misses,
87 cas_hits,
88 cas_misses,
89 cas_badval,
90 auth_cmds,
91 auth_errors,
92 threads,
93 conn_yields,
94 listen_disabled_num,
95 curr_connections,
96 rejected_connections,
97 total_connections,
98 connection_structures,
99 evictions,
100 reclaimed,
101 curr_items,
102 total_items,
103 bytes_read,
104 bytes_written,
105 bytes,
106 limit_maxbytes,
107 },
108 ))
109}