Techniques relating to streaming video are disclosed. These techniques include identifying one or more streaming video sessions for one or more users based on a plurality of events relating to streaming video for the one or more users. The techniques further include storing data for the one or more streaming video sessions in an electronic database, based on the plurality of events, identifying a plurality of metadata relating to the events, and determining, based on a threshold value, a time to store at least a portion of the plurality of metadata in the electronic database, the time occurring after the storing the data for the one or more streaming video sessions. The techniques further include responding to a query for metrics relating to the one or more streaming video sessions by aggregating at least a portion of the stored data.
BACKGROUND
Many modern content providers (e.g., streaming video or audio providers) rely on sophisticated quality of service (QOS) information to service customers. For example, a streaming video service can collect numerous QoS metrics relating to use of the service. These metrics can be used to identify and assist in troubleshooting problems with the streaming service in order to improve performance and customer experiences. But gathering QoS in real-time or near real-time is extremely challenging, particularly for providers with very large numbers of customers (e.g., tens or hundreds of millions of customers). Traditional solutions for capturing and maintaining QoS information do not successfully scale to large numbers of customers.
1. A method, comprising: identifying one or more streaming video sessions for one or more users based on a plurality of events relating to streaming video for the one or more users; storing data for the one or more streaming video sessions in an electronic database, based on the plurality of events; identifying a plurality of metadata relating to the events; determining, based on a threshold value, a time to store at least a portion of the plurality of metadata in the electronic database, the time occurring after storing the data for the one or more streaming video sessions; storing at least the portion of the plurality of metadata in the electronic database at the determined time; and responding to a query for metrics relating to the one or more streaming video sessions by aggregating at least a portion of the stored data. ||
12. A non-transitory computer-readable medium containing computer program code that, when executed by operation of one or more computer processors, performs operations comprising: identifying one or more streaming video sessions for one or more users based on a plurality of events relating to streaming video for the one or more users; storing data for the one or more streaming video sessions in an electronic database, based on the plurality of events; identifying a plurality of metadata relating to the events; determining, based on a threshold value, a time to store at least a portion of the plurality of metadata in the electronic database, the time occurring after storing the data for the one or more streaming video sessions; storing at least the portion of the plurality of metadata in the electronic database at the determined time; and responding to a query for metrics relating to the one or more streaming video sessions by aggregating at least a portion of the stored data. ||
17. A system, comprising: a processor; and a memory having instructions stored thereon which, when executed on the processor, performs operations comprising: identifying one or more streaming video sessions for one or more users based on a plurality of events relating to streaming video for the one or more users; storing data for the one or more streaming video sessions in an electronic database, based on the plurality of events; identifying a plurality of metadata relating to the events; determining, based on a threshold value, a time to store at least a portion of the plurality of metadata in the electronic database, the time occurring after storing the data for the one or more streaming video sessions; storing at least the portion of the plurality of metadata in the electronic database at the determined time; and responding to a query for metrics relating to the one or more streaming video sessions by aggregating at least a portion of the stored data.