package metric

import (
	"github.com/prometheus/client_golang/prometheus"
)

type AuditlogOperation string

const (
	AuditlogOperationCreate AuditlogOperation = "create"
	AuditlogOperationUpdate AuditlogOperation = "update"
	AuditlogOperationDelete AuditlogOperation = "delete"
)

type AuditlogRollbackStatus string

const (
	AuditlogRollbackStatusSuccess AuditlogRollbackStatus = "success"
	AuditlogRollbackStatusFail    AuditlogRollbackStatus = "fail"
)

var AuditLogRollbackSQLCounter = prometheus.NewCounterVec(
	prometheus.CounterOpts{
		Namespace: MetricNamespace,
		Subsystem: "auditlog",
		Name:      "rollback_sql_total",
		Help:      "Counter for rollback sqls",
	},
	[]string{"cluster_id", "operation", "status"},
)

var AuditLogInconsistentFilterRuleCounter = prometheus.NewCounterVec(
	prometheus.CounterOpts{
		Namespace: MetricNamespace,
		Subsystem: "auditlog",
		Name:      "inconsistent_filter_rule_total",
		Help:      "Counter for inconsistent filter rule",
	},
	[]string{"name"},
)

func init() {
	prometheus.MustRegister(AuditLogRollbackSQLCounter)
}
