All Projects β†’ slok β†’ Grafterm

slok / Grafterm

Licence: apache-2.0
Metrics dashboards on terminal (a grafana inspired terminal version)

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Grafterm

Netdata
Real-time performance monitoring, done right! https://www.netdata.cloud
Stars: ✭ 57,056 (+9207.67%)
Mutual labels:  prometheus, grafana, observability, dashboard
Datav
πŸ“Šhttps://datav.io is a modern APM, provide observability for your business, application and infrastructure. It's also a lightweight alternative to Grafana.
Stars: ✭ 2,757 (+349.76%)
Mutual labels:  metrics, observability, grafana, prometheus
Docker monitoring logging alerting
Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting.
Stars: ✭ 479 (-21.86%)
Mutual labels:  metrics, prometheus, grafana, dashboard
Prometheus
Kubernetes Setup for Prometheus and Grafana
Stars: ✭ 824 (+34.42%)
Mutual labels:  metrics, prometheus, grafana, dashboard
Iota Prom Exporter
Iota Exporter for Prometheus Metrics
Stars: ✭ 33 (-94.62%)
Mutual labels:  metrics, prometheus, grafana, dashboard
Github Monitoring
Monitor your GitHub Repos with Docker & Prometheus
Stars: ✭ 163 (-73.41%)
Mutual labels:  metrics, prometheus, grafana, dashboard
Grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Stars: ✭ 45,930 (+7392.66%)
Mutual labels:  metrics, prometheus, grafana, dashboard
Swagger Stats
API Observability. Trace API calls and Monitor API performance, health and usage statistics in Node.js Microservices.
Stars: ✭ 559 (-8.81%)
Mutual labels:  metrics, prometheus, grafana, observability
Victoriametrics
VictoriaMetrics: fast, cost-effective monitoring solution and time series database
Stars: ✭ 5,558 (+806.69%)
Mutual labels:  prometheus, grafana, observability
Mtail
extract internal monitoring data from application logs for collection in a timeseries database
Stars: ✭ 3,028 (+393.96%)
Mutual labels:  metrics, prometheus, observability
Devdash
🍱 Highly Configurable Terminal Dashboard for Developers and Creators
Stars: ✭ 939 (+53.18%)
Mutual labels:  terminal, metrics, dashboard
Graphite exporter
Server that accepts metrics via the Graphite protocol and exports them as Prometheus metrics
Stars: ✭ 217 (-64.6%)
Mutual labels:  metrics, prometheus, observability
Docker Traefik Prometheus
A Docker Swarm Stack for monitoring Traefik with Promethues and Grafana
Stars: ✭ 215 (-64.93%)
Mutual labels:  metrics, prometheus, grafana
Prometheus Book
Prometheusζ“δ½œζŒ‡ε—
Stars: ✭ 2,637 (+330.18%)
Mutual labels:  metrics, prometheus, grafana
octane-exporter
Export Laravel Octane metrics using this Prometheus exporter.
Stars: ✭ 14 (-97.72%)
Mutual labels:  metrics, grafana, prometheus
Hastic Grafana App
Hastic data management server for labeling patterns and anomalies in Grafana
Stars: ✭ 166 (-72.92%)
Mutual labels:  metrics, grafana, dashboard
gateway
A proxy to buffer and forward metrics, events, and traces.
Stars: ✭ 94 (-84.67%)
Mutual labels:  metrics, prometheus, observability
microservices-observability
πŸŽ‰ Microservices Observability - Log Aggregation, Distributed Tracking, Metrics
Stars: ✭ 40 (-93.47%)
Mutual labels:  grafana, prometheus, observability
Kube State Metrics
Add-on agent to generate and expose cluster-level metrics.
Stars: ✭ 3,433 (+460.03%)
Mutual labels:  metrics, prometheus, observability
chia-monitor
πŸƒ A comprehensive monitoring and alerting solution for the status of your Chia farmer and harvesters.
Stars: ✭ 131 (-78.63%)
Mutual labels:  metrics, grafana, prometheus

Grafterm CircleCI Go Report Card

Visualize metrics dashboards on the terminal, like a simplified and minimalist version of Grafana for terminal.

grafterm red dashboard

