• Module to get HTTP and RTP performance statistics

    The following module gets performance stats for Cupertino, Smooth, SanJose, and RTP sessions:

    package com.wowza.wms.example.module;
    
    import com.wowza.util.IOPerformanceCounter;
    import com.wowza.wms.httpstreamer.cupertinostreaming.httpstreamer.*;
    import com.wowza.wms.httpstreamer.model.*;
    import com.wowza.wms.httpstreamer.sanjosestreaming.httpstreamer.HTTPStreamerSessionSanJose;
    import com.wowza.wms.httpstreamer.smoothstreaming.httpstreamer.*;
    import com.wowza.wms.module.*;
    import com.wowza.wms.rtp.model.*;
    
    public class ModuleSessionStats extends ModuleBase {
    	
    	//This will work for Cupertino, Smooth and SanJose sessions
    	public void onHTTPSessionDestroy(IHTTPStreamerSession httpSession) {
    		IOPerformanceCounter perf = httpSession.getIOPerformanceCounter();
    		
    		Long outbytes = perf.getMessagesOutBytes();
    		getLogger().info("Outbytes: " + outbytes);
    		
    		Double outrate = perf.getMessagesOutBytesRate();
    		getLogger().info("OutRate: " + outrate);
    		
    		Double seconds = outbytes / outrate;
    		getLogger().info("Seconds: " + seconds);	
    	}
    
    	//Cupertino (iOS)
    	public void onHTTPCupertinoStreamingSessionDestroy(
    			HTTPStreamerSessionCupertino httpSession) {
    		IOPerformanceCounter perf = httpSession.getIOPerformanceCounter();
    		getLogger().info("HTTPCupertinoStreamingSession OutBytes: " + perf.getMessagesOutBytes());
    	}
    
    	//Smooth (Silverlight)
    	public void onHTTPSmoothStreamingSessionDestroy(
    			HTTPStreamerSessionSmoothStreamer httpSession) {
    		IOPerformanceCounter perf = httpSession.getIOPerformanceCounter();
    		getLogger().info("HTTPStreamerSessionSmoothStreamer OutBytes: " + perf.getMessagesOutBytes());
    	}
    	
    	//Sanjose (Flash HTTP))
    	public void onSanJoseStreamingSesssionDestroy(HTTPStreamerSessionSanJose httpSession)
    	{
    		IOPerformanceCounter perf = httpSession.getIOPerformanceCounter();
    		getLogger().info("HTTPStreamerSessionSanJose OutBytes: " + perf.getMessagesOutBytes());
    	}
    	
    	//RTP
    	public void onRTPSessionDestroy(RTPSession rtpSession) {
    		IOPerformanceCounter perf = rtpSession.getIOPerformanceCounter();
    		getLogger().info("RTPSession OutBytes: " + perf.getMessagesOutBytes());
    	}
    }

    If you're having problems or want to discuss this article, post in our forum.