Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/prometheus/exporter/snowflake/snowflake.go
4095 views
1
package snowflake
2
3
import (
4
"github.com/grafana/agent/component"
5
"github.com/grafana/agent/component/prometheus/exporter"
6
"github.com/grafana/agent/pkg/integrations"
7
"github.com/grafana/agent/pkg/integrations/snowflake_exporter"
8
"github.com/grafana/agent/pkg/river/rivertypes"
9
config_util "github.com/prometheus/common/config"
10
)
11
12
func init() {
13
component.Register(component.Registration{
14
Name: "prometheus.exporter.snowflake",
15
Args: Arguments{},
16
Exports: exporter.Exports{},
17
Build: exporter.New(createExporter, "snowflake"),
18
})
19
}
20
21
func createExporter(opts component.Options, args component.Arguments) (integrations.Integration, error) {
22
a := args.(Arguments)
23
return a.Convert().NewIntegration(opts.Logger)
24
}
25
26
// DefaultArguments holds the default settings for the snowflake exporter
27
var DefaultArguments = Arguments{
28
Role: "ACCOUNTADMIN",
29
}
30
31
// Arguments controls the snowflake exporter.
32
type Arguments struct {
33
AccountName string `river:"account_name,attr"`
34
Username string `river:"username,attr"`
35
Password rivertypes.Secret `river:"password,attr"`
36
Role string `river:"role,attr,optional"`
37
Warehouse string `river:"warehouse,attr"`
38
}
39
40
// UnmarshalRiver implements River unmarshalling for Arguments.
41
func (a *Arguments) UnmarshalRiver(f func(interface{}) error) error {
42
*a = DefaultArguments
43
44
type args Arguments
45
return f((*args)(a))
46
}
47
48
func (a *Arguments) Convert() *snowflake_exporter.Config {
49
return &snowflake_exporter.Config{
50
AccountName: a.AccountName,
51
Username: a.Username,
52
Password: config_util.Secret(a.Password),
53
Role: a.Role,
54
Warehouse: a.Warehouse,
55
}
56
}
57
58