Mage metrics for log analysis

Anything mage specific not covered by any of the other subforums, like raid instance guides for mages.
Dikembe
Posts: 36
Joined: Fri Jan 29, 2016 11:40 pm

Mage metrics for log analysis

Unread postby Dikembe Tue Mar 22, 2016 10:27 pm

Sup wit it?

I spent a little time the other day starting a collection of Warcraft Logs queries that would identify some common mistakes/red flags Mages (i.e., myself) commit. I figured I could end up with a set of plug-n-play tools that would quickly provide some insight before I took a closer look at a fight.

Any ideas for other things to visualize or bugs with the existing queries, lemme know.

A lot of these queries have my character name in them. Substitute yours for "Dikembe" where appropriate, or tell me how to get the query working without explicitly stating character name. :P

Changes
Spoiler:
2016-05-31
  • Changed: Most pins are using spell id instead of name now.
2016-04-07 2016-03-25
  • Added: Subsequent casts of Ice Lance (no weaving).
General

http://www.wowhead.com/spell=116011 uptime

Very simple: whenever http://www.wowhead.com/spell=116011 is not active, you are losing out on all that bonus damage. The closer to 100%, the better.

Active http://www.wowhead.com/spell=116011 decorator

Code: Select all

0$Main$#244F4B$auras-gained$0$0.0.0.Any$0.0.0.Any$true$168216904.0.0.Mage$false$116014
http://www.wowhead.com/spell=187611 activity

Visualizes your activity during legendary ring use.

http://www.wowhead.com/spell=187611 phase actions decorator

Code: Select all

0$Main$#ff00ee$expression$source.name = "dikembe" and (inCategory("casts") = true or inCategory("auras") = true) and in range from type = "applybuff" and ability.name = "nithramus" and target.name = "dikembe" to type = "removebuff" and ability.name = "nithramus" and target.name = "dikembe" end
Active http://www.wowhead.com/spell=187611 decorator

Code: Select all

0$Main$#909049$auras-gained$0$0.0.0.Any$0.0.0.Any$true$0.0.0.Any$false$187616
Arcane

Wasted http://www.wowhead.com/spell=79683

Every http://www.wowhead.com/spell=79683 offers 5 casts of http://www.wowhead.com/spell=5143. Therefore, the number of casts of http://www.wowhead.com/spell=5143 should be 5 times greater than the number of Arcane Missiles! procs. Anything less indicates that http://www.wowhead.com/spell=5143 were interrupted while channeling, or wasted outright.

Aggregated casts and procs

Code: Select all

3$0$2$Off$#244F4B$expression$(type = "cast" and ability.id = "7268") or (type in ("applybuff", "applybuffstack") and ability.id = "79683")
Mana mismanagement

The typical Arcane conserve phase revolves around casting http://www.wowhead.com/spell=30451 until 93% mana, and then using http://www.wowhead.com/spell=44425 to reset stacks of http://www.wowhead.com/spell=114664. Dipping below this threshold is undesirable due to how http://www.wowhead.com/spell=76547 works. However, the Arcane burn phase will involve a lot of http://www.wowhead.com/spell=30451 below that threshold, so we account for times when http://www.wowhead.com/spell=12042 is active.

An additional decorator to visualize http://www.wowhead.com/spell=12042 is provided for convenience.

Active http://www.wowhead.com/spell=12042 decorator

Code: Select all

0$Main$#244F4B$auras-gained$0$0.0.0.Any$0.0.0.Any$true$168216904.0.0.Mage$false$12042
http://www.wowhead.com/spell=30451 < 93% mana decorator

Code: Select all

0$Separate$#8f4949$expression$source.name = "dikembe" and type = "cast" and ability.id = "30451" and resources.type = 0 and resources.amountPercent < 93 and not in range from type = "applybuff" and ability.id = "12042" to type = "removebuff" and ability.id = "12042" end
Last second http://www.wowhead.com/spell=30451 into http://www.wowhead.com/npc=76933

http://www.wowhead.com/spell=12043 should be used to get an extra http://www.wowhead.com/spell=30451 into http://www.wowhead.com/npc=76933.

Unfortunately, WCL doesn't seem to support selecting a block of time based on a start trigger, so I can't get the range of "http://www.wowhead.com/npc=76933 casted to +12 seconds later."

Instacast http://www.wowhead.com/spell=30451 decorator

Code: Select all

0$Main$#244F4B$expression$source.name = "Dikembe" and type = "cast" and ability.id = "30451" and target.id = "76933" and in range from type = "applybuff" and ability.id = "12043" to type = "removebuff" and ability.id = "12043" group by source end
http://www.wowhead.com/spell=152087 dropped decorator

Code: Select all

0$Main$#909049$casts$0$0.0.0.Any$168216904.0.0.Mage$true$1.0.0.Any$false$152087
Weak http://www.wowhead.com/spell=5143

http://www.wowhead.com/spell=5143 should be cast at 4 stacks of the http://www.wowhead.com/spell=114664 debuff. (Todo: Account for casts at 3 stacks of http://www.wowhead.com/spell=79683 to avoid munching a proc.)

http://www.wowhead.com/spell=5143 decorator

Code: Select all

0$Main$#ff00ee$expression$source.name = "dikembe" and type = "cast" and ability.id = "7268" and in range from type = "applydebuff" and ability.id = "36032" and target.name = "dikembe" to type = "applydebuffstack" and ability.id = "36032" and stack = 4 and target.name = "dikembe" end
Missed/desynchronized burns

In almost every case, it's vital to synchronize DPS cooldowns with legendary ring use. A ton of damage can be lost otherwise.

This query returns everything (read: casting and aura activity) that was performed during a "burn phase." A burn phase is defined as:

- From: Observed a cast of http://www.wowhead.com/spell=12042, http://www.wowhead.com/spell=26297 or http://www.wowhead.com/spell=152087.
- To: Observed the loss of http://www.wowhead.com/spell=12042. It might be preferable to consider http://www.wowhead.com/spell=12051 as the end. Your call.

I also include a decorator to highlight the period when http://www.wowhead.com/spell=187611 is active.

Example usage: go to the Damage Done tab, select yourself from the sources list, and visually see whether you messed up.

Burn phase activity decorator

Code: Select all

0$Main$#00ff1e$expression$source.name = "dikembe" and (inCategory("casts") = true or inCategory("auras") = true) and in range from type = "cast" and ability.id in ("12042", "26297", "152087") to type = "removebuff" and ability.id = "12042" group by source end
Active http://www.wowhead.com/spell=187611 decorator

Code: Select all

0$Main$#909049$auras-gained$0$0.0.0.Any$0.0.0.Any$true$0.0.0.Any$false$187616
Fire

Living Bomb uptime

Living Bomb deals ticking damage in addition to its explosive damage. The longer it is active, the more ticking damage is being dealt. Avoid refreshing with more than 3.5 seconds left on the debuff or you will lose out on the explosive damage.

Active Living Bomb decorator

Code: Select all

0$Main$#244F4B$auras-gained$-1$0.0.0.Any$168216904.0.0.Mage$true$0.0.0.Any$true$44457$95
Frost

Ice Lance without Fingers of Frost

Casting raw Ice Lances without a proc of Fingers of Frost wastes bonus damage.

Code: Select all

0$Main$#d500ff$casts$-1$0.0.0.Any$0.0.0.Any$true$0.0.0.Any$true$30455$and$auras-gained$0$0.0.0.Any$0.0.0.Any$true$0.0.0.Any$true$44544$false$true
Subsequent casts of Ice Lance (no weaving)

With the Shatterlance buff obtain from the T18 class trinket, Frost's rotation focuses heavily on casting Ice Lances only when preceded by Frostbolts.

The following queries will visualize Ice Lances as RED, and Frostbolt in WHITE. A pair of RED lines might indicate an error in rotation.

Ice Lance cast decorator

Code: Select all

0$Main$#ff0000$expression$source.name = "dikembe" and ability.id = "30455" and type = "cast"
Frostbolt cast decorator

Code: Select all

0$Main$#ffffff$expression$source.name = "dikembe" and ability.id = "116" and type = "cast"
Last edited by Dikembe on Wed Jun 01, 2016 1:09 am, edited 20 times in total.
User avatar
Curnivore
Posts: 827
Joined: Mon Sep 28, 2015 9:26 am

Re: Mage metrics for log analysis

Unread postby Curnivore Wed Mar 23, 2016 12:03 am

This is an amazing project, thanks for sharing. I will use the filters you produced when I can. I'll report if I have any feedback.
skiz
Posts: 182
Joined: Fri Aug 22, 2014 12:27 pm

Re: Mage metrics for log analysis

