Skip to content
This repository was archived by the owner on Aug 22, 2024. It is now read-only.

Commit 3650072

Browse files
authored
Split single 'tuples_total' metric to separate metrics. (#43)
* Split single 'tuples_total' metric to separate metrics. * Add extra memory metrics to test (with debug).
1 parent c833132 commit 3650072

File tree

3 files changed

+54
-15
lines changed

3 files changed

+54
-15
lines changed

internal/collector/linux_memory_test.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,22 @@
11
package collector
22

33
import (
4+
"fmt"
45
"github.com/stretchr/testify/assert"
56
"os"
67
"path/filepath"
78
"testing"
89
)
910

1011
func TestMeminfoCollector_Update(t *testing.T) {
12+
meminfo, err := os.ReadFile("/proc/meminfo")
13+
assert.NoError(t, err)
14+
fmt.Println(string(meminfo))
15+
16+
vmstat, err := os.ReadFile("/proc/vmstat")
17+
assert.NoError(t, err)
18+
fmt.Println(string(vmstat))
19+
1120
var input = pipelineInput{
1221
required: []string{
1322
"node_memory_MemTotal", "node_memory_MemFree", "node_memory_MemAvailable", "node_memory_MemUsed",
@@ -32,6 +41,7 @@ func TestMeminfoCollector_Update(t *testing.T) {
3241
"node_memory_WritebackTmp", "node_memory_NFS_Unstable", "node_memory_DirectMap2M", "node_memory_Hugetlb",
3342
"node_memory_CmaTotal", "node_memory_Mlocked", "node_memory_ShmemPmdMapped", "node_memory_SUnreclaim",
3443
"node_memory_KernelStack", "node_memory_VmallocChunk", "node_memory_Percpu", "node_memory_HardwareCorrupted",
44+
"node_memory_CmaFree", "node_memory_CmaTotal",
3545
// vmstat
3646
"node_vmstat_nr_free_pages", "node_vmstat_nr_zone_inactive_anon", "node_vmstat_nr_zone_active_anon",
3747
"node_vmstat_nr_zone_inactive_file", "node_vmstat_nr_zone_active_file", "node_vmstat_nr_zone_unevictable",
@@ -83,7 +93,8 @@ func TestMeminfoCollector_Update(t *testing.T) {
8393
"node_vmstat_pgsteal_anon", "node_vmstat_pgsteal_file", "node_vmstat_pgscan_file", "node_vmstat_pgscan_anon",
8494
"node_vmstat_thp_file_fallback_charge", "node_vmstat_nr_foll_pin_released", "node_vmstat_thp_file_fallback",
8595
"node_vmstat_thp_fault_fallback_charge", "node_vmstat_nr_swapcached", "node_vmstat_direct_map_level2_splits",
86-
"node_vmstat_direct_map_level3_splits",
96+
"node_vmstat_direct_map_level3_splits", "node_vmstat_workingset_refault", "node_vmstat_workingset_activate",
97+
"node_vmstat_workingset_restore", "node_vmstat_pgdemote_kswapd", "node_vmstat_pgdemote_direct",
8798
},
8899
collector: NewMeminfoCollector,
89100
}

internal/collector/postgres_database.go

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,11 @@ type postgresDatabasesCollector struct {
4646
commits typedDesc
4747
rollbacks typedDesc
4848
blocks typedDesc
49-
tuples typedDesc
49+
tuplesReturned typedDesc
50+
tuplesFetched typedDesc
51+
tuplesInserted typedDesc
52+
tuplesUpdated typedDesc
53+
tuplesDeleted typedDesc
5054
tempbytes typedDesc
5155
tempfiles typedDesc
5256
conflicts typedDesc
@@ -89,10 +93,34 @@ func NewPostgresDatabasesCollector(constLabels labels, settings model.CollectorS
8993
[]string{"database", "access"}, constLabels,
9094
settings.Filters,
9195
),
92-
tuples: newBuiltinTypedDesc(
93-
descOpts{"postgres", "database", "tuples_total", "Total number of rows processed by each type of operation.", 0},
96+
tuplesReturned: newBuiltinTypedDesc(
97+
descOpts{"postgres", "database", "tuples_returned_total", "Total number of rows returned per each database.", 0},
9498
prometheus.CounterValue,
95-
[]string{"database", "tuples"}, constLabels,
99+
[]string{"database"}, constLabels,
100+
settings.Filters,
101+
),
102+
tuplesFetched: newBuiltinTypedDesc(
103+
descOpts{"postgres", "database", "tuples_fetched_total", "Total number of rows fetched per each database.", 0},
104+
prometheus.CounterValue,
105+
[]string{"database"}, constLabels,
106+
settings.Filters,
107+
),
108+
tuplesInserted: newBuiltinTypedDesc(
109+
descOpts{"postgres", "database", "tuples_inserted_total", "Total number of rows inserted per each database.", 0},
110+
prometheus.CounterValue,
111+
[]string{"database"}, constLabels,
112+
settings.Filters,
113+
),
114+
tuplesUpdated: newBuiltinTypedDesc(
115+
descOpts{"postgres", "database", "tuples_updated_total", "Total number of rows updated per each database.", 0},
116+
prometheus.CounterValue,
117+
[]string{"database"}, constLabels,
118+
settings.Filters,
119+
),
120+
tuplesDeleted: newBuiltinTypedDesc(
121+
descOpts{"postgres", "database", "tuples_deleted_total", "Total number of rows deleted per each database.", 0},
122+
prometheus.CounterValue,
123+
[]string{"database"}, constLabels,
96124
settings.Filters,
97125
),
98126
tempbytes: newBuiltinTypedDesc(
@@ -209,11 +237,11 @@ func (c *postgresDatabasesCollector) Update(config Config, ch chan<- prometheus.
209237
ch <- c.rollbacks.newConstMetric(stat.xactrollback, stat.database)
210238
ch <- c.blocks.newConstMetric(stat.blksread, stat.database, "read")
211239
ch <- c.blocks.newConstMetric(stat.blkshit, stat.database, "hit")
212-
ch <- c.tuples.newConstMetric(stat.tupreturned, stat.database, "returned")
213-
ch <- c.tuples.newConstMetric(stat.tupfetched, stat.database, "fetched")
214-
ch <- c.tuples.newConstMetric(stat.tupinserted, stat.database, "inserted")
215-
ch <- c.tuples.newConstMetric(stat.tupupdated, stat.database, "updated")
216-
ch <- c.tuples.newConstMetric(stat.tupdeleted, stat.database, "deleted")
240+
ch <- c.tuplesReturned.newConstMetric(stat.tupreturned, stat.database)
241+
ch <- c.tuplesFetched.newConstMetric(stat.tupfetched, stat.database)
242+
ch <- c.tuplesInserted.newConstMetric(stat.tupinserted, stat.database)
243+
ch <- c.tuplesUpdated.newConstMetric(stat.tupupdated, stat.database)
244+
ch <- c.tuplesDeleted.newConstMetric(stat.tupdeleted, stat.database)
217245

218246
ch <- c.tempbytes.newConstMetric(stat.tempbytes, stat.database)
219247
ch <- c.tempfiles.newConstMetric(stat.tempfiles, stat.database)

internal/collector/postgres_database_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ func TestPostgresDatabasesCollector_Update(t *testing.T) {
1414
"postgres_database_xact_commits_total",
1515
"postgres_database_xact_rollbacks_total",
1616
"postgres_database_blocks_total",
17-
"postgres_database_tuples_total",
17+
"postgres_database_tuples_returned_total",
18+
"postgres_database_tuples_fetched_total",
19+
"postgres_database_tuples_inserted_total",
20+
"postgres_database_tuples_updated_total",
21+
"postgres_database_tuples_deleted_total",
1822
"postgres_database_temp_bytes_total",
1923
"postgres_database_temp_files_total",
2024
"postgres_database_conflicts_total",
@@ -25,10 +29,6 @@ func TestPostgresDatabasesCollector_Update(t *testing.T) {
2529
"postgres_database_size_bytes",
2630
"postgres_database_stats_age_seconds_total",
2731
"postgres_xacts_left_before_wraparound",
28-
},
29-
// TODO: wait until Postgres 14 has been released, update Postgres version on pgscv-testing docker image
30-
// and move these metrics to 'required' slice.
31-
optional: []string{
3232
"postgres_database_session_time_seconds_all_total",
3333
"postgres_database_session_time_seconds_total",
3434
"postgres_database_sessions_all_total",

0 commit comments

Comments
 (0)