-
Notifications
You must be signed in to change notification settings - Fork 482
/
mongodb.go
41 lines (35 loc) · 1.41 KB
/
mongodb.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package mongodb
import (
"github.com/grafana/agent/component"
"github.com/grafana/agent/component/prometheus/exporter"
"github.com/grafana/agent/pkg/integrations"
"github.com/grafana/agent/pkg/integrations/mongodb_exporter"
"github.com/grafana/river/rivertypes"
config_util "github.com/prometheus/common/config"
)
func init() {
component.Register(component.Registration{
Name: "prometheus.exporter.mongodb",
Args: Arguments{},
Exports: exporter.Exports{},
Build: exporter.New(createExporter, "mongodb"),
})
}
func createExporter(opts component.Options, args component.Arguments, defaultInstanceKey string) (integrations.Integration, string, error) {
a := args.(Arguments)
return integrations.NewIntegrationWithInstanceKey(opts.Logger, a.Convert(), defaultInstanceKey)
}
type Arguments struct {
URI rivertypes.Secret `river:"mongodb_uri,attr"`
DirectConnect bool `river:"direct_connect,attr,optional"`
DiscoveringMode bool `river:"discovering_mode,attr,optional"`
TLSBasicAuthConfigPath string `river:"tls_basic_auth_config_path,attr,optional"`
}
func (a *Arguments) Convert() *mongodb_exporter.Config {
return &mongodb_exporter.Config{
URI: config_util.Secret(a.URI),
DirectConnect: a.DirectConnect,
DiscoveringMode: a.DiscoveringMode,
TLSBasicAuthConfigPath: a.TLSBasicAuthConfigPath,
}
}