Added error
This commit is contained in:
parent
d3873bfb2e
commit
4e1777b6b9
2 changed files with 60 additions and 0 deletions
|
|
@ -151,6 +151,8 @@ type LayoutConfig struct {
|
||||||
UseCollapsedRows bool `json:"use_collapsed_rows"`
|
UseCollapsedRows bool `json:"use_collapsed_rows"`
|
||||||
OverviewPanels []PanelLayout `json:"overview_panels"` // Панели обзора перед клиентскими строками
|
OverviewPanels []PanelLayout `json:"overview_panels"` // Панели обзора перед клиентскими строками
|
||||||
OverviewRowTitle string `json:"overview_row_title"` // Заголовок collapsed row обзора
|
OverviewRowTitle string `json:"overview_row_title"` // Заголовок collapsed row обзора
|
||||||
|
ErrorPanels []PanelLayout `json:"error_panels"` // Панели ошибок (только VL)
|
||||||
|
ErrorRowTitle string `json:"error_row_title"` // Заголовок collapsed row ошибок
|
||||||
}
|
}
|
||||||
|
|
||||||
type PanelLayout struct {
|
type PanelLayout struct {
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,13 @@ func generateVLDashboard(clients map[string]ClientData, template *DashboardTempl
|
||||||
yPos++
|
yPos++
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(template.Layout.ErrorPanels) > 0 {
|
||||||
|
errorsRow := createErrorRowVL(template, datasourceType, datasourceUID, panelID, yPos)
|
||||||
|
panels = append(panels, errorsRow)
|
||||||
|
panelID += 10
|
||||||
|
yPos++
|
||||||
|
}
|
||||||
|
|
||||||
for _, client := range clients {
|
for _, client := range clients {
|
||||||
if len(client.Domains) == 0 {
|
if len(client.Domains) == 0 {
|
||||||
continue
|
continue
|
||||||
|
|
@ -225,6 +232,19 @@ func buildPanelVL(
|
||||||
panel["title"] = formatPanelTitle(title, client, domain)
|
panel["title"] = formatPanelTitle(title, client, domain)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Для rps панелей убираем суффикс " rps" из названий серий
|
||||||
|
if queryMode == "rps" || queryMode == "rps_multi" || queryMode == "rps_var" {
|
||||||
|
panel["transformations"] = []interface{}{
|
||||||
|
map[string]interface{}{
|
||||||
|
"id": "renameByRegex",
|
||||||
|
"options": map[string]interface{}{
|
||||||
|
"regex": "^(.+) rps$",
|
||||||
|
"renamePattern": "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Для range_percent добавляем transformation которая убирает " count(*)" из названий серий
|
// Для range_percent добавляем transformation которая убирает " count(*)" из названий серий
|
||||||
if queryMode == "range_percent" {
|
if queryMode == "range_percent" {
|
||||||
panel["transformations"] = []interface{}{
|
panel["transformations"] = []interface{}{
|
||||||
|
|
@ -394,3 +414,41 @@ func sendVLDashboardToGrafana(dashboard map[string]interface{}, config Config) e
|
||||||
// Используем тот же sendToGrafana
|
// Используем тот же sendToGrafana
|
||||||
return sendToGrafana(dashboard, vlConfig)
|
return sendToGrafana(dashboard, vlConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// createErrorRowVL создаёт collapsed row с панелями ошибок (только для VL).
|
||||||
|
func createErrorRowVL(template *DashboardTemplate, datasourceType, datasourceUID string, panelID, yPos int) map[string]interface{} {
|
||||||
|
innerPanels := []interface{}{}
|
||||||
|
currentY := 1
|
||||||
|
dummyClient := ClientData{}
|
||||||
|
|
||||||
|
for _, layout := range template.Layout.ErrorPanels {
|
||||||
|
width := layout.Width
|
||||||
|
if width == 0 {
|
||||||
|
width = 24
|
||||||
|
}
|
||||||
|
panel := buildPanelVL(layout.PanelKey, template, DomainInfo{}, dummyClient, datasourceType, datasourceUID, panelID, currentY, layout.XOffset, width)
|
||||||
|
if panel == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if layout.TitleFormat != "" {
|
||||||
|
panel["title"] = layout.TitleFormat
|
||||||
|
}
|
||||||
|
innerPanels = append(innerPanels, panel)
|
||||||
|
panelID++
|
||||||
|
currentY += getGridH(panel)
|
||||||
|
}
|
||||||
|
|
||||||
|
rowTitle := template.Layout.ErrorRowTitle
|
||||||
|
if rowTitle == "" {
|
||||||
|
rowTitle = "Errors"
|
||||||
|
}
|
||||||
|
|
||||||
|
return map[string]interface{}{
|
||||||
|
"type": "row",
|
||||||
|
"title": rowTitle,
|
||||||
|
"id": panelID,
|
||||||
|
"collapsed": true,
|
||||||
|
"gridPos": map[string]interface{}{"h": 1, "w": 24, "x": 0, "y": yPos},
|
||||||
|
"panels": innerPanels,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue