Skip to content

Instantly share code, notes, and snippets.

@robacourt
Last active May 25, 2016 10:42
Show Gist options
  • Save robacourt/c8a77d8042fd5c01ef034cec47c1225a to your computer and use it in GitHub Desktop.
Save robacourt/c8a77d8042fd5c01ef034cec47c1225a to your computer and use it in GitHub Desktop.

Steps for testing an app

  1. Wipe the client and server telemetry files
  2. Start DA Client and Server
  3. Find 3-5 workflows through the app (try to make the workflow realistic, e.g. create an invoice, add various items to it and issue the invoice)
  4. Go through the exact workflow until all the pulses in it are learnt (see below)
  5. If after 8 times through the workflow the pulses still haven't learnt take a SQL Trace of the workflow and a NetMon capture from the database server
  6. If the pulse query count varies substancially for the same workflow let us know. For example a workflow may have 5 pulses, when you first run it the query count may be 5, 100, 2, 40, if the second time you run it the query count is 5, 250, 2, 40 we'd like to know!
  7. Run the analysis tool on the client and server telemetry files, get both reasons and performance stats.

Learnt Pulses

Pulses are "learnt" when they contain no "Uncharted" reasons in the pulse_complete event. To check this while DA is running

tail -f server-telemetry.1 | grep --line-buffered pulse_complete

This is an example of a learnt pulse:

[["pulse_complete",{"hits":0,"queries":3,"reasons":{"branch_point":1,"not_predicted":1,"Unsafe statement types: COMMIT TRANSACTION":1}}],1464172978386436,1],

This is an example of a pulse that is still learning:

[["pulse_complete",{"hits":0,"queries":183,"reasons":{"not_predicted":1,"uncharted":182}}],1464171454770029,1],

Analysis tool

  1. If you have many telemetry files (server-telemtry.1 and server-telemetry.2 they will need to be joined into a single server-telemetry file)
  2. In the master branch run ./create_release.sh
  3. Run ./apps/analysis/analysis for help on how to use the tool
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment