gnuplot 作图 example

目的

利用 gnuplot 作图
纯为兴趣

软件需求

yum install -y gnuplot

过程

从 M3DB 中获取 metric
把 metric 数据写入到不同文件中, 一个文件代表了图片中的一条线条
l利用 gunplot 作图

获取 m3db metric python 语法

#!/usr/bin/python
# -*- coding:utf-8 -*-

import requests
import json
import time

def getData(metricName, tagName, nameSpace):
    """
    params:
        metricName - m3db metric name
        tagName  - m3db metric's tag
        fileName - save to filename

    return:
        list
        
    """


    urlQuery = 'http://m3dbquery_ipaddr:m3dbport/api/v1/query_range'
    startStamp = str(int(time.time()) - 1800)
    endStamp = str(int(time.time()))

    accessURL = urlQuery + '?query=' + metricName + '{service_environment="' + tagName  + '",namespace="' + nameSpace + '"}&start=' + startStamp + '&end=' + endStamp + '&step=10'

    allMetricTagFromM3 = requests.get(accessURL)
    allTagJson = json.loads( allMetricTagFromM3.text)


    if not allTagJson.has_key("data"):
        print “metric get erorr”
        return False

    if len(allTagJson["data"]["result"]) == 0:
        print “metric get erorr”
        return False

    metricData = allTagJson["data"]["result"]
    for data in metricData:
        fileName = data["metric"]["hostname"]
        hostData = data["values"]

        with open(fileName, 'a') as f:
            for lines in hostData:
                char = str(lines[0]) + ' ' + str(lines[1]) + '\n'
                f.write(char)

if __name__ == '__main__':
    metricName = "coordinator_m3db_client_write_success"
    tagName = "production"
    nameSpace = "m3db"
    getData(metricName, tagName, nameSpace)

执行后返回了下面三个文件

m3coordinator-055024
m3coordinator-055025
m3coordinator-055026

参考其中一个文件内容

1564126181 1909
1564126191 1006
......
1564127971 400
1564127981 6

利用 gnuplot 生成文件方法

参考 plot 配置文件

plot.script

set title "coordinator_m3db_client_write_success"
set ylabel "input"
set xlabel "time"
set terminal png size 1300, 600
set style data fsteps
set timefmt "%s"
set format x "%H:%M:%S"
set xdata time
set term png
set output "chart_1.png"
plot "m3coordinator-055024"  using 1:2 title "055024" , "m3coordinator-055025" using 1:2 title "055025", "m3coordinator-055026" using 1:2 title "055026"

执行命令方法

gnuplot plot.script

生成图片

参考下图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_Tsang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值