mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			85 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Go
		
	
	
	
| package metrics
 | |
| 
 | |
| import (
 | |
| 	"github.com/grafana/dskit/instrument"
 | |
| 	"github.com/prometheus/client_golang/prometheus"
 | |
| 	"github.com/prometheus/client_golang/prometheus/promauto"
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	ModeRemoteSecondary = "remote_secondary"
 | |
| 	ModeRemotePrimary   = "remote_primary"
 | |
| 	ModeRemoteOnly      = "remote_only"
 | |
| )
 | |
| 
 | |
| type RemoteAlertmanager struct {
 | |
| 	Info                  *prometheus.GaugeVec
 | |
| 	RequestLatency        *instrument.HistogramCollector
 | |
| 	LastReadinessCheck    prometheus.Gauge
 | |
| 	ConfigSyncsTotal      prometheus.Counter
 | |
| 	ConfigSyncErrorsTotal prometheus.Counter
 | |
| 	LastConfigSync        prometheus.Gauge
 | |
| 	StateSyncsTotal       prometheus.Counter
 | |
| 	StateSyncErrorsTotal  prometheus.Counter
 | |
| 	LastStateSync         prometheus.Gauge
 | |
| }
 | |
| 
 | |
| func NewRemoteAlertmanagerMetrics(r prometheus.Registerer) *RemoteAlertmanager {
 | |
| 	return &RemoteAlertmanager{
 | |
| 		Info: promauto.With(r).NewGaugeVec(prometheus.GaugeOpts{
 | |
| 			Namespace: Namespace,
 | |
| 			Subsystem: Subsystem,
 | |
| 			Name:      "remote_alertmanager_info",
 | |
| 			Help:      "Information about the remote Alertmanager.",
 | |
| 		}, []string{"mode"}),
 | |
| 		RequestLatency: instrument.NewHistogramCollector(promauto.With(r).NewHistogramVec(prometheus.HistogramOpts{
 | |
| 			Namespace: Namespace,
 | |
| 			Subsystem: Subsystem,
 | |
| 			Name:      "remote_alertmanager_latency_seconds",
 | |
| 			Help:      "Histogram of request latencies to the remote Alertmanager.",
 | |
| 		}, instrument.HistogramCollectorBuckets)),
 | |
| 		LastReadinessCheck: promauto.With(r).NewGauge(prometheus.GaugeOpts{
 | |
| 			Namespace: Namespace,
 | |
| 			Subsystem: Subsystem,
 | |
| 			Name:      "remote_alertmanager_last_readiness_check_timestamp_seconds",
 | |
| 			Help:      "Timestamp of the last successful readiness check to the remote Alertmanager in seconds.",
 | |
| 		}),
 | |
| 		ConfigSyncsTotal: promauto.With(r).NewCounter(prometheus.CounterOpts{
 | |
| 			Namespace: Namespace,
 | |
| 			Subsystem: Subsystem,
 | |
| 			Name:      "remote_alertmanager_configuration_syncs_total",
 | |
| 			Help:      "Total number of configuration syncs to the remote Alertmanager.",
 | |
| 		}),
 | |
| 		ConfigSyncErrorsTotal: promauto.With(r).NewCounter(prometheus.CounterOpts{
 | |
| 			Namespace: Namespace,
 | |
| 			Subsystem: Subsystem,
 | |
| 			Name:      "remote_alertmanager_configuration_sync_failures_total",
 | |
| 			Help:      "Total number of failed attempts to sync configurations between Alertmanagers.",
 | |
| 		}),
 | |
| 		LastConfigSync: promauto.With(r).NewGauge(prometheus.GaugeOpts{
 | |
| 			Namespace: Namespace,
 | |
| 			Subsystem: Subsystem,
 | |
| 			Name:      "remote_alertmanager_last_configuration_sync_timestamp_seconds",
 | |
| 			Help:      "Timestamp of the last successful configuration sync to the remote Alertmanager in seconds.",
 | |
| 		}),
 | |
| 		StateSyncsTotal: promauto.With(r).NewCounter(prometheus.CounterOpts{
 | |
| 			Namespace: Namespace,
 | |
| 			Subsystem: Subsystem,
 | |
| 			Name:      "remote_alertmanager_state_syncs_total",
 | |
| 			Help:      "Total number of state syncs to the remote Alertmanager.",
 | |
| 		}),
 | |
| 		StateSyncErrorsTotal: promauto.With(r).NewCounter(prometheus.CounterOpts{
 | |
| 			Namespace: Namespace,
 | |
| 			Subsystem: Subsystem,
 | |
| 			Name:      "remote_alertmanager_state_sync_failures_total",
 | |
| 			Help:      "Total number of failed attempts to sync state between Alertmanagers.",
 | |
| 		}),
 | |
| 		LastStateSync: promauto.With(r).NewGauge(prometheus.GaugeOpts{
 | |
| 			Namespace: Namespace,
 | |
| 			Subsystem: Subsystem,
 | |
| 			Name:      "remote_alertmanager_last_state_sync_timestamp_seconds",
 | |
| 			Help:      "Timestamp of the last successful state sync to the remote Alertmanager in seconds.",
 | |
| 		}),
 | |
| 	}
 | |
| }
 |