Additional Scrape Configuration
AdditionalScrapeConfigs allows specifying a key of a Secret containing additional Prometheus scrape configurations. Scrape configurations specified are appended to the configurations generated by the Prometheus Operator.
Job configurations specified must have the form as specified in the official Prometheus documentation. As scrape configs are appended, the user is responsible to make sure it is valid. Note that using this feature may expose the possibility to break upgrades of Prometheus.
It is advised to review Prometheus release notes to ensure that no incompatible scrape configs are going to break Prometheus after the upgrade.
Creating an additional configuration
First, you will need to create the additional configuration.
Below we are making a simple "prometheus" config. Name this
prometheus-additional.yaml or something similar.
- job_name: "prometheus" static_configs: - targets: ["localhost:9090"]
Then you will need to make a secret out of this configuration.
kubectl create secret generic additional-scrape-configs --from-file=prometheus-additional.yaml --dry-run -oyaml > additional-scrape-configs.yaml
Next, create a new secret using the base64 encoded output as the value for
prometheus-additional.yaml in the secret.
apiVersion: v1 data: prometheus-additional.yaml: LSBqb2JfbmFtZTogInByb21ldGhldXMiCiAgc3RhdGljX2NvbmZpZ3M6CiAgLSB0YXJnZXRzOiBbImxvY2FsaG9zdDo5MDkwIl0K kind: Secret metadata: creationTimestamp: null name: additional-scrape-configs
Finally, reference this additional configuration in your
apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: name: prometheus labels: prometheus: prometheus spec: replicas: 2 serviceAccountName: prometheus serviceMonitorSelector: matchLabels: team: frontend additionalScrapeConfigs: name: additional-scrape-configs key: prometheus-additional.yaml ...
NOTE: Use only one secret for ALL additional scrape configurations.