Wowza Community

Using REST API to monitor health of incoming streams?

Which REST API call(s) should be used to assess the connection quality and resolution (720p etc) of an incoming RTMP stream?

And is there a way to use the API to determine if the video is garbled?

I am trying to monitor the health of an incoming stream and notify a mobile user when they should change their streaming parameters (downgrade to 480p, etc)

As an example, Wowza Streaming Cloud has a means to view stream health metrics:

https://www.wowza.com/docs/how-to-view-stream-health-metrics-in-wowza-streaming-cloud#currentstream

We do have a way to check the stream metrics with the REST API @Ben Jun, but it’s limited:

https://www.wowza.com/docs/statistics-query-examples

{
  "serverName": "_defaultServer_",
  "applicationInstance": "_definst_",
  "name": "myStream",
  "uptime": 369,
  "bytesIn": 34527676,
  "bytesOut": 0,
  "bytesInRate": 93529,
  "bytesOutRate": 0,
  "totalConnections": 0,
  "connectionCount": {
    "RTMP": 0,
    "MPEGDASH": 0,
    "CUPERTINO": 0,
    "SANJOSE": 0,
    "SMOOTH": 0,
    "RTP": 0
  }
}

The resolution is not listed in the above, unfortunately, but we have that coming in a future release of Engine.

Have you already considered Adaptive Bitrate Streaming where the player will adjust automatically to the lower bitrate if network conditions are poor?

https://www.wowza.com/docs/how-to-do-adaptive-bitrate-streaming

Thank you! Can’t wait for the image resolution to be added.

1/ I am trying to get the real-time status of incoming streams, so I do not believe that Adaptive Bitrate Streaming applies in my case. Am I missing something?

2/ Some questions regarding the information fields…

  • When are the bytesIn / bytesOut values reset to 0? On application restart, after timeout, …?
  • Over what time period are data rates computed? (Life of stream, last 30s, etc).
  • There exist queries for historical measurements at application / server level. Does this exist at the stream level?