All Projects → baverman → grafana-stack

baverman / grafana-stack

Licence: MIT license
Tiny docker images for graphite, grafana and statsdly

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to grafana-stack

Graphite Stack Ansible Vagrant
Provision a complete Graphite, StatsD & Grafana install using Ansible and (optionally) Vagrant
Stars: ✭ 62 (+121.43%)
Mutual labels:  grafana, graphite, statsd
Tgres
Time Series in Go and PostgreSQL
Stars: ✭ 481 (+1617.86%)
Mutual labels:  grafana, graphite, statsd
dokku-graphite
a graphite, grafana, statsd, carbon plugin for dokku
Stars: ✭ 47 (+67.86%)
Mutual labels:  grafana, graphite, statsd
Netdata
Real-time performance monitoring, done right! https://www.netdata.cloud
Stars: ✭ 57,056 (+203671.43%)
Mutual labels:  grafana, graphite, statsd
docker-graphite
Run Graphite with Docker
Stars: ✭ 15 (-46.43%)
Mutual labels:  grafana, graphite, statsd
Wizzy
Manage & automate Grafana with easy wizzy
Stars: ✭ 461 (+1546.43%)
Mutual labels:  grafana, graphite
Victoriametrics
VictoriaMetrics: fast, cost-effective monitoring solution and time series database
Stars: ✭ 5,558 (+19750%)
Mutual labels:  grafana, graphite
Docker Nagios
Docker-Nagios provide Nagios service running on the docker container and a series of solution for Nagios
Stars: ✭ 41 (+46.43%)
Mutual labels:  grafana, graphite
Appmetrics
App Metrics is an open-source and cross-platform .NET library used to record and report metrics within an application.
Stars: ✭ 1,986 (+6992.86%)
Mutual labels:  grafana, graphite
yanic
Yet another node info collector - for respondd to be used with meshviewer to Grafana (with influxdb or graphite)
Stars: ✭ 22 (-21.43%)
Mutual labels:  grafana, graphite
Sexigraf
SexiGraf is a vSphere centric Graphite appliance with a Grafana frontend.
Stars: ✭ 84 (+200%)
Mutual labels:  grafana, graphite
Ohmgraphite
Export Open Hardware sensor data to Graphite / InfluxDB / Prometheus / Postgres / Timescaledb
Stars: ✭ 155 (+453.57%)
Mutual labels:  grafana, graphite
Docker Statsd Influxdb Grafana
Docker Image with Telegraf (StatsD), InfluxDB and Grafana
Stars: ✭ 352 (+1157.14%)
Mutual labels:  grafana, statsd
Hastic Server
Hastic data management server for analyzing patterns and anomalies from Grafana
Stars: ✭ 292 (+942.86%)
Mutual labels:  grafana, graphite
Redis Timeseries
Future development of redis-timeseries is at github.com/RedisLabsModules/redis-timeseries.
Stars: ✭ 197 (+603.57%)
Mutual labels:  grafana, statsd
Icinga Vagrant
Vagrant boxes for Icinga 2, Icinga Web 2, modules, themes and integrations (Graphite, InfluxDB, Elastic, Graylog, etc.)
Stars: ✭ 248 (+785.71%)
Mutual labels:  grafana, graphite
Influxgraph
Graphite InfluxDB backend. InfluxDB storage finder / plugin for Graphite API.
Stars: ✭ 87 (+210.71%)
Mutual labels:  grafana, graphite
fastify-metrics
📊 Fastify plugin that integrates metrics collection and dispatch to statsd
Stars: ✭ 62 (+121.43%)
Mutual labels:  grafana, statsd
atop-graphite-grafana-monitoring
Tools to extract raw system counters from atop, aggregate them to generate high level performance metrics, whose are then injected into a Graphite database and visualize through Grafana dashboards.
Stars: ✭ 15 (-46.43%)
Mutual labels:  grafana, graphite
Icingaweb2 Module Grafana
Grafana module for Icinga Web 2 (supports InfluxDB & Graphite)
Stars: ✭ 190 (+578.57%)
Mutual labels:  grafana, graphite

Grafana stack

Tiny docker images for grafana, graphite and statsdly (statsd implementation). For example, grafana-4.6.3 ~ 90M, graphite-1.1.1 ~ 125M, statsdly-0.4.1 ~ 33M. All images are build from official sources with sane (read very opinionated :) configuration defaults.

