github.com/netdata/go.d.plugin@v0.58.1/modules/supervisord/charts.go (about) 1 // SPDX-License-Identifier: GPL-3.0-or-later 2 3 package supervisord 4 5 import ( 6 "fmt" 7 8 "github.com/netdata/go.d.plugin/agent/module" 9 ) 10 11 const ( 12 summaryChartsPriority = module.Priority 13 groupChartsPriority = summaryChartsPriority + 20 14 ) 15 16 var summaryCharts = module.Charts{ 17 { 18 ID: "processes", 19 Title: "Processes", 20 Units: "processes", 21 Fam: "summary", 22 Ctx: "supervisord.summary_processes", 23 Type: module.Stacked, 24 Priority: summaryChartsPriority, 25 Dims: module.Dims{ 26 {ID: "running_processes", Name: "running"}, 27 {ID: "non_running_processes", Name: "non-running"}, 28 }, 29 }, 30 } 31 32 var ( 33 groupChartsTmpl = module.Charts{ 34 groupProcessesChartTmpl.Copy(), 35 groupProcessesStateCodeChartTmpl.Copy(), 36 groupProcessesExitStatusChartTmpl.Copy(), 37 groupProcessesUptimeChartTmpl.Copy(), 38 groupProcessesDowntimeChartTmpl.Copy(), 39 } 40 41 groupProcessesChartTmpl = module.Chart{ 42 ID: "group_%s_processes", 43 Title: "Processes", 44 Units: "processes", 45 Fam: "group %s", 46 Ctx: "supervisord.processes", 47 Type: module.Stacked, 48 Dims: module.Dims{ 49 {ID: "group_%s_running_processes", Name: "running"}, 50 {ID: "group_%s_non_running_processes", Name: "non-running"}, 51 }, 52 } 53 groupProcessesStateCodeChartTmpl = module.Chart{ 54 ID: "group_%s_processes_state_code", 55 Title: "State code", 56 Units: "code", 57 Fam: "group %s", 58 Ctx: "supervisord.process_state_code", 59 } 60 groupProcessesExitStatusChartTmpl = module.Chart{ 61 ID: "group_%s_processes_exit_status", 62 Title: "Exit status", 63 Units: "status", 64 Fam: "group %s", 65 Ctx: "supervisord.process_exit_status", 66 } 67 groupProcessesUptimeChartTmpl = module.Chart{ 68 ID: "group_%s_processes_uptime", 69 Title: "Uptime", 70 Units: "seconds", 71 Fam: "group %s", 72 Ctx: "supervisord.process_uptime", 73 } 74 groupProcessesDowntimeChartTmpl = module.Chart{ 75 ID: "group_%s_processes_downtime", 76 Title: "Downtime", 77 Units: "seconds", 78 Fam: "group %s", 79 Ctx: "supervisord.process_downtime", 80 } 81 ) 82 83 func newProcGroupCharts(group string) *module.Charts { 84 charts := groupChartsTmpl.Copy() 85 for i, c := range *charts { 86 c.ID = fmt.Sprintf(c.ID, group) 87 c.Fam = fmt.Sprintf(c.Fam, group) 88 c.Priority = groupChartsPriority + i 89 for _, d := range c.Dims { 90 d.ID = fmt.Sprintf(d.ID, group) 91 } 92 } 93 return charts 94 }