Features

  • Multiple widgets (graph, singlestat, gauge).
  • Multiple datasources usage.
  • User stored datasources.
  • Override dashboard datasource ID to different datasource ID configured by the user.
  • Custom dashboards based on JSON configuration files.
  • Extensible metrics datasource implementation (Prometheus and Graphite included).
  • Templating of variables.
  • Auto time interval adjustment for queries.
  • Auto unit formatting on widgets.
  • Fixed and adaptive grid.
  • Color customization on widgets.
  • Configurable autorefresh.
  • Single binary and easy usage/deployment.

Installation

Download the binaries from releases

Running options

Exit with q or Esc

Simple

grafterm -c ./mydashboard.json

Relative time

grafterm -c ./mydashboard.json -d 48h

Refresh interval

grafterm -c ./mydashboard.json -r 2s

Debugging

When grafterm doesn't show anything may be that has errors getting metrics or similar. There is available a --debug flag that will write a log on grafterm.log (this path can be override with --log-path flag)

Read the log

tail -f ./grafterm.log

And run grafterm in debug mode.

grafterm -c ./mydashboard.json  -d 48h -r 2s --debug

Fixed time

Setting a fixed time range to visualize the metrics using duration notation. In this example is start at now-22h and end at now-20h

grafterm -c ./mydashboard.json -s 22h -e 20h

Setting a fixed time range to visualize the metrics using timestamp ISO 8601 notation.

grafterm -c ./mydashboard.json -s 2019-05-12T12:32:11+02:00 -e 2019-05-12T12:35:11+02:00

Replacing dashboard variables

grafterm -c ./mydashboard.json -v env=prod -v job=envoy

Replacing dashboard datasource configuration

Replace dashbaord prometheus datasource with user datasource thanos-prometheus (check Datasources section):

grafterm -c ./mydashboard.json -a "prometheus=thanos-prometheus"

Replace dashboard prometheus datasource with user datasource thanos-prometheus available on /tmp/my-datasources.json user datasource configuration file:

grafterm -c ./mydashboard.json -a "prometheus=thanos-prometheus" -u /tmp/my-datasources.json

Dashboard

Check this section that explains how a dashboard is configured. Also check dashboard examples

Datasources

Datasources are the way grafterm knows how to retrieve the metrics for the dashboard.

check available types and how to configure in this section.

If you want support for a new datasource type, open an issue or send a PR

Overriding dashboard datasources

Dashboard referenced datasources on the queries can be override.

User datasource

Grafterm dashboards can have default datasources but the user can override these datasources using a datasources config file. This file has the same format as the dashboard configuration file but will ignore anything other than the datasources block. Example:

{
  "version": "v1",
  "datasources": {
    "prometheus": {
      "prometheus": { "address": "http://127.0.0.1:9090" }
    },
    "localprom": {
      "prometheus": { "address": "http://127.0.0.1:9091" }
    },
    "thanos": {
      "prometheus": { "address": "http://127.0.0.1:9092" }
    },
    "m3db": {
      "prometheus": { "address": "http://127.0.0.1:9093" }
    },
    "victoriametrics": {
      "prometheus": { "address": "http://127.0.0.1:8428" }
    },
    "wikimedia": {
      "graphite": { "address": "https://graphite.wikimedia.org" }
    }
  }
}

If the dashboard has defined a datasource configuration with the ID my-ds reference, and the user datasources has this same datasource ID, grafterm will use the user defined one when the queries in the dashboard reference this ID.

The user datasources location can be configured with this priority (from highest to lowest):

  • If --user-datasources explicit flag is used, it will use this.
  • If GRAFTERM_USER_DATASOURCES env var is set, it will use this.
  • As a fallback location will check {USER_HOME}/grafterm/datasources.json exists.

Alias

Apart from overriding the dashboard datasources IDs that match with the user datasources, the user can force an alias with the form dashboard-ds-id=user-ds-id.

For example, the dashboard uses a datasource named prometheus-2b, and we want to use our local prometheus configured on the user datasources as localprom, we could use the alias flag like this: -a "prometheus-2b=localprom", now every query the dashboard widgets make to prometheus-2b will be made to localprom.

Kudos

This project would not be possible without the effort of many people and projects but specially Grafana for the inspiration, ideas and the project itself, and Termdash for the rendering of all those fancy graphs on the terminal.

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].