Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Tricorder: Diagnose and heal your software 
without the science fiction!
What’s a Tricorder?
How it began: the call for arms
Facing the unknown 
A very big project : 
more than 8 years old 
thousands of options, since it works on every host 
milli...
Impossible tickets
Impossible solutions
The log
How logs are recorded
Plain text logging advantages 
very very fast 
low resource consuming 
easy to maintain 
human readable (kind of…) 
easy t...
Drowning by numbers
The training 
Trying to identify patterns: 
environment requirements 
runtime errors 
files to exclude 
detect a broken in...
The training
Finding the causes 
Groups of causes 
requirements 
filesystem issues 
runtime errors
Finding the causes 
Requirements 
PHP versions 
database type and version 
database permissions 
available memory
Finding the causes 
Filesystem issues 
big files 
multiple Joomla! installation
Finding the causes 
Runtime errors 
Corrupted install (some hosts blindly delete or rename user files) 
Error logs include...
Conclusions 
Several groups 
Each group contains several checks 
Every check requires to open and read a (possibly) very b...
Akeeba Log Inspector and Cause Eliminator
Akeeba Log Inspector and Cause Eliminator
Akeeba Log Inspector and Cause Eliminator
How can I put this inside my application? 
Log the actions taken during a failure prone process 
Analyze the log file 
Pro...
Real world example: file uploads 
Requested features 
Multiple upload 
Resize images 
Thumbnail creation 
Apply watermark
Real world example: file uploads 
Possible failure reasons 
Maximum upload size on the server 
Maximum POST size 
Number o...
Real world example: file uploads 
Possible failure reasons 
Error while resizing the image 
Error while creating the thumb...
The results 
Fewer support requests 
Happier customers 
More time for coding instead of doing support
Tricorder: Diagnose and heal your software (without science fiction)
Tricorder: Diagnose and heal your software (without science fiction)
Upcoming SlideShare
Loading in …5
×

Tricorder: Diagnose and heal your software (without science fiction)

563 views

Published on

Analyze, detect and automatically fix issues: the Star Trek Tricorder awesomeness inside a Joomla extension.

Published in: Software
  • Login to see the comments

  • Be the first to like this

Tricorder: Diagnose and heal your software (without science fiction)

  1. 1. Tricorder: Diagnose and heal your software without the science fiction!
  2. 2. What’s a Tricorder?
  3. 3. How it began: the call for arms
  4. 4. Facing the unknown A very big project : more than 8 years old thousands of options, since it works on every host millions of downloads a very large userbase
  5. 5. Impossible tickets
  6. 6. Impossible solutions
  7. 7. The log
  8. 8. How logs are recorded
  9. 9. Plain text logging advantages very very fast low resource consuming easy to maintain human readable (kind of…) easy to analyze very reliable
  10. 10. Drowning by numbers
  11. 11. The training Trying to identify patterns: environment requirements runtime errors files to exclude detect a broken installation
  12. 12. The training
  13. 13. Finding the causes Groups of causes requirements filesystem issues runtime errors
  14. 14. Finding the causes Requirements PHP versions database type and version database permissions available memory
  15. 15. Finding the causes Filesystem issues big files multiple Joomla! installation
  16. 16. Finding the causes Runtime errors Corrupted install (some hosts blindly delete or rename user files) Error logs included in the backup Single big archive file while trying to upload it to a remote storage Timeouts Trying to backup huge tables (more than 1M records) Trying to backup tables from different installations Backup instance killed by the host
  17. 17. Conclusions Several groups Each group contains several checks Every check requires to open and read a (possibly) very big file Avoid using too many resources and hit the timeout limit This is the same scenario of a backup
  18. 18. Akeeba Log Inspector and Cause Eliminator
  19. 19. Akeeba Log Inspector and Cause Eliminator
  20. 20. Akeeba Log Inspector and Cause Eliminator
  21. 21. How can I put this inside my application? Log the actions taken during a failure prone process Analyze the log file Propose the correct solution with documentation links Keep the analyzer updated with the latest solutions
  22. 22. Real world example: file uploads Requested features Multiple upload Resize images Thumbnail creation Apply watermark
  23. 23. Real world example: file uploads Possible failure reasons Maximum upload size on the server Maximum POST size Number of files No upload directory Temporary directory unwriteable Final directory unwriteable
  24. 24. Real world example: file uploads Possible failure reasons Error while resizing the image Error while creating the thumbnail Error while applying the watermark Error while saving the image file Error while saving into the db
  25. 25. The results Fewer support requests Happier customers More time for coding instead of doing support

×