Skip to content

Commit

Permalink
add metrics for latency probes, disk usage and partition counts
Browse files Browse the repository at this point in the history
  • Loading branch information
joshwilsdon committed Mar 30, 2022
1 parent b81ee9e commit aa8787a
Showing 1 changed file with 47 additions and 1 deletion.
48 changes: 47 additions & 1 deletion models/database_status.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,21 @@ var (
Help: "number of connected clients",
})

databaseDiskUsed = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Name: "fdb_database_data_size_bytes",
Help: "number of data bytes used",
}, []string{"usage_type"})

databaseLatencyProbe = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Name: "fdb_latency_probe",
Help: "latency values based on running sample transactions",
}, []string{"probe"})

databasePartitionCount = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "fdb_partition_count",
Help: "number of fdb partitions",
})

databaseStatus = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Name: "fdb_database_status",
Help: "state of the dabase",
Expand All @@ -21,6 +36,34 @@ func (s FDBStatus) ExportDatabaseStatus() {

databaseClientCount.Set(float64(s.Cluster.Clients.Count))

databaseDiskUsed.With(prometheus.Labels{
"usage_type": "totalDisk",
}).Set(float64(s.Cluster.Data.TotalDiskUsedBytes))
databaseDiskUsed.With(prometheus.Labels{
"usage_type": "totalKv",
}).Set(float64(s.Cluster.Data.TotalKvSizeBytes))
databaseDiskUsed.With(prometheus.Labels{
"usage_type": "systemKv",
}).Set(float64(s.Cluster.Data.SystemKvSizeBytes))

databaseLatencyProbe.With(prometheus.Labels{
"probe": "batch_priority_transaction_start_seconds",
}).Set(float64(s.Cluster.LatencyProbe.BatchPriorityTransactionStartSeconds))
databaseLatencyProbe.With(prometheus.Labels{
"probe": "commit_seconds",
}).Set(float64(s.Cluster.LatencyProbe.CommitSeconds))
databaseLatencyProbe.With(prometheus.Labels{
"probe": "immediate_priority_transaction_start_seconds",
}).Set(float64(s.Cluster.LatencyProbe.ImmediatePriorityTransactionStartSeconds))
databaseLatencyProbe.With(prometheus.Labels{
"probe": "read_seconds",
}).Set(float64(s.Cluster.LatencyProbe.ReadSeconds))
databaseLatencyProbe.With(prometheus.Labels{
"probe": "transaction_start_seconds",
}).Set(float64(s.Cluster.LatencyProbe.TransactionStartSeconds))

databasePartitionCount.Set(float64(s.Cluster.Data.PartitionsCount))

databaseStatus.With(prometheus.Labels{
"state": "available",
}).Set(boolToNumber(s.Client.DatabaseStatus.Available))
Expand All @@ -36,6 +79,9 @@ func (s FDBStatus) ExportDatabaseStatus() {
}

func registerDatabaseStatus(r *prometheus.Registry) {
r.MustRegister(databaseStatus)
r.MustRegister(databaseClientCount)
r.MustRegister(databaseDiskUsed)
r.MustRegister(databaseLatencyProbe)
r.MustRegister(databasePartitionCount)
r.MustRegister(databaseStatus)
}

0 comments on commit aa8787a

Please sign in to comment.