-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
User registered statistics callback function and functionality #41
Comments
Adding to the issue described above. I think it would be beneficial to have statistics per stream in the connection instead of global counters and accumulators aggregating statics across all streams. Take for instance: counter_stats_ptr->num_payloads_transferred These counters report the number of payloads transferred/dropped over the connection without a way to distinguish the stream where the transfer or loss happened. The way I rationalize this is that a video stream could have issues while another audio stream in the same connection is performing correctly. In this scenario, for troubleshooting purposes, it would be beneficial to quickly identify which stream is the one performing poorly. That said, it seems the concept of streams is not supported in the RAW flavor of the SDK. Pleae see a related case that I opened: #42 |
Alex, Below are responses to each of your questions.
The counter based statistics are initialized to zero when the connection is created and accumulate over the lifetime of the connection. They do not reset, but may eventually wrap back to zero. For example, The time based statistics contain data that is accumulated over the user-provided statistics gathering period. For example, For additional details about each counter and time based statistic, please see the Concerning your question about payloads dropped and transferred, the statistics should match the logic you propose in the Rx and Tx user-provided callback payload functions. Concerning your suggestion of generating statistics on a per stream basis instead of a per connection basis, we will review internally and update this issue. Thank you for the detail and suggestions. |
Hi Mike,
so this one is on me. Sorry for misguiding you. Thank you for explanation of the results which are supplied in the CdiCoreStatsCbData. Regards |
Alex, No worries:) To follow up on the suggestion of generating statistics on a per stream basis, metrics are gathered at the RAW layer which is decoupled from the AVM layer. The RAW layer should not contain references to stream identifiers. As part of our work on issue #11 we have removed |
Hi,
/// @brief How often to gather statistics and make available through the user-registered statistics callback
/// function (see stats_cb_ptr). Statistics will also be sent directly to a CloudWatch Endpoint, if enabled (see /// #CdiCoreConfigData.cloudwatch_config_ptr).
uint32_t stats_period_seconds;
This description means that the callback function would be called once during this period of time.
For example:
I expect that the static statisticsCallback function would be called every 5 sec, but it's not the case - in fact this function is called only once then the Tx is closed.
The same I see with the Rx.
CdiReturnStatus rs = CdiRawRxCreate(&config_data, payloadReceivedCallback, &m_hConnectionHandle);
The statisticsCallback is called only once , then the Rx is closed.
It seems to be a bug and I think that the statisticsCallback should be called every METRIC_GATHERING_PERIOD_MS.
How these parameters of the statistic connected to the following data I can get from :
RawRx:
The same I can do for the RawTx
Is the data I can receive in the RawTx.payloadReceivedCallback and RawRx.payloadReceivedCallback exactly the same as provided in the statistic callback functionality ?
Regards
Alex
The text was updated successfully, but these errors were encountered: