These are chat archives for exceptionless/Discuss

22nd
Mar 2016
Blake Niemyjski
@niemyjski
Mar 22 2016 00:03
it’s live
on dev app
you can see exactly what I’m talking about
removed all our custom nav css and still an issue sigh
Blake Niemyjski
@niemyjski
Mar 22 2016 01:41
Screen Shot 2016-03-21 at 8.41.10 PM.png
added some quick loading masks for bill
Blake Niemyjski
@niemyjski
Mar 22 2016 01:55
twbs/bootstrap#9950
dam issue I hit earlier
lol
I think at least
Blake Niemyjski
@niemyjski
Mar 22 2016 12:57
This message was deleted
elastic/elasticsearch@c7c8bb3
looks like update by query just landed in master :D
and reindexing
Eric J. Smith
@ejsmith
Mar 22 2016 13:02
Sweet
Blake Niemyjski
@niemyjski
Mar 22 2016 13:09
elastic/curator#582
they also just release a new version of curator with more fixes and better logging.. should help us a little bit esp when we run into that transport error
@BillHenning can you take a look at dev-app
Screen Shot 2016-03-22 at 8.13.08 AM.png
hope our nuget packages don’t download this slow
Bill Henning
@BillHenning
Mar 22 2016 13:32
that looks fine
Eric J. Smith
@ejsmith
Mar 22 2016 13:38
I don't like the focused color of the search box
Bill Henning
@BillHenning
Mar 22 2016 13:39
oh yeah, i didn't notice that
make it slightly lighter than non focused if anything
Blake Niemyjski
@niemyjski
Mar 22 2016 13:44
ok
and on mobile layout? there are a few issues I’m working through buy you like it?
Bill Henning
@BillHenning
Mar 22 2016 13:44
screenshot?
Blake Niemyjski
@niemyjski
Mar 22 2016 13:45
just resize your browser small
Bill Henning
@BillHenning
Mar 22 2016 13:46
there's a weird white line just below the header when the gear flyout is open
the rest works fine
Blake Niemyjski
@niemyjski
Mar 22 2016 13:50
Think it needs to be there as a seperator
Bill Henning
@BillHenning
Mar 22 2016 13:50
i'm fine with separators but looks weird due to the super high contrast
just tone it down to a gray
Eric J. Smith
@ejsmith
Mar 22 2016 13:57
Agreed
Blake Niemyjski
@niemyjski
Mar 22 2016 13:59
ok
thx
Eric J. Smith
@ejsmith
Mar 22 2016 14:01
Did you figure out why the browser zooms when focus
In the search box on mobile
Blake Niemyjski
@niemyjski
Mar 22 2016 14:01
nope
looking into that
just waking up and doing support
wondering if that’s normal behavior on mobile
because you focus out it zooms out.
makes kinda sense because you want all available space when typing on mobile
Blake Niemyjski
@niemyjski
Mar 22 2016 14:03
it’s just kind of jaring but there is an animation to it
Eric J. Smith
@ejsmith
Mar 22 2016 14:03
Not if the site is designed for mobile
Blake Niemyjski
@niemyjski
Mar 22 2016 14:04
ok
think we should do that on all fields or scope it only to that field on the mobile layout
?
Eric J. Smith
@ejsmith
Mar 22 2016 14:05
Seems like all but might be wrong
Blake Niemyjski
@niemyjski
Mar 22 2016 14:06
ok
I’ll set it to all on mobile layout only
current size is 14px and they say to do
input, select, textarea {
font-size: 16px;
}
Blake Niemyjski
@niemyjski
Mar 22 2016 15:45
pushing 4 different fixes now
:)
got side tracked a bit, but fixed two mobile issues with the stack page
Blake Niemyjski
@niemyjski
Mar 22 2016 15:53
Screen Shot 2016-03-22 at 10.52.52 AM.png
Screen Shot 2016-03-22 at 10.52.58 AM.png
@BillHenning
10% lighter
so cool you can do computed colors :)
background-color:lighten(#423D3D, 10%);
Eric J. Smith
@ejsmith
Mar 22 2016 15:54
Don't know how supported that is.
Blake Niemyjski
@niemyjski
Mar 22 2016 16:04
pretty supported
it’s been used by our theme since we released it
:)
it just translates to a real color by the processor from what I can tell
Eric J. Smith
@ejsmith
Mar 22 2016 16:06
is that in less you mean?
less transforms it to normal CSS
Blake Niemyjski
@niemyjski
Mar 22 2016 16:11
yes
just pushed the lightened searchbox and auto focus
only bug and I can live with it.. is when you are in mobile and open the menu the border goes from white to gray (during the animation)
Sander Rijken
@srijken
Mar 22 2016 16:18
pushed to production?
Blake Niemyjski
@niemyjski
Mar 22 2016 16:18
not till everyones happy with it
Sander Rijken
@srijken
Mar 22 2016 16:18
to where?
Bill Henning
@BillHenning
Mar 22 2016 16:19
looks the same to me
assuming it's not actually live yet?
Blake Niemyjski
@niemyjski
Mar 22 2016 16:20
eh I’m fixing the build
Bill Henning
@BillHenning
Mar 22 2016 16:21
tease
Blake Niemyjski
@niemyjski
Mar 22 2016 16:21
looks like build server updated from node 5.7 yo 5.8 and there is a failure with that

npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.8
npm ERR! Windows_NT 6.3.9600
npm ERR! argv "C:\Program Files (x86)\nodejs\node.exe" "C:\Program Files (x86)\nodejs\node_modules\npm\bin\npm-cli.js" "install"
npm ERR! node v5.8.0
npm ERR! npm v3.7.3
npm ERR! code ELIFECYCLE

npm ERR! phantomjs-prebuilt@2.1.6 install: node install.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the phantomjs-prebuilt@2.1.6 install script 'node install.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the phantomjs-prebuilt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node install.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs phantomjs-prebuilt
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls phantomjs-prebuilt
npm ERR! There is likely additional logging output above.

Blake Niemyjski
@niemyjski
Mar 22 2016 17:02
awesome builds failing because phantomjs download failes due to rate limiting by bitbucket
Medium/phantomjs#503
Eric J. Smith
@ejsmith
Mar 22 2016 17:04
Are the tests even being run?
Blake Niemyjski
@niemyjski
Mar 22 2016 17:10
yes
on prepublish
although I’ve been tyring to track down a dang race issue that occasionally occurs where the tests arn’t detected
is finally live
Blake Niemyjski
@niemyjski
Mar 22 2016 17:28
let me know what you all think :)
Bill Henning
@BillHenning
Mar 22 2016 17:32
better but i wonder if going darker than than the header bg would look even better i the focused textbox
Blake Niemyjski
@niemyjski
Mar 22 2016 17:33
you could try it locally :)
Blake Niemyjski
@niemyjski
Mar 22 2016 17:50
exceptionless/Foundatio#31
@ejsmith isn’t there a way to strong name it as part of the build process.. guess doing this would muddy our build process pretty good :(
Eric J. Smith
@ejsmith
Mar 22 2016 17:52
Yeah, I'm sure we will have to create separate packages at some point. Maybe it will be easier with the new project format.
Blake Niemyjski
@niemyjski
Mar 22 2016 17:52
yeah
@BillHenning were you able to change the collor any?
Bill Henning
@BillHenning
Mar 22 2016 17:53
sorry no time
Blake Niemyjski
@niemyjski
Mar 22 2016 17:53
I think we are sitting pretty good. question is are we good to deploy it. We can always make changes later.
it’s definitely better than what it was before and a night and day better on mobile
Eric J. Smith
@ejsmith
Mar 22 2016 17:55
Probably good enough. Let's go ahead.
Blake Niemyjski
@niemyjski
Mar 22 2016 17:55
ok
says you didn’t sign the cla
lol
exceptionless/Exceptionless.UI#85
I’m going to spend a short amount of time cleaning up issues and getting the .net build working…. I also reached out to the elastic guys...
Bill Henning
@BillHenning
Mar 22 2016 17:56
think you can trust @ejsmith? he's kind of shady
Blake Niemyjski
@niemyjski
Mar 22 2016 17:56
idk
lol
Eric J. Smith
@ejsmith
Mar 22 2016 17:59
That guy sucks.
Blake Niemyjski
@niemyjski
Mar 22 2016 18:00
oh man, I’m getting trolled by something.. Something in my office I think the monitor stand started making noises like a vibration.
who knows could of been a really small earth quake.. lasted thirty seconds and now it’s gone
was super odd
maybe the build server was burning down :D
guess we shall see how many people are ready for the new search ui
Blake Niemyjski
@niemyjski
Mar 22 2016 18:06
new search is live and everyone should have it
@jmoeltjen can you write up a blog post on this. Here is the previous images..
Screen Shot 2016-03-22 at 1.02.35 PM.png
Screen Shot 2016-03-22 at 1.04.09 PM.png
Screen Shot 2016-03-22 at 1.03.55 PM.png
Screen Shot 2016-03-22 at 1.03.34 PM.png
————————— Start of new experience -----------------------
Screen Shot 2016-03-22 at 1.05.00 PM.png
Screen Shot 2016-03-22 at 1.05.47 PM.png
Screen Shot 2016-03-22 at 1.04.41 PM.png
Screen Shot 2016-03-22 at 1.07.40 PM.png
Blake Niemyjski
@niemyjski
Mar 22 2016 18:11
I hope this helps people know they are filtered
This message was deleted
Blake Niemyjski
@niemyjski
Mar 22 2016 19:52
@/all what kind of dashboards would you like to see next?
Bill Henning
@BillHenning
Mar 22 2016 19:57
exceptionless/Exceptionless.UI#78
Blake Niemyjski
@niemyjski
Mar 22 2016 20:03
@srijken just fixed the .net build and build warnings :)
anyone else have a vote or want that first as well? :)
looking for the biggest business value add
when it comes to charts
kinda feel like end users would already get that on websites but not desktop apps.
guess from my view how does knowing the location help me to identify and fix bugs?
kinda helps in planning scope / knowing if I should add a loal to my app
locale*
Bill Henning
@BillHenning
Mar 22 2016 20:06
you are servicing two separate functionalities here... exception tracking (bugs) and general usage stats
Blake Niemyjski
@niemyjski
Mar 22 2016 20:06
yeah
Eric J. Smith
@ejsmith
Mar 22 2016 20:06
yeah, we need to start building out dashboards for each.
Bill Henning
@BillHenning
Mar 22 2016 20:06
just saying, every other stats system has that kind of thing
among others
Eric J. Smith
@ejsmith
Mar 22 2016 20:07
general event stats… and errors per user, etc… event type distribution...
then session / usage data
Blake Niemyjski
@niemyjski
Mar 22 2016 20:07
I want to add value while not losing focus. I think top goal is to help give you insight into fixing errors / knowing how they are coming / what features to focus on or what feature is buggy
like doing something just because everyone else has it I don’t think stands out as to why we should do it. Can we do something else that people don’t have awesome?
idk just my personal thoughts. I have no problem working on either
Bill Henning
@BillHenning
Mar 22 2016 20:09
fine if you want to hit other things first, but just saying i eventually want that sort of location info and other stuff i can post about because that's what i'd expect from an analytics system
Eric J. Smith
@ejsmith
Mar 22 2016 20:09
I agree somewhat…
we should start with things like number of session, sessions with errors… what percentage of users are affected by a stack of events… what percentage of sessions are effected by a stack of errors.
Bill Henning
@BillHenning
Mar 22 2016 20:10
otherwise you force me to use your stuff (which does some stats analytics) and another service to get meaningful stats
Eric J. Smith
@ejsmith
Mar 22 2016 20:11
we need to give data that helps people decide what to fix
Bill Henning
@BillHenning
Mar 22 2016 20:11
yeah that's all good info
Sander Rijken
@srijken
Mar 22 2016 20:11
@niemyjski there’s also this thing where I have to revert to looking at the JSON to figure out the real problem.. trying to dig up the specific issue
Blake Niemyjski
@niemyjski
Mar 22 2016 20:11
ok
yeah I’d like to view raw event json..
Eric J. Smith
@ejsmith
Mar 22 2016 20:11
yes
Blake Niemyjski
@niemyjski
Mar 22 2016 20:11
should do that
really quick win
Eric J. Smith
@ejsmith
Mar 22 2016 20:11
we need tools to help people get value from the system.
Sander Rijken
@srijken
Mar 22 2016 20:12
uhm
Blake Niemyjski
@niemyjski
Mar 22 2016 20:12
yeah I completely agree
Sander Rijken
@srijken
Mar 22 2016 20:12
I don’t want to look at the JSON is what I’m saying
Blake Niemyjski
@niemyjski
Mar 22 2016 20:12
@BillHenning don’t get me wrong. I want all that stuff too and we’ll get it..
Eric J. Smith
@ejsmith
Mar 22 2016 20:12
our biggest value that we are trying to provide is visibility into issues in your app and prioritizing what to spend time fixing.
Blake Niemyjski
@niemyjski
Mar 22 2016 20:12
can you find that issue?
yeah
@ejsmith my biggest question is how can we make that happen? Are we doing something wrong?
Eric J. Smith
@ejsmith
Mar 22 2016 20:14
we show you what errors are happening the most, but not which ones are affecting the most people.
Blake Niemyjski
@niemyjski
Mar 22 2016 20:14
Screen Shot 2016-03-22 at 3.14.04 PM.png
Screen Shot 2016-03-22 at 3.13.36 PM.png
Eric J. Smith
@ejsmith
Mar 22 2016 20:14
what do you mean?
Blake Niemyjski
@niemyjski
Mar 22 2016 20:14
that’s live data
Sander Rijken
@srijken
Mar 22 2016 20:14
searching
Blake Niemyjski
@niemyjski
Mar 22 2016 20:14
99% of events are not marked as fixed
granted we have different event types
Eric J. Smith
@ejsmith
Mar 22 2016 20:15
because a lot of people don’t care about marking them fixed… they just want the visibility.
Sander Rijken
@srijken
Mar 22 2016 20:15
other thing; when something starts happening a lot, notifications should be triggered
Blake Niemyjski
@niemyjski
Mar 22 2016 20:15
97% if you are filtered for errors with 12% hidden.
Eric J. Smith
@ejsmith
Mar 22 2016 20:16
intelligent alerting would be another important thing… but that will be triggered by us providing more statistics.
Sander Rijken
@srijken
Mar 22 2016 20:17
hmm maybe this issue is already solved?
Eric J. Smith
@ejsmith
Mar 22 2016 20:17
I would really like to be able to detect anomolies in the trends and alert people.
Sander Rijken
@srijken
Mar 22 2016 20:18
I can’t find it, it has to do with EF exceptions with validation errors
it’s very hard to find those
Blake Niemyjski
@niemyjski
Mar 22 2016 20:20
yeah
@srijken if you can link me next time you see it, I can create an issue and work on that.
Sander Rijken
@srijken
Mar 22 2016 20:20
maybe it’s just this one? exceptionless/Exceptionless.UI#59
Blake Niemyjski
@niemyjski
Mar 22 2016 20:23
Screen Shot 2016-03-22 at 3.23.24 PM.png
@ejsmith @BillHenning maybe this should be worked on..
get this a lot.. that overview page could have a chart break down for event type.
Bill Henning
@BillHenning
Mar 22 2016 20:25
could also redo your pricing structure per what eric described a while back... anyone tracking session data will kill their plans as is
Sander Rijken
@srijken
Mar 22 2016 20:25
yeah, we tried for half day
Bill Henning
@BillHenning
Mar 22 2016 20:26
it needs to be data size based instead of count based
Sander Rijken
@srijken
Mar 22 2016 20:26
or maybe session count, but heartbeat count is.. weird
Eric J. Smith
@ejsmith
Mar 22 2016 20:27
well, 1 thing we were talking about that would help the issue is to not count session heartbeats against your plan limits at all.
it doesn’t solve the bigger problem of small events costing the same as larger events, but switching to usage based billing would be a big project.
Sander Rijken
@srijken
Mar 22 2016 20:30
@niemyjski exceptions details about exceptionless/Exceptionless.UI#59 in private chat
Blake Niemyjski
@niemyjski
Mar 22 2016 20:37
they aren’t tracking session data.
thanks :)
yeah.. that’s a tough one (maybe bill has ideas on how to display extended data for inner errors while keeping context on where it came from..
Sander Rijken
@srijken
Mar 22 2016 20:39
maybe change how the exception is displayed
Blake Niemyjski
@niemyjski
Mar 22 2016 20:40
sigh.. so if someone deletes a stack of events we have no clue if there plan total matches
Sander Rijken
@srijken
Mar 22 2016 20:40
right now you see the stack
Blake Niemyjski
@niemyjski
Mar 22 2016 20:40
and they left feeling shafted..
Sander Rijken
@srijken
Mar 22 2016 20:40
but suppose you hit an exception in VS, you have Locals -> $exception, that you can expand and look at its properties and stuff like that?
Blake Niemyjski
@niemyjski
Mar 22 2016 20:40
yeah, could change it up. but it’s nice seeing exactly how it would be in your browser or .net
Sander Rijken
@srijken
Mar 22 2016 20:41
yeah i get that
maybe have both?
Blake Niemyjski
@niemyjski
Mar 22 2016 20:42
could, want to work on a mockup of what you think it would look like?
or maybe just indent extended data
or a popup for child data?
Sander Rijken
@srijken
Mar 22 2016 20:44
popup sucks
because child data can have children
Blake Niemyjski
@niemyjski
Mar 22 2016 20:52
yeah that kinda sucks
Sander Rijken
@srijken
Mar 22 2016 21:18
just synced up deduplication branch with your build fix
Blake Niemyjski
@niemyjski
Mar 22 2016 21:18
:)
@ejsmith just added the throttleing one to this: exceptionless/Exceptionless#177
sucks. cause you can’t just have a job listening to a message bus unless you do dedicated job when a shared work item job would be perfect..
and that’s more work than I wanted to byte off right now
might be a good idea for a job type..
run this job and anytime we get this message type on the message bus call this job
Eric J. Smith
@ejsmith
Mar 22 2016 21:22
you can have code that listens to the messagebus and then enqueues a work item.
Blake Niemyjski
@niemyjski
Mar 22 2016 21:22
yeah
Eric J. Smith
@ejsmith
Mar 22 2016 21:22
so what is the issue?
Blake Niemyjski
@niemyjski
Mar 22 2016 21:22
think we would use that in other places?
guess it wouldn’t hurt
@srijken what did you do
Sander Rijken
@srijken
Mar 22 2016 21:23
just merge
Blake Niemyjski
@niemyjski
Mar 22 2016 21:23
I just changed that class but the only thing I updated was xml docs
something in that plugin is failing
what’s int65
Sander Rijken
@srijken
Mar 22 2016 21:24
long
Blake Niemyjski
@niemyjski
Mar 22 2016 21:24
hmm
MessageBusWorkItemJob
kind of a convertor but could queue up / convert any message into a work item
Sander Rijken
@srijken
Mar 22 2016 21:28
@niemyjski it’s because the ctor of DuplicateCheckerPlugin has a parameter I think
think TinyIOC doesn’t understand optional parameters?
Sander Rijken
@srijken
Mar 22 2016 21:33
that’s it
Blake Niemyjski
@niemyjski
Mar 22 2016 21:34
nope
they don’t :(
can’t have any optional parameters :(
Sander Rijken
@srijken
Mar 22 2016 21:34
I found out the hard way hehe
it’s green
Blake Niemyjski
@niemyjski
Mar 22 2016 21:35
how’d I do the heartbeat plugin?
Sander Rijken
@srijken
Mar 22 2016 21:37
with a conditional parameter
might be an indication of test coverage?
Blake Niemyjski
@niemyjski
Mar 22 2016 21:37
yeah
could be
Sander Rijken
@srijken
Mar 22 2016 21:38
master:

// * Detailed results *
DeduplicationBenchmarks_TestBenchmark1
Mean = 2.5274 ms, StdError = 0.0368 ms (1.46%); N = 38, StdDev = 0.2270 ms
Min = 2.3707 ms, Q1 = 2.3941 ms, Median = 2.4500 ms, Q3 = 2.5520 ms, Max = 3.2841 ms
IQR = 0.1579 ms, LowerFence = 2.1573 ms, UpperFence = 2.7889 ms
ConfidenceInterval = [2.4552 ms; 2.5996 ms] (CI 95%)

deduplication:

// * Detailed results *
DeduplicationBenchmarks_TestBenchmark1
Mean = 84.2079 us, StdError = 0.2843 us (0.34%); N = 20, StdDev = 1.2712 us
Min = 83.1863 us, Q1 = 83.5381 us, Median = 83.7906 us, Q3 = 84.4324 us, Max = 88.7887 us
IQR = 0.8943 us, LowerFence = 82.1966 us, UpperFence = 85.7739 us
ConfidenceInterval = [83.6507 us; 84.7650 us] (CI 95%)
Blake Niemyjski
@niemyjski
Mar 22 2016 21:38
but it works I’ve tested it
maybe how it’s added
?
Sander Rijken
@srijken
Mar 22 2016 21:38
if you test it explicitly, it’s fine
if you test it in the pipeline, then it fails
Blake Niemyjski
@niemyjski
Mar 22 2016 21:38
dang
yeah probably need more tests around that
Sander Rijken
@srijken
Mar 22 2016 21:38
if you create the instance yourself, you don’t need IoC
it’s still crazy how much faster this thing is
Blake Niemyjski
@niemyjski
Mar 22 2016 21:45
yeah
that’s good
Sander Rijken
@srijken
Mar 22 2016 21:45
why did the old plugin do json parsing?
Blake Niemyjski
@niemyjski
Mar 22 2016 21:46
I’m not sure let me look
@ejsmith what will happen to message bus subscribers if redis goes down?
nm, will continue to work :)
@srijken it wouldn’t
Sander Rijken
@srijken
Mar 22 2016 21:49
sure does
when it attempts to fetch stuff from DataDictionary
Blake Niemyjski
@niemyjski
Mar 22 2016 21:49
so the error could be in the event extended data as a string, we passed the serializer to it to ensure that we could get iti f it was
If you look at getValue it will do a type check before trying to do json.
if you are seeing it doing serialization
Sander Rijken
@srijken
Mar 22 2016 21:50
52% of all time during benchmark is spent doing JSON things
Blake Niemyjski
@niemyjski
Mar 22 2016 21:50
then it’s a huge bug if it’s in object form
can we figure out how that code is being called
Sander Rijken
@srijken
Mar 22 2016 21:50
should’ve drilled down deeper here:
Blake Niemyjski
@niemyjski
Mar 22 2016 21:51
        object data;
        if (!items.TryGetValue(key, out data))
            throw new KeyNotFoundException(String.Format("The key '{0}' was not found.", key));

        if (data == null || data is T)
            return (T)data;

        var json = data as string ?? data.ToString();
        serializer = serializer ?? DependencyResolver.Default.GetJsonSerializer();
        return serializer.Deserialize<T>(json);
Sander Rijken
@srijken
Mar 22 2016 21:51
lemme do it again
Blake Niemyjski
@niemyjski
Mar 22 2016 21:51
that’s the only time it should ever be called
Sander Rijken
@srijken
Mar 22 2016 21:51
or lets just run the debugger with breakpoint set on deserialize
Blake Niemyjski
@niemyjski
Mar 22 2016 21:51
which side is the old side?
Sander Rijken
@srijken
Mar 22 2016 21:51
right
Blake Niemyjski
@niemyjski
Mar 22 2016 21:51
right is old
Sander Rijken
@srijken
Mar 22 2016 21:51
yeah
Blake Niemyjski
@niemyjski
Mar 22 2016 21:52
so looks like 2ms is spent just calling GetJsonSerializer which should be from a cache and crazy fast
sucks is that it’s not latebound :(
but evaluated everytime
Sander Rijken
@srijken
Mar 22 2016 21:53
3ms.. but that’s for 480 calls
Blake Niemyjski
@niemyjski
Mar 22 2016 21:53
yeah
but yeah
Sander Rijken
@srijken
Mar 22 2016 21:54
eh
the tests are gone from master?
nevermind
wrong branch
Blake Niemyjski
@niemyjski
Mar 22 2016 21:55
crap
so
we could make some small changes and speed up all that stuff pretty good
Sander Rijken
@srijken
Mar 22 2016 21:55
I sure hope I didn’t break the dedup branc
Blake Niemyjski
@niemyjski
Mar 22 2016 21:55
so all of our plugins call the resolver at some point..
well crap..
our plugins are stateless so I think they are reused...
so we couldn’t just set the local instance of the resolver in the plugin as multiple clients could use it
could just make tinyioc smarter and faster but not something I want to spend anytime at and it’s fast enough
Sander Rijken
@srijken
Mar 22 2016 22:00
nevermind
stupid me
Blake Niemyjski
@niemyjski
Mar 22 2016 22:01
hehe
it’s all good
Sander Rijken
@srijken
Mar 22 2016 22:04
makes perfect sense
it’s fetching @error from the datadictionary
that’s stored there in JSON format
so ErrorPlugin comes in, takes the exception and stores it in JSON
after that comes duplicatechecker, and that parses the JSON back to get the error
uhm no
this could be a side effect because I’m loading events from files?
Sander Rijken
@srijken
Mar 22 2016 22:14
yep
so this is great… the benchmark test isn’t testing a real life scenario
Blake Niemyjski
@niemyjski
Mar 22 2016 22:19
yeah could be
so need to have the constructor deserialize them into an error object and then set it on extended data.
well
well crap
let me look at something
yeah that benchmark is pointless
it’s priorty 30
and will always run after the event has been deserialized
and broken down
guess we need to read those events and deserialize them in the constructor
Sander Rijken
@srijken
Mar 22 2016 22:23
yeah
Blake Niemyjski
@niemyjski
Mar 22 2016 22:23
but that should happen
those are known data keys
so they should be automatically deserialized
I think it’s safe to say we don’t have to pass the serializer to that but just to be safe we don’t know how people will use it
we wanted to flow it through
Sander Rijken
@srijken
Mar 22 2016 22:25
I’ll make the change, see what happens
that’s more like it now
I also added benchmarking based on the GetException() flow
that’s now slower than the large event, which is also weird
Blake Niemyjski
@niemyjski
Mar 22 2016 22:42
:(
something is goofy
I can pair on it if you’d like
love windows 10
set my timezone to central america
this whole time I’ve been in windows 10. the time has lied to me lol
if only they had geo ip, or location services that actually was integrated into the system (#attention to details)
Sander Rijken
@srijken
Mar 22 2016 22:48
now we’re getting somewhere
old code: 0,02ms
new code: 0,3ms
Blake Niemyjski
@niemyjski
Mar 22 2016 22:54
so a bit slower
Sander Rijken
@srijken
Mar 22 2016 22:55
on appveyor (which is faster than my machine..)
master:

               Method |     Median |    StdDev | 
--------------------- |----------- |---------- |
  IdenticalExceptions |  1.9853 us | 0.0285 us | 
 LargeEventsFromFiles | 11.0939 us | 0.1932 us | 
     RandomExceptions |  1.9616 us | 0.0134 us |


deduplication:

               Method |      Median |    StdDev | 
--------------------- |------------ |---------- |
  IdenticalExceptions |   6.9724 us | 0.1512 us | 
 LargeEventsFromFiles | 303.8267 us | 6.0876 us | 
     RandomExceptions |   7.8908 us | 0.5508 us |
the only bad thing about this benchmark thing is that it takes a minute to run
the thing is ofcourse that this pays for itself very quickly when duplicates do occur
Blake Niemyjski
@niemyjski
Mar 22 2016 23:03
large event is much longer
but I guess to be expected
I can live with that
good to know how long this stuff is taking
really need to take these benchmark results and submit them to exceptionless then we can see trends over time :)
Sander Rijken
@srijken
Mar 22 2016 23:04
and maybe also test/add other plugins and stuff like that
but to do that you need to figure out a way to make it run faster, or run the benchmarks separate
Blake Niemyjski
@niemyjski
Mar 22 2016 23:06
yeah
I know in Generator
we had legacy code paths that had benchmarks (just outputting to console not using this lib)
and new code paths and we did a visual diff
depends on if we want to keep legacy code around
looks like you can tweak numbers there
Blake Niemyjski
@niemyjski
Mar 22 2016 23:07
cool
Sander Rijken
@srijken
Mar 22 2016 23:07
it’s trying to do a good job to achieve a certain std dev
and do a measure to determine run count, and then do a separate warmup
Blake Niemyjski
@niemyjski
Mar 22 2016 23:08
@ejsmith I’m going to finish this notifications code up but it leaves us sitting pretty good for exceptionless/Exceptionless#177.. I have a messagebusbroker job that converts messages to work items.. Then I have an organizationnotificationsworkitemjob that looks at the model and sends out a mail message.
just need to create the html now and we can expand on it further down the road :)
@srijken yeah I think it’s a good lib and if it takes a bit longer to run that’s ok as long as it adds value
how long does it take to run all benchmarks now
Sander Rijken
@srijken
Mar 22 2016 23:10
1 minute
if it goes beyond that, we should optimize the config
Blake Niemyjski
@niemyjski
Mar 22 2016 23:11
yeah
Sander Rijken
@srijken
Mar 22 2016 23:12
maybe I’ll use it for more things in the future, looks pretty nice
it would be good to have a separate test runner for this
Blake Niemyjski
@niemyjski
Mar 22 2016 23:12
what’s the pros?
why wouldn’t you want to run them when you do run all?
Sander Rijken
@srijken
Mar 22 2016 23:13
maybe
we don’t verify anything though
now that we have the json test files in the repository, I also added this one: https://github.com/exceptionless/Exceptionless.Net/blob/deduplication/Source/Tests/Plugins/PluginTests.cs#L569
good to have that to ensure we didn’t mis a GetHashCode implementation somewhere
Blake Niemyjski
@niemyjski
Mar 22 2016 23:15
that runs all of them?
yeap
Sander Rijken
@srijken
Mar 22 2016 23:16
all files you mean?
you can just throw in new files and it’ll pick them up
Blake Niemyjski
@niemyjski
Mar 22 2016 23:16
yeah, that will be godo
so perf is good
anything else you think we need to do?
Sander Rijken
@srijken
Mar 22 2016 23:18
I think this is it
How about server side handling ?
Is the value already doing something useful?
Sander Rijken
@srijken
Mar 22 2016 23:24
so when an event gets sent in, with value=100, do I see that somewhere?
Blake Niemyjski
@niemyjski
Mar 22 2016 23:28
no
guess we need to figure that out :(
welp
hmm
were close but need some work there
could do it
if we did our current metrics but then did
sum:value and then added that to counter
Sander Rijken
@srijken
Mar 22 2016 23:30
I think that has to happen before we release any of this
Blake Niemyjski
@niemyjski
Mar 22 2016 23:30
but that’s going to throw everything off it that value is a metric
yeah I know
Sander Rijken
@srijken
Mar 22 2016 23:30
otoh, the javascript client already does the same thing right
Blake Niemyjski
@niemyjski
Mar 22 2016 23:30
we could do it very easy but the big gotcha is what if you are setting value on your events
we don’t know server side if it’s from a plugin (for the count) or something else
maybe this needs to go in extended data
then we could sum it
@ejsmith thoughts
@srijken really? dang @frankebersoll is ontop of it
I don’t think we are incrementing counters tho
Sander Rijken
@srijken
Mar 22 2016 23:32
prolly not, but the deduplication plugin there works I think
Blake Niemyjski
@niemyjski
Mar 22 2016 23:32
yeah
Sander Rijken
@srijken
Mar 22 2016 23:32
so counters are too low for frequent javascript errors
Blake Niemyjski
@niemyjski
Mar 22 2016 23:33
Idk I think maybe setting value isn’t going to work.. We’d have to set an extended data key that we know about as a simple type (int) then we can query buy it as well as sum it
not really..
what do you mean by too low?
Sander Rijken
@srijken
Mar 22 2016 23:33
events are being dropped client side
Eric J. Smith
@ejsmith
Mar 22 2016 23:34
we already have the ability to change to showing the sum on the stacks… but that might not be enough.
Blake Niemyjski
@niemyjski
Mar 22 2016 23:35
yes
but we don’t know in this case if it’s a value they set or deduped rollup
Eric J. Smith
@ejsmith
Mar 22 2016 23:36
Why do we care?
He isn’t rolling up any that have value set on them.
Blake Niemyjski
@niemyjski
Mar 22 2016 23:36
because if it’s a stack of counter type events and we set the total to the sum
it won’t represent the actual number of events
we’d need todo total number of events + sum:data.duplicated
something like that
Eric J. Smith
@ejsmith
Mar 22 2016 23:37
it will if we default zeros to 1s.
Blake Niemyjski
@niemyjski
Mar 22 2016 23:38
let me say this another way… We will be completely wrong reporting the total events on any stack where the user sets a value
Eric J. Smith
@ejsmith
Mar 22 2016 23:38
I think we could add an option for that on the chart.
Sander Rijken
@srijken
Mar 22 2016 23:38
sum vs count switch?
Blake Niemyjski
@niemyjski
Mar 22 2016 23:38
that sucks
if we split the duplicated events out into a counter… we could do learning on those and even boost those for frequency detection
cause we know they are happening more often locally (but we won’t know on a global scale, but it’s probably a safe guess)
if it’s just on the generic value field..
it’s a guessing game
as to what the value represents
anyone else following what I’m saying
?
Sander Rijken
@srijken
Mar 22 2016 23:41
yeah I get it
Eric J. Smith
@ejsmith
Mar 22 2016 23:41
yes, but I am hoping to keep it simple and give options that allow me to use value for other thigns as well.
need to think about it some more.
Blake Niemyjski
@niemyjski
Mar 22 2016 23:41
ok
Eric J. Smith
@ejsmith
Mar 22 2016 23:41
heading to tennis now.
Blake Niemyjski
@niemyjski
Mar 22 2016 23:41
I’m heading to the gym
guess well think on this and come back to it.. @srijken let us know your thoughts as well :)
Sander Rijken
@srijken
Mar 22 2016 23:42
sure :)
Blake Niemyjski
@niemyjski
Mar 22 2016 23:43
if we move it do a different field.. We could roll up other event types like this
Sander Rijken
@srijken
Mar 22 2016 23:43
huh?
Blake Niemyjski
@niemyjski
Mar 22 2016 23:44
{ type=“counter”, value: 1 }, { type=“counter”, value:2 } and we could submit 1 event with { type=“counter”, value: 3, data: { DEDUPEDKEY??: 2}
Sander Rijken
@srijken
Mar 22 2016 23:44
you don’t know that you can add the values in that case?
Blake Niemyjski
@niemyjski
Mar 22 2016 23:44
then we could get rolled up counters but then an average on all the values we rolled up
I’m saying we could special case metric type events (that we want to create… like counter, timing etc..)
Sander Rijken
@srijken
Mar 22 2016 23:45
if the value is temperature.. or benchmark test duration.. or something like that.. you don’t want to add them
Blake Niemyjski
@niemyjski
Mar 22 2016 23:45
yeah..
well it would be based on source and type for the metric typed events
Sander Rijken
@srijken
Mar 22 2016 23:45
so you have to have knowledge about what value represents before you can roll up events that have value set
Blake Niemyjski
@niemyjski
Mar 22 2016 23:45
that make sense to roll up
Sander Rijken
@srijken
Mar 22 2016 23:46
are those common duplicates?
Blake Niemyjski
@niemyjski
Mar 22 2016 23:46
some questions to ask
:)
just throughing ideas out there
Sander Rijken
@srijken
Mar 22 2016 23:46
uhu
Blake Niemyjski
@niemyjski
Mar 22 2016 23:47
would be nice to just use the value field. I just don’t see how we could do it without 50 dropdowns on the site.
and then what do you do when you are on the org page and you want a total number of events
can’t just sum the value across everything
Sander Rijken
@srijken
Mar 22 2016 23:48
I think it’s simpler in the end to have it in its own field
having it in the value keeps the events simple, but adds complexity elsewhere.. and maybe a lot of it
Blake Niemyjski
@niemyjski
Mar 22 2016 23:49
yeah, that’s what I’m thinking :(
Sander Rijken
@srijken
Mar 22 2016 23:49
and that could increase when you think of new event types
I’m outta here :)
Blake Niemyjski
@niemyjski
Mar 22 2016 23:56
Have a good night