Commit graph

76 commits

Author SHA1 Message Date
Damien Grisonnet
76e61d47f6 pkg/resourceprovider: prevent metrics-server panic
The code that we are reusing from metrics-server to call
GetContainerMetrics and GetNodeMetrics requires that both functions
returns arrays of lengths of the number of pods/nodes given as
arguments. In some cases, prometheus-adapter was returning nil which
caused panics in metrics-server code.

Signed-off-by: Damien Grisonnet <dgrisonn@redhat.com>
2021-06-01 16:32:58 +02:00
Damien Grisonnet
c67e8f5956 go.mod: bump dependencies
Signed-off-by: Damien Grisonnet <dgrisonn@redhat.com>
2021-06-01 15:25:56 +02:00
Kubernetes Prow Robot
c893b1140c
Merge pull request #380 from carsonoid/issue-324-carsonoid
Allow metrics to be defined as `namespaced: false`
2021-05-12 06:12:17 -07:00
Carson Anderson
6c1d85ccf9 Split ExternalMetricsQuery and MetricsQuery funcs 2021-05-11 14:49:11 -06:00
Carson Anderson
c0ae5d6dd4 fix tests 2021-04-23 11:39:47 -06:00
Carson Anderson
fa5f8cd742 Add requested fixes 2021-04-23 11:27:38 -06:00
Carson Anderson
510c3724ce Add docs, tests, and move namespaced to metricsQuery 2021-04-08 11:07:50 -06:00
aackerman
0e105eeeb1 Update tests to use container and pod labels instead of container_name and pod_name 2021-03-23 12:41:44 -05:00
Carson Anderson
3ae38c7417 Allow metrics to be defined as namespaced: false
When set to false, no namespace label will be set by the adapter based on the namespace
portion of the url in the request path.

This allows individual consumers to set namespace independent of the source kubernetes resource.

---

Example:

Given an adapter config like this:

```
    externalRules:
    - seriesQuery: 'nsq_topic_depth'
      resources:
        namespaced: false
```

An HPA could target a different namespace by setting it in the selector:

```
  - type: External
    external:
      metric:
        name: nsq_topic_depth
        selector:
          labelSelector:
            topic: my-topic
            namespace: nsq
```

This is useful for scaling on metrics from services that run in a differnt namespace than the source resource.
2021-03-05 15:25:37 -07:00
Kubernetes Prow Robot
7e11fe30ee
Merge pull request #372 from paulfantom/json
pkg/config: allow configuration to be read from json schema
2021-03-01 05:22:46 -08:00
paulfantom
cd55a67b89
*: move all imports to github.com/kubernetes-sigs/prometheus-adapter
Signed-off-by: paulfantom <pawel@krupa.net.pl>
2021-02-22 15:49:03 +01:00
paulfantom
1cc7bed020
pkg/config: allow configuration to be read from json schema 2021-02-22 10:17:27 +01:00
Sergiusz Urbaniak
f33fc94229
Merge pull request #348 from dgrisonnet/populate-selector
Populate metric selector for custom metrics
2020-12-15 15:54:52 +01:00
Sergiusz Urbaniak
147b5c8858
pkg/api/generated: regenerate 2020-12-14 12:43:59 +01:00
Damien Grisonnet
76020f6618 pkg/custom-provider: populate metric selector
When querying custom-metrics, the metric label selectors weren't
populated in the resulting values.

