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  }