Unread postby skiz Thu Mar 24, 2016 12:28 am

0$Main$#ff00ff$expression$(source.name = "Dikembe" and type = "cast" and ability.name = "Arcane Blast" and resources.type = 0 and resources.amountPercent < 93) and not in range from type = "applybuff" and ability.name = "Arcane Power" to type = "removebuff" and ability.name = "Arcane Power" group by source end
Interesting! Worth to mention, that "cast" is cast_success. So you potentionally have a false positive at the end of Arcane Power. And at the end of the fight you definitly have some false positives.

ability.name="X" checks the name on the non translated log. So for any non english logs you need to rewrite ability.name. Using ability.id should work better on that.

Source.class="Mage" is something I do prefer for copy and paste reasons, but if you run multiple arcanemages you want to use source.name="X". Furthermore that check against arcane power yields some false positives in the graph if you run it as decorater on some tabs. See picture. Graph acts weird. (Ressources is mana in that thingy) (Edit: graph seems to be fixed)

Image

Code: Select all

(source.class= "Mage" and type = "cast" and ability.id= "30451" and resources.type = 0 and resources.amountPercent < 93) and not in range from type = "applybuff" and ability.name = "Arcane Power" to type = "removebuff" and ability.name = "Arcane Power" group by source end
Last edited by skiz on Fri Mar 25, 2016 12:27 am, edited 1 time in total.
Dikembe
Posts: 36
Joined: Fri Jan 29, 2016 11:40 pm

Re: Mage metrics for log analysis

Unread postby Dikembe Thu Mar 24, 2016 7:18 am

Worth to mention, that "cast" is cast_success. So you potentionally have a false positive at the end of Arcane Power. And at the end of the fight you definitly have some false positives.
I think I see what you're getting at. So it should be begincast/SPELL_CAST_START instead? I can probably add an extra conditional that would ignore casts below 10 - 15% of boss health or something. That would eliminate false positives from the end of the fight.
ability.name="X" checks the name on the non translated log. So for any non english logs you need to rewrite ability.name. Using ability.id should work better on that.
Good call! I hadn't thought of localization problems when using ability names. I did consider using ids at first but decided against it to make queries more readable. However, since the goal is to make quick, "drop in" queries that function without too much editing, I don't think it would be a problem to use ability ids.[/quote]
Furthermore that check against arcane power yields some false positives in the graph if you run it as decorater on some tabs. See picture. Graph acts weird. (Ressources is mana in that thingy)
Yeah, I noticed this as well. I don't think there's anything that I can do. Originally, I was including notes like "best viewed on <tab>" for every query; I removed them all except the example provided along with the missed/desync'd burns query.

There appears to be some kind of logic for each tab where it's only looking at specific events or conditions. For that query in particular, it seems to completely ignore the IN RANGE expression. You can remove it and overlay a new query directly on top. So I believe what you're actually seeing on the Resources tab is every Arcane Blast below 93%, no matter where/when. But if you go to Summary/Damage Done/etc., it looks fine.
skiz
Posts: 182
Joined: Fri Aug 22, 2014 12:27 pm

Re: Mage metrics for log analysis

Unread postby skiz Thu Mar 24, 2016 8:18 am

I think I see what you're getting at. So it should be begincast/SPELL_CAST_START instead? I can probably add an extra conditional that would ignore casts below 10 - 15% of boss health or something. That would eliminate false positives from the end of the fight.
Nah, I like it this way. Just be aware of it. I don't even know if you should cast that last AB, but I would guess yeah.

Edit:
well, that spell_cast_start thingy may be decent. I would recommend to limit that spell_cast_start thingy to Arcane Powers duration. That is atleast the more common playstile.
Yeah, I noticed this as well. I don't think there's anything that I can do. Originally, I was including notes like "best viewed on <tab>" for every query; I removed them all except the example provided along with the missed/desync'd burns query.

There appears to be some kind of logic for each tab where it's only looking at specific events or conditions. For that query in particular, it seems to completely ignore the IN RANGE expression. You can remove it and overlay a new query directly on top. So I believe what you're actually seeing on the Resources tab is every Arcane Blast below 93%, no matter where/when. But if you go to Summary/Damage Done/etc., it looks fine.
asked kihra about it. May just be an error on "Cast" and "Ressources" tab with decorators. Any other tab looks fine. Ressource tab with filter looks odd, but is intended that way. However, even with those errors that expression is awesome :-)
Last edited by skiz on Fri Mar 25, 2016 12:52 pm, edited 1 time in total.
jazzytwo
Posts: 9
Joined: Thu May 28, 2015 3:30 pm

