sync logging added to RegionSyncModule
parent
7f6529af4e
commit
9edbbf2728
|
@ -31,7 +31,7 @@ using OpenMetaverse.StructuredData;
|
|||
namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||
{
|
||||
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "AttachmentsModule")]
|
||||
public class RegionSyncModule : INonSharedRegionModule, IRegionSyncModule, ICommandableModule
|
||||
public class RegionSyncModule : INonSharedRegionModule, IRegionSyncModule, ICommandableModule, ISyncStatistics
|
||||
//public class RegionSyncModule : IRegionModule, IRegionSyncModule, ICommandableModule
|
||||
{
|
||||
#region INonSharedRegionModule
|
||||
|
@ -79,7 +79,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
SyncStatisticCollector.LogDirectory = m_sysConfig.GetString("SyncLogDirectory", ".");
|
||||
SyncStatisticCollector.LogInterval = m_sysConfig.GetInt("SyncLogInterval", 5000);
|
||||
SyncStatisticCollector.LogMaxFileTimeMin = m_sysConfig.GetInt("SyncLogMaxFileTimeMin", 5);
|
||||
SyncStatisticCollector.LogFileHeader = m_sysConfig.GetString("SyncLogFileHeader", "stats-");
|
||||
SyncStatisticCollector.LogFileHeader = m_sysConfig.GetString("SyncLogFileHeader", "sync-");
|
||||
}
|
||||
|
||||
//Called after Initialise()
|
||||
|
@ -130,6 +130,9 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
//Start symmetric synchronization initialization automatically
|
||||
//SyncStart(null);
|
||||
|
||||
// connect to statistics system
|
||||
SyncStatisticCollector.Register(this);
|
||||
|
||||
}
|
||||
|
||||
public void RemoveRegion(Scene scene)
|
||||
|
@ -724,6 +727,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
sog.UpdateTaintedBucketSyncInfo(bucketName, DateTime.Now.Ticks); //this update the timestamp and clear the taint info of the bucket
|
||||
string sogxml = SceneObjectSerializer.ToXml2Format(sog);
|
||||
SymmetricSyncMessage syncMsg = new SymmetricSyncMessage(SymmetricSyncMessage.MsgType.UpdatedObject, sogxml);
|
||||
lock (m_stats) m_statSOGBucketOut++;
|
||||
SendObjectUpdateToRelevantSyncConnectors(sog, syncMsg);
|
||||
}
|
||||
}
|
||||
|
@ -769,6 +773,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
|
||||
SymmetricSyncMessage syncMsg = new SymmetricSyncMessage(SymmetricSyncMessage.MsgType.UpdatedBucketProperties, OSDParser.SerializeJsonString(data));
|
||||
//m_log.DebugFormat("{0}: PhysBucketSender for {1}, pos={2}", LogHeader, updatedPart.UUID.ToString(), pa.Position.ToString());
|
||||
lock (m_stats) m_statPhysBucketOut++;
|
||||
SendObjectUpdateToRelevantSyncConnectors(updatedPart, syncMsg);
|
||||
}
|
||||
}
|
||||
|
@ -1172,14 +1177,13 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
m_scene.EventManager.TriggerOnSymmetricSyncStop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void SyncStatus(Object[] args)
|
||||
{
|
||||
int connectorCount = 0;
|
||||
m_log.Warn(LogHeader + ": " + this.StatisticTitle());
|
||||
m_log.Warn(LogHeader + ": " + this.StatisticLine(true));
|
||||
ForEachSyncConnector(delegate(SyncConnector connector)
|
||||
{
|
||||
if (connectorCount++ == 0)
|
||||
|
@ -1395,6 +1399,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
/// <param name="senderActorID">ActorID of the sender</param>
|
||||
public void HandleIncomingMessage(SymmetricSyncMessage msg, string senderActorID)
|
||||
{
|
||||
lock (m_stats) m_statMsgsIn++;
|
||||
//Added senderActorID, so that we don't have to include actorID in sync messages -- TODO
|
||||
switch (msg.Type)
|
||||
{
|
||||
|
@ -1502,6 +1507,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
{
|
||||
string sogxml = Encoding.ASCII.GetString(msg.Data, 0, msg.Length);
|
||||
SceneObjectGroup sog = SceneObjectSerializer.FromXml2Format(sogxml);
|
||||
lock (m_stats) m_statSOGBucketIn++;
|
||||
|
||||
if (sog.IsDeleted)
|
||||
{
|
||||
|
@ -1542,6 +1548,8 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
return;
|
||||
}
|
||||
|
||||
lock (m_stats) m_statPhysBucketIn++;
|
||||
|
||||
UUID partUUID = data["UUID"].AsUUID();
|
||||
string bucketName = data["Bucket"].AsString();
|
||||
|
||||
|
@ -1774,6 +1782,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
return;
|
||||
}
|
||||
|
||||
lock (m_stats) m_statEventIn++;
|
||||
string init_actorID = data["actorID"].AsString();
|
||||
ulong evSeqNum = data["seqNum"].AsULong();
|
||||
|
||||
|
@ -2401,6 +2410,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
SymmetricSyncMessage rsm = new SymmetricSyncMessage(msgType, OSDParser.SerializeJsonString(data));
|
||||
|
||||
//send to actors who are interested in the event
|
||||
lock (m_stats) m_statEventOut++;
|
||||
SendSceneEventToRelevantSyncConnectors(m_actorID, rsm);
|
||||
}
|
||||
|
||||
|
@ -2422,6 +2432,50 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
|
||||
#endregion //RegionSyncModule members and functions
|
||||
|
||||
#region ISyncStatistics
|
||||
private object m_stats = new object();
|
||||
private int m_statMsgsIn = 0;
|
||||
private int m_statMsgsOut = 0;
|
||||
private int m_statSOGBucketIn = 0;
|
||||
private int m_statSOGBucketOut = 0;
|
||||
private int m_statPhysBucketIn = 0;
|
||||
private int m_statPhysBucketOut = 0;
|
||||
private int m_statEventIn = 0;
|
||||
private int m_statEventOut = 0;
|
||||
public string StatisticIdentifier()
|
||||
{
|
||||
// RegionSyncModule(actor/region)
|
||||
return "RegionSyncModule" + "(" + ActorID + "/" + m_scene.RegionInfo.RegionName + ")";
|
||||
}
|
||||
|
||||
public string StatisticLine(bool clearFlag)
|
||||
{
|
||||
string statLine = "";
|
||||
lock (m_stats)
|
||||
{
|
||||
statLine = String.Format("{0},{1},{2},{3},{4},{5},{6},{7}",
|
||||
m_statMsgsIn, m_statMsgsOut,
|
||||
m_statSOGBucketIn, m_statSOGBucketOut,
|
||||
m_statPhysBucketIn, m_statPhysBucketOut,
|
||||
m_statEventIn, m_statEventOut
|
||||
);
|
||||
if (clearFlag)
|
||||
{
|
||||
m_statMsgsIn = m_statMsgsOut = 0;
|
||||
m_statSOGBucketIn = m_statSOGBucketOut = 0;
|
||||
m_statPhysBucketIn = m_statPhysBucketOut = 0;
|
||||
m_statEventIn = m_statEventOut = 0;
|
||||
}
|
||||
}
|
||||
return statLine;
|
||||
}
|
||||
|
||||
public string StatisticTitle()
|
||||
{
|
||||
return "MsgsIn,MsgsOut,SOGIn,SOGOut,PhysIn,PhysOut,EventIn,EventOut";
|
||||
}
|
||||
#endregion ISyncStatistics
|
||||
|
||||
}
|
||||
|
||||
public class RegionSyncListenerInfo
|
||||
|
|
|
@ -2795,7 +2795,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
m_parentGroup.AbsolutePosition = newpos;
|
||||
return;
|
||||
}
|
||||
m_log.DebugFormat("[PHYSICS]: TerseUpdate: UUID={0}, newpos={1}", PhysActor.UUID.ToString(), newpos.ToString());
|
||||
// m_log.DebugFormat("[PHYSICS]: TerseUpdate: UUID={0}, newpos={1}", PhysActor.UUID.ToString(), newpos.ToString());
|
||||
//m_parentGroup.RootPart.m_groupPosition = newpos;
|
||||
}
|
||||
//ScheduleTerseUpdate();
|
||||
|
@ -5513,7 +5513,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
SceneObjectPart localPart = this;
|
||||
PhysicsActor pa = localPart.PhysActor;
|
||||
|
||||
//m_log.DebugFormat("{0}: PhysicsBucketUpdateProcessor. pos={1}", "[SCENE OBJECT PART]", data["Position"].AsVector3().ToString());
|
||||
// m_log.DebugFormat("{0}: PhysicsBucketUpdateProcessor. pos={1}", "[SCENE OBJECT PART]", data["Position"].AsVector3().ToString());
|
||||
|
||||
lock (m_bucketUpdateLocks[bucketName])
|
||||
{
|
||||
|
@ -5612,12 +5612,15 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
{
|
||||
bucketSynInfo.TaintBucket();
|
||||
}
|
||||
// m_log.DebugFormat("{0}: TaintBucketSyncInfo: FullUpdate", "[SCENE OBJECT PART]");
|
||||
}
|
||||
else
|
||||
{
|
||||
string bucketName = m_primPropertyBucketMap[property];
|
||||
//m_bucketSyncTainted[bucketName] = true;
|
||||
m_bucketSyncInfoList[bucketName].TaintBucket();
|
||||
// m_log.DebugFormat("{0}: TaintBucketSyncInfo: tainting bucket {1} for {2}",
|
||||
// "[SCENE OBJECT PART]", bucketName, property.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue