@@ -24,6 +24,7 @@ package main
2424
2525import (
2626 "fmt"
27+ "io/ioutil"
2728 "net/http"
2829 _ "net/http/pprof"
2930 "time"
4950 arangodbOptions struct {
5051 endpoint string
5152 jwtSecret string
53+ jwtFile string
5254 timeout time.Duration
5355 }
5456)
@@ -61,7 +63,10 @@ func init() {
6163
6264 f .StringVar (& arangodbOptions .endpoint , "arangodb.endpoint" , "http://127.0.0.1:8529" , "Endpoint used to reach the ArangoDB server" )
6365 f .StringVar (& arangodbOptions .jwtSecret , "arangodb.jwtsecret" , "" , "JWT Secret used for authentication with ArangoDB server" )
66+ f .StringVar (& arangodbOptions .jwtFile , "arangodb.jwt-file" , "" , "File containing the JWT for authentication with ArangoDB server" )
6467 f .DurationVar (& arangodbOptions .timeout , "arangodb.timeout" , time .Second * 15 , "Timeout of statistics requests for ArangoDB" )
68+
69+ f .MarkDeprecated ("arangodb.jwtsecret" , "please use --arangodb.jwt-file instead" )
6570}
6671
6772func main () {
@@ -71,7 +76,22 @@ func main() {
7176func cmdMainRun (cmd * cobra.Command , args []string ) {
7277 log .Infoln (fmt .Sprintf ("Starting arangodb-exporter %s, build %s" , projectVersion , projectBuild ))
7378
74- exporter , err := NewExporter (arangodbOptions .endpoint , arangodbOptions .jwtSecret , false , arangodbOptions .timeout )
79+ var token string
80+ if arangodbOptions .jwtFile != "" {
81+ data , err := ioutil .ReadFile (arangodbOptions .jwtFile )
82+ if err != nil {
83+ log .Fatal (err )
84+ }
85+ token = string (data )
86+ } else if arangodbOptions .jwtSecret != "" {
87+ var err error
88+ token , err = CreateArangodJWT (arangodbOptions .jwtSecret )
89+ if err != nil {
90+ log .Fatal (err )
91+ }
92+ }
93+
94+ exporter , err := NewExporter (arangodbOptions .endpoint , token , false , arangodbOptions .timeout )
7595 if err != nil {
7696 log .Fatal (err )
7797 }
0 commit comments