ServerQuery / WebQuery API: Real meaning of "total" and missing packetloss and ping in clientinfo output

Hey there,

I’m currently improving my monitoring for TeamSpeak server using the WebQuery API.

The serverinfo is returning for a virtualserver the following information:

  • virtualserver_total_ping
  • virtualserver_total_packetloss_total
  • virtualserver_total_packetloss_speech
  • virtualserver_total_packetloss_keepalive
  • virtualserver_total_packetloss_control

That’s already very helpful and providing some insights about the latency and packetloss of each virtualserver. But don’t these metrics have the wrong naming?

These metrics are “total” values, but I guess these are more “average”, or?

For the ping (latency) for example:

  • Total: Calculated sum of all ping values from all clients on the virtualserver
  • Average: Calculated average of all ping values from all clients on the virtualserver

Here an example with 5 clients:

  • Total: 6ms + 30ms + 23ms + 49ms + 12ms => virtualserver_total_ping: 120ms
  • Average: (6ms + 30ms + 23ms + 49ms + 12ms) / 5 => virtualserver_average_ping: 24ms

So if you have a lot of clients (eg. 120 clients) “virtualserver_total_ping” would be very high, if it’s really based on the “total” calculation. So I guess, this is more an average, right? The “total” means only for all clients on this specific virtual server.

Also: In the TeamSpeak client, you can click on a single client and view it’s personal ping (latency) and packet loss (in- and outgoing). I also would expect to see these information by using the ServerQuery command “clientinfo”, but these information are missing there. Is it possible to add these information there as well?

Adding these information to the ServerQuery API would allow administrators to eg. calculate different other values:

  • Maximum ping on a specific virtualserver (highest ping of a client)
  • Minimum ping on a specific virtualserver (lowest ping of a client)
  • Track a ping history of each single client
  • Check if a high average ping (virtualserver_total_ping) is only caused by a single client or if more clients have an usual high ping

Regarding the last bullet point: If there is e.g. a smaller TeamSpeak server with only 5 clients on it, a very high ping of a single client could incredible increase the total/average ping on the entire server.

Example:

  • All pings are “normal”: (6ms + 30ms + 23ms + 49ms + 12ms) / 5 => 24ms
  • A single client has a very high ping: (6ms + 30ms + 23ms + 400ms + 12ms) / 5 => 94ms

So if you only have the ping metric from the virtualserver perspective (virtualserver_total_ping), you would now see an incredible high peak, which is at the end only caused by a single client. And this is usually mostly caused by a client and not server issue. But you can’t see this in your monitoring graph(s) as you don’t have the ping of each single client as metric.

So, would it be possible to also add the latency (ping) and packetloss information of each single client?

I’m curious what your opinion is on this. Feel free to contact me, if you have any further questions. :slight_smile:

twitch instagram twitter facebook