StatsSystem: Difference between revisions

From VideoLAN Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 11: Line 11:
* per-stream/global decoded, dropped frames
* per-stream/global decoded, dropped frames
* per-stream/global packets read/errors
* per-stream/global packets read/errors
* per-stream/global packets sent/errors (if sout)
* per-stream/global packets/bytes sent/errors (if sout)
* stats about httpd/vod, per access
* stats about httpd/vod, per request


Each thing could be stored as average, max, counter, ...
Each thing could be stored as average, max, counter, ...
Line 32: Line 32:
=== Counters ===
=== Counters ===


<pre>
counter_sample_t
counter_sample_t
{
{
Line 44: Line 45:
   pp_samples / i_samples
   pp_samples / i_samples
}
}
</pre>


Name contains the originating object id, like "267.frames_decoded"  
Name contains the originating object id, like "267.frames_displayed"  
 
How to separate by http request ? "httpd_object_id.request_id.XXX" ?


=== Timing ===
=== Timing ===


<pre>
timing_elem_t
timing_elem_t
{
{
Line 61: Line 66:
   start_time   
   start_time   
}
}
</pre>


== Reporting ==
== Reporting ==

Revision as of 14:13, 15 December 2005

Requirements

Goal

Central system for storing statistics and timings

Stored data

What we might want to collect:

  • per-stream/global decoded, dropped frames
  • per-stream/global packets read/errors
  • per-stream/global packets/bytes sent/errors (if sout)
  • stats about httpd/vod, per request

Each thing could be stored as average, max, counter, ...

Data access

  • Access stats from the GUI (simple)
  • Dump HTTP server access data
  • Dump some raw access data to output

Design

Data storage

Stats object

Stored as a singleton in p_libvlc

Counters

counter_sample_t
{
   value
   date
}

counter_elem_t
{
   name
   type
   pp_samples / i_samples
}

Name contains the originating object id, like "267.frames_displayed"

How to separate by http request ? "httpd_object_id.request_id.XXX" ?

Timing

timing_elem_t
{
   name

   last_time,

   total_time,
   total_samples,

   running,
   start_time   
}

Reporting

  • In GUI:
    • Integrated in streams and media information for relevant items (make it available for VLM streams too)
    • Where to put global data ?
  • Data log:
    • Make global options to enable and driver logger module
    • Add some logging facility to httpd
    • RRD output (muwahahahaha)