systemctl: report accounted network traffic in "systemctl status"
This hooks up the eposed D-Bus values and displays them like this:
-bash-4.3# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/etc/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2016-11-11 20:10:36 CET; 1min 29s ago
Main PID: 33 (httpd)
Status: "Total requests: 22514; Idle/Busy workers 92/7;Requests/sec: 259; Bytes served/sec: 87KB/sec"
Network: 15.8M in, 51.1M out
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CGroup: /system.slice/httpd.service
├─ 33 /usr/sbin/httpd -DFOREGROUND
├─ 37 /usr/sbin/httpd -DFOREGROUND
├─112 /usr/sbin/httpd -DFOREGROUND
└─119 /usr/sbin/httpd -DFOREGROUND
This commit is contained in:
committed by
Lennart Poettering
parent
377bfd2d49
commit
0e97c93fe5
@@ -3878,6 +3878,9 @@ typedef struct UnitStatusInfo {
|
||||
uint64_t tasks_current;
|
||||
uint64_t tasks_max;
|
||||
|
||||
uint64_t ip_ingress_bytes;
|
||||
uint64_t ip_egress_bytes;
|
||||
|
||||
LIST_HEAD(ExecStatusInfo, exec);
|
||||
} UnitStatusInfo;
|
||||
|
||||
@@ -4194,6 +4197,14 @@ static void print_status_info(
|
||||
if (i->status_errno > 0)
|
||||
printf(" Error: %i (%s)\n", i->status_errno, strerror(i->status_errno));
|
||||
|
||||
if (i->ip_ingress_bytes != (uint64_t) -1 && i->ip_egress_bytes != (uint64_t) -1) {
|
||||
char buf_in[FORMAT_BYTES_MAX], buf_out[FORMAT_BYTES_MAX];
|
||||
|
||||
printf(" IP: %s in, %s out\n",
|
||||
format_bytes(buf_in, sizeof(buf_in), i->ip_ingress_bytes),
|
||||
format_bytes(buf_out, sizeof(buf_out), i->ip_egress_bytes));
|
||||
}
|
||||
|
||||
if (i->tasks_current != (uint64_t) -1) {
|
||||
printf(" Tasks: %" PRIu64, i->tasks_current);
|
||||
|
||||
@@ -4484,6 +4495,10 @@ static int status_property(const char *name, sd_bus_message *m, UnitStatusInfo *
|
||||
i->next_elapse_monotonic = u;
|
||||
else if (streq(name, "NextElapseUSecRealtime"))
|
||||
i->next_elapse_real = u;
|
||||
else if (streq(name, "IPIngressBytes"))
|
||||
i->ip_ingress_bytes = u;
|
||||
else if (streq(name, "IPEgressBytes"))
|
||||
i->ip_egress_bytes = u;
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -4998,6 +5013,8 @@ static int show_one(
|
||||
.cpu_usage_nsec = (uint64_t) -1,
|
||||
.tasks_current = (uint64_t) -1,
|
||||
.tasks_max = (uint64_t) -1,
|
||||
.ip_ingress_bytes = (uint64_t) -1,
|
||||
.ip_egress_bytes = (uint64_t) -1,
|
||||
};
|
||||
int r;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user