Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/prometheus/exporter/postgres/postgres_test.go
4096 views
1
package postgres
2
3
import (
4
"testing"
5
6
"github.com/grafana/agent/pkg/integrations/postgres_exporter"
7
"github.com/grafana/agent/pkg/river"
8
"github.com/grafana/agent/pkg/river/rivertypes"
9
config_util "github.com/prometheus/common/config"
10
"github.com/stretchr/testify/require"
11
)
12
13
func TestRiverConfigUnmarshal(t *testing.T) {
14
var exampleRiverConfig = `
15
data_source_names = ["postgresql://username:password@localhost:5432/database?sslmode=disable"]
16
disable_settings_metrics = true
17
disable_default_metrics = true
18
custom_queries_config_path = "/tmp/queries.yaml"
19
20
autodiscovery {
21
enabled = false
22
database_allowlist = ["include1"]
23
database_denylist = ["exclude1", "exclude2"]
24
}`
25
26
var args Arguments
27
err := river.Unmarshal([]byte(exampleRiverConfig), &args)
28
require.NoError(t, err)
29
30
expected := Arguments{
31
DataSourceNames: []rivertypes.Secret{rivertypes.Secret("postgresql://username:password@localhost:5432/database?sslmode=disable")},
32
DisableSettingsMetrics: true,
33
AutoDiscovery: AutoDiscovery{
34
Enabled: false,
35
DatabaseDenylist: []string{"exclude1", "exclude2"},
36
DatabaseAllowlist: []string{"include1"},
37
},
38
DisableDefaultMetrics: true,
39
CustomQueriesConfigPath: "/tmp/queries.yaml",
40
}
41
42
require.Equal(t, expected, args)
43
}
44
45
func TestRiverConfigConvert(t *testing.T) {
46
var exampleRiverConfig = `
47
data_source_names = ["postgresql://username:password@localhost:5432/database?sslmode=disable"]
48
disable_settings_metrics = true
49
disable_default_metrics = true
50
custom_queries_config_path = "/tmp/queries.yaml"
51
52
autodiscovery {
53
enabled = false
54
database_allowlist = ["include1"]
55
database_denylist = ["exclude1", "exclude2"]
56
}`
57
58
var args Arguments
59
err := river.Unmarshal([]byte(exampleRiverConfig), &args)
60
require.NoError(t, err)
61
62
c := args.Convert()
63
64
expected := postgres_exporter.Config{
65
DataSourceNames: []config_util.Secret{config_util.Secret("postgresql://username:password@localhost:5432/database?sslmode=disable")},
66
DisableSettingsMetrics: true,
67
AutodiscoverDatabases: false,
68
ExcludeDatabases: []string{"exclude1", "exclude2"},
69
IncludeDatabases: []string{"include1"},
70
DisableDefaultMetrics: true,
71
QueryPath: "/tmp/queries.yaml",
72
}
73
require.Equal(t, expected, *c)
74
}
75
76