From 2a44afac1db2e15659ba1ba962e88143bea2ca17 Mon Sep 17 00:00:00 2001 From: Piotr Szczesniak Date: Mon, 25 Jan 2016 14:35:49 +0100 Subject: [PATCH] Temporary removed support for influxdb for InitialResources --- .../admission/initialresources/influxdb.go | 99 ++----------------- 1 file changed, 7 insertions(+), 92 deletions(-) diff --git a/plugin/pkg/admission/initialresources/influxdb.go b/plugin/pkg/admission/initialresources/influxdb.go index 3c6b7564007..d72f16fcb0c 100644 --- a/plugin/pkg/admission/initialresources/influxdb.go +++ b/plugin/pkg/admission/initialresources/influxdb.go @@ -21,7 +21,6 @@ import ( "strings" "time" - "github.com/golang/glog" influxdb "github.com/influxdb/influxdb/client" "k8s.io/kubernetes/pkg/api" ) @@ -35,81 +34,15 @@ const ( ) // TODO(piosz): rewrite this once we will migrate into InfluxDB v0.9. -type influxdbSource struct { - conf *influxdb.ClientConfig -} +type influxdbSource struct{} func newInfluxdbSource(host, user, password, db string) (dataSource, error) { - conf := &influxdb.ClientConfig{ - Host: host, - Username: user, - Password: password, - Database: db, - } - source := &influxdbSource{ - conf: conf, - } - go source.ensureAutoscalingSeriesExist() - return source, nil + return &influxdbSource{}, nil } -func ensureSeriesExists(conn *influxdb.Client, existingQueries *influxdb.Series, seriesName, contQuery string) error { - queryExists := false - for _, p := range existingQueries.GetPoints() { - id := p[1].(float64) - query := p[2].(string) - if strings.Contains(query, "into "+seriesName) { - if query != contQuery { - if _, err := conn.Query(fmt.Sprintf("drop continuous query %v", id), influxdb.Second); err != nil { - return err - } - } else { - queryExists = true - } - } - } - if !queryExists { - if _, err := conn.Query("drop series "+seriesName, influxdb.Second); err != nil { - return err - } - if _, err := conn.Query(contQuery, influxdb.Second); err != nil { - return err - } - } - return nil -} - -func (s *influxdbSource) ensureAutoscalingSeriesExist() { - for { - time.Sleep(30 * time.Second) - client, err := influxdb.NewClient(s.conf) - if err != nil { - glog.Errorf("Error while trying to create InfluxDB client: %v", err) - continue - } - series, err := client.Query("list continuous queries", influxdb.Second) - if err != nil { - glog.Errorf("Error while trying to list continuous queries: %v", err) - continue - } - if err := ensureSeriesExists(client, series[0], cpuSeriesName, cpuContinuousQuery); err != nil { - glog.Errorf("Error while trying to create create autoscaling series: %v", err) - continue - } - if err := ensureSeriesExists(client, series[0], memSeriesName, memContinuousQuery); err != nil { - glog.Errorf("Error while trying to create create autoscaling series: %v", err) - continue - } - break - } -} - -func (s *influxdbSource) query(query string, precision ...influxdb.TimePrecision) ([]*influxdb.Series, error) { - client, err := influxdb.NewClient(s.conf) - if err != nil { - return nil, err - } - return client.Query(query, precision...) +func (s *influxdbSource) query(query string) ([]*influxdb.Response, error) { + // TODO(piosz): add support again + return nil, fmt.Errorf("temporary not supported; see #18826 for more details") } func (s *influxdbSource) GetUsagePercentile(kind api.ResourceName, perc int64, image, namespace string, exactMatch bool, start, end time.Time) (int64, int64, error) { @@ -133,26 +66,8 @@ func (s *influxdbSource) GetUsagePercentile(kind api.ResourceName, perc int64, i } query := fmt.Sprintf("select percentile(value, %v), count(pod_id) from %v where container_base_image%v%v and time > '%v' and time < '%v'", perc, series, imgPattern, namespaceCond, start.UTC().Format(timeFormat), end.UTC().Format(timeFormat)) - var res []*influxdb.Series - var err error - if res, err = s.query(query, influxdb.Second); err != nil { + if _, err := s.query(query); err != nil { return 0, 0, fmt.Errorf("Error while trying to query InfluxDB: %v", err) } - - // TODO(pszczesniak): fix issue with dropped data base - if len(res) == 0 { - return 0, 0, fmt.Errorf("Missing data in series %v in InfluxDB", series) - } - points := res[0].GetPoints() - if len(points) == 0 { - return 0, 0, fmt.Errorf("Missing data in series %v in InfluxDB", series) - } - p := points[0] - usage := p[1].(float64) - count := p[2].(float64) - if kind == api.ResourceCPU { - // convert from ns to millicores - usage = usage / 1000000 - } - return int64(usage), int64(count), nil + return 0, 0, nil }