Couple of days back I was working for a client on creating a database mirroring monitor report to show how log is being sent to DR in last hour or so. How much log is left to be sent based on the send rate and how long will it.
Stored Procedure sp_dbmmonitorresults in msdb database gives all this detail for Principal database
sp_dbmmonitorresults database_name , rows_to_return , update_status go Exec msdb..sp_dbmmonitorresults 'SGPData',1,0
database_name : Database Name
rows_to_returnSpecifies the quantity of rows returned:0 = Last row1 = Rows last two hours2 = Rows last four hours3 = Rows last eight hours4 = Rows last day5 = Rows last two days6 = Last 100 rows7 = Last 500 rows8 = Last 1,000 rows9 = Last 1,000,000 rows
Specifies that before returning results the procedure:
0 = Does not update the status for the database. The results are computed using just the last two rows, the age of which depends on when the status table was refreshed.
1 = Updates the status for the database by calling sp_dbmmonitorupdate before computing the results. However, if the status table has been updated within the previous 15 seconds, or the user is not a member of the sysadmin fixed server role, sp_dbmmonitorresults runs without updating the status.