Skip to content
This repository was archived by the owner on Nov 28, 2022. It is now read-only.

Commit e5dc8d0

Browse files
committedAug 8, 2017
added index hits
1 parent 3fff667 commit e5dc8d0

File tree

5 files changed

+50
-0
lines changed

5 files changed

+50
-0
lines changed
 
File renamed without changes.
File renamed without changes.

‎gauges/indexes.go

+30
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,33 @@ func (g *Gauges) UnusedIndexes() prometheus.Gauge {
1818
`,
1919
)
2020
}
21+
22+
func (g *Gauges) IndexBlocksRead() prometheus.Gauge {
23+
return g.new(
24+
prometheus.GaugeOpts{
25+
Name: "postgresql_index_blks_read_sum",
26+
Help: "Sum of the number of disk blocks read from all public indexes",
27+
ConstLabels: g.labels,
28+
},
29+
`
30+
SELECT coalesce(sum(idx_blks_read), 0)
31+
FROM pg_statio_all_indexes
32+
WHERE schemaname = 'public'
33+
`,
34+
)
35+
}
36+
37+
func (g *Gauges) IndexBlocksHit() prometheus.Gauge {
38+
return g.new(
39+
prometheus.GaugeOpts{
40+
Name: "postgresql_index_blks_hit_sum",
41+
Help: "Sum of the number of buffer hits on all public indexes",
42+
ConstLabels: g.labels,
43+
},
44+
`
45+
SELECT coalesce(sum(idx_blks_hit), 0)
46+
FROM pg_statio_all_indexes
47+
WHERE schemaname = 'public'
48+
`,
49+
)
50+
}

‎gauges/indexes_test.go

+18
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,21 @@ func TestUnusedIndexes(t *testing.T) {
1414
assert.Len(metrics, 1)
1515
assertGreaterThan(t, -1, metrics[0])
1616
}
17+
18+
func TestIndexBlocksRead(t *testing.T) {
19+
var assert = assert.New(t)
20+
_, gauges, close := prepare(t)
21+
defer close()
22+
var metrics = evaluate(t, gauges.IndexBlocksRead())
23+
assert.Len(metrics, 1)
24+
assertGreaterThan(t, -1, metrics[0])
25+
}
26+
27+
func TestIndexBlocksHit(t *testing.T) {
28+
var assert = assert.New(t)
29+
_, gauges, close := prepare(t)
30+
defer close()
31+
var metrics = evaluate(t, gauges.IndexBlocksHit())
32+
assert.Len(metrics, 1)
33+
assertGreaterThan(t, -1, metrics[0])
34+
}

‎main.go

+2
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ func watch(db *sql.DB, reg prometheus.Registerer, name string) {
8080
reg.MustRegister(gauges.ScheduledCheckpoints())
8181
reg.MustRegister(gauges.HeapBlocksHit())
8282
reg.MustRegister(gauges.HeapBlocksRead())
83+
reg.MustRegister(gauges.IndexBlocksHit())
84+
reg.MustRegister(gauges.IndexBlocksRead())
8385
reg.MustRegister(gauges.DeadTuples())
8486
reg.MustRegister(gauges.TempSize())
8587
reg.MustRegister(gauges.TempFiles())

0 commit comments

Comments
 (0)
This repository has been archived.