Beiträge von elija

    Hi,


    Raw Log Browsing System is Live now.



    About the Raw Log Browsing System(RLB):
    RLB expression editor is a free text control able to parse SQL like where clause.
    RLB currently does not have a wizard UI to auto generate the expression. You write the expressions in a similar way that you tell someone what to do, well sort of.
    RLB has no limitation of row count thought you can see 100 at a time, you can traverse from the start to the end of the fight raw logs.



    RLB consist of three panes:
    - Upper Pane: This pane hold the legend of all available Contexts.
    - Left Pane: Will show only if you're logged in, this pane let you save/update/delete Expression Presets to your Private Preset Library or to Your Guild Preset Library
    - Lower pane: The actual Expression Editor where you enter your code.


    What is a Context
    A context is an abbreviation for something you may look for in the Raw Log, like: Source Unit Name, Spell, get all Hostile Units, get all failed dispels and many more.
    An expression may include a single context or many of those which you decide how to relate one to each other by using logical operators.


    Examples:
    - Get all source friendly units missed melee events:
    [s_friendly] and [miss_melee]


    - Get all player's 'ImAlwaysdispeling' dispels:
    [s_name] = 'ImAlwaysdispeling' and ([dispel] or [dispel_failed])


    - Get all players died from defile:
    [t_friendly] and [killed] and [spell] = 'Defile'


    - Get all stacks information about Mystic Buffet for player 'IdidNotGetAbove5Stack'
    [t_name] = 'IdidNotGetAbove5Stack' and [aura_all_applications] and [aura_all_removals] and [spell] = 'Mystic Buffet'


    - Get all Damage taken from targets with names starting with 'Shamb' (take notice that like is case sensitive and ilike is not)
    [t_friendly] and [dmg] and[s_name] ilike 'shamb%'


    - Get all CC's done to a Valkir with Spawn ID-35876
    [t_spawn_id] = 35876 and [spell_cc]


    - Get all dispels done to the Tanks between '2010-12-1 10:21:22' and '2010-12-1 10:21:52'
    [t_tank] and [dispel] and [time] between '2010-12-1 10:21:22' and '2010-12-1 10:21:52'


    - Get all DPS and Healers whom agroed:
    ([t_dps] or [t_healer]) and [dmg_melee]


    - Get only the dispels from Pally healers:
    [s_paladin] and [s_healer] and [dispel]


    Note: At this point, if you enter an invalid expression, RLB will not tell you what exactly is wrong but only a general error message.
    Although I'll be addressing that in the future, This is what you might want to check out If you get errors:
    1) Check that you use Valid context Names, you'll need to include the Brackets([]) too.
    2) Check that you enter a valid value to a mandatory Value Context such as [spell] (It has to be [spell] = 'some spell name' or [spell] in ('spell name 1', 'spell name 2')).
    3) Check that the logical operator are in place. write something like [t_friendly] [dispel] will result in an error. Should be: [t_friendly] and [dispel]
    4) Time values must be fully qualified with year-month-day hour:minutes like '2010-12-1 10:21' (seconds and milliseconds are optional)
    5) Check that your expression does not include words like: delete, select, drop, create, update and such. this is due to monitoring SQL Injections.
    Raidlogs will reject any expression with such content.


    A link where you can check it out:
    http://www.raidlogs.com/fight/browser/585/19

    This is just an introduction post, I'm sure that people will be very creative in what they can get out of it.



    Elija

    you can't do much of query optimization on an expression like system.
    to do that you'll need to index the entire combination of all columns because you'll never know which the user will pick for
    his filter. and indexing the entire combination will result with a huge overhead when populating the table in question.


    In that case the typical query execution plan will just use a scan algorithm which means going for every row in the table which is fine when the data you need is cached which is what a good RDBMS does.


    consider the following;
    A 3 hours of 25M raid time is about 200MB. that's for one guild, one session.
    now think about 1000 guilds browsing raw information which probably wont happen at the same time but just for the sake of this argument.
    figure out how many Giga bytes of memory you need to cache all that.


    probably 1000 guild browsing the logs altogether is not likely to happen.
    But in any case this should be handle with a lot of care in mind, that's why things like single attempt browsing and limited row count retrieval come into play.


    btw MySql sucks in compare to Postgres ;)

    I'm inclining to limit this tool to get no more than a few hundreds of records and to run only on a single attempt at a time.
    this thing can easily kill a database.


    does such restriction sound reasonable, do you guys run queries on a wider time frame than a single attempt?

    ok, I'm probably giving this priority.


    I was thinking about an open expression support.
    what I mean is you'll be able to enter a semi SQL 'where clause' statement with some aliases to make life easier.
    This way you'll have almost a full control on the logical rendering of the statement.
    You'll be able to use (),<>,=,!=,and,or,in like you're writing a SQL where clause.


    In addition you'll be able to set an ordering method by specifying fields and it's ascending/descending flow.


    here is an example:


    for simplicity I wont include all the abbreviations, just a few to make a point.


    [t] - Event Time
    [sun] - Source Snit Name
    [tun] - Target -''-
    [tua] - Target Unit Affiliation
    [evt] - event type
    [evst] - event sub type
    [spl] - spell


    filter expression:
    [sun] = 'MjoedTheBear' and [spl] in ('Growl', 'Bash') and [tua] = [enemy]


    order expression:
    [t] desc


    This will get you all this bear growl and bash on any enemy unit and will order it from latest to earliest.




    all the expression will be rendered into the url so you'll be able to save/bookmark/share it


    I hope you get the idea, open expressions will give you much more freedom but you'll need to learn it's acronyms to master it.
    In time such expression system could have a lazy wizard to auto build expressions.


    Do you think it's too complicate or people will learn to use it?



    Elija

    valid points all.


    obv for cata I'm depending on cata beta logs which I do not have enough atm(asked from many but got only a few)
    this means that mechs will be coded during cata live which isn't much of a help for top world guilds.
    so I see the point for a raw log browsing in that case. I'll have to see how I'm putting this together.
    dont take it as a QQ but I'm the sole developer on this project and by so can click on 2 buttons at a time.
    I got a long to-do list, just need to figure out the prios :)


    I'll be updating this thread on any news.


    Elija

    how important is raw log browsing to you?


    It is a big hit on the database.
    I've omitted it for the sole reason to be able to keep logs for a very long time.


    Isn't mechanics+buff/debuff reports is doing mostly what you would have done with raw log browsing?
    I can code more reports to compensate on that.


    I will consider adding it if I'll learn that the current reports are not enough.



    Anyway if you decide not to use it - fair enough(though I really hope for a top world guild to join in and help push this project)
    Just check us out from time to time, there will be lots of new features spawning out :)


    Elija

    Hi,


    I'm sorry I cant write this in German.


    There is a new World of Warcraft Combat Analysis project - http://www.raidlogs.com


    Key Features:
    * Guild Raid Sessions Management - Easy navigation.
    * Multi-Team Guild Support - Manage all teams under a single/many account(s) sharing the same guild association.
    * Role Detection.
    * Attempt Overview Report - Output pies, Tanks/Raid Healing Responsiveness and Role Cast.
    * Meters and Histograms Reports - The obvious plus Efficiency information.
    * Contribution/Distribution Reports - Raid wide reports using a stacking bar chart format. Useful for Target focusing/LOS Healing/Rotation Utilization.
    * Encounter Mechanics Performance Reports - Tailor made hundreds of reports for each Boss encounter.
    * Comprehensive Comparison System - Output/Mechanics in both Raid/Players modes.
    * Guild and Player Search Tool - Quick access to a Player statistics Page or to a Guild Session Index.
    * Ranking system - World/Location/Realm and Multiple Class Specs Support.
    * Players and Guild Promotion system.(Not live yet)


    Official Europe WoW Forums Thread:
    http://eu.battle.net/wow/en/forum/topic/900711353


    Home Page:
    http://www.raidlogs.com


    Demo Sessions:
    http://www.raidlogs.com/info/guild/38


    Any thoughts, comments and feedback is Welcome!


    Elija
    Author of raidlogs