diff --git a/charts/rancher-monitoring/v0.0.4/charts/exporter-kubelets/templates/servicemonitor.yaml b/charts/rancher-monitoring/v0.0.4/charts/exporter-kubelets/templates/servicemonitor.yaml index 928593549e4d547886f00c52b9359bd06194f429..92dee5c03bcc9c459ef28b70e968f0c288b31a2a 100644 --- a/charts/rancher-monitoring/v0.0.4/charts/exporter-kubelets/templates/servicemonitor.yaml +++ b/charts/rancher-monitoring/v0.0.4/charts/exporter-kubelets/templates/servicemonitor.yaml @@ -55,6 +55,9 @@ spec: {{- if .Values.insecureSkipVerify }} insecureSkipVerify: true {{- end }} + metricRelabelings: + - action: labeldrop + regex: (^id$|^image$|^name$|^cpu$) relabelings: - sourceLabels: - __meta_kubernetes_pod_host_ip @@ -68,8 +71,34 @@ spec: action: replace regex: (.+) replacement: $1 + - port: https-metrics + scheme: https + path: /metrics/resource/v1alpha1 + honorLabels: true + bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token + tlsConfig: + caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + {{- if .Values.insecureSkipVerify }} + insecureSkipVerify: true + {{- end }} + metricRelabelings: + - action: replace + regex: (.+) + replacement: $1 + sourceLabels: + - container + targetLabel: container_name + - action: replace + regex: (.+) + replacement: $1 + sourceLabels: + - pod + targetLabel: pod_name {{- else }} - port: http-metrics + metricRelabelings: + - action: labeldrop + regex: (^id$|^image$|^name$|^cpu$) relabelings: - sourceLabels: - __meta_kubernetes_pod_host_ip @@ -99,4 +128,20 @@ spec: action: replace regex: (.+) replacement: $1 + - port: http-metrics + path: /metrics/resource/v1alpha1 + honorLabels: true + metricRelabelings: + - action: replace + regex: (.+) + replacement: $1 + sourceLabels: + - container + targetLabel: container_name + - action: replace + regex: (.+) + replacement: $1 + sourceLabels: + - pod + targetLabel: pod_name {{- end }} diff --git a/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/Chart.yaml b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/Chart.yaml new file mode 100755 index 0000000000000000000000000000000000000000..3aa7169969f71ab6203999c6ac3238311686e349 --- /dev/null +++ b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/Chart.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +description: Windows Node Exporter service/endpoint and service monitor. +engine: gotpl +maintainers: +- name: michelia + email: michelia@rancher.com +name: exporter-node-windows +version: 0.0.1 \ No newline at end of file diff --git a/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/daemonset.yaml b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/daemonset.yaml new file mode 100755 index 0000000000000000000000000000000000000000..a3e4644c3b990cf8fb89a30a8dd207bc9d932a55 --- /dev/null +++ b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/daemonset.yaml @@ -0,0 +1,69 @@ +apiVersion: {{ template "daemonset_api_version" . }} +kind: DaemonSet +metadata: + labels: + app: {{ template "app.name" . }} + chart: {{ template "app.version" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: {{ template "app.fullname" . }} +spec: + selector: + matchLabels: + app: {{ template "app.name" . }} + chart: {{ template "app.version" . }} + release: {{ .Release.Name }} + template: + metadata: + labels: + app: {{ template "app.name" . }} + chart: {{ template "app.version" . }} + release: {{ .Release.Name }} + spec: + containers: + - name: exporter-node + image: {{ template "system_default_registry" . }}{{ .Values.image.repository }}:{{ .Values.image.tag }} +{{- if .Values.args }} + args: {{ .Values.args }} +{{ end }} + ports: + - name: http + containerPort: {{ .Values.ports.metrics.port }} + env: + - name: LISTEN_PORT + value: "{{ .Values.ports.metrics.port }}" +{{- if .Values.enabledCollectors }} + - name: ENABLED_COLLECTORS + value: {{ .Values.enabledCollectors }} +{{- end }} +{{- if .Values.extraEnv }} +{{ toYaml .Values.extraEnv | indent 10 }} + {{- end }} + resources: +{{ toYaml .Values.resources | indent 10 }} + volumeMounts: + - name: wins-pipe + mountPath: \\.\pipe\rancher_wins + {{- if .Values.enabledRBAC }} + serviceAccountName: {{ default (include "app.fullname" .) .Values.serviceAccountName }} + {{- end }} + tolerations: + - operator: Exists + nodeSelector: +{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion }} + beta.kubernetes.io/os: windows +{{- else}} + kubernetes.io/os: windows +{{- end}} + {{- range .Values.nodeSelectors }} + {{- $pair := regexSplit "=" . 2 }} + {{- if eq 2 (len $pair) }} + {{ (index $pair 0) }}: {{ (index $pair 1) }} + {{- else }} + {{ (index $pair 0) }}: "" + {{- end }} + {{- end }} + volumes: + - name: wins-pipe + hostPath: + path: \\.\pipe\rancher_wins diff --git a/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/endpoint.yaml b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/endpoint.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c08c00adb0b5ef03490b71d2f1b4d0bd460e947d --- /dev/null +++ b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/endpoint.yaml @@ -0,0 +1,20 @@ +{{- if .Values.endpoints }} +apiVersion: v1 +kind: Endpoints +metadata: + labels: + app: {{ template "app.name" . }} + chart: {{ template "app.version" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: expose-node-metrics-windows +subsets: +- addresses: + {{- range .Values.endpoints }} + - ip: {{ . }} + {{- end }} + ports: + - name: {{ .Values.ports.metrics.name }} + port: {{ .Values.ports.metrics.port }} + protocol: {{ .Values.ports.metrics.protocol }} +{{- end }} \ No newline at end of file diff --git a/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/rbac.yaml b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/rbac.yaml new file mode 100644 index 0000000000000000000000000000000000000000..48f32c40b784576b17a106efd2e1131c26e93d73 --- /dev/null +++ b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/rbac.yaml @@ -0,0 +1,56 @@ +{{- if and .Values.enabledRBAC (not .Values.serviceAccountName) }} +apiVersion: {{ template "rbac_api_version" . }} +kind: ClusterRole +metadata: + labels: + app: {{ template "app.name" . }} + chart: {{ template "app.version" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: {{ template "app.fullname" . }} +rules: +- apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create +- apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app: {{ template "app.name" . }} + chart: {{ template "app.version" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: {{ template "app.fullname" . }} +imagePullSecrets: +{{ toYaml .Values.image.pullSecrets | indent 2 }} + +--- +apiVersion: {{ template "rbac_api_version" . }} +kind: ClusterRoleBinding +metadata: + labels: + app: {{ template "app.name" . }} + chart: {{ template "app.version" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: {{ template "app.fullname" . }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ template "app.fullname" . }} +subjects: +- kind: ServiceAccount + name: {{ template "app.fullname" . }} + namespace: {{ .Release.Namespace }} +{{- end }} \ No newline at end of file diff --git a/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/service.yaml b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/service.yaml new file mode 100755 index 0000000000000000000000000000000000000000..8a1aa887e38d3fd836a6e305f070d94ea533c91f --- /dev/null +++ b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: expose-node-metrics-windows + labels: + app: {{ template "app.name" . }} + chart: {{ template "app.version" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + {{ .Values.apiGroup }}: "true" +spec: + type: ClusterIP + clusterIP: None + ports: + - name: {{ .Values.ports.metrics.name }} + port: {{ .Values.ports.metrics.port }} + targetPort: {{ .Values.ports.metrics.port }} + protocol: {{ .Values.ports.metrics.protocol }} diff --git a/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/servicemonitor.yaml b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/servicemonitor.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c0a3cc4c1b4b724d3c5d380f480bdfcb8d97485e --- /dev/null +++ b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/servicemonitor.yaml @@ -0,0 +1,33 @@ +apiVersion: {{ template "operator_api_version" . }} +kind: ServiceMonitor +metadata: + labels: + app: {{ template "app.name" . }} + chart: {{ template "app.version" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + source: rancher-monitoring + name: {{ template "app.fullname" . }} +spec: + selector: + matchLabels: + app: {{ template "app.name" . }} + chart: {{ template "app.version" . }} + release: {{ .Release.Name }} + {{ .Values.apiGroup }}: "true" + namespaceSelector: + matchNames: + - {{ .Release.Namespace | quote }} + endpoints: + - port: {{ .Values.ports.metrics.name }} + metricRelabelings: + - sourceLabels: [volume, nic] + regex: (.*);(.*) + separator: '' + targetLabel: device + action: replace + replacement: $1$2 + - sourceLabels: [__name__] + regex: wmi_cs_logical_processors + replacement: 'system' + targetLabel: mode diff --git a/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/windows-relabel-rule.yaml b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/windows-relabel-rule.yaml new file mode 100644 index 0000000000000000000000000000000000000000..0b2bfbbcb4bd56c70db19aeb7abfb710f8b940bc --- /dev/null +++ b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/templates/windows-relabel-rule.yaml @@ -0,0 +1,58 @@ +apiVersion: monitoring.coreos.com/v1 +kind: PrometheusRule +metadata: + labels: + role: windows-node-recording-rules + source: rancher-monitoring + name: windows-node-recording-rules + namespace: cattle-prometheus +spec: + groups: + - name: windows-cpu-recording.rules + rules: + - record: node_cpu_seconds_total + expr: wmi_cpu_time_total + - record: node_load1 + expr: avg_over_time(wmi_system_processor_queue_length[1m]) + - record: node_load5 + expr: avg_over_time(wmi_system_processor_queue_length[5m]) + - record: node_load15 + expr: avg_over_time(wmi_system_processor_queue_length[15m]) + - record: node_load15 + expr: avg_over_time(wmi_system_processor_queue_length[15m]) + - name: windows-memory-recording.rules + rules: + - record: node_memory_MemAvailable_bytes + expr: wmi_os_physical_memory_free_bytes + - record: node_memory_MemTotal_bytes + expr: wmi_cs_physical_memory_bytes + - name: windows-network-io-recording.rules + rules: + - record: node_network_receive_bytes_total + expr: wmi_net_bytes_received_total + - record: node_network_transmit_bytes_total + expr: wmi_net_bytes_sent_total + - name: windows-network-packet-recording.rules + rules: + - record: node_network_receive_packets_total + expr: wmi_net_packets_received_total + - record: node_network_transmit_packets_total + expr: wmi_net_packets_sent_total + - record: node_network_receive_drop_total + expr: wmi_net_packets_received_discarded + - record: node_network_receive_errs_total + expr: wmi_net_packets_received_errors + - record: node_network_transmit_drop_total + expr: wmi_net_packets_outbound_discarded + - name: windows-disk-io-recording.rules + rules: + - record: node_disk_written_bytes_total + expr: wmi_logical_disk_write_bytes_total + - record: node_disk_read_bytes_total + expr: wmi_logical_disk_read_bytes_total + - name: windows-file-usage-recording.rules + rules: + - record: node_filesystem_size_bytes + expr: wmi_logical_disk_size_bytes + - record: node_filesystem_free_bytes + expr: wmi_logical_disk_free_bytes \ No newline at end of file diff --git a/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/values.yaml b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/values.yaml new file mode 100755 index 0000000000000000000000000000000000000000..ce527416f7675858720abd04a61c18946ec65d95 --- /dev/null +++ b/charts/rancher-monitoring/v0.0.4/charts/exporter-node-windows/values.yaml @@ -0,0 +1,4 @@ +enabledRBAC: true + +# Get more details on https://github.com/martinlindhe/wmi_exporter +# enabledCollectors: "net,os,service,system,cpu,cs,logical_disk" \ No newline at end of file diff --git a/charts/rancher-monitoring/v0.0.4/charts/exporter-node/templates/rbac.yaml b/charts/rancher-monitoring/v0.0.4/charts/exporter-node/templates/rbac.yaml index 9a589c45d015f6a3fd22b359df44346e5e77c1ad..48f32c40b784576b17a106efd2e1131c26e93d73 100644 --- a/charts/rancher-monitoring/v0.0.4/charts/exporter-node/templates/rbac.yaml +++ b/charts/rancher-monitoring/v0.0.4/charts/exporter-node/templates/rbac.yaml @@ -20,7 +20,7 @@ rules: resources: - subjectaccessreviews verbs: - - creat + - create --- apiVersion: v1 diff --git a/charts/rancher-monitoring/v0.0.4/requirements.yaml b/charts/rancher-monitoring/v0.0.4/requirements.yaml index fb3f4e6fc508afe8593bb753279f696276074d19..b4ce9ebeb52a46b9096b2e70b0d4e9b99ad22ac9 100644 --- a/charts/rancher-monitoring/v0.0.4/requirements.yaml +++ b/charts/rancher-monitoring/v0.0.4/requirements.yaml @@ -49,6 +49,11 @@ dependencies: condition: exporter-node.enabled repository: "file://./charts/exporter-node/" + - name: exporter-node-windows + version: 0.0.1 + condition: exporter-node-windows.enabled + repository: "file://./charts/exporter-node-windows/" + - name: grafana version: 0.0.1 condition: grafana.enabled diff --git a/charts/rancher-monitoring/v0.0.4/values.yaml b/charts/rancher-monitoring/v0.0.4/values.yaml index 09881e7959d61f7622f7eb27aa0eeadc8a33926c..2a872118b23de1f6520d13146c26787567f632b0 100644 --- a/charts/rancher-monitoring/v0.0.4/values.yaml +++ b/charts/rancher-monitoring/v0.0.4/values.yaml @@ -164,6 +164,21 @@ exporter-node: ## serviceAccountName: "" +exporter-node-windows: + enabled: false + apiGroup: "monitoring.coreos.com" + endpoints: [] + nodeSelectors: [] + image: + repository: rancher/wmi_exporter-package + tag: v0.0.1 + ports: + metrics: + name: windows-metrics + scheme: https + port: 9796 + protocol: TCP + exporter-kube-state: enabled: false apiGroup: "monitoring.coreos.com"