PageRenderTime 24ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/details/data_dynatrace.php

http://showslow.googlecode.com/
PHP | 137 lines | 117 code | 20 blank | 0 comment | 22 complexity | 5f075fc0f19777b5b09f4d6cb3350cfe MD5 | raw file
  1. <?php
  2. require_once(dirname(dirname(__FILE__)).'/global.php');
  3. if (!array_key_exists('url', $_GET) || filter_var($_GET['url'], FILTER_VALIDATE_URL) === false) {
  4. header('HTTP/1.0 400 Bad Request');
  5. ?><html>
  6. <head>
  7. <title>Bad Request: no valid url specified</title>
  8. </head>
  9. <body>
  10. <h1>Bad Request: no valid url specified</h1>
  11. <p>You must pass valid URL as 'url' parameter</p>
  12. </body></html>
  13. <?php
  14. exit;
  15. }
  16. $query = sprintf("SELECT id FROM urls WHERE urls.url = '%s'", mysql_real_escape_string($_GET['url']));
  17. $result = mysql_query($query);
  18. if (!$result) {
  19. error_log(mysql_error());
  20. }
  21. $row = mysql_fetch_assoc($result);
  22. $urlid = $row['id'];
  23. mysql_free_result($result);
  24. if (array_key_exists('subset', $_REQUEST)) {
  25. if ($_REQUEST['subset'] == 'graph')
  26. {
  27. $query = sprintf("SELECT UNIX_TIMESTAMP(d.timestamp) as time, rank
  28. FROM dynatrace d WHERE d.url_id = %d AND d.timestamp > DATE_SUB(now(),INTERVAL 3 MONTH)
  29. ORDER BY d.timestamp DESC",
  30. mysql_real_escape_string($urlid)
  31. );
  32. }
  33. else if ($_REQUEST['subset'] == 'table')
  34. {
  35. $query = sprintf("SELECT UNIX_TIMESTAMP(d.timestamp) as time,
  36. pagesize, reqnumber, rank, timetoimpression
  37. FROM dynatrace d WHERE d.url_id = %d AND d.timestamp > DATE_SUB(now(),INTERVAL 3 MONTH)
  38. ORDER BY d.timestamp DESC",
  39. mysql_real_escape_string($urlid)
  40. );
  41. }
  42. } else {
  43. $query = sprintf("SELECT UNIX_TIMESTAMP(d.timestamp) as time,
  44. rank, cache, net, server, js,
  45. timetoimpression, timetoonload, timetofullload,
  46. reqnumber, xhrnumber,
  47. pagesize, cachablesize, noncachablesize,
  48. timeonnetwork, timeinjs, timeinrendering
  49. FROM dynatrace d WHERE d.url_id = %d AND d.timestamp > DATE_SUB(now(),INTERVAL 3 MONTH)
  50. ORDER BY d.timestamp DESC",
  51. mysql_real_escape_string($urlid)
  52. );
  53. }
  54. $result = mysql_query($query);
  55. if (!$result) {
  56. error_log(mysql_error());
  57. }
  58. $data = array();
  59. header('Content-type: text/plain');
  60. if (array_key_exists('ver', $_GET)) {
  61. header('Expires: '.date('r', time() + 315569260));
  62. header('Cache-control: max-age=315569260');
  63. }
  64. $rows = array();
  65. while ($row = mysql_fetch_assoc($result)) {
  66. $rows[] = $row;
  67. }
  68. mysql_free_result($result);
  69. if (array_key_exists('smooth', $_REQUEST)) {
  70. require_once(dirname(__FILE__).'/smooth.php');
  71. smooth($rows, array('rank'));
  72. }
  73. if (!array_key_exists('subset', $_REQUEST))
  74. {
  75. header('Content-disposition: attachment;filename=dynatrace.csv');
  76. echo '# Measurement time';
  77. echo ', Overall Page Rank (Percentage)';
  78. echo ', Caching Rank (Percentage)';
  79. echo ', Network Rank (Percentage)';
  80. echo ', Server-Side Rank (Percentage)';
  81. echo ', JavaScript Rank (Percentage)';
  82. echo ', Time to First Impression (ms)';
  83. echo ', Time to onLoad (ms)';
  84. echo ', Time to Full Page Load (ms)';
  85. echo ', Number of Requests';
  86. echo ', Number of XHR Requests';
  87. echo ', Total Page Size (bytes)';
  88. echo ', Total Cachable Size (bytes)';
  89. echo ', Total Non-Cachable Size (bytes)';
  90. echo ', Total Time on Network (ms)';
  91. echo ', Total Time in JavaScript (ms)';
  92. echo ', Total Time in Rendering (ms)';
  93. echo "\n";
  94. }
  95. foreach ($rows as $row) {
  96. echo date('c', $row['time']).',';
  97. if (array_key_exists('subset', $_REQUEST)) {
  98. if ($_REQUEST['subset'] == 'graph')
  99. {
  100. echo $row['rank'];
  101. }
  102. else if ($_REQUEST['subset'] == 'table')
  103. {
  104. echo $row['pagesize'].','.
  105. $row['reqnumber'].','.
  106. $row['rank'].','.
  107. $row['timetoimpression'];
  108. }
  109. } else {
  110. echo $row['rank'].','.$row['cache'].','.$row['net'].','.$row['server'].','.$row['js'].','.
  111. $row['timetoimpression'].','.$row['timetoonload'].','.$row['timetofullload'].','.
  112. $row['reqnumber'].','.$row['xhrnumber'].','.
  113. $row['pagesize'].','.$row['cachablesize'].','.$row['noncachablesize'].','.
  114. $row['timeonnetwork'].','.$row['timeinjs'].','.$row['timeinrendering'];
  115. }
  116. echo "\n";
  117. }