Files
trufflehog/pkg/sources/postman/metrics.go

54 lines
1.7 KiB
Go

package postman
import (
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
"github.com/trufflesecurity/trufflehog/v3/pkg/common"
)
type metrics struct {
apiRequests *prometheus.CounterVec
apiMonthlyRequestsRemaining *prometheus.GaugeVec
apiMonthlyRequestsLimit *prometheus.GaugeVec
}
var (
postmanAPIRequestsMetric = promauto.NewCounterVec(prometheus.CounterOpts{
Namespace: common.MetricsNamespace,
Subsystem: common.MetricsSubsystem,
Name: "postman_api_requests",
Help: "Total number of API requests made to Postman.",
},
[]string{"source_name", "endpoint"})
postmanAPIMonthlyRequestsRemaining = promauto.NewGaugeVec(prometheus.GaugeOpts{
Namespace: common.MetricsNamespace,
Subsystem: common.MetricsSubsystem,
Name: "postman_api_monthly_requests_remaining",
Help: "Total number of Postman API requests remaining this month.",
},
[]string{"source_name"})
postmanAPIMonthlyRequestsLimit = promauto.NewGaugeVec(prometheus.GaugeOpts{
Namespace: common.MetricsNamespace,
Subsystem: common.MetricsSubsystem,
Name: "postman_api_monthly_requests_limit",
Help: "Total monthly Postman API request limit.",
},
[]string{"source_name"})
)
func newMetrics(sourceName string) *metrics {
return &metrics{
apiRequests: postmanAPIRequestsMetric.MustCurryWith(map[string]string{
"source_name": sourceName,
}),
apiMonthlyRequestsRemaining: postmanAPIMonthlyRequestsRemaining.MustCurryWith(map[string]string{
"source_name": sourceName,
}),
apiMonthlyRequestsLimit: postmanAPIMonthlyRequestsLimit.MustCurryWith(map[string]string{
"source_name": sourceName,
}),
}
}