我在一个服务器上配置了一个石墨实例,并且我正在用它来监视我的环境,可悲的是它同时包含linux和Windows机器。我想监视服务器的运行状况,因此我选择在Linux机器上进行collectl,这在收集系统统计信息方面做得很好。
可悲的是,对于Windows,似乎没有太多的解决方案来获取系统状态并将其发送给石墨,但我已经设法通过Powershell来处理这种情况。我正在使用一个在这里建议的脚本http://josh.behrends.us/2012/07/windows-powershell-graphite-awesome/用于石墨连接,还用于从我使用的计算机中获取指标get-counter comandlet,令人惊讶的是,它可以收集很多信息。
我的脚本如下所示:
while (1 -eq 1)
{
$carbonServer = "hostname"
$carbonServerPort = 2003
$epochtime = [int][double]::Parse((Get-Date -UFormat %s))
$socket = New-Object System.Net.Sockets.TCPClient
$socket.connect($carbonServer, $carbonServerPort)
$stream = $socket.GetStream()
$writer = new-object System.IO.StreamWriter($stream)
#Write out metric to the stream.
$DiskQue = [int]((get-counter -Counter "\PhysicalDisk(1 e: f:)\Current Disk Queue Length" ).countersamples | select -property cookedvalue).cookedvalue
$BytesReceived = [int]((get-counter -Counter "\Server\Bytes Received/sec" ).countersamples | select -property cookedvalue).cookedvalue
$BytesSent = [int]((get-counter -Counter "\Server\Bytes Transmitted/sec").countersamples | select -property cookedvalue).cookedvalue
$MemAvail = ((get-counter …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个如下图所示的图形,该文章在博客文章中有描述(http://matt.aimonetti.net/posts/2013/06/26/practical-guide-to-graphite-monitoring/)

但是我无法将值"叠加"在一起.它们相互重叠.我的例子:

这是我的图表数据:

使用"堆叠"后的图形 - 不是我想要的

我一直试图让Graphite通过GUnicorn运行(最终通过nginx代理),但我已经尝试了几乎所有东西来启动应用程序并且无法获得类似于以下的错误.
(graphite)/opt/graphite/conf gunicorn --bind=127.0.0.1:8080 graphite.wsgi:app
2014-03-03 17:02:14 [312] [INFO] Starting gunicorn 18.0
2014-03-03 17:02:14 [312] [INFO] Listening at: http://127.0.0.1:8080 (312)
2014-03-03 17:02:14 [312] [INFO] Using worker: sync
2014-03-03 17:02:14 [317] [INFO] Booting worker with pid: 317
2014-03-03 17:02:14 [317] [ERROR] Exception in worker process:
Traceback (most recent call last):
File "/opt/graphite/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 495, in spawn_worker
worker.init_process()
File "/opt/graphite/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 106, in init_process
self.wsgi = self.app.wsgi()
File "/opt/graphite/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 114, in wsgi
self.callable = self.load()
File "/opt/graphite/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 62, in load …Run Code Online (Sandbox Code Playgroud) 如何根据所选间隔汇总石墨数据?如果所选的时间间隔最长为1小时,则数据计数器应每分钟显示一次数据点。如果间隔不超过3小时,则应在5分钟内汇总数据。如果间隔不超过1天,则应在15分钟内汇总数据。
这可能吗?
Graphite,Elastisearch,Cloudwatch,Prometheus,InfluxDB都支持Grafana的后端.我正在使用grafana前端创建一个应用程序,但是无法理解这些后端有何不同,哪些最适合我的应用程序(更喜欢开源).我的用例是从外部服务器导入的静态日志文件,我想解析并填写由grafana使用的数据库.数据最多可包含5000个时间序列数据点,可进行约100次测量.无需分发数据库.我很乐意获得一些关于如何从中选择支持数据库的技巧.提前致谢!!
使用Graphite,我正在绘制一些图表和相同的时移.
例如:
aliasByNode(my.application.metric.$Continent.$DC.*, 4, 5, 3)
aliasByNode(timeShift(my.application.metric.$Continent.$DC.*, "7d"), 4, 5, 3)
Run Code Online (Sandbox Code Playgroud)
但我希望能够识别图表(它们目前的名称相同).
如何在度量标准别名中添加前缀或后缀(或任何标记)?
例如:
-- EU.PAR.pokemonCaught
-- EU.PAR.pokemonCaught (last week)
Run Code Online (Sandbox Code Playgroud) 我正在测试Grafana从Graphite系统读取和绘制数据.
这就是Grafana对Graphite的json数据的预期:
{
"data": [
{
"target": "test-series-0",
"datapoints": [
[
22.504392773143504,
1.476693264195e+12
],
[
22.719552781746028,
1.476693301825e+12
]
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想从中读取数据的系统,交换时间戳和度量值,例如
{
"data": [
{
"target": "test-series-0",
"datapoints": [
[
1.476693264195e+12
22.504392773143504,
],
[
1.476693301825e+12
22.719552781746028,
]
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
是否可以创建一个新的数据源(来自默认石墨数据源的副本),在处理之前将值交换回来或按原样使用值?
我查看了.js文件,但我发现很难确定我需要进行哪些更改,所以任何指针都很受欢迎!
编辑:我试过这个:我已经制作了默认的Graphite插件的副本,并将其重命名为graphite-copy并调整了id plugin.json.
然后我编辑datasource.js并datasource.ts喜欢这样:
var e = {
method: "POST",
url: "/render",
data: d.join("&"),
headers: {
"Content-Type": "application/x-www-form-urlencoded"
}
};
return a.panelId && (e.requestId = this.name + ".panelId." + a.panelId), this.doGraphiteRequest(e).then(this.convertDataPointsToMs) …Run Code Online (Sandbox Code Playgroud) 需要脚本将数据从Grafana仪表板导出到csv文件。输入:(仪表板段/名称和时间范围,例如:-1h或-24h)到grafana api / doc的任何链接都可以。
我正在使用Graphite和Grafana,我正在尝试绘制一个针对时间转换版本的系列进行比较.
(即上周这个时间的当前值是否相似?)
我想做的是情节;
该系列的5分钟移动平均线
一个由5天移动平均线组成的频段,该系列时间移动7天,上下均以其标准差为界
通过这种方式,我可以看到当前的移动平均线是否属于受一周前移动平均线标准差限制的范围内.
我已经设法根据时移移动平均线产生一个频段,但只能将任意一侧偏移一个恒定的数量.我无法通过标准偏差(或实际上任何动态值)来计算任何偏移方式.
我复制了我想要实现的那种东西的截图.黄线是当前的移动平均线,绿色区域以历史移动平均线偏移为标准偏差.
使用Graphite作为后端,这在Grafana中是否可行?
我不是最新版本,但可以轻松升级(无论如何都会很快升级).
顺便说一下,我不是统计学家,如果我所做的事情在数学上没有任何意义,我很想知道!;-)我的总体目标是探索更好的替代方案,而不是使用静态阈值,以突出显示异常或有问题的服务器性能指标 - 例如CPU负载,磁盘IOPS等.
graphite ×10
grafana ×5
monitoring ×2
ganglia ×1
gunicorn ×1
influxdb ×1
javascript ×1
powershell ×1
prometheus ×1
python ×1
tcp ×1
wsgi ×1