🚀 Launch Week Day 3:Introducing Supply Chain Attack Campaigns Tracking.Learn More →
Socket
Book a DemoInstallSign in
Socket

qvl.io/promplot

Package Overview
Dependencies
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

qvl.io/promplot

Go Modules
Version
v0.17.0
Version published
Created
Source

:chart_with_upwards_trend: promplot

GoDoc Build Status Go Report Card

promplot is an opinionated tool to create plots from your Prometheus metrics and automatically sends them to you.

Slack example:

promplot -title "Open File Descriptors" -query "process_open_fds" -range "7d" -url $promurl -slack $slacktoken -channel stats

Demo Screenshot

Currently the only implemented transport is Slack. But feel free to add a new one!

Usage: promplot [flags...]

Create and deliver plots from your Prometheus metrics.

Save plot to file or send it right to a slack channel.
One of -slack or -file must be set.


Flags:
  -channel string
        Required when -slack is set. Slack channel to post to.
  -file string
        File to save image to. Should have same extension as specified -format. Set -file to - to write to stdout.
  -format string
        Optional. Image format. For possible values see: https://godoc.org/github.com/gonum/plot/vg/draw#NewFormattedCanvas (default "png")
  -query string
        Required. PQL query.
  -range value
        Required. Time to look back to. Format: 5d12h34m56s
  -silent
        Optional. Suppress all output.
  -slack string
        Slack API token (https://api.slack.com/docs/oauth-test-tokens). Set to post plot to Slack.
  -time value
        Time for query (default is now). Format like the default format of the Unix date command.
  -title string
        Optional. Title of graph. (default "Prometheus metrics")
  -url string
        Required. URL of Prometheus server.
  -version
        Print binary version.

Install

  • With Go:
go get qvl.io/promplot
brew install qvl/tap/promplot

Examples

It's simple to create a shell script for multiple plots:

Slack

common="-url $promurl -channel stats -slack $slacktoken -range 24h"

promplot $common \
  -title "Free memory in MB" \
  -query "node_memory_MemFree /1024 /1024"

promplot $common \
  -title "Free disk space in GB" \
  -query "node_filesystem_free /1024 /1024 /1024"

promplot $common \
  -title "Open file descriptors" \
  -query "process_open_fds"

Mailing results

There is no mail transport built into promplot but you can use the Linux mail utility instead:

tmp="$(mktemp -d)"
common="-url $promurl -range 24h"

promplot $common \
  -title "Free memory in MB" \
  -query "node_memory_MemFree /1024 /1024" \
  -file ${tmp}/memory.png

promplot $common \
  -title "Open file descriptors" \
  -query "process_open_fds" \
  -file ${tmp}/fds.png

echo "Your daily report is here." | mail \
  -s "Daily server stats" \
  -a ${tmp}/memory.png \
  -a ${tmp}/fds.png \
  name@example.com

And with a scheduler like sleepto you can easily automate this script to run every day or once a week.

Development

Make sure to use gofmt and create a Pull Request.

When changing external dependencies please use dep to vendor them.

Releasing

Push a new Git tag and GoReleaser will automatically create a release.

Thank you

to these helpful open source projects promplot is built on top of:

License

MIT

FAQs

Package last updated on 03 Jan 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts