From 751594860a087714c54acbbbf002d8ba49453d24 Mon Sep 17 00:00:00 2001 From: yusing Date: Thu, 19 Dec 2024 14:01:55 +0800 Subject: [PATCH] fix docker health checker metrics missing from prometheus --- internal/route/http.go | 2 +- internal/route/stream.go | 2 +- internal/watcher/health/monitor/docker.go | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/route/http.go b/internal/route/http.go index b294856..6d68c5a 100755 --- a/internal/route/http.go +++ b/internal/route/http.go @@ -97,7 +97,7 @@ func (r *HTTPRoute) Start(providerSubtask *task.Task) E.Error { client, err := docker.ConnectClient(r.Idlewatcher.DockerHost) if err == nil { fallback := monitor.NewHTTPHealthChecker(r.rp.TargetURL, r.Raw.HealthCheck) - r.HealthMon = monitor.NewDockerHealthMonitor(client, r.Idlewatcher.ContainerID, r.Raw.HealthCheck, fallback) + r.HealthMon = monitor.NewDockerHealthMonitor(client, r.Idlewatcher.ContainerID, r.TargetName(), r.Raw.HealthCheck, fallback) r.task.OnCancel("close docker client", client.Close) } } diff --git a/internal/route/stream.go b/internal/route/stream.go index b8bb1b7..065adf9 100755 --- a/internal/route/stream.go +++ b/internal/route/stream.go @@ -72,7 +72,7 @@ func (r *StreamRoute) Start(providerSubtask *task.Task) E.Error { client, err := docker.ConnectClient(r.Idlewatcher.DockerHost) if err == nil { fallback := monitor.NewRawHealthChecker(r.TargetURL(), r.Raw.HealthCheck) - r.HealthMon = monitor.NewDockerHealthMonitor(client, r.Idlewatcher.ContainerID, r.Raw.HealthCheck, fallback) + r.HealthMon = monitor.NewDockerHealthMonitor(client, r.Idlewatcher.ContainerID, r.TargetName(), r.Raw.HealthCheck, fallback) r.task.OnCancel("close docker client", client.Close) } } diff --git a/internal/watcher/health/monitor/docker.go b/internal/watcher/health/monitor/docker.go index 2dcc8c2..dd84dbe 100644 --- a/internal/watcher/health/monitor/docker.go +++ b/internal/watcher/health/monitor/docker.go @@ -14,12 +14,13 @@ type DockerHealthMonitor struct { fallback health.HealthChecker } -func NewDockerHealthMonitor(client *docker.SharedClient, containerID string, config *health.HealthCheckConfig, fallback health.HealthChecker) *DockerHealthMonitor { +func NewDockerHealthMonitor(client *docker.SharedClient, containerID, alias string, config *health.HealthCheckConfig, fallback health.HealthChecker) *DockerHealthMonitor { mon := new(DockerHealthMonitor) mon.client = client mon.containerID = containerID mon.monitor = newMonitor(fallback.URL(), config, mon.CheckHealth) mon.fallback = fallback + mon.service = alias return mon }