Thank you very much for reply. Initially my thought of uptime is equal to executing to `uptime` inside a virtual machine. 
as for the second case, where virtual machine is paused for a period, does libvirt expose an api to get how long qemu process
has existed?

thank you.

Best,
Norman

On Tue, Jul 26, 2022 at 3:16 PM Michal Prívozník <mprivozn@redhat.com> wrote:
On 7/26/22 08:49, Jiatong Shen wrote:
> Hello community,
>
>    I would like to know if there is an api to get a virtual machine's
> uptime. Thank you in advance for the help.

There's no such API because not even qemu guest agent has an explicit
API for that. However, it has an API to execute binaries:

# virsh qemu-agent-command --pretty $dom '{"execute":"guest-exec",
"arguments":{"path":"uptime", "capture-output":true}}'
{
  "return": {
    "pid": 1174
  }
}


# virsh qemu-agent-command --pretty $dom
'{"execute":"guest-exec-status", "arguments":{"pid":1174}}'
{
  "return": {
    "exitcode": 0,
    "out-data":
"IDA5OjEwOjU4IHVwIDggbWluLCAgMSB1c2VyLCAgbG9hZCBhdmVyYWdlOiAwLjAwLCAwLjA5LCAwLjA4Cg==",
    "exited": true
  }
}


$ echo
"IDA5OjEwOjU4IHVwIDggbWluLCAgMSB1c2VyLCAgbG9hZCBhdmVyYWdlOiAwLjAwLCAwLjA5LCAwLjA4Cg=="
| base64 -d
 09:10:58 up 8 min,  1 user,  load average: 0.00, 0.09, 0.08


But it also depends what exactly do you mean by 'uptime'. Because if I
start a guest, then pause it for 5 minutes and then let it run again,
what should 'uptime' refer to?

Michal



--

Best Regards,

Jiatong Shen