Compare commits

...

7 Commits

30 changed files with 7065 additions and 15 deletions

View File

@@ -30,6 +30,7 @@ See [charts folder](./charts) for a complete list.
* [aaisp-exporter](./charts/aaisp-exporter) - A Prometheus exporter for [Andrews & Arnold](https://www.aa.net.uk/) CHAOSv2 API.
* [plex-exporter](./charts/plex-exporter) - A Prometheus exporter for Plex Media Server.
* [vmware-exporter](./charts/vmware-exporter) - A Prometheus exporter for VMware vSphere.
* [mqtt-exporter](./charts/mqtt-exporter) - A generic Prometheus exporter for MQTT data.
## License

View File

@@ -1,14 +1,14 @@
apiVersion: v2
appVersion: 0.0.1
appVersion: 0.1.2
description: A prometheus exporter for the HG612 modem
name: hg612-exporter
version: 0.0.3
version: 1.1.3
kubeVersion: ">=1.16.0-0"
keywords:
- hg612-exporter
home: https://github.com/nikdoof/helm-charts/tree/master/charts/hg612-exporter
sources:
- https://github.com/nikdoof/hg612-exporter-docker
- https://github.com/nikdoof/hg612-exporter
maintainers:
- name: nikdoof
email: andy@tensixtyone.com

View File

@@ -1,6 +1,6 @@
# hg612-exporter
![Version: 0.0.2](https://img.shields.io/badge/Version-0.0.2-informational?style=flat-square) ![AppVersion: 0.0.1](https://img.shields.io/badge/AppVersion-0.0.1-informational?style=flat-square)
![Version: 1.1.3](https://img.shields.io/badge/Version-1.1.3-informational?style=flat-square) ![AppVersion: 0.1.2](https://img.shields.io/badge/AppVersion-0.1.2-informational?style=flat-square)
A prometheus exporter for the HG612 modem
@@ -8,7 +8,7 @@ A prometheus exporter for the HG612 modem
## Source Code
* <https://github.com/nikdoof/hg612-exporter-docker>
* <https://github.com/nikdoof/hg612-exporter>
## Requirements
@@ -77,9 +77,11 @@ N/A
|-----|------|---------|-------------|
| env | object | See below | environment variables. See more environment variables in the [hg612-exporter documentation](https://hg612-exporter.org/docs). |
| image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
| image.repository | string | `"nikdoof/hg612-exporter"` | image repository |
| image.tag | string | `"0.0.1"` | image tag |
| image.repository | string | `"ghcr.io/nikdoof/hg612-exporter"` | image repository |
| image.tag | string | `"0.1.2"` | image tag |
| ingress.main | object | See values.yaml | Enable and configure ingress settings for the chart under this key. |
| metrics.dashboards | object | See values.yaml | Enable and configure Grafana dashboard ConfigMaps for the chart under this key. |
| metrics.dashboards.namespace | string | `nil` | Namespace to create the dashboards ConfigMap under. |
| metrics.enabled | bool | See values.yaml | Enable and configure a Prometheus serviceMonitor for the chart under this key. |
| metrics.prometheusRule | object | See values.yaml | Enable and configure Prometheus Rules for the chart under this key. |
| metrics.prometheusRule.rules | list | See prometheusrules.yaml | Configure additionial rules for the chart under this key. |
@@ -98,6 +100,62 @@ All notable changes to this application Helm chart will be documented in this fi
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### [1.1.3]
#### Added
- N/A
#### Changed
- Improve chart to handle exporter pod restarts better
#### Removed
- N/A
### [1.1.2]
#### Added
- N/A
#### Changed
- Fix app startup on new container, don't override the executable name.
#### Removed
- N/A
### [1.1.1]
#### Added
- N/A
#### Changed
- Bumped to app version 0.1.2
#### Removed
- N/A
### [1.1.0]
#### Added
- Grafana dashboard ConfigMap
#### Changed
- N/A
#### Removed
- N/A
### [1.0.0]
#### Added

View File

@@ -9,6 +9,63 @@ All notable changes to this application Helm chart will be documented in this fi
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### [1.1.3]
#### Added
- N/A
#### Changed
- Improve chart to handle exporter pod restarts better
#### Removed
- N/A
### [1.1.2]
#### Added
- N/A
#### Changed
- Fix app startup on new container, don't override the executable name.
#### Removed
- N/A
### [1.1.1]
#### Added
- N/A
#### Changed
- Bumped to app version 0.1.2
#### Removed
- N/A
### [1.1.0]
#### Added
- Grafana dashboard ConfigMap
#### Changed
- N/A
#### Removed
- N/A
### [1.0.0]
#### Added

View File

@@ -2,3 +2,7 @@
modem:
host: test
identifier: test
metrics:
enabled: true
dashboards:
create: true

View File

@@ -0,0 +1,495 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"iteration": 1639834876425,
"links": [],
"liveNow": false,
"panels": [
{
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"options": {
"0": {
"index": 0,
"text": "Down"
},
"1": {
"index": 1,
"text": "Up"
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "green",
"value": 1
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 2,
"x": 0,
"y": 0
},
"id": 2,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "center",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "8.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "avg by (host) (dsl_status{host=\"$host\"})",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"title": "DSL Status",
"type": "stat"
},
{
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-BlYlRd"
},
"decimals": 3,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "Kbits"
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 4,
"x": 2,
"y": 0
},
"id": 4,
"options": {
"colorMode": "none",
"graphMode": "none",
"justifyMode": "center",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "8.3.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "avg by (host) (dsl_down_current_rate{host=\"$host\"})",
"interval": "",
"legendFormat": "Downstream",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "avg by (host) (dsl_up_current_rate{host=\"$host\"})",
"hide": false,
"interval": "",
"legendFormat": "Upstream",
"refId": "C"
}
],
"title": "Current Sync Speed",
"type": "stat"
},
{
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-BlYlRd"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "Kbits"
},
"overrides": [
{
"matcher": {
"id": "byRegexp",
"options": "Max.*"
},
"properties": [
{
"id": "custom.fillOpacity",
"value": 10
},
{
"id": "custom.lineWidth",
"value": 0
}
]
}
]
},
"gridPos": {
"h": 10,
"w": 11,
"x": 0,
"y": 6
},
"id": 6,
"options": {
"legend": {
"calcs": [],
"displayMode": "hidden",
"placement": "bottom"
},
"tooltip": {
"mode": "multi"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "avg by (host) (dsl_down_current_rate{host=\"$host\"})",
"interval": "",
"legendFormat": "Down",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "avg by (host) (dsl_down_max_rate{host=\"$host\"})",
"hide": false,
"interval": "",
"legendFormat": "Max Attainable",
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "avg by (host) (dsl_up_current_rate{host=\"$host\"}) * -1",
"hide": false,
"interval": "",
"legendFormat": "Up",
"refId": "C"
},
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "avg by (host) (dsl_up_max_rate{host=\"$host\"}) * -1",
"hide": false,
"interval": "",
"legendFormat": "Max Attainable",
"refId": "D"
}
],
"title": "Sync Speed",
"type": "timeseries"
},
{
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 11,
"x": 0,
"y": 16
},
"id": 8,
"options": {
"legend": {
"calcs": [],
"displayMode": "hidden",
"placement": "bottom"
},
"tooltip": {
"mode": "multi"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "sum by (host) (increase(dsl_down_crc{host=\"$host\"}[$__rate_interval])) * -1",
"interval": "",
"legendFormat": "CRC Down",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "sum by (host) (increase(dsl_up_crc{host=\"$host\"}[$__rate_interval]))",
"hide": false,
"interval": "",
"legendFormat": "CRC Up",
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "sum by (host) (increase(dsl_down_fec{host=\"$host\"}[$__rate_interval])) * -1",
"hide": false,
"interval": "",
"legendFormat": "FEC Down",
"refId": "C"
},
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "sum by (host) (increase(dsl_up_fec{host=\"$host\"}[$__rate_interval]))",
"hide": false,
"interval": "",
"legendFormat": "FEC Up",
"refId": "D"
},
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "sum by (host) (increase(dsl_down_hec{host=\"$host\"}[$__rate_interval])) * -1",
"hide": false,
"interval": "",
"legendFormat": "HEC Down",
"refId": "E"
},
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"exemplar": true,
"expr": "sum by (host) (increase(dsl_up_hec{host=\"$host\"}[$__rate_interval]))",
"hide": false,
"interval": "",
"legendFormat": "HEC Up",
"refId": "F"
}
],
"title": "DSL Errors",
"type": "timeseries"
}
],
"schemaVersion": 33,
"style": "dark",
"tags": [
"hg612",
"hg612-exporter"
],
"templating": {
"list": [
{
"current": {
"selected": false,
"text": "10.101.3.4",
"value": "10.101.3.4"
},
"definition": "label_values(dsl_status, host)",
"hide": 0,
"includeAll": false,
"multi": false,
"name": "host",
"options": [],
"query": {
"query": "label_values(dsl_status, host)",
"refId": "StandardVariableQuery"
},
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"type": "query"
}
]
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "HG612",
"uid": "42KBhvTnz",
"version": 9,
"weekStart": ""
}

View File

@@ -3,7 +3,6 @@
{{/* Append the hardcoded settings */}}
{{- define "hg612-exporter.harcodedValues" -}}
command: ./app
args:
- "--host={{ .Values.modem.host }}"
- "--identifier={{ .Values.modem.identifier }}"

View File

@@ -0,0 +1,19 @@
{{- if and .Values.metrics.enabled .Values.metrics.dashboards.create }}
{{- $namespace := .Values.metrics.dashboards.namespace | default $.Release.Namespace }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "common.names.fullname" . }}
namespace: {{ $namespace }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.metrics.dashboards.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
data:
{{- range $path, $_ := .Files.Glob "dashboards/*.json" }}
{{- $filename := trimSuffix (ext $path) (base $path) }}
{{ base $path }}: |-
{{ $.Files.Get $path | indent 4 }}
{{- end }}
{{- end }}

View File

@@ -7,9 +7,9 @@
image:
# -- image repository
repository: nikdoof/hg612-exporter
repository: ghcr.io/nikdoof/hg612-exporter
# -- image tag
tag: 0.0.1
tag: 0.1.2
# -- image pull policy
pullPolicy: IfNotPresent
@@ -70,3 +70,12 @@ metrics:
# for: 5m
# labels:
# severity: critical
# -- Enable and configure Grafana dashboard ConfigMaps for the chart under this key.
# @default -- See values.yaml
dashboards:
create: false
# -- Namespace to create the dashboards ConfigMap under.
# @default -- The release's namespace
namespace:
labels:
grafana_dashboard: "true"

View File

@@ -0,0 +1,26 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# OWNERS file for Kubernetes
OWNERS
# helm-docs templates
*.gotmpl

View File

@@ -0,0 +1,18 @@
apiVersion: v2
appVersion: 1.0.0
description: A prometheus exporter for generic MQTT metrics
name: mqtt-exporter
version: 1.0.0
kubeVersion: ">=1.16.0-0"
keywords:
- mqtt-exporter
home: https://github.com/nikdoof/helm-charts/tree/master/charts/mqtt-exporter
sources:
- https://github.com/kpetremann/mqtt-exporter
maintainers:
- name: nikdoof
email: andy@tensixtyone.com
dependencies:
- name: common
repository: https://library-charts.k8s-at-home.com
version: 4.2.0

View File

@@ -0,0 +1,121 @@
# mqtt-exporter
![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
A prometheus exporter for generic MQTT metrics
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/nikdoof/helm-charts/issues/new/choose)**
## Source Code
* <https://github.com/kpetremann/mqtt-exporter>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://library-charts.k8s-at-home.com | common | 4.2.0 |
## TL;DR
```console
helm repo add nikdoof-helm-charts https://nikdoof.github.io/helm-charts/
helm repo update
helm install mqtt-exporter nikdoof-helm-charts/mqtt-exporter
```
## Installing the Chart
To install the chart with the release name `mqtt-exporter`
```console
helm install mqtt-exporter nikdoof-helm-charts/mqtt-exporter
```
## Uninstalling the Chart
To uninstall the `mqtt-exporter` deployment
```console
helm uninstall mqtt-exporter
```
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
## Configuration
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
Other values may be used from the [values.yaml](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common).
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
helm install mqtt-exporter \
--set modem.host="192.168.1.1"\
nikdoof-helm-charts/mqtt-exporter
```
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
helm install mqtt-exporter nikdoof-helm-charts/mqtt-exporter -f values.yaml
```
## Custom configuration
N/A
## Values
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| env | object | See below | environment variables. See more environment variables in the [mqtt-exporter documentation](https://mqtt-exporter.org/docs). |
| env.MQTT_ADDRESS | string | `nil` | IP or hostname of MQTT broker (default: 127.0.0.1) |
| env.MQTT_PORT | int | `1883` | TCP port of MQTT broker (default: 1883) |
| env.MQTT_TOPIC | string | `"#"` | Topic path to subscribe to (default: #) |
| image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
| image.repository | string | `"kpetrem/mqtt-exporter"` | image repository |
| image.tag | string | `"latest"` | image tag |
| ingress.main | object | See values.yaml | Enable and configure ingress settings for the chart under this key. |
| metrics.enabled | bool | See values.yaml | Enable and configure a Prometheus serviceMonitor for the chart under this key. |
| metrics.prometheusRule | object | See values.yaml | Enable and configure Prometheus Rules for the chart under this key. |
| metrics.prometheusRule.rules | list | See prometheusrules.yaml | Configure additionial rules for the chart under this key. |
| metrics.serviceMonitor.interval | string | `"1m"` | |
| metrics.serviceMonitor.labels | object | `{}` | |
| metrics.serviceMonitor.scrapeTimeout | string | `"30s"` | |
| service | object | See values.yaml | Configures service settings for the chart. |
## Changelog
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common#changelog).
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### [1.0.0]
#### Added
- Initial version
#### Changed
- N/A
#### Removed
- N/A
[1.0.0]: #100
## Support
- Open an [issue](https://github.com/nikdoof/helm-charts/issues/new/choose)
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)

View File

@@ -0,0 +1,143 @@
{{- define "custom.repository.organization" -}}
nikdoof-helm-charts
{{- end -}}
{{- define "custom.repository.url" -}}
https://github.com/nikdoof/helm-charts
{{- end -}}
{{- define "custom.helm.url" -}}
https://nikdoof.github.io/helm-charts/
{{- end -}}
{{- define "custom.helm.path" -}}
{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
{{- end -}}
{{- define "custom.notes" -}}
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/nikdoof/helm-charts/issues/new/choose)**
{{- end -}}
{{- define "custom.requirements" -}}
## Requirements
{{ template "chart.kubeVersionLine" . }}
{{- end -}}
{{- define "custom.dependencies" -}}
## Dependencies
{{ template "chart.requirementsTable" . }}
{{- end -}}
{{- define "custom.install.tldr" -}}
## TL;DR
```console
helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
helm repo update
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
```
{{- end -}}
{{- define "custom.install" -}}
## Installing the Chart
To install the chart with the release name `{{ template "chart.name" . }}`
```console
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
```
{{- end -}}
{{- define "custom.uninstall" -}}
## Uninstalling the Chart
To uninstall the `{{ template "chart.name" . }}` deployment
```console
helm uninstall {{ template "chart.name" . }}
```
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
{{- end -}}
{{- define "custom.configuration.header" -}}
## Configuration
{{- end -}}
{{- define "custom.configuration.readValues" -}}
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
Other values may be used from the [values.yaml](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common).
{{- end -}}
{{- define "custom.configuration.example.set" -}}
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
helm install {{ template "chart.name" . }} \
--set modem.host="192.168.1.1"\
{{ template "custom.helm.path" . }}
```
{{- end -}}
{{- define "custom.configuration.example.file" -}}
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
```
{{- end -}}
{{- define "custom.valuesSection" -}}
## Values
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
{{ template "chart.valuesTable" . }}
{{- end -}}
{{- define "custom.support" -}}
## Support
- Open an [issue](https://github.com/nikdoof/helm-charts/issues/new/choose)
{{- end -}}
{{ template "chart.header" . }}
{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
{{ template "chart.description" . }}
{{ template "custom.notes" . }}
{{ template "chart.sourcesSection" . }}
{{ template "custom.requirements" . }}
{{ template "custom.dependencies" . }}
{{ template "custom.install.tldr" . }}
{{ template "custom.install" . }}
{{ template "custom.uninstall" . }}
{{ template "custom.configuration.header" . }}
{{ template "custom.configuration.readValues" . }}
{{ template "custom.configuration.example.set" . }}
{{ template "custom.configuration.example.file" . }}
{{ template "custom.custom.configuration" . }}
{{ template "custom.valuesSection" . }}
{{ template "custom.changelog" . }}
{{ template "custom.support" . }}
{{ template "helm-docs.versionFooter" . }}
{{ "" }}

View File

@@ -0,0 +1,27 @@
{{- define "custom.changelog.header" -}}
## Changelog
{{- end -}}
{{- define "custom.changelog" -}}
{{ template "custom.changelog.header" . }}
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common#changelog).
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### [1.0.0]
#### Added
- Initial version
#### Changed
- N/A
#### Removed
- N/A
[1.0.0]: #100
{{- end -}}

View File

@@ -0,0 +1,9 @@
{{- define "custom.custom.configuration.header" -}}
## Custom configuration
{{- end -}}
{{- define "custom.custom.configuration" -}}
{{ template "custom.custom.configuration.header" . }}
N/A
{{- end -}}

View File

@@ -0,0 +1,3 @@
---
env:
MQTT_ADDRESS: mqtt.local

View File

@@ -0,0 +1 @@
{{- include "common.notes.defaultNotes" . -}}

View File

@@ -0,0 +1 @@
{{ include "common.all" . }}

View File

@@ -0,0 +1,27 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: {{ include "common.names.fullname" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.metrics.prometheusRule.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
groups:
- name: {{ include "common.names.fullname" . }}
rules:
- alert: MQTTExporterAbsent
annotations:
description: MQTT Exporter has disappeared from Prometheus service discovery.
summary: MQTT Exporter is down.
expr: |
absent(up{job=~".*{{ include "common.names.fullname" . }}.*"} == 1)
for: 5m
labels:
severity: critical
{{- with .Values.metrics.prometheusRule.rules }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,24 @@
{{- if .Values.metrics.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "common.names.fullname" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.metrics.serviceMonitor.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
selector:
matchLabels:
{{- include "common.labels.selectorLabels" . | nindent 6 }}
endpoints:
- port: metrics
{{- with .Values.metrics.serviceMonitor.interval }}
interval: {{ . }}
{{- end }}
{{- with .Values.metrics.serviceMonitor.scrapeTimeout }}
scrapeTimeout: {{ . }}
{{- end }}
path: /metrics
{{- end }}

View File

@@ -0,0 +1,73 @@
#
# IMPORTANT NOTE
#
# This chart inherits from our common library chart. You can check the default values/options here:
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
#
image:
# -- image repository
repository: kpetrem/mqtt-exporter
# -- image tag
tag: latest
# -- image pull policy
pullPolicy: IfNotPresent
# -- environment variables. See more environment variables in the [mqtt-exporter documentation](https://mqtt-exporter.org/docs).
# @default -- See below
env:
# -- IP or hostname of MQTT broker (default: 127.0.0.1)
MQTT_ADDRESS:
# -- TCP port of MQTT broker (default: 1883)
MQTT_PORT: 1883
# -- Topic path to subscribe to (default: #)
MQTT_TOPIC: "#"
# -- Username which should be used to authenticate against the MQTT broker (default: None)
# MQTT_USERNAME:
# -- Password which should be used to authenticate against the MQTT broker (default: None)
# MQTT_PASSWORD:
# -- Configures service settings for the chart.
# @default -- See values.yaml
service:
main:
ports:
http:
enabled: false
metrics:
enabled: true
protocol: TCP
port: 9000
ingress:
# -- Enable and configure ingress settings for the chart under this key.
# @default -- See values.yaml
main:
enabled: false
metrics:
# -- Enable and configure a Prometheus serviceMonitor for the chart under this key.
# @default -- See values.yaml
enabled: false
serviceMonitor:
interval: 1m
scrapeTimeout: 30s
labels: {}
# -- Enable and configure Prometheus Rules for the chart under this key.
# @default -- See values.yaml
prometheusRule:
enabled: false
labels: {}
# -- Configure additionial rules for the chart under this key.
# @default -- See prometheusrules.yaml
rules:
[]
# - alert: MQTTExporterAbsent
# annotations:
# description: MQTT Exporter has disappeared from Prometheus service discovery.
# summary: MQTT Exporter is down.
# expr: |
# absent(up{job=~".*mqttexporter.*"} == 1)
# for: 5m
# labels:
# severity: critical

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 0.18.2
description: A prometheus exporter for vSphere vCenter
name: vmware-exporter
version: 0.0.1
version: 0.1.1
kubeVersion: ">=1.16.0-0"
keywords:
- vmware-exporter

View File

@@ -1,6 +1,6 @@
# vmware-exporter
![Version: 0.0.1](https://img.shields.io/badge/Version-0.0.1-informational?style=flat-square) ![AppVersion: 0.18.2](https://img.shields.io/badge/AppVersion-0.18.2-informational?style=flat-square)
![Version: 0.1.1](https://img.shields.io/badge/Version-0.1.1-informational?style=flat-square) ![AppVersion: 0.18.2](https://img.shields.io/badge/AppVersion-0.18.2-informational?style=flat-square)
A prometheus exporter for vSphere vCenter
@@ -81,6 +81,8 @@ N/A
| image.repository | string | `"pryorda/vmware_exporter"` | image repository |
| image.tag | string | `"v0.18.2"` | image tag |
| ingress.main | object | See values.yaml | Enable and configure ingress settings for the chart under this key. |
| metrics.dashboards | object | See values.yaml | Enable and configure Grafana dashboard ConfigMaps for the chart under this key. |
| metrics.dashboards.namespace | string | `nil` | Namespace to create the dashboards ConfigMap under. |
| metrics.enabled | bool | See values.yaml | Enable and configure a Prometheus serviceMonitor for the chart under this key. |
| metrics.prometheusRule | object | See values.yaml | Enable and configure Prometheus Rules for the chart under this key. |
| metrics.prometheusRule.rules | list | See prometheusrules.yaml | Configure additionial rules for the chart under this key. |
@@ -95,6 +97,36 @@ All notable changes to this application Helm chart will be documented in this fi
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### [0.1.1]
#### Added
- N/A
#### Changed
- Improved dashboard naming and tagging, re-saved on Grafana 8.3.
#### Removed
- N/A
### [0.1.0]
#### Added
- Create a Grafana dashboard ConfigMap when `metrics.dashboards.create` is `true`
#### Changed
- N/A
#### Removed
- N/A
[0.0.1]: #100
### [0.0.1]
#### Added
@@ -109,8 +141,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- N/A
[0.0.1]: #100
## Support
- Open an [issue](https://github.com/nikdoof/helm-charts/issues/new/choose)

View File

@@ -9,6 +9,36 @@ All notable changes to this application Helm chart will be documented in this fi
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### [0.1.1]
#### Added
- N/A
#### Changed
- Improved dashboard naming and tagging, re-saved on Grafana 8.3.
#### Removed
- N/A
### [0.1.0]
#### Added
- Create a Grafana dashboard ConfigMap when `metrics.dashboards.create` is `true`
#### Changed
- N/A
#### Removed
- N/A
[0.0.1]: #100
### [0.0.1]
#### Added
@@ -23,5 +53,4 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- N/A
[0.0.1]: #100
{{- end -}}

View File

@@ -3,3 +3,7 @@ env:
VSPHERE_USER: administrator@vsphere.my.domain.com
VSPHERE_PASSWORD: Secure-Pass
VSPHERE_HOST: test
metrics:
enabled: true
dashboards:
create: true

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,19 @@
{{- if and .Values.metrics.enabled .Values.metrics.dashboards.create }}
{{- $namespace := .Values.metrics.dashboards.namespace | default $.Release.Namespace }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "common.names.fullname" . }}
namespace: {{ $namespace }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.metrics.dashboards.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
data:
{{- range $path, $_ := .Files.Glob "dashboards/*.json" }}
{{- $filename := trimSuffix (ext $path) (base $path) }}
{{ base $path }}: |-
{{ $.Files.Get $path | indent 4 }}
{{- end }}
{{- end }}

View File

@@ -64,3 +64,12 @@ metrics:
# for: 5m
# labels:
# severity: critical
# -- Enable and configure Grafana dashboard ConfigMaps for the chart under this key.
# @default -- See values.yaml
dashboards:
create: false
# -- Namespace to create the dashboards ConfigMap under.
# @default -- The release's namespace
namespace:
labels:
grafana_dashboard: "true"