Skip to content

Commit

Permalink
Scrape metrics from functions directly
Browse files Browse the repository at this point in the history
Support scraping metrics from function pods directly. This allows users
to provide metrics for custom scaling types.

Signed-off-by: Han Verstraete (OpenFaaS Ltd) <[email protected]>
  • Loading branch information
welteki authored and alexellis committed Aug 21, 2024
1 parent c6427d2 commit 8c87ae4
Showing 1 changed file with 47 additions and 3 deletions.
50 changes: 47 additions & 3 deletions chart/openfaas/templates/prometheus-pro-cfg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,7 @@ data:
namespaces:
names:
- {{ .Release.Namespace }}
{{- if ne $functionNs (.Release.Namespace | toString) }}
- {{ $functionNs }}
{{- end }}
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
Expand Down Expand Up @@ -143,6 +141,52 @@ data:
regex: '(.*);(.*)'
replacement: '${1}.${2}'
target_label: "function_name"
- job_name: 'openfaas-function-pods'
scrape_interval: 15s
kubernetes_sd_configs:
- role: pod
# TODO: Insert namespace for role
{{- if not .Values.clusterRole }}
namespaces:
names: [ {{ $functionNs | quote }} ]
{{- end }}
relabel_configs:
# Only keep OpenFaaS function pods
- source_labels: [__meta_kubernetes_pod_labelpresent_faas_function]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
- action: replace
regex: (.+)
source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
target_label: __metrics_path__
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: kubernetes_pod_name
- action: replace
source_labels:
- kubernetes_pod_name
regex: '^([0-9a-zA-Z-]+)+(-[0-9a-zA-Z]+-[0-9a-zA-Z]+)$'
replacement: '$1'
target_label: deployment_name
metric_relabel_configs:
- source_labels: [deployment_name, kubernetes_namespace]
separator: ";"
regex: '(.*);(.*)'
replacement: '${1}.${2}'
target_label: "function_name"
prometheus-rules.yml: |
groups:
Expand Down

0 comments on commit 8c87ae4

Please sign in to comment.