github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/clients/pkg/promtail/targets/syslog/metrics.go (about)

     1  package syslog
     2  
     3  import "github.com/prometheus/client_golang/prometheus"
     4  
     5  // Metrics holds a set of syslog metrics.
     6  type Metrics struct {
     7  	reg prometheus.Registerer
     8  
     9  	syslogEntries       prometheus.Counter
    10  	syslogParsingErrors prometheus.Counter
    11  	syslogEmptyMessages prometheus.Counter
    12  }
    13  
    14  // NewMetrics creates a new set of syslog metrics. If reg is non-nil, the
    15  // metrics will be registered.
    16  func NewMetrics(reg prometheus.Registerer) *Metrics {
    17  	var m Metrics
    18  	m.reg = reg
    19  
    20  	m.syslogEntries = prometheus.NewCounter(prometheus.CounterOpts{
    21  		Namespace: "promtail",
    22  		Name:      "syslog_target_entries_total",
    23  		Help:      "Total number of successful entries sent to the syslog target",
    24  	})
    25  	m.syslogParsingErrors = prometheus.NewCounter(prometheus.CounterOpts{
    26  		Namespace: "promtail",
    27  		Name:      "syslog_target_parsing_errors_total",
    28  		Help:      "Total number of parsing errors while receiving syslog messages",
    29  	})
    30  	m.syslogEmptyMessages = prometheus.NewCounter(prometheus.CounterOpts{
    31  		Namespace: "promtail",
    32  		Name:      "syslog_empty_messages_total",
    33  		Help:      "Total number of empty messages receiving from syslog",
    34  	})
    35  
    36  	if reg != nil {
    37  		reg.MustRegister(
    38  			m.syslogEntries,
    39  			m.syslogParsingErrors,
    40  			m.syslogEmptyMessages,
    41  		)
    42  	}
    43  
    44  	return &m
    45  }