Re: Mage metrics for log analysis

Unread postby jazzytwo Thu Mar 24, 2016 6:05 pm

I think I can help with some of the frost ones.

Ice Lance without Fingers of Frost

Code: Select all

0$Separate$#d500ff$casts$-1$0.0.0.Any$0.0.0.Any$true$0.0.0.Any$true$30455$and$auras-gained$0$0.0.0.Any$0.0.0.Any$true$0.0.0.Any$true$44544$false$true
I Blink off Boats!
Dikembe
Posts: 36
Joined: Fri Jan 29, 2016 11:40 pm

Re: Mage metrics for log analysis

Unread postby Dikembe Thu Mar 24, 2016 6:40 pm

I think I can help with some of the frost ones.

Ice Lance without Fingers of Frost

Code: Select all

0$Separate$#d500ff$casts$-1$0.0.0.Any$0.0.0.Any$true$0.0.0.Any$true$30455$and$auras-gained$0$0.0.0.Any$0.0.0.Any$true$0.0.0.Any$true$44544$false$true
Looks good; added. Thanks!
Dikembe
Posts: 36
Joined: Fri Jan 29, 2016 11:40 pm

Re: Mage metrics for log analysis

Unread postby Dikembe Thu Mar 24, 2016 7:02 pm

I updated the AB < 93% query. Apparently I don't understand how the GROUP BY works, which caused more false positives.

This seems more reliable:

Code: Select all

source.name = "dikembe" and type = "cast" and ability.id = "30451" and resources.type = 0 and resources.amountPercent < 93 and not in range from type = "applybuff" and ability.name = "arcane power" to type = "removebuff" and ability.name = "arcane power" end
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: Mage metrics for log analysis

Unread postby Komma Fri Mar 25, 2016 6:29 am

I think I can help with some of the frost ones.

Ice Lance without Fingers of Frost

Code: Select all

0$Separate$#d500ff$casts$-1$0.0.0.Any$0.0.0.Any$true$0.0.0.Any$true$30455$and$auras-gained$0$0.0.0.Any$0.0.0.Any$true$0.0.0.Any$true$44544$false$true
From what I remember (from trying this a year ago) this does not work. The removebuff event for FoF occurs before the Ice Lance is fired, meaning that all Ice Lances casted at 1 charge of FoF will be flagged by this filter. It was also not possible to flag FoF capping, because FoF did not fire aura refresh events at cap. Here is a post I made about the issue a while ago. Maybe the problem is fixed by now.
Some stackable buffs are missing refresh events for when the player is at max stacks. For example, Frost Mages are missing SPELL_AURA_REFRESH for Fingers of Frost and Brain Freeze. I asked Kihra, and this sounded like a common problem.

Quoted below is a log snippet where Kuni gains 2 stacks of Fingers of Frost, and then it fades 1 minute and 7 seconds later. Fingers of Frost only lasts 15 seconds. There should be at least 4-5 refresh events between APPLIED_DOSE and REMOVED.
4/25 14:21:32.811 SPELL_AURA_APPLIED,Player-3296-0093FE9D,"Kuni-Anasterian(US)",0x511,0x0,Player-3296-0093FE9D,"Kuni-Anasterian(US)",0x511,0x0,44544,"Fingers of Frost",0x10,BUFF
4/25 14:21:40.484 SPELL_AURA_APPLIED_DOSE,Player-3296-0093FE9D,"Kuni-Anasterian(US)",0x511,0x0,Player-3296-0093FE9D,"Kuni-Anasterian(US)",0x511,0x0,44544,"Fingers of Frost",0x10,BUFF,2
4/25 14:22:47.533 SPELL_AURA_REMOVED,Player-3296-0093FE9D,"Kuni-Anasterian(US)",0x511,0x0,Player-3296-0093FE9D,"Kuni-Anasterian(US)",0x511,0x0,44544,"Fingers of Frost",0x10,BUFF
The same thing happens with Brain Freeze. Here is a log where there's 18 seconds between the last buff gain and the buff removal.
4/25 17:07:46.017 SPELL_AURA_APPLIED,Player-3296-0093FE9D,"Kuni-Anasterian(US)",0x511,0x0,Player-3296-0093FE9D,"Kuni-Anasterian(US)",0x511,0x0,57761,"Brain Freeze",0x10,BUFF
4/25 17:07:47.576 SPELL_AURA_APPLIED_DOSE,Player-3296-0093FE9D,"Kuni-Anasterian(US)",0x511,0x0,Player-3296-0093FE9D,"Kuni-Anasterian(US)",0x511,0x0,57761,"Brain Freeze",0x10,BUFF,2
4/25 17:08:05.583 SPELL_AURA_REMOVED,Player-3296-0093FE9D,"Kuni-Anasterian(US)",0x511,0x0,Player-3296-0093FE9D,"Kuni-Anasterian(US)",0x511,0x0,57761,"Brain Freeze",0x10,BUFF
The ability to see SPELL_AURA_REFRESH would be great, if just for players to figure out exactly how many procs they gained over a fight. With the ability to see refreshes, we'd have better visibility of whether a Frost Mage is too slow in reacting to procs, or whether a pull had great RNG and lots of procs.
Another issue I had back then was the issue of resources - the resource of a spell isn't consistently tied to the mage, but sometimes to the target. This occasionally meant that you would get the mana level of the boss instead of the Mage. There were a bunch of other problems, which is why eventually I gave up trying to write filters. :lol:

