{{define "head"}} <link type="text/css" rel="stylesheet" href="{{ pathPrefix }}/static/css/targets.css?v={{ buildVersion }}"> <script src="{{ pathPrefix }}/static/js/targets.js?v={{ buildVersion }}"></script> {{end}} {{define "content"}} <div class="container-fluid"> <h1>Targets</h1> <div id="showTargets" class="btn-group btn-group-toggle" data-toggle="buttons"> <label class="btn btn-primary"> <input type="radio" name="targets" id="all-targets" autocomplete="off" checked> All </label> <label class="btn btn-primary"> <input type="radio" name="targets" id="unhealthy-targets" autocomplete="off"> Unhealthy </label> <br /> </div> {{- range $job, $pool := .TargetPools}} {{- $healthy := numHealthy $pool}} {{- $total := len $pool}} <div class="table-container"> <h2 class="job_header{{if lt $healthy $total}} danger{{end}}"> <a id="job-{{$job}}" href="#job-{{$job}}">{{$job}} ({{$healthy}}/{{$total}} up)</a> <button type="button" class="targets expanded-table btn btn-primary">show less</button> </h2> <table class="table table-sm table-bordered table-striped table-hover"> <thead class="job_details"> <tr> <th>Endpoint</th> <th>State</th> <th>Labels</th> <th>Last Scrape</th> <th>Scrape Duration</th> <th>Error</th> </tr> </thead> <tbody> {{- range $pool}} <tr> <td class="endpoint"> <a href="{{.URL | globalURL}}">{{.URL.Scheme}}://{{.URL.Host}}{{.URL.Path}}</a><br> {{- range $label, $values := .URL.Query }} {{- range $i, $value := $values}} <span class="badge badge-primary">{{$label}}="{{$value}}"</span> {{- end}} {{- end}} </td> <td class="state"> <span class="alert alert-{{ .Health | targetHealthToClass }} state_indicator text-uppercase">{{.Health}}</span> </td> <td class="labels"> <span class="cursor-pointer" data-toggle="tooltip" title="" data-html=true data-original-title="<b>Before relabeling:</b>{{range $k, $v := .DiscoveredLabels.Map}}<br>{{$ev := $v | html}}{{$k}}="{{$ev}}"{{end}}"> {{- range $label, $value := .Labels.Map}} <span class="badge badge-primary">{{$label}}="{{$value}}"</span> {{- else -}} <span class="badge badge-default">none</span> {{- end}} </span> </td> <td class="last-scrape">{{- if .LastScrape.IsZero}}Never{{else}}{{since .LastScrape}} ago{{end}}</td> <td class="scrape-duration">{{- humanizeDuration .LastScrapeDuration.Seconds}}</td> <td class="errors">{{- if .LastError}}<span class="alert alert-danger state_indicator">{{.LastError}}</span>{{end}}</td> </tr> {{- end}} </tbody> </table> </div> {{- end }} </div> {{end}}