Signed-off-by: Damien Grisonnet <dgrisonn@redhat.com>
2020-12-10 16:14:22 +01:00
Johannes Würbach
b09c680295
ensure openapi is up-to-date and use same kube-openapi version 2020-11-10 16:07:17 +01:00
Sergiusz Urbaniak
87c429b5c6
Merge pull request #330 from joelsmith/master
Populate both CPU and Memory resource container metrics if one is specified
2020-10-30 07:30:26 +01:00
Sergiusz Urbaniak
69569bf7ab pkg/client: refactor to klog/v2 api 2020-10-28 15:57:23 +01:00
Sergiusz Urbaniak
752ce84723 cmd/*,pkg/*,docs,go.mod: bump custom-metrics-apiserver, metrics-server 2020-10-28 15:52:12 +01:00
Sergiusz Urbaniak
a858d53495 pkg/*,cmd/*: move to k8s.io/klog/v2 2020-10-28 15:48:05 +01:00
Joel Smith
bdc8b487ba Populate both CPU and Memory resource container metrics if one is specified 2020-10-27 19:39:13 -06:00
Johannes Würbach
1d44cbbbb8
Serve openapi spec 2020-10-23 11:06:41 +02:00
Johannes Würbach
47a5ed8047
Adjustments after metrics-server update 2020-10-23 11:06:40 +02:00
Aya Igarashi
5a6322b4ce Fix NaN not to be cast to int64 2020-08-11 20:49:27 +09:00
Clayton Coleman
c6ac5cbc87
*: Update to sigs.k8s.io/metrics-server latest
Pick up changes to 1.17 to custom-metrics-apiserver and the latest
changes in metrics-server to allow us to show table results for
podmetrics and nodemetrics. Fix import and interface changes as
necessary.

The localvendor directory is an artifact of a change in sigs.k8s.io:

sigs.k8s.io/metrics-server now requires this dependency in order to
resolve, even though we do not use the scraper package.

go: sigs.k8s.io/metrics-server@v0.3.7 requires
    k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1@v0.0.0: reading k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1/pkg/kubelet/apis/stats/v1alpha1/go.mod at revision pkg/kubelet/apis/stats/v1alpha1/v0.0.0: unknown revision pkg/kubelet/apis/stats/v1alpha1/v0.0.0
2020-04-08 11:47:25 -04:00
Sergii Koshel
d091fff18b Update metrics apiserver to support filtering by labels 2020-02-12 17:54:40 +02:00
paulfantom
e84becd7ac
pkg/names: test namespaced external metrics selectors 2019-05-17 15:35:04 +02:00
Sergiusz Urbaniak
486324753e
pkg/naming/BuildExternal: respect namespace
Currently, the namespace is ignored for external labels.

This fixes it.
2019-05-17 15:02:57 +02:00
paulfantom
2374cef641
pkg/naming: fix unit test 2019-05-17 14:36:02 +02:00
Sergiusz Urbaniak
99d52a4ce8
pkg/external-provider: set metric name for scalar values 2019-05-17 14:31:41 +02:00
paulfantom
0d5c3ebd04
pkg/naming: add unit tests 2019-05-17 11:47:29 +02:00
Sergiusz Urbaniak
9e072b2b57
pkg/naming: fix LabelValuesByName rendering
According to documentation LabelValuesByName is supposed to render "|" separated values.
Currently it is returned as a slice per label name. This fixes it

Fixes #191
2019-05-07 14:04:29 +02:00
Sergiusz Urbaniak
604208ef4f pkg/custom-provider: refactor MetricValue signature 2019-04-24 11:04:42 +02:00
Sergiusz Urbaniak
f18b6fd370 *: replace glog with klog 2019-04-24 11:04:42 +02:00
Jens Ulrich Hjuler Pedersen
113f90ec5e
Remove unnecessary log line - Fix #188 2019-04-24 10:03:35 +02:00
Sergiusz Urbaniak
d447eb1ec2
pkg/naming: add non-namespace resources
This is a merge commit back-porting PR #179
2019-03-28 21:04:42 -04:00
John Delivuk
e103a8eed2
Adding updated test 2019-03-26 19:05:32 -04:00
John Delivuk
ff409a0994
Refactoring external to leverage naming 2019-03-26 18:57:02 -04:00
John Delivuk
3f7f249cb8
Removing RestMapper, cleaning up notification hanlder 2019-03-08 13:29:36 -05:00
John Delivuk
0bb762b367
Adding license to externalprovider and naming. 2019-02-22 10:29:24 -05:00
John Delivuk
980bc01d67
Updating Errors, and adding license 2019-02-22 10:04:10 -05:00
John Delivuk
8ef8c8a291
Fixing dependency in custom-provider 2019-02-11 12:12:57 -05:00
John Delivuk
6030912cc0
Moving metric naming to it's own package 2019-02-10 15:59:14 -05:00
Solly Ross
c2e176bb23
Merge pull request #158 from linux-on-ibm-z/cross-compile
Edited Makefile to add cross build support for s390x.

Adding External Metrics Provider
2019-02-10 15:59:11 -05:00
Frederic Branczyk
7624952870
resourceprovider: Add comments on possible nil results 2018-12-13 15:50:02 -08:00
Frederic Branczyk
e9ef0bb4d0
Fix empty pod or node list resulting in an error 2018-12-11 10:21:21 -08:00
Solly Ross
99104cba2a
Merge pull request #136 from nilebox/start-flag
Add a separate flag for 'start' parameter
2018-12-04 12:23:26 -08:00
Nail Islamov
3f1b120eda
Add a flag metrics-start-duration 2018-11-28 12:13:07 +11:00
Tiago Matias
2e82759ca9 fix typos
revert from less ideal wording

more typos
2018-11-20 10:09:02 -02:00
Solly Ross
6c8f44623e Add tests for the resource metrics provider
This adds basic tests for the resource metrics provider, and fixes up
the default config slightly.
2018-10-03 11:05:43 -04:00