< Return to Video

RailsConf 2014 - Using Software Analytics to Help Make Better Business Decisions

  • 0:17 - 0:18
    SHIV KUMAR: Thanks so much for, for coming
  • 0:18 - 0:21
    out for this. This is both Vince and I's first
  • 0:21 - 0:24
    time speaking at RailsConf, and actually my
  • 0:24 - 0:26
    first time as a developer speaking at anything.
  • 0:26 - 0:30
    So this is, this is a really cool opportunity
    for me,
  • 0:30 - 0:32
    so I'm. I think we're both really humbled
    that
  • 0:32 - 0:35
    you all could come out and, and talk with
    us about this.
  • 0:35 - 0:36
    VINCE FOLEY: Yeah.
  • 0:36 - 0:36
    S.K.: So-
  • 0:36 - 0:38
    V.F.: Especially since you had to come all
    the
  • 0:38 - 0:39
    way down to the caves to find us.
  • 0:39 - 0:42
    S.K.: Yeah. Hope you got your jacket, cause
    it's
  • 0:42 - 0:45
    cold in here. So yeah, my name's Shiv. I
  • 0:45 - 0:47
    am a software engineer at New Relic. And I
  • 0:47 - 0:50
    work on what is, we call it our business
  • 0:50 - 0:53
    enablement team. It's kind of our internal
    engineering team
  • 0:53 - 0:56
    that serves all of the various business units
    within
  • 0:56 - 0:59
    the company. And you'll see throughout the
    presentation, I'll
  • 0:59 - 1:01
    give a couple of examples of what that means,
  • 1:01 - 1:03
    so we can get into that a little bit
  • 1:03 - 1:04
    more. Definitely.
  • 1:04 - 1:07
    V.F.: And my name's Vince. I work on the
  • 1:07 - 1:11
    RPM UI that you're all familiar with, hopefully.
    Tending
  • 1:11 - 1:14
    to work on more infrastructure backend kind
    of stuff
  • 1:14 - 1:17
    these days. I've been with New Relic for about
  • 1:17 - 1:20
    a year. I remember last year at RailsConf
    in
  • 1:20 - 1:23
    Portland, I was interviewing with them. So
    this is
  • 1:23 - 1:25
    a nice little anniversary for me.
  • 1:25 - 1:28
    S.K.: Cool. So just to get a quick raise
  • 1:28 - 1:31
    of hands, just to sort of understand who's
    in
  • 1:31 - 1:33
    the audience. So first of all, who here has
  • 1:33 - 1:36
    heard of New Relic before? OK, good. That
    was
  • 1:36 - 1:38
    kind of planned. Keep your hand in the air,
  • 1:38 - 1:42
    though. I just wanted to get everybody's hand
    in
  • 1:42 - 1:42
    the air.
  • 1:42 - 1:45
    Who's, who's currently using New Relic, either
    as a
  • 1:45 - 1:49
    side project or in a production application?
    OK. And
  • 1:49 - 1:51
    then keep your hand raised if you're using
    it
  • 1:51 - 1:55
    specifically in a production application currently.
    All right. And
  • 1:55 - 1:57
    then keep your hand raised if you have checked
  • 1:57 - 2:01
    New Relic in the last seven days. OK. That's
  • 2:01 - 2:01
    great.
  • 2:01 - 2:03
    V.F.: That's solid.
  • 2:03 - 2:06
    S.K.: And. Hands can go down now, sorry.
  • 2:06 - 2:07
    AUDIENCE: [laughter]
  • 2:07 - 2:11
    S.K.: And how many of you are, let's say,
  • 2:11 - 2:16
    software engineers? So most of you. How about,
    software
  • 2:16 - 2:19
    writers? Soft- business people. Business.
    If you consider yourself
  • 2:19 - 2:21
    more of a business. What about a blend between
  • 2:21 - 2:26
    those two? Probably a lot of you. OK. Cool.
  • 2:26 - 2:28
    So the purpose of this presentation, what
    we kind
  • 2:28 - 2:30
    of wanted to do is go through software analytics
  • 2:30 - 2:33
    as an idea, as a concept, and how that
  • 2:33 - 2:37
    can relate to making business decisions. So,
    regardless of
  • 2:37 - 2:39
    what your choice is for a software analytics
    tool
  • 2:39 - 2:41
    - it sounds like a lot of you have
  • 2:41 - 2:44
    used New Relic before and are using New Relic.
  • 2:44 - 2:46
    But regardless of the choice of tool, what
    we
  • 2:46 - 2:47
    want to get across is that you can use
  • 2:47 - 2:52
    software analytics to really inform your business
    decisions. So,
  • 2:52 - 2:54
    throughout this presentation, what we're gonna
    do is start
  • 2:54 - 2:55
    with a bit of a product overview that Vince
  • 2:55 - 2:58
    is gonna walk through, and you know, we're
    at
  • 2:58 - 3:00
    a sponsored event, so we're gonna talk about
    New
  • 3:00 - 3:03
    Relic. And then what we really want to do
  • 3:03 - 3:07
    is show you about four, three or four specific
  • 3:07 - 3:09
    examples of how Vince and I have used New
  • 3:09 - 3:12
    Relic in our actual jobs to help inform business
  • 3:12 - 3:15
    decisions, kind of what we wa- what we're
    gonna
  • 3:15 - 3:17
    work on, how we prioritize our work and that
  • 3:17 - 3:20
    kind of stuff. So, some real life examples
    of
  • 3:20 - 3:22
    how we use New Relic.
  • 3:22 - 3:24
    And then hopefully have plenty of time for
    a
  • 3:24 - 3:26
    Q and A if you have questions. I'll let
  • 3:26 - 3:27
    Vince take it away.
  • 3:27 - 3:31
    V.F.: So, New Relic's been around for about
    six
  • 3:31 - 3:35
    years now. Started out just as Rails performance
    monitoring,
  • 3:35 - 3:39
    but it's expanded very greatly since then.
    We've added
  • 3:39 - 3:41
    a number of extra agents. So we work in
  • 3:41 - 3:48
    lots of environments: Java, dot net, PHP,
    Python. We
  • 3:48 - 3:50
    have a platform component that lets you build
    your
  • 3:50 - 3:52
    own agents of sorts, and so you can monitor
  • 3:52 - 3:57
    things like mySQL or memcache. Whatever you
    can write
  • 3:57 - 4:01
    a plugin for, you can hook into our infrastructure
  • 4:01 - 4:03
    and have that data be reported.
  • 4:03 - 4:06
    And lately we've started getting into mobile
    apps. So
  • 4:06 - 4:12
    we have a iOS agent, and we also have
  • 4:12 - 4:15
    been getting further into JavaScript with
    the Node agent
  • 4:15 - 4:19
    and a new browser JavaScript agent. So that's
    sort
  • 4:19 - 4:24
    of the history of how we've been spreading
    throughout
  • 4:24 - 4:27
    the infrastructure that all of our production
    apps run
  • 4:27 - 4:29
    in.
  • 4:29 - 4:33
    And so we're expanding this idea of performance
    monitoring
  • 4:33 - 4:38
    into what we call software analytics. And
    this is
  • 4:38 - 4:40
    a nice slide that's been put together by people
  • 4:40 - 4:44
    who aren't developers. But it's, it shows
    the expanse
  • 4:44 - 4:48
    of what it is we're trying to monitor. So
  • 4:48 - 4:50
    it started out as just, how is our app
  • 4:50 - 4:53
    performing? How is this server it's running
    on performing,
  • 4:53 - 4:55
    how it's using its resources. But there's
    a lot
  • 4:55 - 5:01
    more information embedded in the software
    that we're writing.
  • 5:01 - 5:03
    Since the software is about a domain, there's
    all
  • 5:03 - 5:08
    sorts of information about that domain that
    we can
  • 5:08 - 5:11
    start using to make better decisions. And,
    and that's
  • 5:11 - 5:14
    where we're heading as a company with the
    new
  • 5:14 - 5:20
    work that we're doing. The software analytics.
  • 5:20 - 5:23
    So the, the extent of what we're trying to
  • 5:23 - 5:25
    do right now is kind of shown here, and
  • 5:25 - 5:28
    what we're moving it further. But the really
    interesting
  • 5:28 - 5:30
    stuff is happening off to the right here with
  • 5:30 - 5:33
    this inside. That's one of our first steps
    into
  • 5:33 - 5:38
    something that raises the level of abstraction
    above the
  • 5:38 - 5:44
    infrastructure, above the technical, and gets
    into analyzing the
  • 5:44 - 5:48
    thing that you're doing, not just the infrastructure
    that
  • 5:48 - 5:51
    it's running on.
  • 5:51 - 5:56
    So APM is what we're calling the site that
  • 5:56 - 5:59
    you are very familiar with. It went from Rails
  • 5:59 - 6:04
    performance monitoring to application performance
    monitoring. And so this
  • 6:04 - 6:07
    is the infrastructure of what you're familiar
    with now.
  • 6:07 - 6:11
    We put the agent in whatever component we're
    talking
  • 6:11 - 6:15
    about, whether it's browser or your mobile
    app, your
  • 6:15 - 6:20
    server, your application itself. Send it up
    to the
  • 6:20 - 6:26
    collection tier. We start correlating, doing
    aggregation, and then
  • 6:26 - 6:30
    we present it to you in our UI.
  • 6:30 - 6:35
    And traditionally, APM is aggregated information,
    so we weren't
  • 6:35 - 6:39
    collecting every bit. We were taking averages
    over time,
  • 6:39 - 6:43
    taking sample traces and, and aggregating
    that to show
  • 6:43 - 6:45
    it can be aggregated. But what we're moving
    to
  • 6:45 - 6:49
    with insights is event-level resolution. So
    we're no longer
  • 6:49 - 6:53
    gonna be aggregating. We're saving up all
    the information
  • 6:53 - 6:56
    and we can do complex queries on it later.
  • 6:56 - 6:58
    So you don't have to, you're not in the
  • 6:58 - 7:01
    clouds. You're actually looking at, like,
    exactly what's been
  • 7:01 - 7:03
    happening on every request.
  • 7:03 - 7:06
    And that's required building a pretty deep
    and new
  • 7:06 - 7:09
    infrastructure for storing that and creating
    that. And that's
  • 7:09 - 7:12
    the backing of a few of the features in
  • 7:12 - 7:14
    our APM product, but also the majority of
    our
  • 7:14 - 7:16
    insights product.
  • 7:16 - 7:23
    So, what I'm gonna talk about, a couple new
  • 7:23 - 7:27
    features that are in APM, and since we're
    all
  • 7:27 - 7:30
    Ruby developers, one of the real interesting
    ones is
  • 7:30 - 7:34
    some of the new stuff that's been revealed
    with
  • 7:34 - 7:36
    some work in the agent that we've released
    very
  • 7:36 - 7:43
    recently regarding Ruby 2 point 1 garbage
    collection. So,
  • 7:44 - 7:47
    this is our staging environment. And you'll
    see this
  • 7:47 - 7:51
    deploy here is where we turned on Ruby 2
  • 7:51 - 7:54
    point 1. And it's just stock Ruby 2.1, no
  • 7:54 - 7:57
    out of band GC or anything. And now that
  • 7:57 - 8:00
    we're monitoring a lot of new information
    about the
  • 8:00 - 8:05
    garbage collection system, you'll see that
    our memory usage
  • 8:05 - 8:11
    drops significantly. The time spent in GC
    dropped significantly.
  • 8:11 - 8:17
    And the heap size got, dropped significantly
    as well.
  • 8:17 - 8:20
    So, this is a little bit of developer flavor
  • 8:20 - 8:23
    for you. But if you want to gather some
  • 8:23 - 8:27
    business insights, upgrade to Ruby 2 point
    1 for
  • 8:27 - 8:31
    sure. Like, it's, it's really a much better
    garbage
  • 8:31 - 8:33
    collection system.
  • 8:33 - 8:36
    And then another new feature that's backed
    by our
  • 8:36 - 8:43
    insights data store is histograms and percentiles.
    So, like
  • 8:43 - 8:47
    I was saying about average aggregated data,
    there's been
  • 8:47 - 8:50
    other talks about this too like. Sometimes
    important details
  • 8:50 - 8:53
    are lost in the muddle of averages, but we
  • 8:53 - 8:57
    actually have histograms available for all
    the metrics we
  • 8:57 - 9:01
    collect now and transactions. So you'll be
    able to
  • 9:01 - 9:04
    see things like where are the, the bumps.
    There's
  • 9:04 - 9:08
    often like a bimodal distribution and a lot
    of
  • 9:08 - 9:08
    requests.
  • 9:08 - 9:12
    And you can see percentiles. So what is it
  • 9:12 - 9:15
    like for the, every once in awhile, when there's
  • 9:15 - 9:18
    some weird database contention and that query
    takes forever,
  • 9:18 - 9:23
    like, how would those response times actually
    look like?
  • 9:23 - 9:26
    So, I'm gonna turn it back over for a
  • 9:26 - 9:29
    few more new features. You ready to tell them
  • 9:29 - 9:30
    about it?
  • 9:30 - 9:33
    S.K.: Yeah. So, so browser was released, let's.
    At
  • 9:33 - 9:35
    the, I want to say one or two months
  • 9:35 - 9:36
    ago. So it's pretty new. You might have seen
  • 9:36 - 9:39
    it pop up on the left hand side. Some
  • 9:39 - 9:40
    of the features were in APM before, but we
  • 9:40 - 9:43
    found out that there was enough of a need
  • 9:43 - 9:47
    for a frontend specific tool, a frontend developer
    specific
  • 9:47 - 9:48
    tool, that we could break it out into its
  • 9:48 - 9:50
    own tool. So we called it browser. So you'll
  • 9:50 - 9:52
    see it on the left hand tab within New
  • 9:52 - 9:54
    Relic. It's just called browser. And then
    your applications
  • 9:54 - 9:57
    will be in there.
  • 9:57 - 9:58
    And I'm gonna share with you a little story
  • 9:58 - 10:01
    about what happened with my team specifcally.
    So I
  • 10:01 - 10:05
    mentioned that I work with the marketing team
    within
  • 10:05 - 10:10
    this kind of business enablement group. And
    what that,
  • 10:10 - 10:12
    one of the, one of our main purposes is
  • 10:12 - 10:15
    to keep up the NewRelic dot com marketing
    store
  • 10:15 - 10:17
    front site. So anytime you just go to NewRelic
  • 10:17 - 10:22
    dot come, flashy, Ajax-y, jQuery stuff going
    on. It's
  • 10:22 - 10:24
    a pretty site and all that stuff. That's kind
  • 10:24 - 10:26
    of the team that I work on with a
  • 10:26 - 10:28
    bunch of frontend developers and stuff like
    that.
  • 10:28 - 10:32
    So, when browser monitoring came out, this,
    this kind
  • 10:32 - 10:35
    of crazy thing happened. So we didn't have
    access
  • 10:35 - 10:37
    to this data before, and what happens when
    the
  • 10:37 - 10:39
    guys in Portland come up with these new tools
  • 10:39 - 10:41
    is that, we get to use them first. And
  • 10:41 - 10:43
    usually that's pretty awesome experience,
    because all of the
  • 10:43 - 10:45
    sudden we have access to all this new data
  • 10:45 - 10:48
    that we just didn't have before.
  • 10:48 - 10:50
    So I'm gonna share with you a screen shot
  • 10:50 - 10:52
    of what we saw the first time we turned
  • 10:52 - 10:55
    into, we, we, we clicked into browser monitoring.
    It's
  • 10:55 - 10:57
    pretty small and it's actually gonna look
    a lot,
  • 10:57 - 10:59
    you know, very similar to what you're very
    used
  • 10:59 - 11:02
    to seeing in the New Relic APM tool. You've
  • 11:02 - 11:03
    got the charts at the top. You've got through
  • 11:03 - 11:06
    put. You can dig into page views just like
  • 11:06 - 11:08
    you can with transactions. And then there's
    these two
  • 11:08 - 11:11
    new boxes at the bottom right.
  • 11:11 - 11:15
    JavaScript errors and Ajax timing. These are
    brand new
  • 11:15 - 11:17
    features that we pulled out. And I think you'll
  • 11:17 - 11:18
    be able to see pretty quickly if you can
  • 11:18 - 11:21
    see this why it was pretty scary, scary to
  • 11:21 - 11:25
    use when we first opened this up and found
  • 11:25 - 11:27
    out that twenty to thirty percent of our page
  • 11:27 - 11:32
    loads had JavaScript errors. Which is a pretty
    scary
  • 11:32 - 11:33
    thought to think about, right. That's a lot
    of
  • 11:33 - 11:35
    JavaScript errors.
  • 11:35 - 11:38
    We knew about a few of them. And a
  • 11:38 - 11:39
    lot of them were not bringing down the site
  • 11:39 - 11:41
    by any means. They might have been older JavaScript
  • 11:41 - 11:44
    libraries that had some stuff in there that
    we
  • 11:44 - 11:45
    weren't using and it was throwing up some
    red
  • 11:45 - 11:49
    errors in the console. So not a big deal.
  • 11:49 - 11:50
    But then we wanted to dig deeper and find
  • 11:50 - 11:52
    out if there was anything in there that was
  • 11:52 - 11:54
    more serious, right.
  • 11:54 - 11:56
    So, when you click into JavaScript errors,
    you get,
  • 11:56 - 11:58
    again, another very similar view. And it's
    a breakdown
  • 11:58 - 12:01
    of all of your JavaScript errors over that
    time
  • 12:01 - 12:03
    period, and kind of, the amount, the number
    of
  • 12:03 - 12:05
    times that they happened. So it's ranked by
    the
  • 12:05 - 12:10
    number of times, in this case, and a lot
  • 12:10 - 12:13
    of them we weren't surprised by. And then
    we
  • 12:13 - 12:16
    started clicking around. So I wanted to click
    into
  • 12:16 - 12:18
    one and show you what we found when we
  • 12:18 - 12:21
    clicked into one. And we're not using an actual
  • 12:21 - 12:24
    demo here because we can't really get the
    internet
  • 12:24 - 12:27
    to work. So sorry about that.
  • 12:27 - 12:31
    But you'll see down here that it's pretty
    interesting.
  • 12:31 - 12:34
    So this JavaScript error is very specific.
    It's happening
  • 12:34 - 12:36
    basically only on Internet Explorer and probably
    some versions
  • 12:36 - 12:40
    of Firefox. So, yes. You know. Slap on our
  • 12:40 - 12:42
    wrist for not checking Internet Explorer,
    which we should
  • 12:42 - 12:45
    have done. But, you know, what, what I like
  • 12:45 - 12:47
    to think of, a lot of New Relic tools
  • 12:47 - 12:50
    are as, we as developers can go out and
  • 12:50 - 12:51
    develop a lot of really cool things and we're
  • 12:51 - 12:54
    not gonna catch all of the errors that happen.
  • 12:54 - 12:56
    But thankfully you can use tools like this
    to
  • 12:56 - 12:57
    catch the stuff that you don't, and then you
  • 12:57 - 13:00
    can go fix it so that people who are
  • 13:00 - 13:03
    hanging out on IE7 and 8 can maybe still
  • 13:03 - 13:06
    see our site a little bit, right.
  • 13:06 - 13:07
    So I also want to show off the Ajax
  • 13:07 - 13:09
    Timing. I don't have a specific story around
    this,
  • 13:09 - 13:11
    but it's, it's a pretty cool new feature.
    So
  • 13:11 - 13:15
    you can finally get level, detailed information
    into all
  • 13:15 - 13:17
    of your Ajax calls that are happening within
    your
  • 13:17 - 13:20
    site. So that includes anything that loads
    on page
  • 13:20 - 13:23
    load. So things like tracking tags. You'll
    see a
  • 13:23 - 13:27
    lot of like mix panel and Google stuff happening
  • 13:27 - 13:29
    on this slide.
  • 13:29 - 13:32
    And then you can dig into them and get,
  • 13:32 - 13:34
    get a level of detail including kind of the
  • 13:34 - 13:37
    amount of time spent in JavaScript callbacks.
    So it's
  • 13:37 - 13:40
    kind of a level of detail into your Ajax
  • 13:40 - 13:42
    calls that you may not have been able to
  • 13:42 - 13:43
    see before, and I'm sure you'll be able to
  • 13:43 - 13:48
    abstract a lot of cool stuff out of that.
  • 13:48 - 13:48
    Anything to add?
  • 13:48 - 13:51
    V.F.: No, but I really like the JavaScript
    pairs,
  • 13:51 - 13:52
    cause I helped build it.
  • 13:52 - 13:55
    S.K.: Are there any questions before we move
    onto
  • 13:55 - 13:57
    insights? Cause we kind of breezed through
    APM and
  • 13:57 - 13:57
    browser right there.
  • 13:57 - 13:57
    Yeah?
  • 13:57 - 14:01
    AUDIENCE: Could you go back to the 2 point
  • 14:01 - 14:03
    1 GC slide?
  • 14:03 - 14:05
    S.K.: Yeah. Vince loves talking about this.
    This was
  • 14:05 - 14:06
    like, what-
  • 14:06 - 14:08
    V.F.: Well I've been working on the thing
    for
  • 14:08 - 14:09
    Ruby 2.1 for like-
  • 14:09 - 14:11
    S.K.: -maybe two weeks ago?
  • 14:11 - 14:13
    V.F.: Our test suite, when we first got it,
  • 14:13 - 14:15
    I finally got it booting, and then had half
  • 14:15 - 14:18
    of the tests were failing. Knocked out with
    like
  • 14:18 - 14:23
    a couple hundred with a few fixes, and then
  • 14:23 - 14:28
    the rest was just like continuously not getting
    fixed.
  • 14:28 - 14:30
    But anyway. Yeah.
  • 14:30 - 14:32
    This is, this is available now. We just released
  • 14:32 - 14:35
    it, with, there's an interesting blog post
    that talks
  • 14:35 - 14:37
    about a lot of the agent features.
  • 14:37 - 14:39
    S.K.: With the, with the recent version of
    the
  • 14:39 - 14:42
    gem. So make sure you upgrade your gem.
  • 14:42 - 14:48
    AUDIENCE: What kind of sucks is that EngineYard,
    I
  • 14:52 - 14:52
    AUDIENCE: Yeah.
  • 14:54 - 14:58
    no, you're just, just scratching. OK. I'm
    sorry. Called
  • 14:58 - 15:01
    you out for that one.
  • 15:01 - 15:07
    And, animations, animations. And. There you
    go.
  • 15:07 - 15:11
    V.F.: All right. So, insights is a, is a
  • 15:11 - 15:15
    brand new venture for us. It's a new product
  • 15:15 - 15:19
    that we built from the ground up. Including
    data
  • 15:19 - 15:24
    collection tier and a brand new UI. And we're
  • 15:24 - 15:28
    calling it, what's this, a real time analytics
    platform.
  • 15:28 - 15:30
    So what that means is, like I was talking
  • 15:30 - 15:35
    about earlier, we collect every event that
    happens. We
  • 15:35 - 15:40
    collect page views, transactions, within the
    currently existing agent
  • 15:40 - 15:42
    that's already in your app. So we've been
    doing
  • 15:42 - 15:45
    this for awhile, and if you log into insights
  • 15:45 - 15:47
    right now, you'll see a bunch of data, cause
  • 15:47 - 15:50
    we've been collecting this for some time now.
  • 15:50 - 15:53
    As well as custom events. So you can send
  • 15:53 - 15:57
    interesting things to the API and, and use
    this
  • 15:57 - 16:03
    interface to query and analyze it. Database
    is really
  • 16:03 - 16:06
    big, really complicated. Lots of query, workers
    querying. All
  • 16:06 - 16:11
    kinds of cool stuff. But what it gives us
  • 16:11 - 16:14
    is a really fascinating way of interacting
    with our
  • 16:14 - 16:17
    data. So each one of these-
  • 16:17 - 16:23
    S.K.: Jump to the actual one. This one.
  • 16:23 - 16:23
    V.F.: Oh yeah.
  • 16:23 - 16:24
    S.K.: And just pull up some records.
  • 16:24 - 16:30
    V.F.: So, each of these little segments here
    is
  • 16:30 - 16:33
    backed by a query that is written in query
  • 16:33 - 16:40
    language that we developed. Looks a lot like
    SQL.
  • 16:40 - 16:45
    And it has a lot of nice little functions,
  • 16:45 - 16:47
    basic stuff like counts and averages and whatnot.
    But
  • 16:47 - 16:51
    also gives you really easy access into making
    histograms,
  • 16:51 - 16:56
    percentile charts, time series charts, pie
    charts - all
  • 16:56 - 17:00
    kinds of interesting stuff. And this is all
    reflecting
  • 17:00 - 17:04
    life results. So you don't have to re-query.
    You
  • 17:04 - 17:07
    make one query, build up this chart, and it
  • 17:07 - 17:09
    stays up to date with what's happening in
    real
  • 17:09 - 17:13
    time in your app.
  • 17:13 - 17:18
    And there's lots of really interesting stuff
    that you
  • 17:18 - 17:24
    can do with this. Because any bit of information
  • 17:24 - 17:27
    that you send in to the agent can be
  • 17:27 - 17:31
    used in one of these queries. So, say you
  • 17:31 - 17:34
    want to start doing some performance analysis,
    and this
  • 17:34 - 17:37
    is something that we've done in a particular
    view
  • 17:37 - 17:40
    in your app. You could do a query that
  • 17:40 - 17:45
    segments it down to just that controller and
    action,
  • 17:45 - 17:46
    and then you can do what we call a
  • 17:46 - 17:50
    facet, based on another category of information.
    So we've
  • 17:50 - 17:54
    done facets on how many hosts does this account
  • 17:54 - 17:56
    use.
  • 17:56 - 17:58
    So there's some accounts that have one host,
    you
  • 17:58 - 18:00
    know, or some accounts with a couple, three
    or
  • 18:00 - 18:02
    four, and you know, that, the performance
    of that
  • 18:02 - 18:05
    is understood by us. We can simulate that
    on
  • 18:05 - 18:08
    our local machine. But what if there's an
    account
  • 18:08 - 18:12
    that uses Amazon and spins up all kinds of
  • 18:12 - 18:14
    dynamic hosts, and they have maybe a thousand
    or
  • 18:14 - 18:15
    ten thousand in their account?
  • 18:15 - 18:18
    We can do the same kind of performance analysis
  • 18:18 - 18:21
    that we've done in RPM, but faceted by host
  • 18:21 - 18:24
    count. So we were able to determine that there's
  • 18:24 - 18:26
    a threshold, and when you got over like a
  • 18:26 - 18:30
    thousand, the response time of this particular
    view really
  • 18:30 - 18:33
    spiked. And so that gave us insight into what
  • 18:33 - 18:36
    we needed to pay attention to when we were
  • 18:36 - 18:39
    doing our performance optimizations. So we
    needed to look
  • 18:39 - 18:43
    for, like, not just n plus ones, but what
  • 18:43 - 18:48
    are the effects of having a radically larger,
    like,
  • 18:48 - 18:52
    this variable? Like, host count or another
    variable.
  • 18:52 - 18:54
    So, that's a way in which we've really gotten
  • 18:54 - 18:56
    a lot of benefit out of having a way
  • 18:56 - 19:01
    to do more complex and more customized queries,
    based
  • 19:01 - 19:04
    on the same data that we've been collecting
    for
  • 19:04 - 19:07
    a long time. And you can make any number
  • 19:07 - 19:10
    of these dashboards and any number of these
    charts
  • 19:10 - 19:13
    and keep them, you know, put them up on
  • 19:13 - 19:17
    the TV or whatever or keep them on your
  • 19:17 - 19:20
    desk top. I recently launched a new feature
    on
  • 19:20 - 19:21
    my own new personal site, and I was like
  • 19:21 - 19:25
    watching all the visitors come as like this
    registration
  • 19:25 - 19:29
    opened for bike polo tournaments that my software
    hosts.
  • 19:29 - 19:31
    And like, you know, for me like, a hundred
  • 19:31 - 19:32
    users on that site at the time was a
  • 19:32 - 19:35
    lot. But I was able to see like, people
  • 19:35 - 19:37
    are logging in and like doing these transactions
    and
  • 19:37 - 19:40
    I was recording them all. Just using the agent,
  • 19:40 - 19:43
    like, cust, add custom params, New Relic agent
    dot
  • 19:43 - 19:46
    add custom params, give it a key value and
  • 19:46 - 19:48
    then all of the sudden it's available in the
  • 19:48 - 19:50
    system for you to query.
  • 19:50 - 19:51
    S.K.: You can stay there.
  • 19:51 - 19:54
    V.F.: Oh yeah. You want to go back to
  • 19:54 - 19:54
    that?
  • 19:54 - 19:57
    S.K.: Yeah. And, and I think, you know, Vince,
  • 19:57 - 19:59
    Vince brought up host count, but really, for
    your
  • 19:59 - 20:02
    own usage, you could facet by customer size
    or
  • 20:02 - 20:04
    how much they spend with you. And then you
  • 20:04 - 20:06
    know, really look at, based on what tier they
  • 20:06 - 20:10
    fall in, how your app preforms for those various
  • 20:10 - 20:12
    tiers. Which can be a useful metric to look
  • 20:12 - 20:14
    at and understand where you need to focus
    on,
  • 20:14 - 20:16
    focus the majority of your time.
  • 20:16 - 20:18
    So, I wanted to share one more example, and
  • 20:18 - 20:21
    I have a little, a little bit of a
  • 20:21 - 20:23
    story so bear with me for a minute here.
  • 20:23 - 20:26
    So we were launching insights about a month
    ago
  • 20:26 - 20:29
    or so. And the marketing team was like, can
  • 20:29 - 20:31
    you build us a dash board that shows us,
  • 20:31 - 20:33
    kind of what Vince was talking about, all
    the
  • 20:33 - 20:35
    people that are logging into insights, real
    time. How
  • 20:35 - 20:39
    many of those people? Who's viewed the dashboard?
    Who's
  • 20:39 - 20:42
    inserted a custom attribute into a transaction
    event.
  • 20:42 - 20:44
    So I was like yeah, yeah, totally, like I
  • 20:44 - 20:46
    can build this dashboard. And here's the dashboard
    that
  • 20:46 - 20:49
    I build, you know like. This is currently
    showing
  • 20:49 - 20:51
    you how many people are logged in to insights
  • 20:51 - 20:55
    right now. 815 users. And they were like,
    cool
  • 20:55 - 20:56
    like, this is awesome. Like we have a dashboard
  • 20:56 - 20:58
    now. But Shiv, like, we can't do anything
    with
  • 20:58 - 21:01
    this dashboard. It's just like a dashboard.
    What are
  • 21:01 - 21:03
    we supposed to do with it other than look
  • 21:03 - 21:05
    at it? It's nice to see, but we want
  • 21:05 - 21:07
    to do, we want to take some action on
  • 21:07 - 21:08
    this data.
  • 21:08 - 21:11
    So, what they wanted to do was take all
  • 21:11 - 21:13
    of this data from this dashboard and port
    it
  • 21:13 - 21:16
    over to Marketo, which we're using to do to
  • 21:16 - 21:18
    facilitate a lot of our marketing on a mission.
  • 21:18 - 21:21
    They wanted to be able to take user logins,
  • 21:21 - 21:23
    so they can understand who's logged in, who's
    viewed
  • 21:23 - 21:25
    a dashboard, and then, you know, send off
    different
  • 21:25 - 21:27
    emails based on that kind of information.
  • 21:27 - 21:30
    Typically what you could do with the Rails
    application
  • 21:30 - 21:33
    is set up a background job process, right,
    that's
  • 21:33 - 21:35
    just, when something happens, you fire off
    the event
  • 21:35 - 21:37
    the Marketo. Marketo collects it and you're
    all good.
  • 21:37 - 21:39
    Or you do like a daily sync with Marketo
  • 21:39 - 21:42
    with your application. The insights team didn't
    want to
  • 21:42 - 21:45
    do that. And they specifically didn't want
    to do
  • 21:45 - 21:47
    that so that they could test this API implementation
  • 21:47 - 21:48
    that they built.
  • 21:48 - 21:51
    So they built a really, really nice easy way
  • 21:51 - 21:53
    to be able to pull data out of insights
  • 21:53 - 21:56
    and push it anywhere else you want to. So
  • 21:56 - 22:02
    if I switch back to the slides, here's kind
  • 22:02 - 22:04
    of, I mean, it's kind of, you know, a
  • 22:04 - 22:08
    simple curl. It's not anything, something
    that most of
  • 22:08 - 22:09
    you have probably seen before. But what's
    really cool
  • 22:09 - 22:12
    is that you can drop any query into there.
  • 22:12 - 22:14
    So, Vince showed off that NRQL query bar at
  • 22:14 - 22:17
    the top, where you can create a dashboard,
    literally
  • 22:17 - 22:19
    anything that you put into that NRQL query
    that
  • 22:19 - 22:21
    creates a dashboard, you can put that into
    an
  • 22:21 - 22:24
    API call, which will then output JSON to you
  • 22:24 - 22:26
    to use wherever you want to use it.
  • 22:26 - 22:28
    So, where that can be cool is if you're
  • 22:28 - 22:31
    putting in a bunch of custom attributes about
    your
  • 22:31 - 22:34
    customer size. You can use insights, for example,
    as
  • 22:34 - 22:36
    an aggregate store for all that data. We'll
    take
  • 22:36 - 22:38
    all your data, aggregate it up, and then you
  • 22:38 - 22:40
    can just pull it out with performance data
    or
  • 22:40 - 22:42
    however you want to view it, slice and dice
  • 22:42 - 22:45
    it and then put it wherever you want to.
  • 22:45 - 22:46
    So this is kind of what the flow looked
  • 22:46 - 22:48
    like for us. Obviously we're taking it out
    of
  • 22:48 - 22:52
    insights. In our case we're pushing it into
    our
  • 22:52 - 22:54
    APM app only to use it as a background
  • 22:54 - 22:57
    job processor, which then we can push it over
  • 22:57 - 22:59
    to Marketo from there.
  • 22:59 - 23:02
    Right, so we were basically just using APM
    as
  • 23:02 - 23:05
    the server to run the process. But what I
  • 23:05 - 23:08
    think is really interesting is that if you
    switch
  • 23:08 - 23:12
    Marketo with anything. Be that like a BI dashboard,
  • 23:12 - 23:14
    or really anything that you want to push data
  • 23:14 - 23:18
    into, and then consider using a tool like
    Zapier,
  • 23:18 - 23:20
    Iron dot io, then you set up a process
  • 23:20 - 23:23
    where you can take data out of insights, process
  • 23:23 - 23:25
    it in Zapier and then put it wherever you
  • 23:25 - 23:27
    want to. And what gets really cool about this
  • 23:27 - 23:28
    is that you don't have to be a developer
  • 23:28 - 23:29
    necessarily.
  • 23:29 - 23:32
    So if you're CEO or your business partner
    comes
  • 23:32 - 23:33
    up to you and says, hey I want this
  • 23:33 - 23:35
    data here, you might be able to just tell
  • 23:35 - 23:39
    them, like, use Zapier, take the data out
    of
  • 23:39 - 23:41
    insights, which I've already put in there
    for you,
  • 23:41 - 23:42
    and then you can push it wherever you want
  • 23:42 - 23:44
    to. I don't have to set up a new
  • 23:44 - 23:46
    background job, I don't have to submit anymore
    new
  • 23:46 - 23:48
    code for this. All the data's there and all
  • 23:48 - 23:50
    you have to do is use it.
  • 23:50 - 23:52
    So we think we're gonna go in this direction,
  • 23:52 - 23:54
    hopefully using some tool. I don't think it'll
    be
  • 23:54 - 23:56
    one of these two. But I think it's a
  • 23:56 - 23:58
    really cool idea to be able to use this
  • 23:58 - 24:01
    data and integrate it with other tools. So
    the
  • 24:01 - 24:04
    point here is that you guys can brainstorm
    and
  • 24:04 - 24:07
    figure out the ways that you want to use
  • 24:07 - 24:08
    it.
  • 24:08 - 24:10
    So that's really all we have in terms of
  • 24:10 - 24:14
    slides and examples. We were hoping to open
    up
  • 24:14 - 24:16
    the rest of the talk just for questions to
  • 24:16 - 24:20
    talk about New Relic. So. Yup?
  • 24:20 - 24:22
    AUDIENCE: What kind of-
  • 24:39 - 24:42
    [applause]
Title:
RailsConf 2014 - Using Software Analytics to Help Make Better Business Decisions
Description:

more » « less
Duration:
24:47

English subtitles

Revisions