當前位置: 首頁>>代碼示例>>Golang>>正文


Golang Selector.String方法代碼示例

本文整理匯總了Golang中github.com/ttysteale/kubernetes-api/labels.Selector.String方法的典型用法代碼示例。如果您正苦於以下問題:Golang Selector.String方法的具體用法?Golang Selector.String怎麽用?Golang Selector.String使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/ttysteale/kubernetes-api/labels.Selector的用法示例。


在下文中一共展示了Selector.String方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: getCpuUtilizationForPods

func (h *HeapsterMetricsClient) getCpuUtilizationForPods(namespace string, selector labels.Selector, podNames map[string]struct{}) (int64, time.Time, error) {
    metricPath := fmt.Sprintf("/apis/metrics/v1alpha1/namespaces/%s/pods", namespace)
    params := map[string]string{"labelSelector": selector.String()}

    resultRaw, err := h.client.Core().Services(h.heapsterNamespace).
        ProxyGet(h.heapsterScheme, h.heapsterService, h.heapsterPort, metricPath, params).
        DoRaw()
    if err != nil {
        return 0, time.Time{}, fmt.Errorf("failed to get pods metrics: %v", err)
    }

    glog.V(4).Infof("Heapster metrics result: %s", string(resultRaw))

    metrics := make([]metrics_api.PodMetrics, 0)
    err = json.Unmarshal(resultRaw, &metrics)
    if err != nil {
        return 0, time.Time{}, fmt.Errorf("failed to unmarshall heapster response: %v", err)
    }

    if len(metrics) != len(podNames) {
        return 0, time.Time{}, fmt.Errorf("metrics obtained for %d/%d of pods", len(metrics), len(podNames))
    }

    sum := int64(0)
    for _, m := range metrics {
        if _, found := podNames[m.Name]; found {
            for _, c := range m.Containers {
                cpu, found := c.Usage[v1.ResourceCPU]
                if !found {
                    return 0, time.Time{}, fmt.Errorf("no cpu for container %v in pod %v/%v", c.Name, namespace, m.Name)
                }
                sum += cpu.MilliValue()
            }
        } else {
            return 0, time.Time{}, fmt.Errorf("not expected metrics for pod %v/%v", namespace, m.Name)
        }
    }

    return sum / int64(len(metrics)), metrics[0].Timestamp.Time, nil
}
開發者ID:ttysteale,項目名稱:kubernetes-api,代碼行數:40,代碼來源:metrics_client.go


注:本文中的github.com/ttysteale/kubernetes-api/labels.Selector.String方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。