1<style> 2 th { 3 text-align: start; 4 } 5 6 tbody tr:nth-child(odd) { 7 background: rgb(239, 243, 255); 8 } 9 10 #structured-metrics-event-template { 11 text-align: center; 12 } 13 14 .sm-metric-row { 15 display: none; 16 } 17 18 #event-row:hover { 19 background-color: lightsteelblue; 20 cursor: pointer; 21 } 22 23 #sm-refresh-events { 24 margin-top: 10px; 25 } 26 27 #summary-row-template .td { 28 text-align: center; 29 } 30 31 #search-error-msg{ 32 display: none; 33 color: rgb(229, 26, 67); 34 } 35 36 #search-bar { 37 width: fit-content; 38 } 39</style> 40 41<h2>Structured Metrics Summary</h2> 42<table> 43 <tbody id="sm-summary-body"></tbody> 44</table> 45<h2>Structured Metrics Events</h2> 46<p>Events are not polled, please refresh to view new events.</p> 47<button id="sm-refresh-events">Refresh</button> 48<h3>Search:</h3> 49<p>Searching is implemented as key-value pair search param in the format of 'key:value'.</p> 50<p>Valid keys are: project, event, metric.</p> 51<input id="search-bar" type="search"></input> 52<p id="search-error-msg"></p> 53<table class="event-table"> 54 <thead> 55 <tr> 56 <th>Project</th> 57 <th>Event</th> 58 <th>Type</th> 59 <th>Uptime</th> 60 </tr> 61 </thead> 62 <tbody id="sm-events-body"></tbody> 63</table> 64<template id="summary-row-template"> 65 <tr> 66 <td><!-- Key --></td> 67 <td><!-- Value --></td> 68 </tr> 69</template> 70<template id="structured-metrics-event-row-template"> 71 <tr id="event-row"> 72 <td><!-- Project --></td> 73 <td><!-- Event --></td> 74 <td><!-- Type --></td> 75 <td><!-- Uptime --></td> 76 </tr> 77</template> 78<template id="structured-metrics-event-details-template"> 79 <tr id="metrics-row" class="sm-metric-row"> 80 <td colSpan="4"> 81 <div><b>Details</b></div> 82 <table> 83 <tbody id="details-table"></tbody> 84 </table> 85 <div><b>Metrics</b></div> 86 <table> 87 <tbody id="metrics-table"></tbody> 88 </table> 89 </td> 90 </tr> 91</template> 92