All Projects β†’ inovex β†’ trovilo

inovex / trovilo

Licence: Apache-2.0 license
trovilo collects and prepares files from Kubernetes ConfigMaps for Prometheus & friends

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to trovilo

Sample Grafana
Automatic Grafana dashboard initialisation example
Stars: ✭ 87 (+443.75%)
Mutual labels:  grafana, dashboards
Awesome Prometheus Alerts
🚨 Collection of Prometheus alerting rules
Stars: ✭ 3,323 (+20668.75%)
Mutual labels:  grafana, alertmanager
Dark
(grafana) Dashboards As Resources in Kubernetes
Stars: ✭ 190 (+1087.5%)
Mutual labels:  grafana, dashboards
Dockprom
Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager
Stars: ✭ 4,489 (+27956.25%)
Mutual labels:  grafana, alertmanager
PrometheusWithGrafana
Setup Prometheus with Grafana dashboard using Ansible
Stars: ✭ 50 (+212.5%)
Mutual labels:  grafana, alertmanager
Wizzy
Manage & automate Grafana with easy wizzy
Stars: ✭ 461 (+2781.25%)
Mutual labels:  grafana, dashboards
Prometheus Book
Prometheusζ“δ½œζŒ‡ε—
Stars: ✭ 2,637 (+16381.25%)
Mutual labels:  grafana, alertmanager
loki exporter
Prometheus exporter to collect metrics and run queries against the Grafana Loki API.
Stars: ✭ 28 (+75%)
Mutual labels:  grafana, alertmanager
Kube Prometheus
Use Prometheus to monitor Kubernetes and applications running on Kubernetes
Stars: ✭ 3,607 (+22443.75%)
Mutual labels:  alerts, dashboards
newrelic-quickstarts
New Relic One quickstarts help accelerate your New Relic journey by providing immediate value for your specific use cases.
Stars: ✭ 46 (+187.5%)
Mutual labels:  alerts, dashboards
Grabana
User-friendly Go library for building Grafana dashboards
Stars: ✭ 313 (+1856.25%)
Mutual labels:  grafana, dashboards
iot-edge-offline-dashboarding
Azure IoT Edge offline dashboarding/reporting sample. Guidance and sample dashboards
Stars: ✭ 31 (+93.75%)
Mutual labels:  grafana, dashboards
docker-prometheus
A minimal Prometheus Server, Node Exporter, BlackBox Exporter and Grafana implementation with `docker-compose`.
Stars: ✭ 71 (+343.75%)
Mutual labels:  grafana, alertmanager
Grafanalib
Python library for building Grafana dashboards
Stars: ✭ 1,174 (+7237.5%)
Mutual labels:  grafana, dashboards
cv4pve-metrics
Metrics for Proxmox VE, Grafana with dasboard, InfluxDb
Stars: ✭ 38 (+137.5%)
Mutual labels:  grafana, dashboards
Sdk
Library for using Grafana' structures in Go programs and client for Grafana REST API.
Stars: ✭ 193 (+1106.25%)
Mutual labels:  grafana, dashboards
robusta
Open source Kubernetes monitoring, troubleshooting, and automation platform
Stars: ✭ 772 (+4725%)
Mutual labels:  grafana, alertmanager
workshop-prometheus
Workshop Prometheus β™₯️ Grafana
Stars: ✭ 13 (-18.75%)
Mutual labels:  grafana, alertmanager
website
Prometheus monitoring mixins
Stars: ✭ 91 (+468.75%)
Mutual labels:  alerts, dashboards
Alertmanager
Alertmanager for macOS.
Stars: ✭ 49 (+206.25%)
Mutual labels:  alerts, alertmanager

trovilo

Build Status Go Report Card Docker Pulls

trovilo collects and prepares files from Kubernetes ConfigMaps for Prometheus & friends.

Philosophy

This simple helper tool aims to collect ConfigMaps (files) via the Kubernetes API and writes them down into the filesystem, that may be internally processed by apps like Prometheus or Grafana. It focuses to serve this purpose only on a very generic way. This means it's not meant to work with a specific app only and won't contain such specific code. Instead we try to provide an extensive UI and try keep the code maintainable.

Contributions are highly appreciated. :)

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Setup your GO environment if not already done:

$ export GOPATH=${HOME}/GOPATH GOBIN=${HOME}/GOPATH/bin
$ go get -u github.com/inovex/trovilo/cmd/trovilo
$ $GOBIN/trovilo --help
usage: trovilo --config=CONFIG [<flags>]

Trovilo collects and prepares files from Kubernetes ConfigMaps for Prometheus & friends

Flags:
  -h, --help                   Show context-sensitive help (also try --help-long and --help-man).
      --config=CONFIG          YAML configuration file.
      --kubeconfig=KUBECONFIG  Optional kubectl configuration file. If undefined we expect trovilo is running in a pod.
      --log-level="info"       Specify log level (debug, info, warn, error).
      --log-json               Enable JSON-formatted logging on STDOUT.
  -v, --version                Show application version.

Deployment

Deploy the binary to your target systems or use the official Docker image. Notice: The tools-tagged Docker image additionally contains useful tools for verify or post-deploy commands.

Simple trovilo example configuration file:

$ cat trovilo-config.yaml
# Which namespace to check (empty string means all namespaces)
#namespace: ""
jobs:
  # Arbitrary name for identification (and troubleshooting in logs)
  - name: alert-rules
    # Kubernetes-styled label selector to define how to find ConfigMaps
    selector:
      type: prometheus-alerts
    verify:
      # Example verification step to check whether the contents of the ConfigMap are valid Prometheus alert files. %s will be replaced by the ConfigMap's file path(s).
      - name: verify alert rule validity
        cmd: ["promtool", "check", "rules", "%s"]
    target-dir: /etc/prometheus-alerts/
    # Enable directory flattening so all ConfigMap files will be placed into a single directory
    flatten: true
    # After successfully verifying the ConfigMap and deploying it into the target-dir, run the following commands to trigger (e.g. Prometheus) manual config reloads
    post-deploy:
      - name: reload prometheus
        cmd: ["curl", "-s", "-X", "POST", "http://localhost:9090/-/reload"]
  # Another job example, but for Grafana dashboards (JSON model)
  - name: grafana-dashboards
    selector:
      type: grafana-dashboards
    target-dir: tmp/target-grafana-dashboards/

Full example Kubernetes deployment with Prometheus:

$ kubectl apply \
  -f https://raw.githubusercontent.com/inovex/trovilo/master/examples/k8s/alert-rules-team1.yaml \
  -f https://raw.githubusercontent.com/inovex/trovilo/master/examples/k8s/prometheus-config.yaml \
  -f https://raw.githubusercontent.com/inovex/trovilo/master/examples/k8s/trovilo-config.yaml \
  -f https://raw.githubusercontent.com/inovex/trovilo/master/examples/k8s/deployment.yaml

Alternatives

Some projects with very similar use case(s):

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].