Measure Reference

Measure module allows you to periodically log the number of players per stream, per application and per streaming technology. It allows you to bring your own SQL queries that are executed periodically to insert data into your database tables or get the stats periodically HTTP POST-ed to your web service.

Reference of Application Properties

Here you can find the reference of all the settings that you can apply to Measure by editing your Wowza application’s Application.xml file. These properties have to go into the <Properties> section of your file as follows:

<?xml version="1.0" encoding="UTF-8"?>
<Root version="1">
 <Application>
  <Name>live</Name>
  ...
  <Properties>
 <Property>
   <Name></Name>
   <Value></Value>
 </Property>
  </Properties>
</Root>

Database Connection Settings

These are the mandatory settings that control how Wowza Measure connects to the underlying DB. This database is used for all SQL operations, there is no way to hit different databases for the different queries. Measure uses standard JDBC connection, so you can set various connection properties by putting them into the connection URL.

The database driver class has to be on Wowza’s classpath, typically you can achieve this by copying the JDBC driver jar to the lib directory of Wowza. The JDBC driver for every major database can be found fairly easily with Google, where you can look up the exact name of the driver class you need to use.

Property Description Default
measure.db.driver The name of the JDBC driver class com.mysql.jdbc.Driver
measure.db.url The JDBC url to your database jdbc:mysql://localhost:3306
measure.db.user The username to connect to the db root
measure.db.pass The password to connect to the db empty string

Database Connection Pool Settings

Measure uses Tomcat JDBC Pool to pool database connections. You can control the following settings:

Property Description Default
measure.dbcp.initial.size Initial number of DB connections opened 1
measure.dbcp.max.size The maximum size of the connection pool 1
measure.dbcp.test.on.borrow Set to true if you want to test connections before giving them to Wrench. This prevents client errors that occur if the DB closes a connection in the pool. The drawback is the increased DB load. false
measure.dbcp.test.sql The SQL query executed to validate connections borrowed from the pool before using them. Use something easy, like select 1 from wtb_streamlog  

Cloning all DB settings from Wrench

A typical scenario is when Measure operates in parallel with Wrench. In that case you have the option to clone all db settings from Wrench by setting measure.db.settings property to wrench. In this case all the above DB connection properties are taken from the same wrench-prefixed settings.

Logging Player Numbers

Wowza Measure allows you to log the number of your players per application, stream and technology basis.

Property Description Default
measure.monitor.period.sec The period time of logging in seconds. 60
measure.application.level.sql The SQL query that you can use to log the number of players on application level.  
measure.stream.level.sql The SQL query that allows you to log the number of players on stream level  

Logging Query Parameters

You can use the following parameters in the measure.application.level.sql and measure.stream.level.sql queries. Each parameter has to be given in the SQL query in the form of :paramname

Paramter Description
vhost The name of the VHost
timestamp A timestamp of the logging activity. It uses the timezone of the JVM that runs Wowza, which might be different than that of the database.
application The name of the Wowza applicatoin
appinstance Tha name of the Wowza application instance, e.g. _definst_
total The number of total players of the application or the stream, it depends on in which query you use it.
smooth The number of players using Smooth streaming technology in the application or stream
sanjose The number of players using San Jose streaming technology in the application or stream
cupertino The number of players using Cupertino streaming technology in the application or stream
rtmp The number of players using RTMP streaming technology in the application or stream
mpeg The number of players using MPEG-DASH streaming technology in the application or stream

HTTP publication of collected data

Starting with version 2016.10.20 Measure is capable of publishing collected data to an arbitrary HTTP endpoint periodically. This is helpful if you would like to capture Wowza statistics in your own web service and not a database directly.

To use this feature, simply leave the JDBC settings empty and set the below:

Paramter Description
measure.publish.stream Enable publishing stream level statistics
measure.publish.application Enable publishing app level statistics
measure.publish.url The HTTP address of the endpoint where the HTTP POST messages should be sent by Measure

The format of the outgoing message is:

{ level: "application or stream", timestamp: "..", application: "live", cupertino: 0, rtmp: 10, mpeg: 5 }

Examples

Here is a simple example that you can start with:

 <Property>
   <Name>measure.application.level.sql</Name>
   <Value>insert into wtb_applog (application, total) values (:application, :total)</Value>
 </Property>
 <Property>
   <Name>measure.stream.level.sql</Name>
   <Value>insert into wtb_streamlog (stream, total, flash, cupertino) values (:stream, :total, :rtmp, :cupertino)</Value>
 </Property>