Compare commits
1 Commits
11c58d99fa
...
701f1d4ead
Author | SHA1 | Date | |
---|---|---|---|
701f1d4ead |
29
README.md
29
README.md
@ -63,35 +63,6 @@ for customizations. These can be configured in more detail via `values.yaml`.
|
|||||||
|
|
||||||
The following examples serve as individual configurations and as inspiration for how deployment problems can be solved.
|
The following examples serve as individual configurations and as inspiration for how deployment problems can be solved.
|
||||||
|
|
||||||
#### Avoid CPU throttling by defining a CPU limit
|
|
||||||
|
|
||||||
If the application is deployed with a CPU resource limit, Prometheus may throw a CPU throttling warning for the
|
|
||||||
application. This has more or less to do with the fact that the application finds the number of CPUs of the host, but
|
|
||||||
cannot use the available CPU time to perform computing operations.
|
|
||||||
|
|
||||||
The application must be informed that despite several CPUs only a part (limit) of the available computing time is
|
|
||||||
available. As this is a Golang application, this can be implemented using `GOMAXPROCS`. The following example is one way
|
|
||||||
of defining `GOMAXPROCS` automatically based on the defined CPU limit like `100m`. Please keep in mind, that the CFS
|
|
||||||
rate of `100ms` - default on each kubernetes node, is also very important to avoid CPU throttling.
|
|
||||||
|
|
||||||
Further information about this topic can be found [here](https://kanishk.io/posts/cpu-throttling-in-containerized-go-apps/).
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> The environment variable `GOMAXPROCS` is set automatically, when a CPU limit is defined. An explicit configuration is
|
|
||||||
> not anymore required.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
helm install prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \
|
|
||||||
--set 'config.database.secret.databaseUsername=postgres' \
|
|
||||||
--set 'config.database.secret.databasePassword=postgres' \
|
|
||||||
--set 'config.database.secret.databaseConnectionUrl="postgres.example.local:5432/postgres?ssl=disable"' \
|
|
||||||
--set 'prometheus.metrics.enabled=true' \
|
|
||||||
--set 'prometheus.metrics.serviceMonitor.enabled=true' \
|
|
||||||
--set 'deployment.postgresExporter.env.name=GOMAXPROCS' \
|
|
||||||
--set 'deployment.postgresExporter.env.valueFrom.resourceFieldRef.resource=limits.cpu' \
|
|
||||||
--set 'deployment.postgresExporter.resources.limits.cpu=100m'
|
|
||||||
```
|
|
||||||
|
|
||||||
#### TLS authentication and encryption
|
#### TLS authentication and encryption
|
||||||
|
|
||||||
The first example shows how to deploy the metric exporter with TLS encryption. The verification of the custom TLS
|
The first example shows how to deploy the metric exporter with TLS encryption. The verification of the custom TLS
|
||||||
|
@ -29,6 +29,12 @@
|
|||||||
],
|
],
|
||||||
"labels": [ "renovate" ],
|
"labels": [ "renovate" ],
|
||||||
"packageRules": [
|
"packageRules": [
|
||||||
|
{
|
||||||
|
"addLabels": [ "renovate/automerge", "renovate/droneci" ],
|
||||||
|
"automerge": true,
|
||||||
|
"matchManagers": "droneci",
|
||||||
|
"matchUpdateTypes": [ "minor", "patch"]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"addLabels": [ "renovate/automerge", "renovate/npm" ],
|
"addLabels": [ "renovate/automerge", "renovate/npm" ],
|
||||||
"automerge": true,
|
"automerge": true,
|
||||||
@ -36,20 +42,6 @@
|
|||||||
"matchManagers": [ "npm" ],
|
"matchManagers": [ "npm" ],
|
||||||
"matchUpdateTypes": [ "minor", "patch"]
|
"matchUpdateTypes": [ "minor", "patch"]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"addLabels": [ "renovate/automerge", "renovate/container" ],
|
|
||||||
"automerge": true,
|
|
||||||
"excludePackagePatterns": [
|
|
||||||
"prometheuscommunity/postgres-exporter"
|
|
||||||
],
|
|
||||||
"matchDatasources": [
|
|
||||||
"docker"
|
|
||||||
],
|
|
||||||
"matchUpdateTypes": [
|
|
||||||
"minor",
|
|
||||||
"patch"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"addLabels": [ "renovate/automerge", "renovate/documentation" ],
|
"addLabels": [ "renovate/automerge", "renovate/documentation" ],
|
||||||
"automerge": true,
|
"automerge": true,
|
||||||
|
@ -9,17 +9,6 @@
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{/* env */}}
|
|
||||||
|
|
||||||
{{- define "prometheus-postgres-exporter.deployment.env" -}}
|
|
||||||
{{- $env := dict "env" (.Values.deployment.postgresExporter.env | default (list) ) }}
|
|
||||||
{{- if and (hasKey .Values.deployment.postgresExporter.resources "limits") (hasKey .Values.deployment.postgresExporter.resources.limits "cpu") }}
|
|
||||||
{{- $env = merge $env (dict "env" (list (dict "name" "GOMAXPROCS" "valueFrom" (dict "resourceFieldRef" (dict "resource" "limits.cpu"))))) }}
|
|
||||||
{{- end }}
|
|
||||||
{{ toYaml $env }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
|
|
||||||
{{/* envFrom */}}
|
{{/* envFrom */}}
|
||||||
|
|
||||||
{{- define "prometheus-postgres-exporter.deployment.envFrom" -}}
|
{{- define "prometheus-postgres-exporter.deployment.envFrom" -}}
|
||||||
|
@ -34,10 +34,9 @@ spec:
|
|||||||
{{- range .Values.deployment.postgresExporter.args }}
|
{{- range .Values.deployment.postgresExporter.args }}
|
||||||
- {{ . | quote }}
|
- {{ . | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- $env := (include "prometheus-postgres-exporter.deployment.env" . | fromYaml) }}
|
{{- with .Values.deployment.postgresExporter.env }}
|
||||||
{{- if and (hasKey $env "env") (gt (len $env.env) 0) }}
|
|
||||||
env:
|
env:
|
||||||
{{- toYaml $env.env | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- $envFrom := (include "prometheus-postgres-exporter.deployment.envFrom" . | fromYaml) }}
|
{{- $envFrom := (include "prometheus-postgres-exporter.deployment.envFrom" . | fromYaml) }}
|
||||||
{{- if hasKey $envFrom "envFrom" }}
|
{{- if hasKey $envFrom "envFrom" }}
|
||||||
|
@ -227,13 +227,6 @@ tests:
|
|||||||
cpu: 25m
|
cpu: 25m
|
||||||
memory: 100MB
|
memory: 100MB
|
||||||
asserts:
|
asserts:
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.containers[0].env
|
|
||||||
value:
|
|
||||||
- name: GOMAXPROCS
|
|
||||||
valueFrom:
|
|
||||||
resourceFieldRef:
|
|
||||||
resource: limits.cpu
|
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].resources
|
path: spec.template.spec.containers[0].resources
|
||||||
value:
|
value:
|
||||||
|
Loading…
Reference in New Issue
Block a user