Docker network

Grafana needs access to graphite so you should create a docker network, use links (deprecated) or use docker-compose. All examples below assume grafana-stack network.

docker network create grafana-stack

Graphite

Dockerhub: baverman/graphite.

Start container:

mkdir -p data/carbon
export DOCKER_USER=$(id -u):$(id -g)
docker run -d --name graphite -p 2003:2003 --restart unless-stopped --network grafana-stack \
           -v $PWD/data/carbon:/data -u $DOCKER_USER baverman/graphite

This command will start graphite-web and carbon-cache services under current user. Only 2003 TCP port (carbon text protocol) will be exposed and all data will be written to data/carbon directory.

Ports:

  • 2003: carbon text protocol.
  • 8080: graphite-web application, needed for grafana to fetch metrics, it's better to not expose it to public until you configure authorization.
  • 7002: carbon cache interface to get metrics data.

Volumes:

  • /data: carbon and graphite-web storage dir.

  • /conf: directory with all config files. Image includes default configs but one can override any by mounting own /conf volume. Obtaining default /conf/carbon.conf:

    docker run --rm baverman/graphite /template.py /tpl/carbon.conf > /tmp/carbon.conf
    

Environment variables:

  • CC_*: Overrides settings from carbon.conf [cache] section. For example you can set CC_MAX_UPDATES_PER_SECOND=100 to limit IOPS.

  • CARBON_STORAGE_SCHEMA_*: control retention policies in storage-schemas.conf. Format is pattern|retentions. You can define any number of variables. Default retentions are:

    CARBON_STORAGE_SCHEMA_CARBON=^carbon\.|60s:1d,5m:7d,10m:30d
    CARBON_STORAGE_SCHEMA_ZDEFAULT=.*|60s:7d,5m:30d,30m:90d,1h:1y
    

    IMPORTANT! Default minimal retention is 60s, you MUST configure carbon clients to flush metrics not more often than once in every 60s or you will loose data.

  • CARBON_STORAGE_AGG_*: control aggregation policies in storage-aggregation.conf. Format is pattern|xFilesFactor|aggregationMethod. You can define any number of variables. Default aggregations are:

    CARBON_STORAGE_AGG_MIN=\.min$|0.1|min
    CARBON_STORAGE_AGG_MAX=\.max$|0.1|max
    CARBON_STORAGE_AGG_SUM=\.count$|0|sum
    CARBON_STORAGE_AGG_ZDEFAULT=.*|0.2|average
    

    Metrics ending with .count can be used to precisely store counters.

Build image:

./graphite/build.sh [name] [graphite-version] [tag]

Grafana

Dockerhub: baverman/grafana.

Start container:

mkdir -p data/grafana
export DOCKER_USER=$(id -u):$(id -g)
docker run -d --name grafana -p 3000:3000 --restart unless-stopped --network grafana-stack \
           -v $PWD/data/grafana:/data -u $DOCKER_USER baverman/grafana

This command will start grafana service under current user. Only 3000 TCP port (HTTP) will be exposed and all data will be written to data/grafana directory.

And you can add http://graphite:8080/ as graphite datasource with 1.1.x version.

Ports:

  • 3000: Grafana HTTP port.

Volumes:

  • /data: grafana storage dir.

Environment variables:

You can override any grafana settings via envvars.

  • GF_SERVER_DOMAIN: domain.
  • GF_SERVER_ROOT_URL: root url.
  • GF_SECURITY_SECRET_KEY: secret key to sign up cookies.

Build image:

./grafana/build.sh [name] [grafana-version] [sha256-src-checksum] [tag]

Statsdly

Dockerhub: baverman/statsdly.

Start container:

export DOCKER_USER=$(id -u):$(id -g)
docker run -d --name statsdly -p 8125:8125/udp --restart unless-stopped --network grafana-stack \
           -u $DOCKER_USER baverman/statsdly -l 0.0.0.0 -g graphite -f 60

This command will start statsdly service (a StatsD implementation) on 8125 UDP port with 60s flush interval and service will forward metrics to graphite host.

Ports:

  • 8125: StatsD UDP port.

Build image:

./statsdly/build.sh [name] [statsdly-version] [tag]
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].