1/*2Maddy Mail Server - Composable all-in-one email server.3Copyright © 2019-2020 Max Mazurov <fox.cpp@disroot.org>, Maddy Mail Server contributors45This program is free software: you can redistribute it and/or modify6it under the terms of the GNU General Public License as published by7the Free Software Foundation, either version 3 of the License, or8(at your option) any later version.910This program is distributed in the hope that it will be useful,11but WITHOUT ANY WARRANTY; without even the implied warranty of12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the13GNU General Public License for more details.1415You should have received a copy of the GNU General Public License16along with this program. If not, see <https://www.gnu.org/licenses/>.17*/1819package smtp2021import "github.com/prometheus/client_golang/prometheus"2223var (24 startedSMTPTransactions = prometheus.NewCounterVec(25 prometheus.CounterOpts{26 Namespace: "maddy",27 Subsystem: "smtp",28 Name: "started_transactions",29 Help: "Amount of SMTP trasanactions started",30 },31 []string{"module"},32 )33 completedSMTPTransactions = prometheus.NewCounterVec(34 prometheus.CounterOpts{35 Namespace: "maddy",36 Subsystem: "smtp",37 Name: "smtp_completed_transactions",38 Help: "Amount of SMTP trasanactions successfully completed",39 },40 []string{"module"},41 )42 abortedSMTPTransactions = prometheus.NewCounterVec(43 prometheus.CounterOpts{44 Namespace: "maddy",45 Subsystem: "smtp",46 Name: "aborted_transactions",47 Help: "Amount of SMTP trasanactions aborted",48 },49 []string{"module"},50 )5152 ratelimitDefers = prometheus.NewCounterVec(53 prometheus.CounterOpts{54 Namespace: "maddy",55 Subsystem: "smtp",56 Name: "ratelimit_deferred",57 Help: "Messages rejected with 4xx code due to ratelimiting",58 },59 []string{"module"},60 )61 failedLogins = prometheus.NewCounterVec(62 prometheus.CounterOpts{63 Namespace: "maddy",64 Subsystem: "smtp",65 Name: "failed_logins",66 Help: "AUTH command failures",67 },68 []string{"module"},69 )70 failedCmds = prometheus.NewCounterVec(71 prometheus.CounterOpts{72 Namespace: "maddy",73 Subsystem: "smtp",74 Name: "failed_commands",75 Help: "Failed transaction commands (MAIL, RCPT, DATA)",76 },77 []string{"module", "command", "smtp_code", "smtp_enchcode"},78 )79)8081func init() {82 prometheus.MustRegister(startedSMTPTransactions)83 prometheus.MustRegister(completedSMTPTransactions)84 prometheus.MustRegister(abortedSMTPTransactions)85 prometheus.MustRegister(ratelimitDefers)86 prometheus.MustRegister(failedCmds)87}