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>