[INFO] DataGatherer v0.2 - Gathers a lot of Informations [1060]

Discussion in 'Inactive/Unsupported Plugins' started by Tiramon, Mar 23, 2011.

  1. Offline

    Tiramon

    A Plugin that hooks into all kind of actions and saves all kind of informations in a sqlite/MySQL database

    Gathered Informations
    Player (open)
    name
    display
    x
    y
    z
    death
    blocksBroken
    blocksPlaced
    blocksIgnited
    chatlines
    logins
    joins
    quits
    kicks
    teleports
    respawns
    ip
    PlayerSession (open)
    start
    end
    reason (current Status/quit reason)
    Plugin (open)
    name
    fullname
    version
    website
    description
    author
    enabled
    Server (open)
    timestamp
    name
    currentPlayer
    maxPlayer
    version
    world (open)
    name
    enviroment
    spawnx
    spawny
    spawnz
    system (open)
    timestamp
    maxmemory
    freememory
    totalmemory
    cpus

    Configurable Values
    databasetype - default sqlite
    Defines which database type to use. If 'sqlite' is selected plugins/DataGatherer/datagatherer.sqlite will be used. If 'mysql' is selected you also have to set the Properties 'host', 'database', 'user', 'password'
    host
    Only needed when databasetype 'mysql' has been selected.
    The host where te MySQL Database is running
    database
    Only needed when databasetype 'mysql' has been selected.
    The database at the given MySQL server
    user
    Only needed when databasetype 'mysql' has been selected.
    The user to connect to the given MySQL server
    password
    Only needed when databasetype 'mysql' has been selected.
    The password to connect to the given MySQL server
    memoryWriteInterval - default 10
    Defines the Interval in seconds used for writing Memory Informations to the log. 0 means disabled.
    pluginUpdateInterval - default 10
    Check interval in seconds for gathering plugin informations. 0 means disabled.
    playerUpdateInterval - default 10
    Check interval in seconds for gathering player informations. 0 means disabled.
    serverUpdateInterval - default 10
    Check interval in seconds for gathering world and server informations. 0 means disabled.
    memoryUpdateInterval - default 10
    Check interval in seconds for gathering system informations. 0 means disabled.

    Currently i'm building a Website with all kind of statistics and informations
    Also version checking of the plugins against http://plugins.bukkit.org as soon as i think it is a version that is worth publishing i will add it to this Thread

    DataGatherer v0.2 Download

    TODO
    -building a website that uses the informations
    -maybe react on PLAYER_DROP_ITEM and PLAYER_PICKUP_ITEM
    -call plugin update only once and then react to Plugin_enabled/disabled
    -count kills (maybe target specific)


    Known Issues

    Changelog
    v0.3 (under construction)
    - count chat characters
    - count damage taken by player/entity/other
    - count damage dealt to player/entity
    - count distance traveled
    - react on PLAYER_MOVE

    v0.2
    - MySQL support

    v0.1
    - Release
     
  2. Offline

    shadrxninga

    Would be good if their was MySQL support.
     
  3. Offline

    Tiramon

    since i only have to use another library and use another connect i will try to implement that soon
     
  4. Offline

    tha d0ctor

    could you use something like this to make a scripting engine for plugins, run what woudl have formerly been code out of cfgs??
     
  5. Offline

    Tiramon

    sry but i don't understand what you mean
     
  6. Offline

    tha d0ctor

    I imagine you could use this or something like this to start work on a scripting engine for bukkit. there could be a basic language the interfaces with commands inside of bukkit using variables based off your plugin for example

    sting slowdown "/plugin disable unessential function, i.e dynmap"
    if freememory <= 100 slowdown
     
  7. Offline

    doud

    Really interresting pluggin if couple with mysql support !! :)
     
  8. Offline

    crysis992

    MySQL support would be awesome ;)
     
  9. Offline

    Plague

    considered inactive
     
  10. Offline

    Tiramon

    Same as with my LightSensor Plugin
    After a baby break this plugin is up to date and now also has MySQL support
     
  11. Offline

    Kiwz

    Love the smell of this.
    Though I aint a programmer, so would love to see an included html file that is easy to configure.
    Hope this can provide a graph of how many players there where online the past days and java-memory usage and cpu usage graphs. Maybe it is also possible to include bandwith usage for up and down Kbit pr sec?
    This would be awesome to have on my web-page for players to see some history of the server.
     
  12. Offline

    NotYetRated

    Awesome plugin!!! Though.... I have errors using MySQL.

    Code:
    2011-08-17 02:31:14 [SEVERE] [DATAGATHERER] Plugin Insert Exception
    com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'maxmemory' at row 1
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3591)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2407)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2325)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2310)
        at de.tiramon.bukkit.datagatherer.database.DataSource.addSystem(DataSource.java:286)
        at de.tiramon.bukkit.datagatherer.DataGatherer.onChange(DataGatherer.java:521)
        at de.tiramon.bukkit.datagatherer.obj.DGObject.fireChangeEvent(DGObject.java:35)
        at de.tiramon.bukkit.datagatherer.DataGatherer.updateSystem(DataGatherer.java:378)
        at de.tiramon.bukkit.datagatherer.DataGathererThread.run(DataGathererThread.java:38)
    2011-08-17 02:31:14 [INFO] [DATAGATHERER] Free: 2084848000 (82.0%) Used: 427409024 (17.0%) Max: 2512257024 Total: 2512257024 CPUs: 3
    2011-08-17 02:31:24 [SEVERE] [DATAGATHERER] Plugin Insert Exception
    com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'maxmemory' at row 1
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3591)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2407)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2325)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2310)
        at de.tiramon.bukkit.datagatherer.database.DataSource.addSystem(DataSource.java:286)
        at de.tiramon.bukkit.datagatherer.DataGatherer.onChange(DataGatherer.java:521)
        at de.tiramon.bukkit.datagatherer.obj.DGObject.fireChangeEvent(DGObject.java:35)
        at de.tiramon.bukkit.datagatherer.DataGatherer.updateSystem(DataGatherer.java:378)
        at de.tiramon.bukkit.datagatherer.DataGathererThread.run(DataGathererThread.java:38)
    And the memory monitor is the main function I need... :)
     
  13. Offline

    Tiramon

    Found the mistake ... memory storage was limit to about 2GB you got a little bit more
    with unsigned it would be around 4gb
    and with bigint unsigned we should not have this problem again on any server someone like me could get for the next years

    so execute the following statements in the mysql db and this should be fixed
    Code:
    alter table dgsystem modify column freememory bigint(20) unsigned;
    alter table dgsystem modify column maxmemory bigint(20) unsigned;
    alter table dgsystem modify column totalmemory bigint(20) unsigned;
    i will add this change to the table creation script in the next version
     
  14. Offline

    kyle6513

    G'day,
    I was just wondering if you could add a setting in the prop file to allow the disabling of logging to the console? It's incredibly annoying to have to sort through logs as it is and I just want to graph this information.
    Thanks!
     
  15. Offline

    Tiramon

    use memoryWriteInterval and set it to 0
     
  16. Offline

    Mercury

    Yeah we need some fancy website and graphs.
    At the moment it is useless :)
     
  17. Offline

    raddad

    Updates? Pretty please?
     

Share This Page