如何在golang中使用httptest为测试http请求添加条件



我是golang的初学者,开始开发后端RBAC应用程序来管理Kubernetes集群的访问,我们有一个位于代理服务器prometheus、thanos和grafana URL后面的监控堆栈。我无法使用httptest添加检查HTTP状态的条件。如果pod启动并运行,我必须添加条件,否则将打印错误。

rq := httptest.NewRequest("GET", "/", nil)
rw := httptest.NewRecorder()
proxy.ServeHTTP(rw, rq)
if rw.Code != 200 && monitoringArgs.selector == "PROMETHEUS" {
fmt.Printf("Target pods are in error state, please check with 'oc get pods -n %s -l %s'", monitoringArgs.namespace, monitoringArgs.selector)
} 

我如何为所有三个普罗米修斯/格拉法纳/塔诺斯添加条件

您也可以在类似的逻辑中使用POD的重新启动计数

pods, err := clientset.CoreV1().Pods(namespace).List(metav1.ListOptions{
LabelSelector: "app=myapp",
})
// check status for the pods - to see Probe status
for _, pod := range pods.Items {
pod.Status.Conditions // use your custom logic here
for _, container := range pod.Status.ContainerStatuses {
container.RestartCount // use this number in your logic
}
}

最新更新