I'll organize whatever I had, and post things that still seem usable.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: Mage metrics for log analysis

Unread postby Komma Fri Mar 25, 2016 6:48 am

I updated the AB < 93% query. Apparently I don't understand how the GROUP BY works, which caused more false positives.

This seems more reliable:

Code: Select all

source.name = "dikembe" and type = "cast" and ability.id = "30451" and resources.type = 0 and resources.amountPercent < 93 and not in range from type = "applybuff" and ability.name = "arcane power" to type = "removebuff" and ability.name = "arcane power" end
A bigger issue with this is that you don't just want to catch all AB begincast events below 93 mana, but only when it's done at 4 Arcane Charges. Due to the order in which applybuffstack events occur, this is nontrivial to do.

On an unrelated note, removebuffstack events are also misleading. They show the value after the removal, not before. For example:
Image
"Komma's Arcane Missiles! (1) fades from Komma"
actually means
"Komma loses some number of Arcane Missiles charges. The new stack count is 1."
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
Dikembe
Posts: 36
Joined: Fri Jan 29, 2016 11:40 pm

Re: Mage metrics for log analysis

Unread postby Dikembe Fri Mar 25, 2016 8:22 am

It was also not possible to flag FoF capping, because FoF did not fire aura refresh events at cap.
That would confirm my thinking that checking for munched Arcane Missiles! procs is also impossible, correct? If SPELL_AURA_REFRESH would actually fire at cap, we'd be in good shape for both these cases.
User avatar
Curnivore
Posts: 827
Joined: Mon Sep 28, 2015 9:26 am

Re: Mage metrics for log analysis

Unread postby Curnivore Fri Mar 25, 2016 2:38 pm

I get some technical issues with the website; if I enter the queries from your paste code, they work correctly after I change actor name or spell ID to spell name, but if I paste them again from the paste code I exported for myself I may get "Error: Unable to generate a chart." on the chart box.

I only saw that on the "Cast of Prismatic Crystal" code and "Rune of Power fail" code.

And the "When Arcane Power is up" code apparently.
Dikembe
Posts: 36
Joined: Fri Jan 29, 2016 11:40 pm

Re: Mage metrics for log analysis

Unread postby Dikembe Fri Mar 25, 2016 4:34 pm

I get some technical issues with the website; if I enter the queries from your paste code, they work correctly after I change actor name or spell ID to spell name, but if I paste them again from the paste code I exported for myself I may get "Error: Unable to generate a chart." on the chart box.

I only saw that on the "Cast of Prismatic Crystal" code and "Rune of Power fail" code.

And the "When Arcane Power is up" code apparently.
Make sure you don't have a newline or whitespace character(s) at the end of the paste code. I've noticed this happening pretty frequently if I, for instance, triple click to select a line (which also selects the newline) and try to copy/paste. Even for queries that are built by the "wizard" interface like the RoP code; you can paste it in and edit it in the wizard and it looks like normal, but you still get the "unable to generate a chart" bug.

Return to “General Discussion”

Who is online

Users browsing this forum: No registered users and 5 guests