status.html 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <html><head><title>GeoDNS {{ .Version }}</title>
  2. <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
  3. <link href="//netdna.bootstrapcdn.com/bootswatch/2.3.1/cerulean/bootstrap.min.css" rel="stylesheet">
  4. <style>
  5. td.zonename,td.header { font-weight: bold; }
  6. </style>
  7. <body>
  8. <div class="container">
  9. <h1>Global</h1>
  10. <div class="row">
  11. <div class="span8">
  12. <table class="table table-bordered table-condensed">
  13. <tr>
  14. <td class="info header">Global stats</td>
  15. <td>1 min</td>
  16. <td>5 min</td>
  17. <td>15 min</td>
  18. <td>Mean</td>
  19. </tr>
  20. <tr>
  21. <td>Queries</td>
  22. <td>{{printf "%.2f" .Global.Queries.Rate1}}</td>
  23. <td>{{printf "%.2f" .Global.Queries.Rate5}}</td>
  24. <td>{{printf "%.2f" .Global.Queries.Rate15}}</td>
  25. <td>{{printf "%.2f" .Global.Queries.RateMean}}</td>
  26. </tr>
  27. </table>
  28. <table class="table table-bordered table-condensed">
  29. <tr>
  30. <td class="info header">Histograms</td>
  31. <td>Min</td>
  32. <td>Mean</td>
  33. <td>90%</td>
  34. <td>99%</td>
  35. <td>99.9%</td>
  36. <td>Max</td>
  37. <td>StdDev</td>
  38. </tr>
  39. <tr>
  40. <td>Since start</td>
  41. <td>{{printf "%d" .Global.Histogram.Min}}</td>
  42. <td>{{printf "%.2f" .Global.Histogram.Mean}}</td>
  43. <td>{{printf "%.2f" .Global.Histogram.Pct90 }}</td>
  44. <td>{{printf "%.2f" .Global.Histogram.Pct99 }}</td>
  45. <td>{{printf "%.2f" .Global.Histogram.Pct999 }}</td>
  46. <td>{{printf "%d" .Global.Histogram.Max}}</td>
  47. <td>{{printf "%.2f" .Global.Histogram.StdDev }}</td>
  48. </tr>
  49. <tr>
  50. <td>Recent</td>
  51. <td>{{printf "%d" .Global.HistogramRecent.Min}}</td>
  52. <td>{{printf "%.2f" .Global.HistogramRecent.Mean}}</td>
  53. <td>{{printf "%.2f" .Global.HistogramRecent.Pct90 }}</td>
  54. <td>{{printf "%.2f" .Global.HistogramRecent.Pct99 }}</td>
  55. <td>{{printf "%.2f" .Global.HistogramRecent.Pct999 }}</td>
  56. <td>{{printf "%d" .Global.HistogramRecent.Max}}</td>
  57. <td>{{printf "%.2f" .Global.HistogramRecent.StdDev }}</td>
  58. </tr>
  59. </table>
  60. </div>
  61. <div class="span4">
  62. <table class="table table-bordered table-condensed">
  63. <tr>
  64. <td class="header">Uptime</td>
  65. <td>{{.Uptime.DayString}}</td>
  66. </tr>
  67. <tr>
  68. <td class="header">Platform</td>
  69. <td>{{.Platform}}</td>
  70. </tr>
  71. </table>
  72. </div>
  73. </div>
  74. <h1>Zones</h1>
  75. <table class="table table-bordered table-condensed">
  76. <tr>
  77. <th></th>
  78. <th>1 minute</th>
  79. <th>5 minutes</th>
  80. <th>15 minutes</th>
  81. <th>Mean QPS</th>
  82. </tr>
  83. {{ $topOption := .TopOption}}
  84. {{range .Zones }}
  85. <tr class="info">
  86. <td colspan=5 class="zonename">{{.Name}}</td>
  87. </tr>
  88. <tr>
  89. <td>Queries</td>
  90. <td>{{printf "%.2f" .Metrics.Queries.Rate1}}</td>
  91. <td>{{printf "%.2f" .Metrics.Queries.Rate5}}</td>
  92. <td>{{printf "%.2f" .Metrics.Queries.Rate15}}</td>
  93. <td>{{printf "%.2f" .Metrics.Queries.RateMean}}</td>
  94. </tr>
  95. <tr>
  96. <td>EDNS Queries</td>
  97. <td>{{printf "%.2f" .Metrics.EdnsQueries.Rate1}}</td>
  98. <td>{{printf "%.2f" .Metrics.EdnsQueries.Rate5}}</td>
  99. <td>{{printf "%.2f" .Metrics.EdnsQueries.Rate15}}</td>
  100. <td>{{printf "%.2f" .Metrics.EdnsQueries.RateMean}}</td>
  101. </tr>
  102. {{ $counts := .Metrics.LabelStats.TopCounts $topOption }}
  103. {{ if $counts }}
  104. <tr class="info">
  105. <td colspan=5>Labels</td>
  106. </tr>
  107. {{range $counts }}
  108. <tr>
  109. <td colspan=4>{{.Label}}</td><td>{{.Count}}</td>
  110. </tr>
  111. {{end}}
  112. {{end}}
  113. {{ $clients := .Metrics.ClientStats.TopCounts $topOption }}
  114. {{ if $clients }}
  115. <tr class="info">
  116. <td colspan=5>Clients</td>
  117. </tr>
  118. {{range $clients }}
  119. <tr>
  120. <td colspan=4>{{.Label}}</td><td>{{.Count}}</td>
  121. </tr>
  122. {{end}}
  123. {{end}}
  124. {{end}}
  125. </table>
  126. </div>
  127. </body>
  128. </html>