docker_client_async/types/
stats.rs1use serde::Deserialize;
19use std::collections::HashMap;
20
21#[derive(Clone, Debug, Deserialize)]
22pub struct PidsStats {
23 pub current: Option<u64>,
24}
25
26#[derive(Clone, Debug, Deserialize)]
27pub struct ThrottlingDataStats {
28 pub periods: Option<u64>,
29 pub throttled_periods: Option<u64>,
30 pub throttled_time: Option<u64>,
31}
32
33#[derive(Clone, Debug, Deserialize)]
34pub struct CpuUsageStats {
35 pub total_usage: Option<u64>,
36 pub percpu_usage: Option<Vec<u64>>,
37 pub usage_in_kernelmode: Option<u64>,
38 pub usage_in_usermode: Option<u64>,
39}
40
41#[derive(Clone, Debug, Deserialize)]
42pub struct CpuStats {
43 pub cpu_usage: Option<CpuUsageStats>,
44 pub system_cpu_usage: Option<u64>,
45 pub online_cpus: Option<u64>,
46 pub throttling_data: Option<ThrottlingDataStats>,
47}
48
49#[derive(Clone, Debug, Deserialize)]
50pub struct BlkioStatEntry {
51 pub major: Option<u64>,
52 pub minor: Option<u64>,
53 pub op: Option<String>,
54 pub value: Option<u64>,
55}
56
57#[derive(Clone, Debug, Deserialize)]
58pub struct BlkioStats {
59 pub io_service_bytes_recursive: Option<Vec<BlkioStatEntry>>,
60 pub io_serviced_recursive: Option<Vec<BlkioStatEntry>>,
61 pub io_queue_recursive: Option<Vec<BlkioStatEntry>>,
62 pub io_service_time_recursive: Option<Vec<BlkioStatEntry>>,
63 pub io_wait_time_recursive: Option<Vec<BlkioStatEntry>>,
64 pub io_merged_recursive: Option<Vec<BlkioStatEntry>>,
65 pub io_time_recursive: Option<Vec<BlkioStatEntry>>,
66 pub sectors_recursive: Option<Vec<BlkioStatEntry>>,
67}
68
69#[derive(Clone, Debug, Deserialize)]
70pub struct DetailedMemoryStats {
71 pub active_anon: Option<u64>,
72 pub active_file: Option<u64>,
73 pub cache: Option<u64>,
74 pub dirty: Option<u64>,
75 pub hierarchical_memory_limit: Option<u64>,
76 pub hierarchical_memsw_limit: Option<u64>,
77 pub inactive_anon: Option<u64>,
78 pub inactive_file: Option<u64>,
79 pub mapped_file: Option<u64>,
80 pub pgfault: Option<u64>,
81 pub pgmajfault: Option<u64>,
82 pub pgpgin: Option<u64>,
83 pub pgpgout: Option<u64>,
84 pub rss: Option<u64>,
85 pub rss_huge: Option<u64>,
86 pub swap: Option<u64>,
87 pub total_active_anon: Option<u64>,
88 pub total_active_file: Option<u64>,
89 pub total_cache: Option<u64>,
90 pub total_dirty: Option<u64>,
91 pub total_inactive_anon: Option<u64>,
92 pub total_inactive_file: Option<u64>,
93 pub total_mapped_file: Option<u64>,
94 pub total_pgfault: Option<u64>,
95 pub total_pgmajfault: Option<u64>,
96 pub total_pgpgin: Option<u64>,
97 pub total_pgpgout: Option<u64>,
98 pub total_rss: Option<u64>,
99 pub total_rss_huge: Option<u64>,
100 pub total_swap: Option<u64>,
101 pub total_unevictable: Option<u64>,
102 pub total_writeback: Option<u64>,
103 pub unevictable: Option<u64>,
104 pub writeback: Option<u64>,
105}
106
107#[derive(Clone, Debug, Deserialize)]
108pub struct MemoryStats {
109 pub usage: Option<u64>,
110 pub max_usage: Option<u64>,
111 pub failcnt: Option<u64>,
112 pub limit: Option<u64>,
113 pub stats: Option<DetailedMemoryStats>,
114}
115
116#[derive(Clone, Debug, Deserialize)]
117pub struct NetworkStats {
118 pub rx_bytes: Option<u64>,
119 pub rx_packets: Option<u64>,
120 pub rx_errors: Option<u64>,
121 pub rx_dropped: Option<u64>,
122 pub tx_bytes: Option<u64>,
123 pub tx_packets: Option<u64>,
124 pub tx_errors: Option<u64>,
125 pub tx_dropped: Option<u64>,
126}
127
128#[derive(Clone, Debug, Deserialize)]
129pub struct Stats {
130 pub read: Option<String>,
131 pub preread: Option<String>,
132 pub networks: Option<HashMap<String, NetworkStats>>,
133 pub memory_stats: Option<MemoryStats>,
134 pub blkio_stats: Option<BlkioStats>,
135 pub cpu_stats: Option<CpuStats>,
136 pub num_procs: Option<u64>,
137 pub precpu_stats: Option<CpuStats>,
138 pub pids_stats: Option<PidsStats>,
139}