newrelic-pjax 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -18,11 +18,57 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- TODO: Write more usage instructions here
21
+ For PJAX requests, instead of rendering no template you'll need to render a PJAX template where we'll return some additional JavaScript to record response timing.
22
22
 
23
- You will need to add jquery and jquery.waitforimages to your app:
23
+ If you're using `pjax_rails` rails then add this to your application controller:
24
24
 
25
- https://github.com/alexanderdickson/waitForImages
25
+
26
+ ``` ruby
27
+ class ApplicationController < ActionController::Base
28
+ protected
29
+
30
+ def pjax_layout
31
+ 'pjax'
32
+ end
33
+ end
34
+ ```
35
+
36
+ Next create a PJAX layout like so:
37
+
38
+ ```
39
+ # app/views/layouts/pjax.html.erb
40
+
41
+ <%= NewRelic::Agent.pjax_timing_start %>
42
+ <%= yield %>
43
+ <%= NewRelic::Agent.pjax_timing_end %>
44
+
45
+ ```
46
+
47
+ Lastly in your applications JavaScript you will need to fire off timing information to newrelic once the PJAX request is complete. Here in the example below i'm using the [jquery.waitForImages JavaScript library](https://github.com/alexanderdickson/waitForImages) to calculate front end rendering time by timing how long the images take to render on the page.
48
+
49
+ You can find the jquery.waitForImages library here [https://github.com/alexanderdickson/waitForImages](https://github.com/alexanderdickson/waitForImages)
50
+
51
+ ```coffee
52
+ # app/assets/javascript/application.js
53
+
54
+ #= require jquery
55
+ #= require jquery.pjax
56
+ #= require jquery.waitforimages
57
+
58
+ $ ->
59
+ $(document).on 'pjax:start', (xhr) ->
60
+ window.pjaxTiming = {'navigationStart': new Date().getTime() }
61
+
62
+ $(document).on 'pjax:end', (xhr) ->
63
+ $('#main-inner').waitForImages ->
64
+ if NREUMQ?
65
+ currentTime = new Date().getTime()
66
+ totalBeTime = pjaxTiming['firstByte'] - pjaxTiming['navigationStart']
67
+ domTime = pjaxTiming['lastByte'] - pjaxTiming['firstByte']
68
+ feTime = currentTime - pjaxTiming['firstByte']
69
+
70
+ NREUM.inlineHit(pjaxTiming['transactionName'], pjaxTiming['queueTime'], pjaxTiming['appTime'], totalBeTime, domTime, feTime)
71
+ ```
26
72
 
27
73
  ## Contributing
28
74
 
@@ -18,8 +18,9 @@ module NewRelic
18
18
  config = NewRelic::Agent.instance.beacon_configuration
19
19
 
20
20
  if config.nil? ||
21
- !config.rum_enabled ||
22
- config.browser_monitoring_key.nil? ||
21
+ !config.enabled? ||
22
+ NewRelic::Agent.config[:browser_key].nil? ||
23
+ NewRelic::Agent.config[:browser_key].empty? ||
23
24
  !NewRelic::Agent.is_transaction_traced? ||
24
25
  !NewRelic::Agent.is_execution_traced? ||
25
26
  NewRelic::Agent::TransactionInfo.get.ignore_end_user?
@@ -1,5 +1,5 @@
1
1
  module NewRelic
2
2
  module PJAX
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic-pjax
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-05 00:00:00.000000000 Z
12
+ date: 2012-10-16 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Instrument PJAX requests for New Relic RPM
15
15
  email: