Permalink
Browse files

first graphs and new services

  • Loading branch information...
schacon committed Apr 30, 2012
1 parent fb8d9d7 commit b6d341c0a28cd446dbe75d6b7756ec98ce8ff373
Showing with 288 additions and 17 deletions.
  1. +2 −0 Gemfile
  2. +5 −0 Gemfile.lock
  3. +5 −3 TODO.txt
  4. +26 −0 app/helpers/site_helper.rb
  5. +22 −14 app/views/about/index.html.haml
  6. +1 −0 config/exceptional.yml
  7. +227 −0 config/newrelic.yml
View
@@ -23,6 +23,8 @@ gem 'diff-lcs'
gem 'redcarpet'
gem 'nestful'
gem "awesome_print"
+gem 'newrelic_rpm'
+gem 'exceptional'
# Gems used only for assets and not required
# in production environments by default.
View
@@ -52,6 +52,8 @@ GEM
diff-lcs (1.1.3)
erubis (2.7.0)
eventmachine (0.12.10)
+ exceptional (2.0.32)
+ rack
excon (0.9.6)
execjs (1.3.0)
multi_json (~> 1.0)
@@ -102,6 +104,7 @@ GEM
nestful (0.0.8)
activesupport (>= 3.0.0.beta)
netrc (0.7.1)
+ newrelic_rpm (3.3.4.1)
octokit (1.0.2)
addressable (~> 2.2)
faraday (~> 0.7)
@@ -188,6 +191,7 @@ DEPENDENCIES
compass-rails
dalli
diff-lcs
+ exceptional
excon (~> 0.9.4)
factory_girl_rails
faraday
@@ -199,6 +203,7 @@ DEPENDENCIES
less-rails-bootstrap
nestful
netrc
+ newrelic_rpm
octokit
pg
rails (= 3.2.2)
View
@@ -14,6 +14,9 @@ Initial Launch (3.0):
- add transcription to search?
- add to related items
+* release notes box
+ - needs local cached version of release notes
+
* Misc
# linkify front page
# get company logo perms (twitter)
@@ -24,11 +27,13 @@ Initial Launch (3.0):
- page titles filled out
- redirect whygitisbetter to about page
- link to git for windows page
+ - user-manual not present
- rebase history before launch
- reindex command - drops index and re-does everything
* generate all languages
- progit.org -> git-scm.com/book
+ - regenerate all reference pages: /git-fetch/1.7.3.2 looks wrong
--
@@ -48,9 +53,6 @@ Initial Launch (3.0):
* remember version
* dismiss dropdown when clicking elsewhere
-* release notes box
- - needs local cached version of release notes
-
* Documentation
- gitref content
- try git!
View
@@ -4,4 +4,30 @@ def highlight_no_html(high)
.gsub('[highlight]', '<span class="highlight">')
.gsub('[xhighlight]', '</span>')
end
+
+ def gchart(title, data)
+ labels = data.map {|v| v[0] }
+ vals = data.map {|v| v[1] }
+
+ v = vals.join(',')
+ l = labels.join('|')
+
+ scale = vals.max
+ c = "<img src=\"http://chart.apis.google.com/chart?"
+ c += "chxt=x" + "&amp;"
+ c += "cht=bvs" + "&amp;"
+ c += "chl=#{l}" + "&amp;"
+ c += "chd=t:#{v}" + "&amp;"
+ c += "chds=0,#{scale}" + "&amp;"
+ c += "chs=100x125" + "&amp;"
+ if vals.size == 3
+ c += "chco=009099|009099|E05F49" + "&amp;"
+ else
+ c += "chco=009099|E05F49" + "&amp;"
+ end
+ c += "chf=bg,s,fcfcfa&"
+ c += "chtt=#{title}"
+ c += "\" alt=\"init benchmarks\" />"
+ c
+ end
end
@@ -77,21 +77,29 @@
%p
If you don't believe me, let's see how common operations stack up against
Subversion, a common centralized version control system that is similar
- to CVS or Perforce.
+ to CVS or Perforce. <em>Smaller is faster</em>
+
+ %table{:width => '100%'}
+ %tr
+ %td
+ =raw gchart("Commit", [['git', 0.649], ['svn', 2.6]])
+ =raw gchart("Commit", [['git', 1.53], ['svn', 24.7]])
+ =raw gchart("Diff Curr", [['git', 0.257], ['svn', 1.09]])
+ =raw gchart("Diff Rec", [['git', 0.248], ['svn', 3.99]])
+ =raw gchart("Diff First", [['git', 1.71], ['svn', 6.57]])
+ =raw gchart("Diff Tags", [['git', 1.17], ['svn', 83.57]])
+ =raw gchart("Log (50)", [['git', 0.012], ['svn', 0.381]])
+ =raw gchart("Log (All)", [['git', 0.519], ['svn', 169.197]])
+ =raw gchart("Log (File)", [['git', 0.601], ['svn', 82.843]])
+ =raw gchart("Update", [['git', 0.896], ['svn', 2.816]])
+ =raw gchart("Blame", [['git', 1.91], ['svn', 3.04]])
+
+ %table{:width => '100%'}
+ %tr
+ %td
+ =raw gchart("Clone", [['svn', 14.0], ['git*', 21.0], ['git', 107.5]])
+ =raw gchart("Size", [['svn', 132], ['git', 181]])
- (Small and large projects for each)
-
- %ul.bullets
- %li clone vs checkout
- %li status
- %li commit + push vs commit
- %li local diff
- %li historical diff
- %li log
- %li pull vs update
- %li branch switching
- %li branch compare
- %li merge
View
@@ -0,0 +1 @@
+api-key: <%= ENV["EXCEPTIONAL_API_KEY"] %>
View
@@ -0,0 +1,227 @@
+#
+# This file configures the New Relic Agent. New Relic monitors
+# Ruby, Java, .NET, PHP, and Python applications with deep visibility and low overhead.
+# For more information, visit www.newrelic.com.
+#
+# Generated April 30, 2012
+#
+# This configuration file is custom generated for GitHub_2
+
+# Here are the settings that are common to all environments:
+common: &default_settings
+ # ============================== LICENSE KEY ===============================
+
+ # You must specify the license key associated with your New Relic
+ # account. This key binds your Agent's data to your account in the
+ # New Relic service.
+ license_key: '<%= ENV["NEWRELIC_LICENSE_KEY"] %>'
+
+ # Agent Enabled (Ruby/Rails Only)
+ # Use this setting to force the agent to run or not run.
+ # Default is 'auto' which means the agent will install and run only
+ # if a valid dispatcher such as Mongrel is running. This prevents
+ # it from running with Rake or the console. Set to false to
+ # completely turn the agent off regardless of the other settings.
+ # Valid values are true, false and auto.
+ # agent_enabled: auto
+
+ # Application Name
+ # Set this to be the name of your application as you'd like it show
+ # up in New Relic. New Relic will then auto-map instances of your application
+ # into a New Relic "application" on your home dashboard page. If you want
+ # to map this instance into multiple apps, like "AJAX Requests" and
+ # "All UI" then specify a semicolon-separated list of up to three
+ # distinct names. If you comment this out, it defaults to the
+ # capitalized RAILS_ENV (i.e., Production, Staging, etc)
+ app_name: GitScm
+
+ # When "true", the agent collects performance data about your
+ # application and reports this data to the New Relic service at
+ # newrelic.com. This global switch is normally overridden for each
+ # environment below. (formerly called 'enabled')
+ monitor_mode: true
+
+ # Developer mode should be off in every environment but
+ # development as it has very high overhead in memory.
+ developer_mode: false
+
+ # The newrelic agent generates its own log file to keep its logging
+ # information separate from that of your application. Specify its
+ # log level here.
+ log_level: info
+
+ # The newrelic agent communicates with the New Relic service via http by
+ # default. If you want to communicate via https to increase
+ # security, then turn on SSL by setting this value to true. Note,
+ # this will result in increased CPU overhead to perform the
+ # encryption involved in SSL communication, but this work is done
+ # asynchronously to the threads that process your application code,
+ # so it should not impact response times.
+ ssl: false
+
+ # EXPERIMENTAL: enable verification of the SSL certificate sent by
+ # the server. This setting has no effect unless SSL is enabled
+ # above. This may block your application. Only enable it if the data
+ # you send us needs end-to-end verified certificates.
+ #
+ # This means we cannot cache the DNS lookup, so each request to the
+ # New Relic service will perform a lookup. It also means that we cannot
+ # use a non-blocking lookup, so in a worst case, if you have DNS
+ # problems, your app may block indefinitely.
+ # verify_certificate: true
+
+ # Set your application's Apdex threshold value with the 'apdex_t'
+ # setting, in seconds. The apdex_t value determines the buckets used
+ # to compute your overall Apdex score.
+ # Requests that take less than apdex_t seconds to process will be
+ # classified as Satisfying transactions; more than apdex_t seconds
+ # as Tolerating transactions; and more than four times the apdex_t
+ # value as Frustrating transactions.
+ # For more about the Apdex standard, see
+ # http://newrelic.com/docs/general/apdex
+ apdex_t: 0.5
+
+ # Proxy settings for connecting to the New Relic server.
+ #
+ # If a proxy is used, the host setting is required. Other settings
+ # are optional. Default port is 8080.
+ #
+ # proxy_host: hostname
+ # proxy_port: 8080
+ # proxy_user:
+ # proxy_pass:
+
+ # Tells transaction tracer and error collector (when enabled)
+ # whether or not to capture HTTP params. When true, frameworks can
+ # exclude HTTP parameters from being captured.
+ # Rails: the RoR filter_parameter_logging excludes parameters
+ # Java: create a config setting called "ignored_params" and set it to
+ # a comma separated list of HTTP parameter names.
+ # ex: ignored_params: credit_card, ssn, password
+ capture_params: false
+
+ # Transaction tracer captures deep information about slow
+ # transactions and sends this to the New Relic service once a
+ # minute. Included in the transaction is the exact call sequence of
+ # the transactions including any SQL statements issued.
+ transaction_tracer:
+
+ # Transaction tracer is enabled by default. Set this to false to
+ # turn it off. This feature is only available at the Professional
+ # product level.
+ enabled: true
+
+ # Threshold in seconds for when to collect a transaction
+ # trace. When the response time of a controller action exceeds
+ # this threshold, a transaction trace will be recorded and sent to
+ # New Relic. Valid values are any float value, or (default) "apdex_f",
+ # which will use the threshold for an dissatisfying Apdex
+ # controller action - four times the Apdex T value.
+ transaction_threshold: apdex_f
+
+ # When transaction tracer is on, SQL statements can optionally be
+ # recorded. The recorder has three modes, "off" which sends no
+ # SQL, "raw" which sends the SQL statement in its original form,
+ # and "obfuscated", which strips out numeric and string literals.
+ record_sql: obfuscated
+
+ # Threshold in seconds for when to collect stack trace for a SQL
+ # call. In other words, when SQL statements exceed this threshold,
+ # then capture and send to New Relic the current stack trace. This is
+ # helpful for pinpointing where long SQL calls originate from.
+ stack_trace_threshold: 0.500
+
+ # Determines whether the agent will capture query plans for slow
+ # SQL queries. Only supported in mysql and postgres. Should be
+ # set to false when using other adapters.
+ # explain_enabled: true
+
+ # Threshold for query execution time below which query plans will not
+ # not be captured. Relevant only when `explain_enabled` is true.
+ # explain_threshold: 0.5
+
+ # Error collector captures information about uncaught exceptions and
+ # sends them to New Relic for viewing
+ error_collector:
+
+ # Error collector is enabled by default. Set this to false to turn
+ # it off. This feature is only available at the Professional
+ # product level.
+ enabled: true
+
+ # Rails Only - tells error collector whether or not to capture a
+ # source snippet around the place of the error when errors are View
+ # related.
+ capture_source: true
+
+ # To stop specific errors from reporting to New Relic, set this property
+ # to comma-separated values. Default is to ignore routing errors,
+ # which are how 404's get triggered.
+ ignore_errors: ActionController::RoutingError
+
+ # (Advanced) Uncomment this to ensure the CPU and memory samplers
+ # won't run. Useful when you are using the agent to monitor an
+ # external resource
+ # disable_samplers: true
+
+ # If you aren't interested in visibility in these areas, you can
+ # disable the instrumentation to reduce overhead.
+ #
+ # disable_view_instrumentation: true
+ # disable_activerecord_instrumentation: true
+ # disable_memcache_instrumentation: true
+ # disable_dj: true
+
+ # Certain types of instrumentation such as GC stats will not work if
+ # you are running multi-threaded. Please let us know.
+ # multi_threaded = false
+
+# Application Environments
+# ------------------------------------------
+# Environment-specific settings are in this section.
+# For Rails applications, RAILS_ENV is used to determine the environment.
+# For Java applications, pass -Dnewrelic.environment <environment> to set
+# the environment.
+
+# NOTE if your application has other named environments, you should
+# provide newrelic configuration settings for these environments here.
+
+development:
+ <<: *default_settings
+ # Turn off communication to New Relic service in development mode (also
+ # 'enabled').
+ # NOTE: for initial evaluation purposes, you may want to temporarily
+ # turn agent communication on in development mode.
+ monitor_mode: false
+
+ # Rails Only - when running in Developer Mode, the New Relic Agent will
+ # present performance information on the last 100 transactions you have
+ # executed since starting the app server.
+ # NOTE: There is substantial overhead when running in developer mode.
+ # Do not use for production or load testing.
+ developer_mode: true
+
+ # Enable textmate links
+ # textmate: true
+
+test:
+ <<: *default_settings
+ # It almost never makes sense to turn on the agent when running
+ # unit, functional or integration tests or the like.
+ monitor_mode: false
+
+# Turn on the agent in production for 24x7 monitoring. New Relic
+# testing shows an average performance impact of < 5 ms per
+# transaction, so you can leave this on all the time without
+# incurring any user-visible performance degradation.
+production:
+ <<: *default_settings
+ monitor_mode: true
+
+# Many applications have a staging environment which behaves
+# identically to production. Support for that environment is provided
+# here. By default, the staging environment has the agent turned on.
+staging:
+ <<: *default_settings
+ monitor_mode: true
+ app_name: GitScm (Staging)

0 comments on commit b6d341c

Please sign in to comment.