From 871a79449ebdae5097188a9bec178eeafd5b1bc2 Mon Sep 17 00:00:00 2001 From: Kamran Biglari Date: Fri, 7 Nov 2025 10:53:41 +0000 Subject: [PATCH] Implement metrics method for Load Balancer Added a method to retrieve metrics for a specified Load Balancer. --- src/Models/LoadBalancers/LoadBalancer.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/Models/LoadBalancers/LoadBalancer.php b/src/Models/LoadBalancers/LoadBalancer.php index b893004a..53a44285 100644 --- a/src/Models/LoadBalancers/LoadBalancer.php +++ b/src/Models/LoadBalancers/LoadBalancer.php @@ -434,6 +434,23 @@ public function deleteService(int $listenPort): ?APIResponse return null; } + /** + * Get Metrics for specified Load Balancer. + * @see https://docs.hetzner.cloud/#load-balancer-actions-delete-service + * @throws APIException|GuzzleException + */ + public function metrics(string $type, string $start, string $end, ?int $step = null): ?APIResponse + { + $response = $this->httpClient->get($this->replaceServerIdInUri('load_balancers/{id}/metrics?') . http_build_query(compact('type', 'start', 'end', 'step'))); + if (!HetznerAPIClient::hasError($response)) { + return APIResponse::create([ + 'metrics' => json_decode((string)$response->getBody())->metrics, + ], $response->getHeaders()); + } + + return null; + } + /** * Detaches a Load Balancer from a network. *