I need a website that doesn't do much and is instrumented with AppNeta's TraceView product.
# The site itself
The site itself should require 2 machines to run. The frontend machine should have 3 endpoints:
* /login - This endpoint should make 3 database calls, then return an HTML page.
* /overview - This endpoint should make a database call, a memcache call, and an internal REST API call, and an external REST API call.
* /top_sites - This endpoint should make 50 of the same database call and 2 memcache calls (one set, one get).
All of these should return a page with at least 200 lines of HTML on them. All of them should include a twitter share button.
The backend machine should have one endpoint:
* /api/data - This endpoint should make a database call, and 2 memcache calls (set & get).
For each of the calls above, I specifically mean:
* A database call: Make a call to a MySQL database, which is set up on the same
machine. I don't care what the query is, but it should take 200-400ms to
* A memcache call: Make a call to memcached on the same machine. The set should
set a key (named 'obj_cache'), and the get should retrieve the key 'obj_cache'
90% of the time, and 10% of the time retrieve 'cached_obj'.
* An external REST API call: Make an HTTP call to [url removed, login to view] Don't
worry about passing credentials.
* An internal REST API call: Make an HTTP call to the other server (the
backend), at /api/data.
In all of these cases, you should ignore the result -- the important part is that the call is made.
You should use the following libraries / versions:
* Apache webserver, version 2.2, set up to proxy requests to Tomcat.
* Tomcat webserver, version 6.x.
* Spring MVC framework, version 3
* xmemcache memcache client, version 1.3.6
* MySQL JDBC
* Apache HTTP client, version 4.
# The instrumentation
I want to get visibility into what this site is doing. You should instrument
both sites with TraceView. There is a 14 day trial available (link below), which
should give you enough time to instrument this site. Go through the installation
procedure on both machines, and make sure they have the following:
* Basic install (i.e., the tracelyzer daemon is running)
* Apache install on the frontend (i.e., mod_oboe installed)
* Java installation (i.e., [url removed, login to view] loaded via -javaagent in [url removed, login to view])
TraceView trial: [url removed, login to view]