Skip to main content

flowparser_sflow/counter_records/
memcache_counters.rs

1use 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}