diff --git a/docs/advanced/metrics.md b/docs/advanced/metrics.md new file mode 100644 index 0000000..4392e9d --- /dev/null +++ b/docs/advanced/metrics.md @@ -0,0 +1,64 @@ +# Metrics + +Different metrics are available. Metrics are organized into different categories. + +Categories : + +* Global +* Per-Providers + +## How to enable and configure metrics server + +You have some options to enable metrics server. + +### Config File + +| Options | Default | Required | Actions | +| -------------- | -------- | ------------------------ | --------------------------------------- | +| metrics.enable | false | :heavy_multiplication_x: | Define if start metrics web server | +| metrics.host | 0.0.0.0 | :heavy_multiplication_x: | Set IP address for metrics web server | +| metrics.port | 8080 | :heavy_multiplication_x: | Set port for metrics web server | +| metrics.path | /metrics | :heavy_multiplication_x: | Path for acceding to metrics web server | +| | | | | + +```yaml title=config.yaml" +metrics: + enable: true # Default: false + port: 8080 # Default : 8080 + host: 0.0.0.0 # Default: 0.0.0.0 + path: /metrics # Default: /metrics + +``` + +## Env Variables + + +| Options | Actions | +| -------------- | --------------------------------------- | +| | | +| METRICS_ENABLE | Define if start metrics web server | +| METRICS_HOST | Set IP address for metrics web server | +| METRICS_PORT | Set port for metrics web server | +| METRICS_PATH | Path for acceding to metrics web server | + +```bash title="exemple" +METRICS_ENABLE=true ./updateip +``` + +## Metrics details + +### Global + +| Metrics Name | Description | +| ---------------------------- | -------------------- | +| | | +| updateip_count_event_receive | Total event received | + +### AWS Provider + +| Metrics Name | Description | +| ---------------------- | ------------------------------------ | +| | | +| updateip_aws_func_time | Execution time of each function | +| updateip_aws_status | Return Status of AWS Provider | +| updateip_aws_update | Number of DNS record validity checks | diff --git a/main.go b/main.go index 1f43b6b..3aa0512 100644 --- a/main.go +++ b/main.go @@ -122,6 +122,9 @@ LOOP: for { select { case sig := <-sigs: + if c.Metrics.Enable { + (*m.Counters)["eventReceive"].Inc() + } log.Info().Msg(sig.String()) break LOOP } diff --git a/pkg/providers/aws/aws.go b/pkg/providers/aws/aws.go index d90b92a..0365e3f 100644 --- a/pkg/providers/aws/aws.go +++ b/pkg/providers/aws/aws.go @@ -41,7 +41,7 @@ func (d *Paws) NewClient() error { } d.Events = make(chan string, 100) - d.Loop = *time.NewTicker(5 * time.Second) + d.Loop = *time.NewTicker(60 * time.Second) return err } diff --git a/pkg/providers/ovh/ovh.go b/pkg/providers/ovh/ovh.go index c497648..a4a4058 100644 --- a/pkg/providers/ovh/ovh.go +++ b/pkg/providers/ovh/ovh.go @@ -25,7 +25,7 @@ func (d *Povh) NewClient() (err error) { d.Record.Name = u.Subdomain d.Events = make(chan string, 100) - d.Loop = *time.NewTicker(5 * time.Second) + d.Loop = *time.NewTicker(60 * time.Second) return }