项目作者: latchmihay

项目描述 :
Kubernetes Prometheus Pushgateway in Jsonnet format
高级语言: Jsonnet
项目地址: git://github.com/latchmihay/kube-prometheus-pushgateway.git
创建时间: 2019-06-28T14:35:36Z
项目社区:https://github.com/latchmihay/kube-prometheus-pushgateway

开源协议:GNU General Public License v2.0

下载


kube-prometheus-pushgateway

Kubernetes Prometheus Pushgateway in Jsonnet format as a reusable component.

It is aimed to be used and consumbed by coreos/kube-prometheus

Usage

Use this package in your own infrastructure using jsonnet-bundler:

  1. jb install github.com/latchmihay/kube-prometheus-pushgateway/prometheus-pushgateway

An example of how to use it could be: (save as example.jsonnet)

  1. local kp =
  2. (import "prometheus-pushgateway/pushgateway.libsonnet") +
  3. {
  4. _config+:: {
  5. namespace: 'monitoring',
  6. },
  7. };
  8. { ['prometheus-pushgateway-' + name]: kp.pushgateway[name], for name in std.objectFields(kp.pushgateway) }

This builds a Prometheus Push Gateway stack

Simply run:

  1. $ jsonnet -J vendor example.jsonnet

Quickstart

This quickstart requires the kube-prometheus to already be deployed and running.

Running this one command should then be enough:

  1. make deploy

Generate Yamls (Similar to the way kube-prometheus works)

  1. go get github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb
  2. go get github.com/brancz/gojsontoyaml
  3. cd prometheus-pushgateway && jb install && cd ..
  4. rm -rf manifests
  5. mkdir manifests
  6. jsonnet -J prometheus-pushgateway/vendor -m manifests example.jsonnet | xargs -I{} sh -c 'cat {} | gojsontoyaml > {}.yaml; rm -f {}' -- {}
  7. cat manifests/*

Usage along side kube-prometheus

  1. git clone https://github.com/coreos/kube-prometheus.git
  2. cd kube-prometheus
  3. jb install github.com/latchmihay/kube-prometheus-pushgateway/prometheus-pushgateway
  4. cat > withPromGateway.jsonnet <<EOF
  5. local kp =
  6. (import 'kube-prometheus/kube-prometheus.libsonnet') +
  7. (import "prometheus-pushgateway/pushgateway.libsonnet") +
  8. {
  9. _config+:: {
  10. namespace: 'monitoring',
  11. },
  12. };
  13. { ['prometheus-pushgateway-' + name]: kp.pushgateway[name], for name in std.objectFields(kp.pushgateway) } +
  14. { ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } +
  15. { ['0prometheus-operator-' + name]: kp.prometheusOperator[name] for name in std.objectFields(kp.prometheusOperator) } +
  16. { ['node-exporter-' + name]: kp.nodeExporter[name] for name in std.objectFields(kp.nodeExporter) } +
  17. { ['kube-state-metrics-' + name]: kp.kubeStateMetrics[name] for name in std.objectFields(kp.kubeStateMetrics) } +
  18. { ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } +
  19. { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
  20. { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } +
  21. { ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) }
  22. EOF
  23. ./build.sh withPromGateway.jsonnet
  24. # everything is at manifests folder

Usage along side kube-prometheus in a container

  1. git clone https://github.com/coreos/kube-prometheus.git
  2. cd kube-prometheus
  3. cat > withPromGateway.jsonnet <<EOF
  4. local kp =
  5. (import 'kube-prometheus/kube-prometheus.libsonnet') +
  6. (import "prometheus-pushgateway/pushgateway.libsonnet") +
  7. {
  8. _config+:: {
  9. namespace: 'monitoring',
  10. },
  11. };
  12. { ['prometheus-pushgateway-' + name]: kp.pushgateway[name], for name in std.objectFields(kp.pushgateway) } +
  13. { ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } +
  14. { ['0prometheus-operator-' + name]: kp.prometheusOperator[name] for name in std.objectFields(kp.prometheusOperator) } +
  15. { ['node-exporter-' + name]: kp.nodeExporter[name] for name in std.objectFields(kp.nodeExporter) } +
  16. { ['kube-state-metrics-' + name]: kp.kubeStateMetrics[name] for name in std.objectFields(kp.kubeStateMetrics) } +
  17. { ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } +
  18. { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
  19. { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } +
  20. { ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) }
  21. EOF
  22. docker run --rm -v $(pwd):$(pwd) --workdir $(pwd) quay.io/coreos/jsonnet-ci jb install github.com/latchmihay/kube-prometheus-pushgateway/prometheus-pushgateway
  23. docker run --rm -v $(pwd):$(pwd) --workdir $(pwd) quay.io/coreos/jsonnet-ci ./build.sh withPromGateway.jsonnet
  24. # all the yamls are in the manifests folder