feat(api): export annotation settings in the API

This commit is contained in:
Łukasz Mierzwa
2018-07-19 18:35:45 +02:00
parent be3c8ef0c0
commit 77079a9629
3 changed files with 58 additions and 2 deletions

50
internal/mock/mock.py Normal file
View File

@@ -0,0 +1,50 @@
#!/usr/bin/env python
import random
import time
def send_alert(annotations, labels):
data = {
"annotations": annotations,
"labels": data,
"generatorURL": "http://localhost:9093"
}
req = urllib2.Request('http://localhost:9093/api/v1/alerts')
req.add_header('Content-Type', 'application/json')
response = urllib2.urlopen(req, json.dumps(data))
print(response)
class FlappingAlert(object):
annotations = {}
labels = {}
def __init__(self, active_for, idle_for, splay):
self._active_for = active_for
self._idle_for = idle_for
self._max_splay = splay
self.active = True
self.last_change = time.time()
self.splay = self.random_splay()
def random_splay(self):
return random.randrange(0, self._max_splay)
def tick():
if time.time() >= self.last_change + self.splay:
self.active = !self.active
self.last_change = time.time()
self.splay = self.random_splay()
if self.active:
send_alert(self.annotations, self.labels)
def main():
alerts = [
]

View File

@@ -160,7 +160,10 @@ func (ag *APIAlertGroup) DedupSharedMaps() {
// Settings is used to export unsee configuration that is used by UI
type Settings struct {
StaticColorLabels []string `json:"staticColorLabels"`
StaticColorLabels []string `json:"staticColorLabels"`
AnnotationsDefaultHidden bool `json:"annotationsDefaultHidden"`
AnnotationsHidden []string `json:"annotationsHidden"`
AnnotationsVisible []string `json:"annotationsVisible"`
}
// AlertsResponse is the structure of JSON response UI will use to get alert data

View File

@@ -63,7 +63,10 @@ func alerts(c *gin.Context) {
resp.Version = version
resp.Upstreams = getUpstreams()
resp.Settings = models.Settings{
StaticColorLabels: config.Config.Labels.Color.Static,
StaticColorLabels: config.Config.Labels.Color.Static,
AnnotationsDefaultHidden: config.Config.Annotations.Default.Hidden,
AnnotationsHidden: config.Config.Annotations.Hidden,
AnnotationsVisible: config.Config.Annotations.Visible,
}
// use full URI (including query args) as cache key