Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.next.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d
- Enable script processor. {pull}14711[14711]
- Enable wildcard for cloudwatch metricset namespace. {pull}14971[14971] {issue}14965[14965]
- Add `kube-state-metrics` `state_service` metrics for kubernetes module. {pull}14794[14794]
- Add `kube-state-metrics` `state_persistentvolumeclaim` metrics for kubernetes module. {pull}15066[15066]
- Add usage metricset in aws modules. {pull}14925[14925] {issue}14935[14935]
- Add billing metricset in aws modules. {pull}14801[14801] {issue}14934[14934]
- Add AWS SNS metricset. {pull}14946[14946]
Expand Down
61 changes: 61 additions & 0 deletions metricbeat/docs/fields.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -19296,6 +19296,67 @@ type: long

--

[float]
=== persistentvolumeclaim

kubernetes persistent volume clame metrics from kube-state-metrics



*`kubernetes.persistentvolumeclaim.name`*::
+
--
PVC name.

type: keyword

--

*`kubernetes.persistentvolumeclaim.volume_name`*::
+
--
Binded volume name.

type: keyword

--

*`kubernetes.persistentvolumeclaim.request_storage.bytes`*::
+
--
Requested capacity.

type: long

--

*`kubernetes.persistentvolumeclaim.phase`*::
+
--
PVC phase.

type: keyword

--

*`kubernetes.persistentvolumeclaim.access_mode`*::
+
--
Access mode.

type: keyword

--

*`kubernetes.persistentvolumeclaim.storage_class`*::
+
--
Storage class for the PVC.

type: keyword

--

[float]
=== pod

Expand Down
5 changes: 5 additions & 0 deletions metricbeat/docs/modules/kubernetes.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ metricbeat.modules:
- state_cronjob
- state_resourcequota
- state_service
- state_persistentvolumeclaim
period: 10s
hosts: ["kube-state-metrics:8080"]

Expand Down Expand Up @@ -181,6 +182,8 @@ The following metricsets are available:

* <<metricbeat-metricset-kubernetes-state_node,state_node>>

* <<metricbeat-metricset-kubernetes-state_persistentvolumeclaim,state_persistentvolumeclaim>>

* <<metricbeat-metricset-kubernetes-state_pod,state_pod>>

* <<metricbeat-metricset-kubernetes-state_replicaset,state_replicaset>>
Expand Down Expand Up @@ -219,6 +222,8 @@ include::kubernetes/state_deployment.asciidoc[]

include::kubernetes/state_node.asciidoc[]

include::kubernetes/state_persistentvolumeclaim.asciidoc[]

include::kubernetes/state_pod.asciidoc[]

include::kubernetes/state_replicaset.asciidoc[]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
////
This file is generated! See scripts/mage/docs_collector.go
////

[[metricbeat-metricset-kubernetes-state_persistentvolumeclaim]]
=== Kubernetes state_persistentvolumeclaim metricset

experimental[]

include::../../../module/kubernetes/state_persistentvolumeclaim/_meta/docs.asciidoc[]


==== Fields

For a description of each field in the metricset, see the
<<exported-fields-kubernetes,exported fields>> section.

3 changes: 2 additions & 1 deletion metricbeat/docs/modules_list.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ This file is generated! See scripts/mage/docs_collector.go
.2+| .2+| |<<metricbeat-metricset-kibana-stats,stats>>
|<<metricbeat-metricset-kibana-status,status>>
|<<metricbeat-module-kubernetes,Kubernetes>> |image:./images/icon-yes.png[Prebuilt dashboards are available] |
.19+| .19+| |<<metricbeat-metricset-kubernetes-apiserver,apiserver>>
.20+| .20+| |<<metricbeat-metricset-kubernetes-apiserver,apiserver>>
|<<metricbeat-metricset-kubernetes-container,container>>
|<<metricbeat-metricset-kubernetes-controllermanager,controllermanager>>
|<<metricbeat-metricset-kubernetes-event,event>>
Expand All @@ -120,6 +120,7 @@ This file is generated! See scripts/mage/docs_collector.go
|<<metricbeat-metricset-kubernetes-state_cronjob,state_cronjob>>
|<<metricbeat-metricset-kubernetes-state_deployment,state_deployment>>
|<<metricbeat-metricset-kubernetes-state_node,state_node>>
|<<metricbeat-metricset-kubernetes-state_persistentvolumeclaim,state_persistentvolumeclaim>> experimental[]
|<<metricbeat-metricset-kubernetes-state_pod,state_pod>>
|<<metricbeat-metricset-kubernetes-state_replicaset,state_replicaset>>
|<<metricbeat-metricset-kubernetes-state_resourcequota,state_resourcequota>>
Expand Down
33 changes: 33 additions & 0 deletions metricbeat/helper/prometheus/metric.go
Original file line number Diff line number Diff line change
Expand Up @@ -385,3 +385,36 @@ type opUnixTimestampValue struct {
func (o opUnixTimestampValue) Process(field string, value interface{}, labels common.MapStr) (string, interface{}, common.MapStr) {
return field, common.Time(time.Unix(int64(value.(float64)), 0)), labels
}

// OpLabelKeyPrefixRemover removes prefix from label keys
func OpLabelKeyPrefixRemover(prefix string) MetricOption {
return opLabelKeyPrefixRemover{prefix}
}

// opLabelKeyPrefixRemover is a metric option processor that removes a prefix from the key of a label set
type opLabelKeyPrefixRemover struct {
Prefix string
}

// Process modifies the labels map, removing a prefix when found at keys of the labels set.
// For each label, if the key is found a new key will be created hosting the same value and the
// old key will be deleted.
// Fields, values and not prefixed labels will remain unmodified.
func (o opLabelKeyPrefixRemover) Process(field string, value interface{}, labels common.MapStr) (string, interface{}, common.MapStr) {
renameKeys := []string{}
for k := range labels {
if len(k) < len(o.Prefix) {
continue
}
if k[:6] == o.Prefix {
renameKeys = append(renameKeys, k)
}
}

for i := range renameKeys {
v := labels[renameKeys[i]]
delete(labels, renameKeys[i])
labels[renameKeys[i][len(o.Prefix):]] = v
}
return "", value, labels
}
1 change: 1 addition & 0 deletions metricbeat/include/list_docker.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions metricbeat/metricbeat.reference.yml
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,7 @@ metricbeat.modules:
- state_cronjob
- state_resourcequota
- state_service
- state_persistentvolumeclaim
period: 10s
hosts: ["kube-state-metrics:8080"]

Expand Down
1 change: 1 addition & 0 deletions metricbeat/module/kubernetes/_meta/config.reference.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
- state_cronjob
- state_resourcequota
- state_service
- state_persistentvolumeclaim
period: 10s
hosts: ["kube-state-metrics:8080"]

Expand Down
1 change: 1 addition & 0 deletions metricbeat/module/kubernetes/_meta/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
# - state_cronjob
# - state_resourcequota
# - state_service
# - state_persistentvolumeclaim
# period: 10s
# hosts: ["kube-state-metrics:8080"]
# add_metadata: true
Expand Down
2 changes: 1 addition & 1 deletion metricbeat/module/kubernetes/fields.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions metricbeat/module/kubernetes/state_persistentvolumeclaim/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Kube-state-metrics/PersistentVolumeClaim

This metricset connects to kube-state-metrics endpoint to retrieve and report Persistent Volume Claim metrics.

## Version history

- November 2019, first release using kube-state-metrics `v1.8.0`.

## Configuration

See the metricset documentation for the configuration reference.

## Manual testing

// TODO
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
The `state_persistentvolumeclaim` metricset for kubernetes service related metrics from `kube-state-metrics`.

Loading