docker_client_async/types/
stats.rs

1/*
2 * Copyright 2020 Damian Peckett <damian@pecke.tt>.
3 * Copyright 2013-2018 Docker, Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 *     https://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18use 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}