diff --git a/README.md b/README.md index b7bfb685..2d19722c 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,9 @@ [![Build Status](https://travis-ci.org/DirectXMan12/k8s-prometheus-adapter.svg?branch=master)](https://travis-ci.org/DirectXMan12/k8s-prometheus-adapter) This repository contains an implementation of the Kubernetes -[resource metrics](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/instrumentation/resource-metrics-api.md) API and -[custom metrics](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/instrumentation/custom-metrics-api.md) API. +[resource metrics](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/instrumentation/resource-metrics-api.md), +[custom metrics](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/instrumentation/custom-metrics-api.md), and +[external metrics](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/instrumentation/external-metrics-api.md) APIs. This adapter is therefore suitable for use with the autoscaling/v2 Horizontal Pod Autoscaler in Kubernetes 1.6+. It can also replace the [metrics server](https://github.com/kubernetes-incubator/metrics-server) on clusters that already run Prometheus and collect the appropriate metrics. diff --git a/deploy/manifests/custom-metrics-apiservice.yaml b/deploy/manifests/custom-metrics-apiservice.yaml index f3c50ee5..f329531b 100644 --- a/deploy/manifests/custom-metrics-apiservice.yaml +++ b/deploy/manifests/custom-metrics-apiservice.yaml @@ -11,3 +11,32 @@ spec: insecureSkipTLSVerify: true groupPriorityMinimum: 100 versionPriority: 100 +--- +apiVersion: apiregistration.k8s.io/v1beta1 +kind: APIService +metadata: + name: v1beta2.custom.metrics.k8s.io +spec: + service: + name: custom-metrics-apiserver + namespace: custom-metrics + group: custom.metrics.k8s.io + version: v1beta2 + insecureSkipTLSVerify: true + groupPriorityMinimum: 100 + versionPriority: 200 +--- +apiVersion: apiregistration.k8s.io/v1beta1 +kind: APIService +metadata: + name: v1beta1.external.metrics.k8s.io +spec: + service: + name: custom-metrics-apiserver + namespace: custom-metrics + group: external.metrics.k8s.io + version: v1beta1 + insecureSkipTLSVerify: true + groupPriorityMinimum: 100 + versionPriority: 100 +--- diff --git a/deploy/manifests/custom-metrics-cluster-role.yaml b/deploy/manifests/custom-metrics-cluster-role.yaml index 950b924d..4fc9f97d 100644 --- a/deploy/manifests/custom-metrics-cluster-role.yaml +++ b/deploy/manifests/custom-metrics-cluster-role.yaml @@ -5,5 +5,6 @@ metadata: rules: - apiGroups: - custom.metrics.k8s.io + - external.metrics.k8s.io resources: ["*"] verbs: ["*"] diff --git a/deploy/manifests/custom-metrics-config-map.yaml b/deploy/manifests/custom-metrics-config-map.yaml index a1a4740a..c8f28429 100644 --- a/deploy/manifests/custom-metrics-config-map.yaml +++ b/deploy/manifests/custom-metrics-config-map.yaml @@ -96,3 +96,22 @@ data: resource: pod containerLabel: container_name window: 1m + externalRules: + - seriesQuery: '{__name__=~"^.*_queue_(length|size)$",namespace!=""}' + resources: + overrides: + namespace: + resource: namespace + name: + matches: ^.*_queue_(length|size)$ + as: "$0" + metricsQuery: max(<<.Series>>{<<.LabelMatchers>>}) + - seriesQuery: '{__name__=~"^.*_queue$",namespace!=""}' + resources: + overrides: + namespace: + resource: namespace + name: + matches: ^.*_queue$ + as: "$0" + metricsQuery: max(<<.Series>>{<<.LabelMatchers>>})