mirror of
https://github.com/prometheus-community/windows_exporter.git
synced 2026-03-05 01:56:35 +00:00
smtp: refactor collector (#1739)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
This commit is contained in:
46
internal/collector/smtp/const.go
Normal file
46
internal/collector/smtp/const.go
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
package smtp
|
||||||
|
|
||||||
|
const (
|
||||||
|
badmailedMessagesBadPickupFileTotal = "Badmailed Messages (Bad Pickup File)"
|
||||||
|
badmailedMessagesGeneralFailureTotal = "Badmailed Messages (General Failure)"
|
||||||
|
badmailedMessagesHopCountExceededTotal = "Badmailed Messages (Hop Count Exceeded)"
|
||||||
|
badmailedMessagesNDROfDSNTotal = "Badmailed Messages (NDR of DSN)"
|
||||||
|
badmailedMessagesNoRecipientsTotal = "Badmailed Messages (No Recipients)"
|
||||||
|
badmailedMessagesTriggeredViaEventTotal = "Badmailed Messages (Triggered via Event)"
|
||||||
|
bytesSentTotal = "Bytes Sent Total"
|
||||||
|
bytesReceivedTotal = "Bytes Received Total"
|
||||||
|
categorizerQueueLength = "Categorizer Queue Length"
|
||||||
|
connectionErrorsTotal = "Total Connection Errors"
|
||||||
|
currentMessagesInLocalDelivery = "Current Messages in Local Delivery"
|
||||||
|
directoryDropsTotal = "Directory Drops Total"
|
||||||
|
dnsQueriesTotal = "DNS Queries Total"
|
||||||
|
dsnFailuresTotal = "Total DSN Failures"
|
||||||
|
etrnMessagesTotal = "ETRN Messages Total"
|
||||||
|
inboundConnectionsCurrent = "Inbound Connections Current"
|
||||||
|
inboundConnectionsTotal = "Inbound Connections Total"
|
||||||
|
localQueueLength = "Local Queue Length"
|
||||||
|
localRetryQueueLength = "Local Retry Queue Length"
|
||||||
|
mailFilesOpen = "Number of MailFiles Open"
|
||||||
|
messageBytesReceivedTotal = "Message Bytes Received Total"
|
||||||
|
messageBytesSentTotal = "Message Bytes Sent Total"
|
||||||
|
messageDeliveryRetriesTotal = "Message Delivery Retries"
|
||||||
|
messageSendRetriesTotal = "Message Send Retries"
|
||||||
|
messagesCurrentlyUndeliverable = "Messages Currently Undeliverable"
|
||||||
|
messagesDeliveredTotal = "Messages Delivered Total"
|
||||||
|
messagesPendingRouting = "Messages Pending Routing"
|
||||||
|
messagesReceivedTotal = "Messages Received Total"
|
||||||
|
messagesRefusedForAddressObjectsTotal = "Messages Refused for Address Objects"
|
||||||
|
messagesRefusedForMailObjectsTotal = "Messages Refused for Mail Objects"
|
||||||
|
messagesRefusedForSizeTotal = "Messages Refused for Size"
|
||||||
|
messagesSentTotal = "Messages Sent Total"
|
||||||
|
messagesSubmittedTotal = "Total messages submitted"
|
||||||
|
ndrsGeneratedTotal = "NDRs Generated"
|
||||||
|
outboundConnectionsCurrent = "Outbound Connections Current"
|
||||||
|
outboundConnectionsRefusedTotal = "Outbound Connections Refused"
|
||||||
|
outboundConnectionsTotal = "Outbound Connections Total"
|
||||||
|
queueFilesOpen = "Number of QueueFiles Open"
|
||||||
|
pickupDirectoryMessagesRetrievedTotal = "Pickup Directory Messages Retrieved Total"
|
||||||
|
remoteQueueLength = "Remote Queue Length"
|
||||||
|
remoteRetryQueueLength = "Remote Retry Queue Length"
|
||||||
|
routingTableLookupsTotal = "Routing Table Lookups Total"
|
||||||
|
)
|
||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/mi"
|
"github.com/prometheus-community/windows_exporter/internal/mi"
|
||||||
v1 "github.com/prometheus-community/windows_exporter/internal/perfdata/v1"
|
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
)
|
)
|
||||||
@@ -29,6 +29,8 @@ var ConfigDefaults = Config{
|
|||||||
type Collector struct {
|
type Collector struct {
|
||||||
config Config
|
config Config
|
||||||
|
|
||||||
|
perfDataCollector perfdata.Collector
|
||||||
|
|
||||||
badMailedMessagesBadPickupFileTotal *prometheus.Desc
|
badMailedMessagesBadPickupFileTotal *prometheus.Desc
|
||||||
badMailedMessagesGeneralFailureTotal *prometheus.Desc
|
badMailedMessagesGeneralFailureTotal *prometheus.Desc
|
||||||
badMailedMessagesHopCountExceededTotal *prometheus.Desc
|
badMailedMessagesHopCountExceededTotal *prometheus.Desc
|
||||||
@@ -138,10 +140,62 @@ func (c *Collector) GetPerfCounter(_ *slog.Logger) ([]string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) Close(_ *slog.Logger) error {
|
func (c *Collector) Close(_ *slog.Logger) error {
|
||||||
|
c.perfDataCollector.Close()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) Build(logger *slog.Logger, _ *mi.Session) error {
|
func (c *Collector) Build(logger *slog.Logger, _ *mi.Session) error {
|
||||||
|
var err error
|
||||||
|
|
||||||
|
c.perfDataCollector, err = perfdata.NewCollector(perfdata.V2, "SMTP Server", perfdata.AllInstances, []string{
|
||||||
|
badmailedMessagesBadPickupFileTotal,
|
||||||
|
badmailedMessagesGeneralFailureTotal,
|
||||||
|
badmailedMessagesHopCountExceededTotal,
|
||||||
|
badmailedMessagesNDROfDSNTotal,
|
||||||
|
badmailedMessagesNoRecipientsTotal,
|
||||||
|
badmailedMessagesTriggeredViaEventTotal,
|
||||||
|
bytesSentTotal,
|
||||||
|
bytesReceivedTotal,
|
||||||
|
categorizerQueueLength,
|
||||||
|
connectionErrorsTotal,
|
||||||
|
currentMessagesInLocalDelivery,
|
||||||
|
directoryDropsTotal,
|
||||||
|
dnsQueriesTotal,
|
||||||
|
dsnFailuresTotal,
|
||||||
|
etrnMessagesTotal,
|
||||||
|
inboundConnectionsCurrent,
|
||||||
|
inboundConnectionsTotal,
|
||||||
|
localQueueLength,
|
||||||
|
localRetryQueueLength,
|
||||||
|
mailFilesOpen,
|
||||||
|
messageBytesReceivedTotal,
|
||||||
|
messageBytesSentTotal,
|
||||||
|
messageDeliveryRetriesTotal,
|
||||||
|
messageSendRetriesTotal,
|
||||||
|
messagesCurrentlyUndeliverable,
|
||||||
|
messagesDeliveredTotal,
|
||||||
|
messagesPendingRouting,
|
||||||
|
messagesReceivedTotal,
|
||||||
|
messagesRefusedForAddressObjectsTotal,
|
||||||
|
messagesRefusedForMailObjectsTotal,
|
||||||
|
messagesRefusedForSizeTotal,
|
||||||
|
messagesSentTotal,
|
||||||
|
messagesSubmittedTotal,
|
||||||
|
ndrsGeneratedTotal,
|
||||||
|
outboundConnectionsCurrent,
|
||||||
|
outboundConnectionsRefusedTotal,
|
||||||
|
outboundConnectionsTotal,
|
||||||
|
queueFilesOpen,
|
||||||
|
pickupDirectoryMessagesRetrievedTotal,
|
||||||
|
remoteQueueLength,
|
||||||
|
remoteRetryQueueLength,
|
||||||
|
routingTableLookupsTotal,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to create SMTP Server collector: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
logger.Info("smtp collector is in an experimental state! Metrics for this collector have not been tested.",
|
logger.Info("smtp collector is in an experimental state! Metrics for this collector have not been tested.",
|
||||||
slog.String("collector", Name),
|
slog.String("collector", Name),
|
||||||
)
|
)
|
||||||
@@ -404,368 +458,311 @@ func (c *Collector) Build(logger *slog.Logger, _ *mi.Session) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, _ *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
if err := c.collect(ch); err != nil {
|
||||||
if err := c.collect(ctx, logger, ch); err != nil {
|
return fmt.Errorf("failed collecting smtp metrics: %w", err)
|
||||||
logger.Error("failed collecting smtp metrics",
|
|
||||||
slog.Any("err", err),
|
|
||||||
)
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// PerflibSMTPServer Perflib: "SMTP Server".
|
func (c *Collector) collect(ch chan<- prometheus.Metric) error {
|
||||||
type PerflibSMTPServer struct {
|
perfData, err := c.perfDataCollector.Collect()
|
||||||
Name string
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to collect SMTP Server metrics: %w", err)
|
||||||
BadmailedMessagesBadPickupFileTotal float64 `perflib:"Badmailed Messages (Bad Pickup File)"`
|
|
||||||
BadmailedMessagesGeneralFailureTotal float64 `perflib:"Badmailed Messages (General Failure)"`
|
|
||||||
BadmailedMessagesHopCountExceededTotal float64 `perflib:"Badmailed Messages (Hop Count Exceeded)"`
|
|
||||||
BadmailedMessagesNDROfDSNTotal float64 `perflib:"Badmailed Messages (NDR of DSN)"`
|
|
||||||
BadmailedMessagesNoRecipientsTotal float64 `perflib:"Badmailed Messages (No Recipients)"`
|
|
||||||
BadmailedMessagesTriggeredViaEventTotal float64 `perflib:"Badmailed Messages (Triggered via Event)"`
|
|
||||||
BytesSentTotal float64 `perflib:"Bytes Sent Total"`
|
|
||||||
BytesReceivedTotal float64 `perflib:"Bytes Received Total"`
|
|
||||||
CategorizerQueueLength float64 `perflib:"Categorizer Queue Length"`
|
|
||||||
ConnectionErrorsTotal float64 `perflib:"Total Connection Errors"`
|
|
||||||
CurrentMessagesInLocalDelivery float64 `perflib:"Current Messages in Local Delivery"`
|
|
||||||
DirectoryDropsTotal float64 `perflib:"Directory Drops Total"`
|
|
||||||
DNSQueriesTotal float64 `perflib:"DNS Queries Total"`
|
|
||||||
DSNFailuresTotal float64 `perflib:"Total DSN Failures"`
|
|
||||||
ETRNMessagesTotal float64 `perflib:"ETRN Messages Total"`
|
|
||||||
InboundConnectionsCurrent float64 `perflib:"Inbound Connections Current"`
|
|
||||||
InboundConnectionsTotal float64 `perflib:"Inbound Connections Total"`
|
|
||||||
LocalQueueLength float64 `perflib:"Local Queue Length"`
|
|
||||||
LocalRetryQueueLength float64 `perflib:"Local Retry Queue Length"`
|
|
||||||
MailFilesOpen float64 `perflib:"Number of MailFiles Open"`
|
|
||||||
MessageBytesReceivedTotal float64 `perflib:"Message Bytes Received Total"`
|
|
||||||
MessageBytesSentTotal float64 `perflib:"Message Bytes Sent Total"`
|
|
||||||
MessageDeliveryRetriesTotal float64 `perflib:"Message Delivery Retries"`
|
|
||||||
MessageSendRetriesTotal float64 `perflib:"Message Send Retries"`
|
|
||||||
MessagesCurrentlyUndeliverable float64 `perflib:"Messages Currently Undeliverable"`
|
|
||||||
MessagesDeliveredTotal float64 `perflib:"Messages Delivered Total"`
|
|
||||||
MessagesPendingRouting float64 `perflib:"Messages Pending Routing"`
|
|
||||||
MessagesReceivedTotal float64 `perflib:"Messages Received Total"`
|
|
||||||
MessagesRefusedForAddressObjectsTotal float64 `perflib:"Messages Refused for Address Objects"`
|
|
||||||
MessagesRefusedForMailObjectsTotal float64 `perflib:"Messages Refused for Mail Objects"`
|
|
||||||
MessagesRefusedForSizeTotal float64 `perflib:"Messages Refused for Size"`
|
|
||||||
MessagesSentTotal float64 `perflib:"Messages Sent Total"`
|
|
||||||
MessagesSubmittedTotal float64 `perflib:"Total messages submitted"`
|
|
||||||
NDRsGeneratedTotal float64 `perflib:"NDRs Generated"`
|
|
||||||
OutboundConnectionsCurrent float64 `perflib:"Outbound Connections Current"`
|
|
||||||
OutboundConnectionsRefusedTotal float64 `perflib:"Outbound Connections Refused"`
|
|
||||||
OutboundConnectionsTotal float64 `perflib:"Outbound Connections Total"`
|
|
||||||
QueueFilesOpen float64 `perflib:"Number of QueueFiles Open"`
|
|
||||||
PickupDirectoryMessagesRetrievedTotal float64 `perflib:"Pickup Directory Messages Retrieved Total"`
|
|
||||||
RemoteQueueLength float64 `perflib:"Remote Queue Length"`
|
|
||||||
RemoteRetryQueueLength float64 `perflib:"Remote Retry Queue Length"`
|
|
||||||
RoutingTableLookupsTotal float64 `perflib:"Routing Table Lookups Total"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Collector) collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
|
||||||
logger = logger.With(slog.String("collector", Name))
|
|
||||||
|
|
||||||
var dst []PerflibSMTPServer
|
|
||||||
|
|
||||||
if err := v1.UnmarshalObject(ctx.PerfObjects["SMTP Server"], &dst, logger); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, server := range dst {
|
for name, server := range perfData {
|
||||||
if server.Name == "_Total" ||
|
if c.config.ServerExclude.MatchString(name) ||
|
||||||
c.config.ServerExclude.MatchString(server.Name) ||
|
!c.config.ServerInclude.MatchString(name) {
|
||||||
!c.config.ServerInclude.MatchString(server.Name) {
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.badMailedMessagesBadPickupFileTotal,
|
c.badMailedMessagesBadPickupFileTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.BadmailedMessagesBadPickupFileTotal,
|
server[badmailedMessagesBadPickupFileTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.badMailedMessagesHopCountExceededTotal,
|
c.badMailedMessagesHopCountExceededTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.BadmailedMessagesHopCountExceededTotal,
|
server[badmailedMessagesHopCountExceededTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.badMailedMessagesNDROfDSNTotal,
|
c.badMailedMessagesNDROfDSNTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.BadmailedMessagesNDROfDSNTotal,
|
server[badmailedMessagesNDROfDSNTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.badMailedMessagesNoRecipientsTotal,
|
c.badMailedMessagesNoRecipientsTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.BadmailedMessagesNoRecipientsTotal,
|
server[badmailedMessagesNoRecipientsTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.badMailedMessagesTriggeredViaEventTotal,
|
c.badMailedMessagesTriggeredViaEventTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.BadmailedMessagesTriggeredViaEventTotal,
|
server[badmailedMessagesTriggeredViaEventTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.bytesSentTotal,
|
c.bytesSentTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.BytesSentTotal,
|
server[bytesSentTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.bytesReceivedTotal,
|
c.bytesReceivedTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.BytesReceivedTotal,
|
server[bytesReceivedTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.categorizerQueueLength,
|
c.categorizerQueueLength,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
server.CategorizerQueueLength,
|
server[categorizerQueueLength].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.connectionErrorsTotal,
|
c.connectionErrorsTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.ConnectionErrorsTotal,
|
server[connectionErrorsTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.currentMessagesInLocalDelivery,
|
c.currentMessagesInLocalDelivery,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
server.CurrentMessagesInLocalDelivery,
|
server[currentMessagesInLocalDelivery].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.directoryDropsTotal,
|
c.directoryDropsTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.DirectoryDropsTotal,
|
server[directoryDropsTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.dsnFailuresTotal,
|
c.dsnFailuresTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.DSNFailuresTotal,
|
server[dsnFailuresTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.dnsQueriesTotal,
|
c.dnsQueriesTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.DNSQueriesTotal,
|
server[dnsQueriesTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.etrnMessagesTotal,
|
c.etrnMessagesTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.ETRNMessagesTotal,
|
server[etrnMessagesTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.inboundConnectionsTotal,
|
c.inboundConnectionsTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.InboundConnectionsTotal,
|
server[inboundConnectionsTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.inboundConnectionsCurrent,
|
c.inboundConnectionsCurrent,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
server.InboundConnectionsCurrent,
|
server[inboundConnectionsCurrent].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.localQueueLength,
|
c.localQueueLength,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
server.LocalQueueLength,
|
server[localQueueLength].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.localRetryQueueLength,
|
c.localRetryQueueLength,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
server.LocalRetryQueueLength,
|
server[localRetryQueueLength].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.mailFilesOpen,
|
c.mailFilesOpen,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
server.MailFilesOpen,
|
server[mailFilesOpen].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messageBytesReceivedTotal,
|
c.messageBytesReceivedTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.MessageBytesReceivedTotal,
|
server[messageBytesReceivedTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messageBytesSentTotal,
|
c.messageBytesSentTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.MessageBytesSentTotal,
|
server[messageBytesSentTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messageDeliveryRetriesTotal,
|
c.messageDeliveryRetriesTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.MessageDeliveryRetriesTotal,
|
server[messageDeliveryRetriesTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messageSendRetriesTotal,
|
c.messageSendRetriesTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.MessageSendRetriesTotal,
|
server[messageSendRetriesTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messagesCurrentlyUndeliverable,
|
c.messagesCurrentlyUndeliverable,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
server.MessagesCurrentlyUndeliverable,
|
server[messagesCurrentlyUndeliverable].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messagesDeliveredTotal,
|
c.messagesDeliveredTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.MessagesDeliveredTotal,
|
server[messagesDeliveredTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messagesPendingRouting,
|
c.messagesPendingRouting,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
server.MessagesPendingRouting,
|
server[messagesPendingRouting].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messagesReceivedTotal,
|
c.messagesReceivedTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.MessagesReceivedTotal,
|
server[messagesReceivedTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messagesRefusedForAddressObjectsTotal,
|
c.messagesRefusedForAddressObjectsTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.MessagesRefusedForAddressObjectsTotal,
|
server[messagesRefusedForAddressObjectsTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messagesRefusedForMailObjectsTotal,
|
c.messagesRefusedForMailObjectsTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.MessagesRefusedForMailObjectsTotal,
|
server[messagesRefusedForMailObjectsTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messagesRefusedForSizeTotal,
|
c.messagesRefusedForSizeTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.MessagesRefusedForSizeTotal,
|
server[messagesRefusedForSizeTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messagesSentTotal,
|
c.messagesSentTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.MessagesSentTotal,
|
server[messagesSentTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.messagesSubmittedTotal,
|
c.messagesSubmittedTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.MessagesSubmittedTotal,
|
server[messagesSubmittedTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.ndrsGeneratedTotal,
|
c.ndrsGeneratedTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.NDRsGeneratedTotal,
|
server[ndrsGeneratedTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.outboundConnectionsCurrent,
|
c.outboundConnectionsCurrent,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
server.OutboundConnectionsCurrent,
|
server[outboundConnectionsCurrent].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.outboundConnectionsRefusedTotal,
|
c.outboundConnectionsRefusedTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.OutboundConnectionsRefusedTotal,
|
server[outboundConnectionsRefusedTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.outboundConnectionsTotal,
|
c.outboundConnectionsTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.OutboundConnectionsTotal,
|
server[outboundConnectionsTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.queueFilesOpen,
|
c.queueFilesOpen,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
server.QueueFilesOpen,
|
server[queueFilesOpen].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.pickupDirectoryMessagesRetrievedTotal,
|
c.pickupDirectoryMessagesRetrievedTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.PickupDirectoryMessagesRetrievedTotal,
|
server[pickupDirectoryMessagesRetrievedTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.remoteQueueLength,
|
c.remoteQueueLength,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
server.RemoteQueueLength,
|
server[remoteQueueLength].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.remoteRetryQueueLength,
|
c.remoteRetryQueueLength,
|
||||||
prometheus.GaugeValue,
|
prometheus.GaugeValue,
|
||||||
server.RemoteRetryQueueLength,
|
server[remoteRetryQueueLength].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.routingTableLookupsTotal,
|
c.routingTableLookupsTotal,
|
||||||
prometheus.CounterValue,
|
prometheus.CounterValue,
|
||||||
server.RoutingTableLookupsTotal,
|
server[routingTableLookupsTotal].FirstValue,
|
||||||
server.Name,
|
name,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user