From cd3de5a89594753d5d0b1915a95cd5ebe2781d1c Mon Sep 17 00:00:00 2001 From: Roger Johansson Date: Sun, 16 Oct 2022 13:45:05 +0200 Subject: [PATCH 1/2] k8s provider diagnostics --- .../KubernetesProvider.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/Proto.Cluster.Kubernetes/KubernetesProvider.cs b/src/Proto.Cluster.Kubernetes/KubernetesProvider.cs index a9f398850a..a10f6adee8 100644 --- a/src/Proto.Cluster.Kubernetes/KubernetesProvider.cs +++ b/src/Proto.Cluster.Kubernetes/KubernetesProvider.cs @@ -12,6 +12,7 @@ using k8s; using k8s.Models; using Microsoft.Extensions.Logging; +using Proto.Diagnostics; using Proto.Utils; using static Proto.Cluster.Kubernetes.Messages; using static Proto.Cluster.Kubernetes.ProtoLabels; @@ -38,6 +39,22 @@ public class KubernetesProvider : IClusterProvider private string _podName; private int _port; + public async Task GetDiagnostics() + { + var selector = $"{LabelCluster}={_clusterName}"; + using var client = _config.ClientFactory(); + var res = await client.ListNamespacedPodWithHttpMessagesAsync( + KubernetesExtensions.GetKubeNamespace(), + labelSelector: selector, + watch: false, + timeoutSeconds: _config.WatchTimeoutSeconds + ); + + var pods = new DiagnosticsEntry("KubernetesProvider", "Pods", res.Body); + + return new[] { pods }; + } + public KubernetesProvider() : this(new KubernetesProviderConfig()) { } From 56c941b4b3ebddfb1b51ade94d824f8641c5313c Mon Sep 17 00:00:00 2001 From: Roger Johansson Date: Sun, 16 Oct 2022 13:54:11 +0200 Subject: [PATCH 2/2] add errorhandling to k8s provider --- .../KubernetesProvider.cs | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/Proto.Cluster.Kubernetes/KubernetesProvider.cs b/src/Proto.Cluster.Kubernetes/KubernetesProvider.cs index a10f6adee8..7b8c67d8e4 100644 --- a/src/Proto.Cluster.Kubernetes/KubernetesProvider.cs +++ b/src/Proto.Cluster.Kubernetes/KubernetesProvider.cs @@ -41,18 +41,25 @@ public class KubernetesProvider : IClusterProvider public async Task GetDiagnostics() { - var selector = $"{LabelCluster}={_clusterName}"; - using var client = _config.ClientFactory(); - var res = await client.ListNamespacedPodWithHttpMessagesAsync( - KubernetesExtensions.GetKubeNamespace(), - labelSelector: selector, - watch: false, - timeoutSeconds: _config.WatchTimeoutSeconds - ); - - var pods = new DiagnosticsEntry("KubernetesProvider", "Pods", res.Body); - - return new[] { pods }; + try + { + var selector = $"{LabelCluster}={_clusterName}"; + using var client = _config.ClientFactory(); + var res = await client.ListNamespacedPodWithHttpMessagesAsync( + KubernetesExtensions.GetKubeNamespace(), + labelSelector: selector, + watch: false, + timeoutSeconds: _config.WatchTimeoutSeconds + ); + + var pods = new DiagnosticsEntry("KubernetesProvider", "Pods", res.Body); + + return new[] { pods }; + } + catch (Exception x) + { + return new[] { new DiagnosticsEntry("KubernetesProvider", "Exception", x.ToString() ) }; + } } public KubernetesProvider() : this(new KubernetesProviderConfig())