Repository: traefik/traefik (language: go)

Issue:
End InfluxDB v1 support
InfluxDB v1.x maintenance [ended in 2021](https://www.influxdata.com/blog/influxdb-oss-and-enterprise-roadmap-update-from-influxdays-emea/)

Moving forward with Traefik 3.0 we should end support and completely remove code for it.


Discussion / hints:

Fix patch:
diff --git a/README.md b/README.md
index 6e967ab061..7d0faa8ceb 100644
--- a/README.md
+++ b/README.md
@@ -58,7 +58,7 @@ _(But if you'd rather configure some of your routes manually, Traefik supports t
 - Circuit breakers, retry
 - See the magic through its clean web UI
 - Websocket, HTTP/2, gRPC ready
-- Provides metrics (Rest, Prometheus, Datadog, Statsd, InfluxDB)
+- Provides metrics (Rest, Prometheus, Datadog, Statsd, InfluxDB 2.X)
 - Keeps access logs (JSON, CLF)
 - Fast
 - Exposes a Rest API
diff --git a/cmd/traefik/traefik.go b/cmd/traefik/traefik.go
index 89580c5538..434144db53 100644
--- a/cmd/traefik/traefik.go
+++ b/cmd/traefik/traefik.go
@@ -523,16 +523,6 @@ func registerMetricClients(metricsConfig *types.Metrics) []metrics.Registry {
 			Msg("Configured StatsD metrics")
 	}
 
-	if metricsConfig.InfluxDB != nil {
-		logger := log.With().Str(logs.MetricsProviderName, "influxdb").Logger()
-
-		registries = append(registries, metrics.RegisterInfluxDB(logger.WithContext(context.Background()), metricsConfig.InfluxDB))
-		logger.Debug().
-			Str("address", metricsConfig.InfluxDB.Address).
-			Str("pushInterval", metricsConfig.InfluxDB.PushInterval.String()).
-			Msg("Configured InfluxDB metrics")
-	}
-
 	if metricsConfig.InfluxDB2 != nil {
 		logger := log.With().Str(logs.MetricsProviderName, "influxdb2").Logger()
 
diff --git a/docs/content/migration/v2-to-v3.md b/docs/content/migration/v2-to-v3.md
index 6c8d36e5e8..3a9c7e4c4b 100644
--- a/docs/content/migration/v2-to-v3.md
+++ b/docs/content/migration/v2-to-v3.md
@@ -29,7 +29,7 @@ In v3, the reported status code for gRPC requests is now the value of the `Grpc-
 - The `tls.caOptional` option has been removed from the ForwardAuth middleware, as well as from the HTTP, Consul, Etcd, Redis, ZooKeeper, Consul Catalog, and Docker providers.
 - `sslRedirect`, `sslTemporaryRedirect`, `sslHost`, `sslForceHost` and `featurePolicy` options of the Headers middleware have been removed.
 - The `forceSlash` option of the StripPrefix middleware has been removed.
-- the `preferServerCipherSuites` option has been removed.
+- The `preferServerCipherSuites` option has been removed.
 
 ## Matchers
 
@@ -76,3 +76,7 @@ As such, Rancher 2.x users should utilize the [Kubernetes CRD provider](../provi
 ## Marathon provider
 
 In v3, the Marathon provider has been removed.
+
+## InfluxDB v1
+
+In v3, the InfluxDB v1 metrics provider has been removed because InfluxDB v1.x maintenance [ended in 2021](https://www.influxdata.com/blog/influxdb-oss-and-enterprise-roadmap-update-from-influxdays-emea/).
diff --git a/docs/content/observability/metrics/influxdb.md b/docs/content/observability/metrics/influxdb.md
deleted file mode 100644
index 0eb05e23ca..0000000000
--- a/docs/content/observability/metrics/influxdb.md
+++ /dev/null
@@ -1,268 +0,0 @@
----
-title: "Traefik InfluxDB Documentation"
-description: "Traefik supports several metrics backends, including InfluxDB. Learn how to implement it for observability in Traefik Proxy. Read the technical documentation."
----
-
-# InfluxDB
-
-To enable the InfluxDB:
-
-```yaml tab="File (YAML)"
-metrics:
-  influxDB: {}
-```
-
-```toml tab="File (TOML)"
-[metrics]
-  [metrics.influxDB]
-```
-
-```bash tab="CLI"
---metrics.influxdb=true
-```
-
-#### `address`
-
-_Required, Default="localhost:8089"_
-
-Address instructs exporter to send metrics to influxdb at this address.
-
-```yaml tab="File (YAML)"
-metrics:
-  influxDB:
-    address: localhost:8089
-```
-
-```toml tab="File (TOML)"
-[metrics]
-  [metrics.influxDB]
-    address = "localhost:8089"
-```
-
-```bash tab="CLI"
---metrics.influxdb.address=localhost:8089
-```
-
-#### `protocol`
-
-_Required, Default="udp"_
-
-InfluxDB's address protocol (udp or http).
-
-```yaml tab="File (YAML)"
-metrics:
-  influxDB:
-    protocol: udp
-```
-
-```toml tab="File (TOML)"
-[metrics]
-  [metrics.influxDB]
-    protocol = "udp"
-```
-
-```bash tab="CLI"
---metrics.influxdb.protocol=udp
-```
-
-#### `database`
-
-_Optional, Default=""_
-
-InfluxDB database used when protocol is http.
-
-```yaml tab="File (YAML)"
-metrics:
-  influxDB:
-    database: db
-```
-
-```toml tab="File (TOML)"
-[metrics]
-  [metrics.influxDB]
-    database = "db"
-```
-
-```bash tab="CLI"
---metrics.influxdb.database=db
-```
-
-#### `retentionPolicy`
-
-_Optional, Default=""_
-
-InfluxDB retention policy used when protocol is http.
-
-```yaml tab="File (YAML)"
-metrics:
-  influxDB:
-    retentionPolicy: two_hours
-```
-
-```toml tab="File (TOML)"
-[metrics]
-  [metrics.influxDB]
-    retentionPolicy = "two_hours"
-```
-
-```bash tab="CLI"
---metrics.influxdb.retentionPolicy=two_hours
-```
-
-#### `username`
-
-_Optional, Default=""_
-
-InfluxDB username (only with http).
-
-```yaml tab="File (YAML)"
-metrics:
-  influxDB:
-    username: john
-```
-
-```toml tab="File (TOML)"
-[metrics]
-  [metrics.influxDB]
-    username = "john"
-```
-
-```bash tab="CLI"
---metrics.influxdb.username=john
-```
-
-#### `password`
-
-_Optional, Default=""_
-
-InfluxDB password (only with http).
-
-```yaml tab="File (YAML)"
-metrics:
-  influxDB:
-    password: secret
-```
-
-```toml tab="File (TOML)"
-[metrics]
-  [metrics.influxDB]
-    password = "secret"
-```
-
-```bash tab="CLI"
---metrics.influxdb.password=secret
-```
-
-#### `addEntryPointsLabels`
-
-_Optional, Default=true_
-
-Enable metrics on entry points.
-
-```yaml tab="File (YAML)"
-metrics:
-  influxDB:
-    addEntryPointsLabels: true
-```
-
-```toml tab="File (TOML)"
-[metrics]
-  [metrics.influxDB]
-    addEntryPointsLabels = true
-```
-
-```bash tab="CLI"
---metrics.influxdb.addEntryPointsLabels=true
-```
-
-#### `addRoutersLabels`
-
-_Optional, Default=false_
-
-Enable metrics on routers.
-
-```yaml tab="File (YAML)"
-metrics:
-  influxDB:
-    addRoutersLabels: true
-```
-
-```toml tab="File (TOML)"
-[metrics]
-  [metrics.influxDB]
-    addRoutersLabels = true
-```
-
-```bash tab="CLI"
---metrics.influxdb.addrouterslabels=true
-```
-
-#### `addServicesLabels`
-
-_Optional, Default=true_
-
-Enable metrics on services.
-
-```yaml tab="File (YAML)"
-metrics:
-  influxDB:
-    addServicesLabels: true
-```
-
-```toml tab="File (TOML)"
-[metrics]
-  [metrics.influxDB]
-    addServicesLabels = true
-```
-
-```bash tab="CLI"
---metrics.influxdb.addServicesLabels=true
-```
-
-#### `pushInterval`
-
-_Optional, Default=10s_
-
-The interval used by the exporter to push metrics to influxdb.
-
-```yaml tab="File (YAML)"
-metrics:
-  influxDB:
-    pushInterval: 10s
-```
-
-```toml tab="File (TOML)"
-[metrics]
-  [metrics.influxDB]
-    pushInterval = "10s"
-```
-
-```bash tab="CLI"
---metrics.influxdb.pushInterval=10s
-```
-
-#### `additionalLabels`
-
-_Optional, Default={}_
-
-Additional labels (influxdb tags) on all metrics.
-
-```yaml tab="File (YAML)"
-metrics:
-  influxDB:
-    additionalLabels:
-      host: example.com
-      environment: production
-```
-
-```toml tab="File (TOML)"
-[metrics]
-  [metrics.influxDB]
-    [metrics.influxDB.additionalLabels]
-      host = "example.com"
-      environment = "production"
-```
-
-```bash tab="CLI"
---metrics.influxdb.additionallabels.host=example.com --metrics.influxdb.additionallabels.environment=production
-```
diff --git a/docs/content/observability/metrics/overview.md b/docs/content/observability/metrics/overview.md
index 0fce7e76c6..2a3e1d9c75 100644
--- a/docs/content/observability/metrics/overview.md
+++ b/docs/content/observability/metrics/overview.md
@@ -1,6 +1,6 @@
 ---
 title: "Traefik Metrics Overview"
-description: "Traefik Proxy supports these metrics backend systems: Datadog, InfluxDB, Prometheus, and StatsD. Read the full documentation to get started."
+description: "Traefik Proxy supports these metrics backend systems: Datadog, InfluxDB 2.X, Prometheus, and StatsD. Read the full documentation to get started."
 ---
 
 # Metrics
@@ -8,7 +8,6 @@ description: "Traefik Proxy supports these metrics backend systems: Datadog, Inf
 Traefik supports these metrics backends:
 
 - [Datadog](./datadog.md)
-- [InfluxDB](./influxdb.md)
 - [InfluxDB2](./influxdb2.md)
 - [Prometheus](./prometheus.md)
 - [StatsD](./statsd.md)
@@ -35,7 +34,7 @@ config.reload.lastSuccessTimestamp
 tls.certs.notAfterTimestamp
 ```
 
-```influxdb tab="InfluxDB / InfluxDB2"
+```influxdb tab="InfluxDB2"
 traefik.config.reload.total
 traefik.config.reload.lastSuccessTimestamp
 traefik.tls.certs.notAfterTimestamp
@@ -77,7 +76,7 @@ entrypoint.requests.bytes.total
 entrypoint.responses.bytes.total
 ```
 
-```influxdb tab="InfluxDB / InfluxDB2"
+```influxdb tab="InfluxDB2"
 traefik.entrypoint.requests.total
 traefik.entrypoint.requests.tls.total
 traefik.entrypoint.request.duration
@@ -125,7 +124,7 @@ router.requests.bytes.total
 router.responses.bytes.total
 ```
 
-```influxdb tab="InfluxDB / InfluxDB2"
+```influxdb tab="InfluxDB2"
 traefik.router.requests.total
 traefik.router.requests.tls.total
 traefik.router.request.duration
@@ -179,7 +178,7 @@ service.requests.bytes.total
 service.responses.bytes.total
 ```
 
-```influxdb tab="InfluxDB / InfluxDB2"
+```influxdb tab="InfluxDB2"
 traefik.service.requests.total
 traefik.service.requests.tls.total
 traefik.service.request.duration
diff --git a/docs/content/reference/static-configuration/cli-ref.md b/docs/content/reference/static-configuration/cli-ref.md
index 1a95f346b0..00bb3af7fc 100644
--- a/docs/content/reference/static-configuration/cli-ref.md
+++ b/docs/content/reference/static-configuration/cli-ref.md
@@ -288,42 +288,6 @@ Prefix to use for metrics collection. (Default: ```traefik```)
 `--metrics.datadog.pushinterval`:  
 Datadog push interval. (Default: ```10```)
 
-`--metrics.influxdb`:  
-InfluxDB metrics exporter type. (Default: ```false```)
-
-`--metrics.influxdb.addentrypointslabels`:  
-Enable metrics on entry points. (Default: ```true```)
-
-`--metrics.influxdb.additionallabels.<name>`:  
-Additional labels (influxdb tags) on all metrics
-
-`--metrics.influxdb.address`:  
-InfluxDB address. (Default: ```localhost:8089```)
-
-`--metrics.influxdb.addrouterslabels`:  
-Enable metrics on routers. (Default: ```false```)
-
-`--metrics.influxdb.addserviceslabels`:  
-Enable metrics on services. (Default: ```true```)
-
-`--metrics.influxdb.database`:  
-InfluxDB database used when protocol is http.
-
-`--metrics.influxdb.password`:  
-InfluxDB password (only with http).
-
-`--metrics.influxdb.protocol`:  
-InfluxDB address protocol (udp or http). (Default: ```udp```)
-
-`--metrics.influxdb.pushinterval`:  
-InfluxDB push interval. (Default: ```10```)
-
-`--metrics.influxdb.retentionpolicy`:  
-InfluxDB retention policy used when protocol is http.
-
-`--metrics.influxdb.username`:  
-InfluxDB username (only with http).
-
 `--metrics.influxdb2`:  
 InfluxDB v2 metrics exporter type. (Default: ```false```)
 
diff --git a/docs/content/reference/static-configuration/env-ref.md b/docs/content/reference/static-configuration/env-ref.md
index 065ae8bff7..b6a7429a8a 100644
--- a/docs/content/reference/static-configuration/env-ref.md
+++ b/docs/content/reference/static-configuration/env-ref.md
@@ -288,9 +288,6 @@ Prefix to use for metrics collection. (Default: ```traefik```)
 `TRAEFIK_METRICS_DATADOG_PUSHINTERVAL`:  
 Datadog push interval. (Default: ```10```)
 
-`TRAEFIK_METRICS_INFLUXDB`:  
-InfluxDB metrics exporter type. (Default: ```false```)
-
 `TRAEFIK_METRICS_INFLUXDB2`:  
 InfluxDB v2 metrics exporter type. (Default: ```false```)
 
@@ -321,39 +318,6 @@ InfluxDB v2 push interval. (Default: ```10```)
 `TRAEFIK_METRICS_INFLUXDB2_TOKEN`:  
 InfluxDB v2 access token.
 
-`TRAEFIK_METRICS_INFLUXDB_ADDENTRYPOINTSLABELS`:  
-Enable metrics on entry points. (Default: ```true```)
-
-`TRAEFIK_METRICS_INFLUXDB_ADDITIONALLABELS_<NAME>`:  
-Additional labels (influxdb tags) on all metrics
-
-`TRAEFIK_METRICS_INFLUXDB_ADDRESS`:  
-InfluxDB address. (Default: ```localhost:8089```)
-
-`TRAEFIK_METRICS_INFLUXDB_ADDROUTERSLABELS`:  
-Enable metrics on routers. (Default: ```false```)
-
-`TRAEFIK_METRICS_INFLUXDB_ADDSERVICESLABELS`:  
-Enable metrics on services. (Default: ```true```)
-
-`TRAEFIK_METRICS_INFLUXDB_DATABASE`:  
-InfluxDB database used when protocol is http.
-
-`TRAEFIK_METRICS_INFLUXDB_PASSWORD`:  
-InfluxDB password (only with http).
-
-`TRAEFIK_METRICS_INFLUXDB_PROTOCOL`:  
-InfluxDB address protocol (udp or http). (Default: ```udp```)
-
-`TRAEFIK_METRICS_INFLUXDB_PUSHINTERVAL`:  
-InfluxDB push interval. (Default: ```10```)
-
-`TRAEFIK_METRICS_INFLUXDB_RETENTIONPOLICY`:  
-InfluxDB retention policy used when protocol is http.
-
-`TRAEFIK_METRICS_INFLUXDB_USERNAME`:  
-InfluxDB username (only with http).
-
 `TRAEFIK_METRICS_OPENTELEMETRY`:  
 OpenTelemetry metrics exporter type. (Default: ```false```)
 
diff --git a/docs/content/reference/static-configuration/file.toml b/docs/content/reference/static-configuration/file.toml
index 5b68317a9f..29ccadce71 100644
--- a/docs/content/reference/static-configuration/file.toml
+++ b/docs/content/reference/static-configuration/file.toml
@@ -269,20 +269,6 @@
     addRoutersLabels = true
     addServicesLabels = true
     prefix = "foobar"
-  [metrics.influxDB]
-    address = "foobar"
-    protocol = "foobar"
-    pushInterval = "42s"
-    database = "foobar"
-    retentionPolicy = "foobar"
-    username = "foobar"
-    password = "foobar"
-    addEntryPointsLabels = true
-    addRoutersLabels = true
-    addServicesLabels = true
-    [metrics.influxDB.additionalLabels]
-      name0 = "foobar"
-      name1 = "foobar"
   [metrics.influxDB2]
     address = "foobar"
     token = "foobar"
diff --git a/docs/content/reference/static-configuration/file.yaml b/docs/content/reference/static-configuration/file.yaml
index 1ce4ec6c1b..10284c874f 100644
--- a/docs/content/reference/static-configuration/file.yaml
+++ b/docs/content/reference/static-configuration/file.yaml
@@ -298,20 +298,6 @@ metrics:
     addRoutersLabels: true
     addServicesLabels: true
     prefix: foobar
-  influxDB:
-    address: foobar
-    protocol: foobar
-    pushInterval: 42s
-    database: foobar
-    retentionPolicy: foobar
-    username: foobar
-    password: foobar
-    addEntryPointsLabels: true
-    addRoutersLabels: true
-    addServicesLabels: true
-    additionalLabels:
-      name0: foobar
-      name1: foobar
   influxDB2:
     address: foobar
     token: foobar
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
index 4819e16c84..179be7ae5b 100644
--- a/docs/mkdocs.yml
+++ b/docs/mkdocs.yml
@@ -151,7 +151,6 @@ nav:
       - 'Metrics':
           - 'Overview': 'observability/metrics/overview.md'
           - 'Datadog': 'observability/metrics/datadog.md'
-          - 'InfluxDB': 'observability/metrics/influxdb.md'
           - 'InfluxDB2': 'observability/metrics/influxdb2.md'
           - 'OpenTelemetry': 'observability/metrics/opentelemetry.md'
           - 'Prometheus': 'observability/metrics/prometheus.md'
diff --git a/pkg/config/dynamic/fixtures/sample.toml b/pkg/config/dynamic/fixtures/sample.toml
index 58534c5537..6d37b8ab78 100644
--- a/pkg/config/dynamic/fixtures/sample.toml
+++ b/pkg/config/dynamic/fixtures/sample.toml
@@ -93,14 +93,6 @@
   [metrics.statsD]
     address = "foobar"
     pushInterval = "10s"
-  [metrics.influxDB]
-    address = "foobar"
-    protocol = "foobar"
-    pushInterval = "10s"
-    database = "foobar"
-    retentionPolicy = "foobar"
-    username = "foobar"
-    password = "foobar"
 
 [ping]
   entryPoint = "foobar"
diff --git a/pkg/metrics/influxdb.go b/pkg/metrics/influxdb.go
deleted file mode 100644
index d90ec75fc2..0000000000
--- a/pkg/metrics/influxdb.go
+++ /dev/null
@@ -1,249 +0,0 @@
-package metrics
-
-import (
-	"bytes"
-	"context"
-	"fmt"
-	"net/url"
-	"regexp"
-	"time"
-
-	"github.com/go-kit/kit/metrics/influx"
-	influxdb "github.com/influxdata/influxdb1-client/v2"
-	"github.com/rs/zerolog/log"
-	"github.com/traefik/traefik/v2/pkg/logs"
-	"github.com/traefik/traefik/v2/pkg/safe"
-	"github.com/traefik/traefik/v2/pkg/types"
-)
-
-var (
-	influxDBClient *influx.Influx
-	influxDBTicker *time.Ticker
-)
-
-const (
-	influxDBConfigReloadsName           = "traefik.config.reload.total"
-	influxDBConfigReloadsFailureName    = influxDBConfigReloadsName + ".failure"
-	influxDBLastConfigReloadSuccessName = "traefik.config.reload.lastSuccessTimestamp"
-	influxDBLastConfigReloadFailureName = "traefik.config.reload.lastFailureTimestamp"
-
-	influxDBTLSCertsNotAfterTimestampName = "traefik.tls.certs.notAfterTimestamp"
-
-	influxDBEntryPointReqsName        = "traefik.entrypoint.requests.total"
-	influxDBEntryPointReqsTLSName     = "traefik.entrypoint.requests.tls.total"
-	influxDBEntryPointReqDurationName = "traefik.entrypoint.request.duration"
-	influxDBEntryPointOpenConnsName   = "traefik.entrypoint.connections.open"
-	influxDBEntryPointReqsBytesName   = "traefik.entrypoint.requests.bytes.total"
-	influxDBEntryPointRespsBytesName  = "traefik.entrypoint.responses.bytes.total"
-
-	influxDBRouterReqsName         = "traefik.router.requests.total"
-	influxDBRouterReqsTLSName      = "traefik.router.requests.tls.total"
-	influxDBRouterReqsDurationName = "traefik.router.request.duration"
-	influxDBORouterOpenConnsName   = "traefik.router.connections.open"
-	influxDBRouterReqsBytesName    = "traefik.router.requests.bytes.total"
-	influxDBRouterRespsBytesName   = "traefik.router.responses.bytes.total"
-
-	influxDBServiceReqsName         = "traefik.service.requests.total"
-	influxDBServiceReqsTLSName      = "traefik.service.requests.tls.total"
-	influxDBServiceReqsDurationName = "traefik.service.request.duration"
-	influxDBServiceRetriesTotalName = "traefik.service.retries.total"
-	influxDBServiceOpenConnsName    = "traefik.service.connections.open"
-	influxDBServiceServerUpName     = "traefik.service.server.up"
-	influxDBServiceReqsBytesName    = "traefik.service.requests.bytes.total"
-	influxDBServiceRespsBytesName   = "traefik.service.responses.bytes.total"
-)
-
-const (
-	protocolHTTP = "http"
-	protocolUDP  = "udp"
-)
-
-// RegisterInfluxDB registers the metrics pusher if this didn't happen yet and creates a InfluxDB Registry instance.
-func RegisterInfluxDB(ctx context.Context, config *types.InfluxDB) Registry {
-	if influxDBClient == nil {
-		influxDBClient = initInfluxDBClient(ctx, config)
-	}
-	if influxDBTicker == nil {
-		influxDBTicker = initInfluxDBTicker(ctx, config)
-	}
-
-	registry := &standardRegistry{
-		configReloadsCounter:           influxDBClient.NewCounter(influxDBConfigReloadsName),
-		configReloadsFailureCounter:    influxDBClient.NewCounter(influxDBConfigReloadsFailureName),
-		lastConfigReloadSuccessGauge:   influxDBClient.NewGauge(influxDBLastConfigReloadSuccessName),
-		lastConfigReloadFailureGauge:   influxDBClient.NewGauge(influxDBLastConfigReloadFailureName),
-		tlsCertsNotAfterTimestampGauge: influxDBClient.NewGauge(influxDBTLSCertsNotAfterTimestampName),
-	}
-
-	if config.AddEntryPointsLabels {
-		registry.epEnabled = config.AddEntryPointsLabels
-		registry.entryPointReqsCounter = influxDBClient.NewCounter(influxDBEntryPointReqsName)
-		registry.entryPointReqsTLSCounter = influxDBClient.NewCounter(influxDBEntryPointReqsTLSName)
-		registry.entryPointReqDurationHistogram, _ = NewHistogramWithScale(influxDBClient.NewHistogram(influxDBEntryPointReqDurationName), time.Second)
-		registry.entryPointOpenConnsGauge = influxDBClient.NewGauge(influxDBEntryPointOpenConnsName)
-		registry.entryPointReqsBytesCounter = influxDBClient.NewCounter(influxDBEntryPointReqsBytesName)
-		registry.entryPointRespsBytesCounter = influxDBClient.NewCounter(influxDBEntryPointRespsBytesName)
-	}
-
-	if config.AddRoutersLabels {
-		registry.routerEnabled = config.AddRoutersLabels
-		registry.routerReqsCounter = influxDBClient.NewCounter(influxDBRouterReqsName)
-		registry.routerReqsTLSCounter = influxDBClient.NewCounter(influxDBRouterReqsTLSName)
-		registry.routerReqDurationHistogram, _ = NewHistogramWithScale(influxDBClient.NewHistogram(influxDBRouterReqsDurationName), time.Second)
-		registry.routerOpenConnsGauge = influxDBClient.NewGauge(influxDBORouterOpenConnsName)
-		registry.routerReqsBytesCounter = influxDBClient.NewCounter(influxDBRouterReqsBytesName)
-		registry.routerRespsBytesCounter = influxDBClient.NewCounter(influxDBRouterRespsBytesName)
-	}
-
-	if config.AddServicesLabels {
-		registry.svcEnabled = config.AddServicesLabels
-		registry.serviceReqsCounter = influxDBClient.NewCounter(influxDBServiceReqsName)
-		registry.serviceReqsTLSCounter = influxDBClient.NewCounter(influxDBServiceReqsTLSName)
-		registry.serviceReqDurationHistogram, _ = NewHistogramWithScale(influxDBClient.NewHistogram(influxDBServiceReqsDurationName), time.Second)
-		registry.serviceRetriesCounter = influxDBClient.NewCounter(influxDBServiceRetriesTotalName)
-		registry.serviceOpenConnsGauge = influxDBClient.NewGauge(influxDBServiceOpenConnsName)
-		registry.serviceServerUpGauge = influxDBClient.NewGauge(influxDBServiceServerUpName)
-		registry.serviceReqsBytesCounter = influxDBClient.NewCounter(influxDBServiceReqsBytesName)
-		registry.serviceRespsBytesCounter = influxDBClient.NewCounter(influxDBServiceRespsBytesName)
-	}
-
-	return registry
-}
-
-// initInfluxDBClient creates a influxDBClient.
-func initInfluxDBClient(ctx context.Context, config *types.InfluxDB) *influx.Influx {
-	logger := log.Ctx(ctx)
-
-	// TODO deprecated: move this switch into configuration.SetEffectiveConfiguration when web provider will be removed.
-	switch config.Protocol {
-	case protocolUDP:
-		if len(config.Database) > 0 || len(config.RetentionPolicy) > 0 {
-			logger.Warn().Msg("Database and RetentionPolicy options have no effect with UDP.")
-			config.Database = ""
-			config.RetentionPolicy = ""
-		}
-	case protocolHTTP:
-		if u, err := url.Parse(config.Address); err == nil {
-			if u.Scheme != "http" && u.Scheme != "https" {
-				logger.Warn().Msgf("InfluxDB address %s should specify a scheme (http or https): falling back on HTTP.", config.Address)
-				config.Address = "http://" + config.Address
-			}
-		} else {
-			logger.Error().Err(err).Msg("Unable to parse the InfluxDB address: falling back on UDP.")
-			config.Protocol = protocolUDP
-			config.Database = ""
-			config.RetentionPolicy = ""
-		}
-	default:
-		logger.Warn().Msgf("Unsupported protocol %s: falling back on UDP.", config.Protocol)
-		config.Protocol = protocolUDP
-		config.Database = ""
-		config.RetentionPolicy = ""
-	}
-
-	return influx.New(
-		config.AdditionalLabels,
-		influxdb.BatchPointsConfig{
-			Database:        config.Database,
-			RetentionPolicy: config.RetentionPolicy,
-		},
-		logs.NewGoKitWrapper(*logger),
-	)
-}
-
-// initInfluxDBTicker initializes metrics pusher.
-func initInfluxDBTicker(ctx context.Context, config *types.InfluxDB) *time.Ticker {
-	report := time.NewTicker(time.Duration(config.PushInterval))
-
-	safe.Go(func() {
-		var buf bytes.Buffer
-		influxDBClient.WriteLoop(ctx, report.C, &influxDBWriter{buf: buf, config: config})
-	})
-
-	return report
-}
-
-// StopInfluxDB stops internal influxDBTicker which controls the pushing of metrics to InfluxDB Agent and resets it to `nil`.
-func StopInfluxDB() {
-	if influxDBTicker != nil {
-		influxDBTicker.Stop()
-	}
-	influxDBTicker = nil
-}
-
-type influxDBWriter struct {
-	buf    bytes.Buffer
-	config *types.InfluxDB
-}
-
-// Write creates a http or udp client and attempts to write BatchPoints.
-// If a "database not found" error is encountered, a CREATE DATABASE
-// query is attempted when using protocol http.
-func (w *influxDBWriter) Write(bp influxdb.BatchPoints) error {
-	c, err := w.initWriteClient()
-	if err != nil {
-		return err
-	}
-
-	defer c.Close()
-
-	if writeErr := c.Write(bp); writeErr != nil {
-		logger := log.With().Str(logs.MetricsProviderName, "influxdb").Logger()
-		logger.Error().Err(writeErr).Msg("Error while writing to InfluxDB")
-
-		if handleErr := w.handleWriteError(logger.WithContext(context.Background()), c, writeErr); handleErr != nil {
-			return handleErr
-		}
-		// Retry write after successful handling of writeErr
-		return c.Write(bp)
-	}
-	return nil
-}
-
-func (w *influxDBWriter) initWriteClient() (influxdb.Client, error) {
-	if w.config.Protocol == "http" {
-		return influxdb.NewHTTPClient(influxdb.HTTPConfig{
-			Addr:     w.config.Address,
-			Username: w.config.Username,
-			Password: w.config.Password,
-		})
-	}
-
-	return influxdb.NewUDPClient(influxdb.UDPConfig{
-		Addr: w.config.Address,
-	})
-}
-
-func (w *influxDBWriter) handleWriteError(ctx context.Context, c influxdb.Client, writeErr error) error {
-	if w.config.Protocol != protocolHTTP {
-		return writeErr
-	}
-
-	match, matchErr := regexp.MatchString("database not found", writeErr.Error())
-
-	if matchErr != nil || !match {
-		return writeErr
-	}
-
-	qStr := fmt.Sprintf("CREATE DATABASE \"%s\"", w.config.Database)
-	if w.config.RetentionPolicy != "" {
-		qStr = fmt.Sprintf("%s WITH NAME \"%s\"", qStr, w.config.RetentionPolicy)
-	}
-
-	logger := log.Ctx(ctx)
-
-	logger.Debug().Msgf("InfluxDB database not found: attempting to create one with %s", qStr)
-
-	q := influxdb.NewQuery(qStr, "", "")
-	response, queryErr := c.Query(q)
-	if queryErr == nil && response.Error() != nil {
-		queryErr = response.Error()
-	}
-	if queryErr != nil {
-		logger.Error().Err(queryErr).Msg("Error while creating the InfluxDB database")
-		return queryErr
-	}
-
-	logger.Debug().Msgf("Successfully created the InfluxDB database %s", w.config.Database)
-	return nil
-}
diff --git a/pkg/metrics/influxdb2.go b/pkg/metrics/influxdb2.go
index 6cf02e8f76..b23bcc31e0 100644
--- a/pkg/metrics/influxdb2.go
+++ b/pkg/metrics/influxdb2.go
@@ -23,6 +23,38 @@ var (
 	influxDB2Client influxdb2.Client
 )
 
+const (
+	influxDBConfigReloadsName           = "traefik.config.reload.total"
+	influxDBConfigReloadsFailureName    = influxDBConfigReloadsName + ".failure"
+	influxDBLastConfigReloadSuccessName = "traefik.config.reload.lastSuccessTimestamp"
+	influxDBLastConfigReloadFailureName = "traefik.config.reload.lastFailureTimestamp"
+
+	influxDBTLSCertsNotAfterTimestampName = "traefik.tls.certs.notAfterTimestamp"
+
+	influxDBEntryPointReqsName        = "traefik.entrypoint.requests.total"
+	influxDBEntryPointReqsTLSName     = "traefik.entrypoint.requests.tls.total"
+	influxDBEntryPointReqDurationName = "traefik.entrypoint.request.duration"
+	influxDBEntryPointOpenConnsName   = "traefik.entrypoint.connections.open"
+	influxDBEntryPointReqsBytesName   = "traefik.entrypoint.requests.bytes.total"
+	influxDBEntryPointRespsBytesName  = "traefik.entrypoint.responses.bytes.total"
+
+	influxDBRouterReqsName         = "traefik.router.requests.total"
+	influxDBRouterReqsTLSName      = "traefik.router.requests.tls.total"
+	influxDBRouterReqsDurationName = "traefik.router.request.duration"
+	influxDBORouterOpenConnsName   = "traefik.router.connections.open"
+	influxDBRouterReqsBytesName    = "traefik.router.requests.bytes.total"
+	influxDBRouterRespsBytesName   = "traefik.router.responses.bytes.total"
+
+	influxDBServiceReqsName         = "traefik.service.requests.total"
+	influxDBServiceReqsTLSName      = "traefik.service.requests.tls.total"
+	influxDBServiceReqsDurationName = "traefik.service.request.duration"
+	influxDBServiceRetriesTotalName = "traefik.service.retries.total"
+	influxDBServiceOpenConnsName    = "traefik.service.connections.open"
+	influxDBServiceServerUpName     = "traefik.service.server.up"
+	influxDBServiceReqsBytesName    = "traefik.service.requests.bytes.total"
+	influxDBServiceRespsBytesName   = "traefik.service.responses.bytes.total"
+)
+
 // RegisterInfluxDB2 creates metrics exporter for InfluxDB2.
 func RegisterInfluxDB2(ctx context.Context, config *types.InfluxDB2) Registry {
 	logger := log.Ctx(ctx)
diff --git a/pkg/server/server.go b/pkg/server/server.go
index 421437a383..962cf6c285 100644
--- a/pkg/server/server.go
+++ b/pkg/server/server.go
@@ -111,7 +111,6 @@ func (s *Server) Close() {
 func stopMetricsClients() {
 	metrics.StopDatadog()
 	metrics.StopStatsd()
-	metrics.StopInfluxDB()
 	metrics.StopInfluxDB2()
 	metrics.StopOpenTelemetry()
 }
diff --git a/pkg/types/metrics.go b/pkg/types/metrics.go
index ddcf71d967..775dc7a167 100644
--- a/pkg/types/metrics.go
+++ b/pkg/types/metrics.go
@@ -13,7 +13,6 @@ type Metrics struct {
 	Prometheus    *Prometheus    `description:"Prometheus metrics exporter type." json:"prometheus,omitempty" toml:"prometheus,omitempty" yaml:"prometheus,omitempty" label:"allowEmpty" file:"allowEmpty" export:"true"`
 	Datadog       *Datadog       `description:"Datadog metrics exporter type." json:"datadog,omitempty" toml:"datadog,omitempty" yaml:"datadog,omitempty" label:"allowEmpty" file:"allowEmpty" export:"true"`
 	StatsD        *Statsd        `description:"StatsD metrics exporter type." json:"statsD,omitempty" toml:"statsD,omitempty" yaml:"statsD,omitempty" label:"allowEmpty" file:"allowEmpty" export:"true"`
-	InfluxDB      *InfluxDB      `description:"InfluxDB metrics exporter type." json:"influxDB,omitempty" toml:"influxDB,omitempty" yaml:"influxDB,omitempty" label:"allowEmpty" file:"allowEmpty" export:"true"`
 	InfluxDB2     *InfluxDB2     `description:"InfluxDB v2 metrics exporter type." json:"influxDB2,omitempty" toml:"influxDB2,omitempty" yaml:"influxDB2,omitempty" label:"allowEmpty" file:"allowEmpty" export:"true"`
 	OpenTelemetry *OpenTelemetry `description:"OpenTelemetry metrics exporter type." json:"openTelemetry,omitempty" toml:"openTelemetry,omitempty" yaml:"openTelemetry,omitempty" label:"allowEmpty" file:"allowEmpty" export:"true"`
 }
@@ -83,30 +82,6 @@ func (s *Statsd) SetDefaults() {
 	s.Prefix = "traefik"
 }
 
-// InfluxDB contains address, login and metrics pushing interval configuration.
-type InfluxDB struct {
-	Address              string            `description:"InfluxDB address." json:"address,omitempty" toml:"address,omitempty" yaml:"address,omitempty"`
-	Protocol             string            `description:"InfluxDB address protocol (udp or http)." json:"protocol,omitempty" toml:"protocol,omitempty" yaml:"protocol,omitempty"`
-	PushInterval         types.Duration    `description:"InfluxDB push interval." json:"pushInterval,omitempty" toml:"pushInterval,omitempty" yaml:"pushInterval,omitempty" export:"true"`
-	Database             string            `description:"InfluxDB database used when protocol is http." json:"database,omitempty" toml:"database,omitempty" yaml:"database,omitempty" export:"true"`
-	RetentionPolicy      string            `description:"InfluxDB retention policy used when protocol is http." json:"retentionPolicy,omitempty" toml:"retentionPolicy,omitempty" yaml:"retentionPolicy,omitempty" export:"true"`
-	Username             string            `description:"InfluxDB username (only with http)." json:"username,omitempty" toml:"username,omitempty" yaml:"username,omitempty" loggable:"false"`
-	Password             string            `description:"InfluxDB password (only with http)." json:"password,omitempty" toml:"password,omitempty" yaml:"password,omitempty" loggable:"false"`
-	AddEntryPointsLabels bool              `description:"Enable metrics on entry points." json:"addEntryPointsLabels,omitempty" toml:"addEntryPointsLabels,omitempty" yaml:"addEntryPointsLabels,omitempty" export:"true"`
-	AddRoutersLabels     bool              `description:"Enable metrics on routers." json:"addRoutersLabels,omitempty" toml:"addRoutersLabels,omitempty" yaml:"addRoutersLabels,omitempty" export:"true"`
-	AddServicesLabels    bool              `description:"Enable metrics on services." json:"addServicesLabels,omitempty" toml:"addServicesLabels,omitempty" yaml:"addServicesLabels,omitempty" export:"true"`
-	AdditionalLabels     map[string]string `description:"Additional labels (influxdb tags) on all metrics" json:"additionalLabels,omitempty" toml:"additionalLabels,omitempty" yaml:"additionalLabels,omitempty" export:"true"`
-}
-
-// SetDefaults sets the default values.
-func (i *InfluxDB) SetDefaults() {
-	i.Address = "localhost:8089"
-	i.Protocol = "udp"
-	i.PushInterval = types.Duration(10 * time.Second)
-	i.AddEntryPointsLabels = true
-	i.AddServicesLabels = true
-}
-
 // InfluxDB2 contains address, token and metrics pushing interval configuration.
 type InfluxDB2 struct {
 	Address              string            `description:"InfluxDB v2 address." json:"address,omitempty" toml:"address,omitempty" yaml:"address,omitempty"`


Test patch:
diff --git a/pkg/metrics/influxdb2_test.go b/pkg/metrics/influxdb2_test.go
index 3fc628d671..441137999e 100644
--- a/pkg/metrics/influxdb2_test.go
+++ b/pkg/metrics/influxdb2_test.go
@@ -6,6 +6,7 @@ import (
 	"io"
 	"net/http"
 	"net/http/httptest"
+	"regexp"
 	"strconv"
 	"testing"
 	"time"
@@ -155,3 +156,14 @@ func TestInfluxDB2(t *testing.T) {
 
 	assertMessage(t, *msgServiceOpenConns, expectedServiceOpenConns)
 }
+
+func assertMessage(t *testing.T, msg string, patterns []string) {
+	t.Helper()
+	for _, pattern := range patterns {
+		re := regexp.MustCompile(pattern)
+		match := re.FindStringSubmatch(msg)
+		if len(match) != 2 {
+			t.Errorf("Got %q %v, want %q", msg, match, pattern)
+		}
+	}
+}
diff --git a/pkg/metrics/influxdb_test.go b/pkg/metrics/influxdb_test.go
deleted file mode 100644
index 38a146697e..0000000000
--- a/pkg/metrics/influxdb_test.go
+++ /dev/null
@@ -1,267 +0,0 @@
-package metrics
-
-import (
-	"context"
-	"fmt"
-	"io"
-	"net/http"
-	"net/http/httptest"
-	"regexp"
-	"strconv"
-	"testing"
-	"time"
-
-	"github.com/stretchr/testify/require"
-	"github.com/stvp/go-udp-testing"
-	ptypes "github.com/traefik/paerser/types"
-	"github.com/traefik/traefik/v2/pkg/types"
-)
-
-func TestInfluxDB(t *testing.T) {
-	udp.SetAddr(":8089")
-	// This is needed to make sure that UDP Listener listens for data a bit longer, otherwise it will quit after a millisecond
-	udp.Timeout = 5 * time.Second
-
-	influxDBClient = nil
-	influxDBRegistry := RegisterInfluxDB(context.Background(),
-		&types.InfluxDB{
-			Address:              ":8089",
-			PushInterval:         ptypes.Duration(time.Second),
-			AddEntryPointsLabels: true,
-			AddRoutersLabels:     true,
-			AddServicesLabels:    true,
-			AdditionalLabels:     map[string]string{"tag1": "val1"},
-		})
-	defer StopInfluxDB()
-
-	if !influxDBRegistry.IsEpEnabled() || !influxDBRegistry.IsRouterEnabled() || !influxDBRegistry.IsSvcEnabled() {
-		t.Fatalf("InfluxDBRegistry  should return true for IsEnabled(), IsRouterEnabled() and IsSvcEnabled()")
-	}
-
-	expectedServer := []string{
-		`(traefik\.config\.reload\.total,tag1=val1 count=1) [\d]{19}`,
-		`(traefik\.config\.reload\.total\.failure,tag1=val1 count=1) [\d]{19}`,
-		`(traefik\.config\.reload\.lastSuccessTimestamp,tag1=val1 value=1) [\d]{19}`,
-		`(traefik\.config\.reload\.lastFailureTimestamp,tag1=val1 value=1) [\d]{19}`,
-	}
-
-	msgServer := udp.ReceiveString(t, func() {
-		influxDBRegistry.ConfigReloadsCounter().Add(1)
-		influxDBRegistry.ConfigReloadsFailureCounter().Add(1)
-		influxDBRegistry.LastConfigReloadSuccessGauge().Set(1)
-		influxDBRegistry.LastConfigReloadFailureGauge().Set(1)
-	})
-
-	assertMessage(t, msgServer, expectedServer)
-
-	expectedTLS := []string{
-		`(traefik\.tls\.certs\.notAfterTimestamp,key=value,tag1=val1 value=1) [\d]{19}`,
-	}
-
-	msgTLS := udp.ReceiveString(t, func() {
-		influxDBRegistry.TLSCertsNotAfterTimestampGauge().With("key", "value").Set(1)
-	})
-
-	assertMessage(t, msgTLS, expectedTLS)
-
-	expectedEntrypoint := []string{
-		`(traefik\.entrypoint\.requests\.total,code=200,entrypoint=test,method=GET,tag1=val1 count=1) [\d]{19}`,
-		`(traefik\.entrypoint\.requests\.tls\.total,entrypoint=test,tag1=val1,tls_cipher=bar,tls_version=foo count=1) [\d]{19}`,
-		`(traefik\.entrypoint\.request\.duration(?:,code=[\d]{3})?,entrypoint=test,tag1=val1 p50=10000,p90=10000,p95=10000,p99=10000) [\d]{19}`,
-		`(traefik\.entrypoint\.connections\.open,entrypoint=test,tag1=val1 value=1) [\d]{19}`,
-		`(traefik\.entrypoint\.requests\.bytes\.total,code=200,entrypoint=test,method=GET,tag1=val1 count=1) [\d]{19}`,
-		`(traefik\.entrypoint\.responses\.bytes\.total,code=200,entrypoint=test,method=GET,tag1=val1 count=1) [\d]{19}`,
-	}
-
-	msgEntrypoint := udp.ReceiveString(t, func() {
-		influxDBRegistry.EntryPointReqsCounter().With("entrypoint", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-		influxDBRegistry.EntryPointReqsTLSCounter().With("entrypoint", "test", "tls_version", "foo", "tls_cipher", "bar").Add(1)
-		influxDBRegistry.EntryPointReqDurationHistogram().With("entrypoint", "test").Observe(10000)
-		influxDBRegistry.EntryPointOpenConnsGauge().With("entrypoint", "test").Set(1)
-		influxDBRegistry.EntryPointReqsBytesCounter().With("entrypoint", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-		influxDBRegistry.EntryPointRespsBytesCounter().With("entrypoint", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-	})
-
-	assertMessage(t, msgEntrypoint, expectedEntrypoint)
-
-	expectedRouter := []string{
-		`(traefik\.router\.requests\.total,code=200,method=GET,router=demo,service=test,tag1=val1 count=1) [\d]{19}`,
-		`(traefik\.router\.requests\.total,code=404,method=GET,router=demo,service=test,tag1=val1 count=1) [\d]{19}`,
-		`(traefik\.router\.requests\.tls\.total,router=demo,service=test,tag1=val1,tls_cipher=bar,tls_version=foo count=1) [\d]{19}`,
-		`(traefik\.router\.request\.duration,code=200,router=demo,service=test,tag1=val1 p50=10000,p90=10000,p95=10000,p99=10000) [\d]{19}`,
-		`(traefik\.router\.connections\.open,router=demo,service=test,tag1=val1 value=1) [\d]{19}`,
-		`(traefik\.router\.requests\.bytes\.total,code=200,method=GET,router=demo,service=test,tag1=val1 count=1) [\d]{19}`,
-		`(traefik\.router\.responses\.bytes\.total,code=200,method=GET,router=demo,service=test,tag1=val1 count=1) [\d]{19}`,
-	}
-
-	msgRouter := udp.ReceiveString(t, func() {
-		influxDBRegistry.RouterReqsCounter().With("router", "demo", "service", "test", "code", strconv.Itoa(http.StatusNotFound), "method", http.MethodGet).Add(1)
-		influxDBRegistry.RouterReqsCounter().With("router", "demo", "service", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-		influxDBRegistry.RouterReqsTLSCounter().With("router", "demo", "service", "test", "tls_version", "foo", "tls_cipher", "bar").Add(1)
-		influxDBRegistry.RouterReqDurationHistogram().With("router", "demo", "service", "test", "code", strconv.Itoa(http.StatusOK)).Observe(10000)
-		influxDBRegistry.RouterOpenConnsGauge().With("router", "demo", "service", "test").Set(1)
-		influxDBRegistry.RouterReqsBytesCounter().With("router", "demo", "service", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-		influxDBRegistry.RouterRespsBytesCounter().With("router", "demo", "service", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-	})
-
-	assertMessage(t, msgRouter, expectedRouter)
-
-	expectedService := []string{
-		`(traefik\.service\.requests\.total,code=200,method=GET,service=test,tag1=val1 count=1) [\d]{19}`,
-		`(traefik\.service\.requests\.total,code=404,method=GET,service=test,tag1=val1 count=1) [\d]{19}`,
-		`(traefik\.service\.requests\.tls\.total,service=test,tag1=val1,tls_cipher=bar,tls_version=foo count=1) [\d]{19}`,
-		`(traefik\.service\.request\.duration,code=200,service=test,tag1=val1 p50=10000,p90=10000,p95=10000,p99=10000) [\d]{19}`,
-		`(traefik\.service\.retries\.total(?:,code=[\d]{3},method=GET)?,service=test,tag1=val1 count=2) [\d]{19}`,
-		`(traefik\.service\.server\.up,service=test,tag1=val1,url=http://127.0.0.1 value=1) [\d]{19}`,
-		`(traefik\.service\.connections\.open,service=test,tag1=val1 value=1) [\d]{19}`,
-		`(traefik\.service\.requests\.bytes\.total,code=200,method=GET,service=test,tag1=val1 count=1) [\d]{19}`,
-		`(traefik\.service\.responses\.bytes\.total,code=200,method=GET,service=test,tag1=val1 count=1) [\d]{19}`,
-	}
-
-	msgService := udp.ReceiveString(t, func() {
-		influxDBRegistry.ServiceReqsCounter().With("service", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-		influxDBRegistry.ServiceReqsCounter().With("service", "test", "code", strconv.Itoa(http.StatusNotFound), "method", http.MethodGet).Add(1)
-		influxDBRegistry.ServiceReqsTLSCounter().With("service", "test", "tls_version", "foo", "tls_cipher", "bar").Add(1)
-		influxDBRegistry.ServiceReqDurationHistogram().With("service", "test", "code", strconv.Itoa(http.StatusOK)).Observe(10000)
-		influxDBRegistry.ServiceOpenConnsGauge().With("service", "test").Set(1)
-		influxDBRegistry.ServiceRetriesCounter().With("service", "test").Add(1)
-		influxDBRegistry.ServiceRetriesCounter().With("service", "test").Add(1)
-		influxDBRegistry.ServiceServerUpGauge().With("service", "test", "url", "http://127.0.0.1").Set(1)
-		influxDBRegistry.ServiceReqsBytesCounter().With("service", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-		influxDBRegistry.ServiceRespsBytesCounter().With("service", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-	})
-
-	assertMessage(t, msgService, expectedService)
-}
-
-func TestInfluxDBHTTP(t *testing.T) {
-	c := make(chan *string)
-	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-		body, err := io.ReadAll(r.Body)
-		require.NoError(t, err)
-
-		bodyStr := string(body)
-		c <- &bodyStr
-		_, _ = fmt.Fprintln(w, "ok")
-	}))
-	defer ts.Close()
-
-	influxDBClient = nil
-	influxDBRegistry := RegisterInfluxDB(context.Background(),
-		&types.InfluxDB{
-			Address:              ts.URL,
-			Protocol:             "http",
-			PushInterval:         ptypes.Duration(10 * time.Millisecond),
-			Database:             "test",
-			RetentionPolicy:      "autogen",
-			AddEntryPointsLabels: true,
-			AddServicesLabels:    true,
-			AddRoutersLabels:     true,
-		})
-	defer StopInfluxDB()
-
-	if !influxDBRegistry.IsEpEnabled() || !influxDBRegistry.IsRouterEnabled() || !influxDBRegistry.IsSvcEnabled() {
-		t.Fatalf("InfluxDB registry must be epEnabled")
-	}
-
-	expectedServer := []string{
-		`(traefik\.config\.reload\.total count=1) [\d]{19}`,
-		`(traefik\.config\.reload\.total\.failure count=1) [\d]{19}`,
-		`(traefik\.config\.reload\.lastSuccessTimestamp value=1) [\d]{19}`,
-		`(traefik\.config\.reload\.lastFailureTimestamp value=1) [\d]{19}`,
-	}
-
-	influxDBRegistry.ConfigReloadsCounter().Add(1)
-	influxDBRegistry.ConfigReloadsFailureCounter().Add(1)
-	influxDBRegistry.LastConfigReloadSuccessGauge().Set(1)
-	influxDBRegistry.LastConfigReloadFailureGauge().Set(1)
-	msgServer := <-c
-
-	assertMessage(t, *msgServer, expectedServer)
-
-	expectedTLS := []string{
-		`(traefik\.tls\.certs\.notAfterTimestamp,key=value value=1) [\d]{19}`,
-	}
-
-	influxDBRegistry.TLSCertsNotAfterTimestampGauge().With("key", "value").Set(1)
-	msgTLS := <-c
-
-	assertMessage(t, *msgTLS, expectedTLS)
-
-	expectedEntrypoint := []string{
-		`(traefik\.entrypoint\.requests\.total,code=200,entrypoint=test,method=GET count=1) [\d]{19}`,
-		`(traefik\.entrypoint\.requests\.tls\.total,entrypoint=test,tls_cipher=bar,tls_version=foo count=1) [\d]{19}`,
-		`(traefik\.entrypoint\.request\.duration(?:,code=[\d]{3})?,entrypoint=test p50=10000,p90=10000,p95=10000,p99=10000) [\d]{19}`,
-		`(traefik\.entrypoint\.connections\.open,entrypoint=test value=1) [\d]{19}`,
-		`(traefik\.entrypoint\.requests\.bytes\.total,code=200,entrypoint=test,method=GET count=1) [\d]{19}`,
-		`(traefik\.entrypoint\.responses\.bytes\.total,code=200,entrypoint=test,method=GET count=1) [\d]{19}`,
-	}
-
-	influxDBRegistry.EntryPointReqsCounter().With("entrypoint", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-	influxDBRegistry.EntryPointReqsTLSCounter().With("entrypoint", "test", "tls_version", "foo", "tls_cipher", "bar").Add(1)
-	influxDBRegistry.EntryPointReqDurationHistogram().With("entrypoint", "test").Observe(10000)
-	influxDBRegistry.EntryPointOpenConnsGauge().With("entrypoint", "test").Set(1)
-	influxDBRegistry.EntryPointReqsBytesCounter().With("entrypoint", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-	influxDBRegistry.EntryPointRespsBytesCounter().With("entrypoint", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-	msgEntrypoint := <-c
-
-	assertMessage(t, *msgEntrypoint, expectedEntrypoint)
-
-	expectedRouter := []string{
-		`(traefik\.router\.requests\.total,code=200,method=GET,router=demo,service=test count=1) [\d]{19}`,
-		`(traefik\.router\.requests\.total,code=404,method=GET,router=demo,service=test count=1) [\d]{19}`,
-		`(traefik\.router\.requests\.tls\.total,router=demo,service=test,tls_cipher=bar,tls_version=foo count=1) [\d]{19}`,
-		`(traefik\.router\.request\.duration,code=200,router=demo,service=test p50=10000,p90=10000,p95=10000,p99=10000) [\d]{19}`,
-		`(traefik\.router\.connections\.open,router=demo,service=test value=1) [\d]{19}`,
-		`(traefik\.router\.requests\.bytes\.total,code=200,method=GET,router=demo,service=test count=1) [\d]{19}`,
-		`(traefik\.router\.responses\.bytes\.total,code=200,method=GET,router=demo,service=test count=1) [\d]{19}`,
-	}
-
-	influxDBRegistry.RouterReqsCounter().With("router", "demo", "service", "test", "code", strconv.Itoa(http.StatusNotFound), "method", http.MethodGet).Add(1)
-	influxDBRegistry.RouterReqsCounter().With("router", "demo", "service", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-	influxDBRegistry.RouterReqsTLSCounter().With("router", "demo", "service", "test", "tls_version", "foo", "tls_cipher", "bar").Add(1)
-	influxDBRegistry.RouterReqDurationHistogram().With("router", "demo", "service", "test", "code", strconv.Itoa(http.StatusOK)).Observe(10000)
-	influxDBRegistry.RouterOpenConnsGauge().With("router", "demo", "service", "test").Set(1)
-	influxDBRegistry.RouterReqsBytesCounter().With("router", "demo", "service", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-	influxDBRegistry.RouterRespsBytesCounter().With("router", "demo", "service", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-	msgRouter := <-c
-
-	assertMessage(t, *msgRouter, expectedRouter)
-
-	expectedService := []string{
-		`(traefik\.service\.requests\.total,code=200,method=GET,service=test count=1) [\d]{19}`,
-		`(traefik\.service\.requests\.total,code=404,method=GET,service=test count=1) [\d]{19}`,
-		`(traefik\.service\.requests\.tls\.total,service=test,tls_cipher=bar,tls_version=foo count=1) [\d]{19}`,
-		`(traefik\.service\.request\.duration,code=200,service=test p50=10000,p90=10000,p95=10000,p99=10000) [\d]{19}`,
-		`(traefik\.service\.retries\.total(?:,code=[\d]{3},method=GET)?,service=test count=2) [\d]{19}`,
-		`(traefik\.service\.server\.up,service=test,url=http://127.0.0.1 value=1) [\d]{19}`,
-		`(traefik\.service\.connections\.open,service=test value=1) [\d]{19}`,
-		`(traefik\.service\.requests\.bytes\.total,code=200,method=GET,service=test count=1) [\d]{19}`,
-		`(traefik\.service\.responses\.bytes\.total,code=200,method=GET,service=test count=1) [\d]{19}`,
-	}
-
-	influxDBRegistry.ServiceReqsCounter().With("service", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-	influxDBRegistry.ServiceReqsCounter().With("service", "test", "code", strconv.Itoa(http.StatusNotFound), "method", http.MethodGet).Add(1)
-	influxDBRegistry.ServiceReqsTLSCounter().With("service", "test", "tls_version", "foo", "tls_cipher", "bar").Add(1)
-	influxDBRegistry.ServiceReqDurationHistogram().With("service", "test", "code", strconv.Itoa(http.StatusOK)).Observe(10000)
-	influxDBRegistry.ServiceOpenConnsGauge().With("service", "test").Set(1)
-	influxDBRegistry.ServiceRetriesCounter().With("service", "test").Add(1)
-	influxDBRegistry.ServiceRetriesCounter().With("service", "test").Add(1)
-	influxDBRegistry.ServiceServerUpGauge().With("service", "test", "url", "http://127.0.0.1").Set(1)
-	influxDBRegistry.ServiceReqsBytesCounter().With("service", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-	influxDBRegistry.ServiceRespsBytesCounter().With("service", "test", "code", strconv.Itoa(http.StatusOK), "method", http.MethodGet).Add(1)
-	msgService := <-c
-
-	assertMessage(t, *msgService, expectedService)
-}
-
-func assertMessage(t *testing.T, msg string, patterns []string) {
-	t.Helper()
-	for _, pattern := range patterns {
-		re := regexp.MustCompile(pattern)
-		match := re.FindStringSubmatch(msg)
-		if len(match) != 2 {
-			t.Errorf("Got %q %v, want %q", msg, match, pattern)
-		}
-	}
-}
diff --git a/pkg/redactor/redactor_config_test.go b/pkg/redactor/redactor_config_test.go
index 468b342519..49a4a292d4 100644
--- a/pkg/redactor/redactor_config_test.go
+++ b/pkg/redactor/redactor_config_test.go
@@ -784,17 +784,6 @@ func TestDo_staticConfiguration(t *testing.T) {
 			AddServicesLabels:    true,
 			Prefix:               "MyPrefix",
 		},
-		InfluxDB: &types.InfluxDB{
-			Address:              "localhost:8183",
-			Protocol:             "http",
-			PushInterval:         42,
-			Database:             "myDB",
-			RetentionPolicy:      "12",
-			Username:             "a",
-			Password:             "aaaa",
-			AddEntryPointsLabels: true,
-			AddServicesLabels:    true,
-		},
 	}
 
 	config.Ping = &ping.Handler{
diff --git a/pkg/redactor/testdata/anonymized-static-config.json b/pkg/redactor/testdata/anonymized-static-config.json
index 35a447ef41..14d587559b 100644
--- a/pkg/redactor/testdata/anonymized-static-config.json
+++ b/pkg/redactor/testdata/anonymized-static-config.json
@@ -284,17 +284,6 @@
       "addEntryPointsLabels": true,
       "addServicesLabels": true,
       "prefix": "MyPrefix"
-    },
-    "influxDB": {
-      "address": "xxxx",
-      "protocol": "xxxx",
-      "pushInterval": "42ns",
-      "database": "myDB",
-      "retentionPolicy": "12",
-      "username": "xxxx",
-      "password": "xxxx",
-      "addEntryPointsLabels": true,
-      "addServicesLabels": true
     }
   },
   "ping": {