Documentation
¶
Index ¶
- Variables
- func GetLogOperators() map[string][]string
- func GetProcessedCerts() int64
- func GetProcessedPrecerts() int64
- type CTCertIndex
- type CTMetrics
- type LogMetrics
- func (m *LogMetrics) Get(operator, url string) int64
- func (m *LogMetrics) GetAllCTIndexes() CTCertIndex
- func (m *LogMetrics) GetCTIndex(url string) uint64
- func (m *LogMetrics) GetCTMetrics() CTMetrics
- func (m *LogMetrics) Inc(operator, url string, index uint64)
- func (m *LogMetrics) Init(operator, url string)
- func (m *LogMetrics) LoadCTIndex(ctIndexFilePath string)
- func (m *LogMetrics) OperatorLogMapping() OperatorLogs
- func (m *LogMetrics) SaveCertIndexes(ctIndexFilePath string)
- func (m *LogMetrics) SaveCertIndexesAtInterval(interval time.Duration, ctIndexFilePath string)
- func (m *LogMetrics) Set(operator, url string, value int64)
- func (m *LogMetrics) SetCTIndex(url string, index uint64)
- type OperatorLogs
- type OperatorMetric
- type PrometheusExporter
- func (pm *PrometheusExporter) RegisterClient(name string, callback func() float64)
- func (pm *PrometheusExporter) RegisterGaugeMetric(label string, callback func() float64)
- func (pm *PrometheusExporter) RegisterGaugeMetricInt(label string, callback func() int64)
- func (pm *PrometheusExporter) RegisterLog(operatorName, url string)
- func (pm *PrometheusExporter) UnregisterClient(name string)
- func (pm *PrometheusExporter) UnregisterMetric(label string)
- func (pm *PrometheusExporter) Write(w io.Writer, exposeProcessMetrics bool)
Constants ¶
This section is empty.
Variables ¶
var ( ProcessedCerts int64 ProcessedPrecerts int64 Metrics = LogMetrics{/* contains filtered or unexported fields */} )
var Prometheus = NewPrometheusExporter()
Functions ¶
func GetLogOperators ¶
func GetProcessedCerts ¶
func GetProcessedCerts() int64
GetProcessedCerts returns the total number of processed certificates.
func GetProcessedPrecerts ¶
func GetProcessedPrecerts() int64
GetProcessedPrecerts returns the total number of processed precertificates.
Types ¶
type CTCertIndex ¶
CTCertIndex is a map of CT log urls to the last processed certficate index on the said log.
type CTMetrics ¶
type CTMetrics map[string]OperatorMetric
CTMetrics is a map of operator names to a map of CT log urls to the number of certs processed by said log.
func GetCertMetrics ¶
func GetCertMetrics() CTMetrics
type LogMetrics ¶
type LogMetrics struct {
// contains filtered or unexported fields
}
LogMetrics is a struct that holds a map of metrics for each CT log grouped by operator. Metrics can be accessed and written concurrently through the Get, Set and Inc methods.
func (*LogMetrics) Get ¶
func (m *LogMetrics) Get(operator, url string) int64
Get the metric for a given operator and ct url.
func (*LogMetrics) GetAllCTIndexes ¶
func (m *LogMetrics) GetAllCTIndexes() CTCertIndex
GetAllCTIndexes returns a copy of the internal CT index map.
func (*LogMetrics) GetCTIndex ¶
func (m *LogMetrics) GetCTIndex(url string) uint64
GetCTIndex returns the last cert index processed for a given CT url.
func (*LogMetrics) GetCTMetrics ¶
func (m *LogMetrics) GetCTMetrics() CTMetrics
GetCTMetrics returns a copy of the internal metrics map.
func (*LogMetrics) Inc ¶
func (m *LogMetrics) Inc(operator, url string, index uint64)
Inc the metric for a given operator and ct url.
func (*LogMetrics) Init ¶
func (m *LogMetrics) Init(operator, url string)
Init initializes the internal metrics map with the given operator names and CT log urls if it doesn't exist yet.
func (*LogMetrics) LoadCTIndex ¶
func (m *LogMetrics) LoadCTIndex(ctIndexFilePath string)
LoadCTIndex loads the last cert index processed for each CT url if it exists.
func (*LogMetrics) OperatorLogMapping ¶
func (m *LogMetrics) OperatorLogMapping() OperatorLogs
OperatorLogMapping returns a map of operator names to a list of CT logs.
func (*LogMetrics) SaveCertIndexes ¶
func (m *LogMetrics) SaveCertIndexes(ctIndexFilePath string)
SaveCertIndexes saves the index of CTLogs to a file.
func (*LogMetrics) SaveCertIndexesAtInterval ¶
func (m *LogMetrics) SaveCertIndexesAtInterval(interval time.Duration, ctIndexFilePath string)
SaveCertIndexesAtInterval saves the index of CTLogs at given intervals. We first create a temp file and write the index data to it. Only then do we move the temp file to the actual permanent index file. This prevents the last good index file from being clobbered if the program was shutdown/killed in-between the write operation.
func (*LogMetrics) Set ¶
func (m *LogMetrics) Set(operator, url string, value int64)
Set the metric for a given operator and ct url.
func (*LogMetrics) SetCTIndex ¶
func (m *LogMetrics) SetCTIndex(url string, index uint64)
SetCTIndex sets the index for a given CT url.
type OperatorLogs ¶
OperatorLogs is a map of operator names to a list of CT log urls, operated by said operator.
type OperatorMetric ¶
OperatorMetric is a map of CT log urls to the number of certs processed by said log.
type PrometheusExporter ¶
type PrometheusExporter struct {
// contains filtered or unexported fields
}
func NewPrometheusExporter ¶
func NewPrometheusExporter() *PrometheusExporter
NewPrometheusExporter creates a new PrometheusExporter and registers the default metrics for the number of processed certificates.
func (*PrometheusExporter) RegisterClient ¶
func (pm *PrometheusExporter) RegisterClient(name string, callback func() float64)
RegisterClient registers a new gauge metric for the client with the given name.
func (*PrometheusExporter) RegisterGaugeMetric ¶
func (pm *PrometheusExporter) RegisterGaugeMetric(label string, callback func() float64)
RegisterGaugeMetric is a helper function that registers a new gauge metric with a float64 callback function.
func (*PrometheusExporter) RegisterGaugeMetricInt ¶
func (pm *PrometheusExporter) RegisterGaugeMetricInt(label string, callback func() int64)
RegisterGaugeMetricInt is a helper function that registers a new gauge metric with an int64 callback function.
func (*PrometheusExporter) RegisterLog ¶
func (pm *PrometheusExporter) RegisterLog(operatorName, url string)
RegisterLog registers a new gauge metric for the given CT log. The metric will be named "certstreamservergo_certs_by_log_total{url=\"<url>\",operator=\"<operatorName>\"}" and will call the given callback function to get the current value of the metric.
func (*PrometheusExporter) UnregisterClient ¶
func (pm *PrometheusExporter) UnregisterClient(name string)
UnregisterClient unregisters the metric for the client with the given name.
func (*PrometheusExporter) UnregisterMetric ¶
func (pm *PrometheusExporter) UnregisterMetric(label string)
UnregisterMetric unregisters a metric with a given label.