Server reporting and data mining: Difference between revisions
(4 intermediate revisions by the same user not shown) | |||
Line 38: | Line 38: | ||
== Dynamic view generated by the server at runtime == | == Dynamic view generated by the server at runtime == | ||
ServerStatus class is generating two xml files, located in the main server dir. | |||
The log name and frequency of write is defined in psserver.cfg | |||
Planeshift.Server.Status.Report = 1 | |||
Planeshift.Server.Status.Rate = 1000 (CHANGE THIS DEFAULT) | |||
Planeshift.Server.Status.LogFile = /this/report.xml | |||
=== report.xml === | |||
Contains the following data, generate by ServerStatus class in planeshift\trunk\src\server\serverstatus.h: | |||
First section, global data: | First section, global data: | ||
<server_report time="Sun Feb 21 17:27:01 2021" now="1613928421" number="576358" client_count="13" mob_births="4810" mob_deaths="4810" player_deaths="49" sold_items="11400" sold_value="5994348" totalMoneyIn="6215083" totalMoneyOut="693285"> | <server_report time="Sun Feb 21 17:27:01 2021" now="1613928421" number="576358" client_count="13" mob_births="4810" mob_deaths="4810" player_deaths="49" sold_items="11400" sold_value="5994348" totalMoneyIn="6215083" totalMoneyOut="693285"> | ||
client_count is the current number of connect players. all other statistics are incremental since the startup of the server. | |||
Second section, one line for each player connected: | Second section, one line for each player connected: | ||
Line 52: | Line 64: | ||
<npc name="Aleena Arlavin" characterID="31" kills="0" deaths="0" suicides="0" pos_x="-131.30" pos_y="33.89" pos_z="-86.00" sector="hydlaa_plaza" /> | <npc name="Aleena Arlavin" characterID="31" kills="0" deaths="0" suicides="0" pos_x="-131.30" pos_y="33.89" pos_z="-86.00" sector="hydlaa_plaza" /> | ||
=== testlog.xml === | |||
Contains the following data, generate by ServerStatus class in planeshift\trunk\src\server\serverstatus.h: | |||
For each online player. | |||
<Client> | |||
<PlayerName>Gorub</PlayerName> | |||
<SecurityLevel>0</SecurityLevel> | |||
<ClientNum>2001735</ClientNum> | |||
<PlayerID>9640237</PlayerID> | |||
<GuildData> | |||
<GuildName>The Family</GuildName> | |||
<GuildTitle>Warlord</GuildTitle> | |||
<IsGuildSecret>0</IsGuildSecret> | |||
</GuildData> | |||
<Connection> | |||
<IPAddress>XXX.XXX.XXX.XXX</IPAddress> | |||
<LastPacket>5314</LastPacket> | |||
</Connection> | |||
</Client> | |||
== Static view generated by rrdtool == | == Static view generated by rrdtool == | ||
Line 77: | Line 110: | ||
This is then read by MyPlane when showing the online or offline status of the character | This is then read by MyPlane when showing the online or offline status of the character | ||
== Main web site statistics == | |||
We have a guilds page which is listing the top guild, with creation date and number of members. | |||
https://www.planeshift.it/guilds | |||
== Wish list == | == Wish list == | ||
Line 86: | Line 126: | ||
* The races in % of all characters, and ones with >10 hours of gameplay. | * The races in % of all characters, and ones with >10 hours of gameplay. | ||
* The average of diff between account creation and last login by quarter. | * The average of diff between account creation and last login by quarter. | ||
Average damage done by a character to an NPC (server managed creature) within a day. | * Average damage done by a character to an NPC (server managed creature) within a day. | ||
Average damage done by an NPC (server managed creature) to a character within a day. | * Average damage done by an NPC (server managed creature) to a character within a day. | ||
Highest amount of tria (virtual money) owned by a user | * Highest amount of tria (virtual money) owned by a user | ||
How many trias (virtual money) an average guild has after certain amount of hours of existence in bank | * How many trias (virtual money) an average guild has after certain amount of hours of existence in bank | ||
* Highest amount of tria (virtual money) owned by a guild in bank | |||
* Details about the total wealth of a guild including or excluding money in bank (sum up money of each player in the guild) | |||
Items | |||
* How many users use crafting for creating new items | |||
* Number of crafted items a day. | |||
* Number of crafted items used vs looted items. | |||
* Average value of crafted items. | |||
* Average value of looted items. |
Latest revision as of 18:52, 21 February 2021
Static view on the database
Provided by webconsole with the following statistics:
- Hardware
- New Accounts
- New Accounts (with at least one login)
- New Characters
- New Characters (with time>0)
- Retention time
- Char Stats: Strength
- Char Stats: Endurance
- Char Stats: Agility
- Char Stats: Intelligence
- Char Stats: Will
- Char Stats: Charisma
- Skill: Sword
- Skill: Light Armor
- Skill: Medium Armor
- Skill: Heavy Armor
- Skill: Crystal Way
- Skill: Melee
- Char Money
- Completed Quests (* !!)
- Pending Quests(* !!)
To operate it needs apache running, with proper webdirectory example:
Alias /webconsole "F:\Luca\Crystal Space\planeshift\www\webconsole-new" <Directory "F:\Luca\Crystal Space\planeshift\www\webconsole-new"> AllowOverride All Options Indexes FollowSymLinks Require all granted </Directory>
The config is in ../secure/db_config.php
Dynamic view generated by the server at runtime
ServerStatus class is generating two xml files, located in the main server dir.
The log name and frequency of write is defined in psserver.cfg
Planeshift.Server.Status.Report = 1 Planeshift.Server.Status.Rate = 1000 (CHANGE THIS DEFAULT) Planeshift.Server.Status.LogFile = /this/report.xml
report.xml
Contains the following data, generate by ServerStatus class in planeshift\trunk\src\server\serverstatus.h:
First section, global data:
<server_report time="Sun Feb 21 17:27:01 2021" now="1613928421" number="576358" client_count="13" mob_births="4810" mob_deaths="4810" player_deaths="49" sold_items="11400" sold_value="5994348" totalMoneyIn="6215083" totalMoneyOut="693285">
client_count is the current number of connect players. all other statistics are incremental since the startup of the server.
Second section, one line for each player connected:
<player name="Sedilo" characterID="9520875" guild="" title="" security="0" kills="3" deaths="0" suicides="0" pos_x="-586.10" pos_y="49.93" pos_z="-14.94" sector="bdgug02" />
Third section, with NPC data and realtime position:
<npc name="Aleena Arlavin" characterID="31" kills="0" deaths="0" suicides="0" pos_x="-131.30" pos_y="33.89" pos_z="-86.00" sector="hydlaa_plaza" />
testlog.xml
Contains the following data, generate by ServerStatus class in planeshift\trunk\src\server\serverstatus.h:
For each online player.
<Client> <PlayerName>Gorub</PlayerName> <SecurityLevel>0</SecurityLevel> <ClientNum>2001735</ClientNum> <PlayerID>9640237</PlayerID> <GuildData> <GuildName>The Family</GuildName> <GuildTitle>Warlord</GuildTitle> <IsGuildSecret>0</IsGuildSecret> </GuildData> <Connection> <IPAddress>XXX.XXX.XXX.XXX</IPAddress> <LastPacket>5314</LastPacket> </Connection> </Client>
Static view generated by rrdtool
rrdtool is a standard package, you can get it with apt-get rrdtool in Ubuntu
For accounts and characters created, rrdtool is executing every x minutes:
SELECT Count(*) from accounts; SELECT Count(*) from characters;
This populates pscharacters.rrd and psaccounts.rrd
Then is reading report.xml and extracting:
psonline.rrd (Player online) psmobs.rrd (NPC birth and deaths) psplayers.rrd (Player deaths) psecon.rrd (Economy)
My Plane dynamic view
Generated by /home/planeshift/myplane/cronjob.php , it takes report.xml present in the main server dir and reads characterid and sector and putting this info in the myplane database
INSERT INTO `active_characters` (`characterid`,`sector`) VALUES ( :id, :sector )');
This is then read by MyPlane when showing the online or offline status of the character
Main web site statistics
We have a guilds page which is listing the top guild, with creation date and number of members.
https://www.planeshift.it/guilds
Wish list
Described in the Analysis_package done for GSoC.
The majority was implemented we miss these ones:
- The races in % of all characters, and ones with >10 hours of gameplay.
- The average of diff between account creation and last login by quarter.
- Average damage done by a character to an NPC (server managed creature) within a day.
- Average damage done by an NPC (server managed creature) to a character within a day.
- Highest amount of tria (virtual money) owned by a user
- How many trias (virtual money) an average guild has after certain amount of hours of existence in bank
- Highest amount of tria (virtual money) owned by a guild in bank
- Details about the total wealth of a guild including or excluding money in bank (sum up money of each player in the guild)
Items
- How many users use crafting for creating new items
- Number of crafted items a day.
- Number of crafted items used vs looted items.
- Average value of crafted items.
- Average value of looted items.