Code Monkey home page Code Monkey logo

graph's People

Contributors

andyxning avatar hitripod avatar laiwei avatar niean avatar xingfusye avatar yubo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

graph's Issues

手动上报的单点数据随机丢失

手动上报的数据,用的 book 里面那个例子

如果只上报一次,Dashboard里出现的那个单点有约一半的概率会在接下来的20min内消失,去 graph/history 里查也显示没有数据

请问这是怎么回事?

PS:连续上报的数据没问题。

when i setup graph, got some errors, please help

[root@yafei graph]# ./control start
start ok, pid=32122
[root@yafei graph]# ./control tail
2016/06/15 10:04:20 cfg.go:90: g.ParseConfig ok, file cfg.json
2016/06/15 10:04:20 db.go:22: g.InitDB, get db conn fail Error 1045: Access denied for user 'root'@'localhost' (using password: NO)
2016/06/15 10:06:09 cfg.go:90: g.ParseConfig ok, file cfg.json
2016/06/15 10:06:09 db.go:22: g.InitDB, get db conn fail Error 1193: Unknown system variable 'parsseTime'
2016/06/15 10:29:11 cfg.go:90: g.ParseConfig ok, file cfg.json
2016/06/15 10:29:11 db.go:22: g.InitDB, get db conn fail Error 1193: Unknown system variable 'parsseTime'
2016/06/15 10:36:27 cfg.go:90: g.ParseConfig ok, file cfg.json
2016/06/15 10:36:27 db.go:22: g.InitDB, get db conn fail Error 1193: Unknown system variable 'parsseTime'
2016/06/15 10:36:46 cfg.go:90: g.ParseConfig ok, file cfg.json
2016/06/15 10:36:46 db.go:22: g.InitDB, get db conn fail Error 1193: Unknown system variable 'parsseTime'

还是关于 errno: 0x023a, str:opening error 的问题

环境是四台Graph组成的集群,已经稳定运行一段时间,go是1.6.2,系统是centos 6,ssd硬盘

但是今天发现日志中出现大量的 errno: 0x023a, str:opening error 问题,大概每台有千行左右,四台graph都出现这样的问题,而且影响了出图,重启后又正常。

而且这个应该与 #17#12 有些不同

没有像 #17 中那样伴随着 errno: 0panic: runtime error: cgo argument has Go pointer to Go pointer

也没有像 #12 中那样一直报问题,版本也比较新,除了 #25 其他commit都有,而且部署的是实体机,没用docker

对于此问题也是没有一点头绪,请问能否解答分析一下问题出现的原因,如何避免呢?

@laiwei @niean @hitripod

graph/api/graph.go中的代码怎么理解

`nowTs := time.Now().Unix()
lastUpTs := nowTs - nowTs%int64(step)
rra1StartTs := lastUpTs - int64(rrdtool.RRA1PointCnt*step)

// consolidated, do not merge
if start_ts < rra1StartTs {
	resp.Values = datas
	goto _RETURN_OK
}`

rra1StartTs 代表什么意思?怎样理解这段代码?

graph突然停止&&panic: runtime error: cgo argument has Go pointer to Go pointer

刚刚开始试试open-falcon,安装还顺利 正在熟悉,发现graph两次自动down掉了。下面的报错是什么原因呢?

2016/03/24 23:24:18 cfg.go:90: g.ParseConfig ok, file cfg.json
2016/03/24 23:24:18 db.go:26: g.InitDB ok
2016/03/24 23:24:18 rrdtool.go:55: rrdtool.Start ok
2016/03/24 23:24:18 index.go:15: index.Start ok
2016/03/24 23:24:18 main.go:20: 15851 register signal notify
2016/03/24 23:24:18 rpc.go:54: rpc.Start ok, listening on 0.0.0.0:6070
2016/03/24 23:24:18 http.go:96: http listening 0.0.0.0:6071
panic: runtime error: cgo argument has Go pointer to Go pointer

goroutine 14 [running]:
panic(0x90f2e0, 0xc820315e30)
/usr/local/go/src/runtime/panic.go:464 +0x3e6
github.com/open-falcon/rrdlite.(_Updater).update(0xc820036de8, 0xc82031c240, 0x6, 0x8, 0x0, 0x0)
/workspace/golang/src/github.com/open-falcon/rrdlite/rrd_c.go:70 +0x100
github.com/open-falcon/rrdlite.(_Updater).Update(0xc820036de8, 0x0, 0x0, 0x0, 0x0, 0x0)
/workspace/golang/src/github.com/open-falcon/rrdlite/rrd.go:130 +0x27f
github.com/open-falcon/graph/rrdtool.update(0xc8202ec4b0, 0x45, 0xc82031a210, 0x6, 0x6, 0x0, 0x0)
/workspace/golang/src/github.com/open-falcon/graph/rrdtool/rrdtool.go:117 +0x45e
github.com/open-falcon/graph/rrdtool.flushrrd(0xc8202ec4b0, 0x45, 0xc82031a210, 0x6, 0x6, 0x0, 0x0)
/workspace/golang/src/github.com/open-falcon/graph/rrdtool/rrdtool.go:142 +0x1a2
github.com/open-falcon/graph/rrdtool.ioWorker()
/workspace/golang/src/github.com/open-falcon/graph/rrdtool/sync_disk.go:95 +0x38f
created by github.com/open-falcon/graph/rrdtool.Start
/workspace/golang/src/github.com/open-falcon/graph/rrdtool/rrdtool.go:54 +0x24f

push监控数据时,出现 write tcp 127.0.0.1:3306: broken pipe

最近做tomcat的监控数据push到agent时,发现DashBoard上图标全是空白的,然后看falcon的日志,发现graph的app.log总是在报错:
[mysql] 2016/05/09 14:51:04 packets.go:33: unexpected EOF
[mysql] 2016/05/09 14:51:04 packets.go:124: write tcp 127.0.0.1:3306: broken pipe
[mysql] 2016/05/09 14:51:04 packets.go:124: write tcp 127.0.0.1:3306: broken pipe
[mysql] 2016/05/09 14:51:18 packets.go:33: unexpected EOF
[mysql] 2016/05/09 14:51:18 packets.go:124: write tcp 127.0.0.1:3306: broken pipe

是不是这里写数据库失败,导致DashBoard上都是空白 啊

how can fix this?

[root@localhost graph]# ls
api  cfg.example.json  control  cron  g  http  index  LICENSE  main.go  NOTICE  proc  README.md  rrdtool  store  test
[root@localhost graph]# git pull
Already up-to-date.
[root@localhost graph]# go get ./...
# github.com/open-falcon/graph/store
store/history.go:38: itemlist.(*"github.com/toolkits/container/list".SafeListLimited).FrontAll undefined (type *"github.com/toolkits/container/list".SafeListLimited has no field or method FrontAll)
store/history.go:57: slist.PushFrontViolently undefined (type *"github.com/toolkits/container/list".SafeListLimited has no field or method PushFrontViolently)
[root@localhost graph]# ./control build
# github.com/open-falcon/graph/store
store/history.go:38: itemlist.(*"github.com/toolkits/container/list".SafeListLimited).FrontAll undefined (type *"github.com/toolkits/container/list".SafeListLimited has no field or method FrontAll)
store/history.go:57: slist.PushFrontViolently undefined (type *"github.com/toolkits/container/list".SafeListLimited has no field or method PushFrontViolently)
./control: line 114: ./falcon-graph: No such file or directory

关于rrd存储的疑问

在我们线上部署graph后,rrd数据存储量非常大,结合rrd存储的相关概念,由于不懂开发语言,线上已经部署,所以有以下疑问紧急请教以下:
1.按照文档的解释,我得理解是:graph将采集的数据通过rrd的方式存储,同一个metric存一个rrd文件,rrd文件大小事固定的,相同metric在不同时间点的数据采集上来都在同一个rrd文件中,直至rrd环被写满,默认情况是五年,但是我们线上的graph数据存储目录下的rrd文件数量在不断的增长,只是磁盘使用情况非常的巨大。
2.线上监控的项目中包括nginx和mysql,插件用得open-falcon官方推荐的,这些采集的metric数量比较大,会不会产生他们的metric疯狂创建rrd文件的情况
非常感谢!!!

绘图的数值精度问题

我们上报了一个数值,python 写的,value 大概是 79.999909123972 这个样子。基本不变。
但是看图的时候,graph 的 y 座标全部写的 80.000,曲线看起来波动很大(实际上极差不超过 0.0000001)。

应该可以限制绘图的最小精度?

请问graph数据库的表结构在哪里啊?

2015/07/16 17:09:00 index_update_incr_task.go:90: 127.0.0.1 Error 1146: Table 'graph.endpoint' doesn't exist
2015/07/16 17:10:00 index_update_incr_task.go:90: 127.0.0.1 Error 1146: Table 'graph.endpoint' doesn't exist
2015/07/16 17:10:00 index_update_incr_task.go:90: 127.0.0.1 Error 1146: Table 'graph.endpoint' doesn't exist
2015/07/16 17:11:00 index_update_incr_task.go:90: 127.0.0.1 Error 1146: Table 'graph.endpoint' doesn't exist
2015/07/16 17:11:00 index_update_incr_task.go:90: 127.0.0.1 Error 1146: Table 'graph.endpoint' doesn't exist
2015/07/16 17:12:00 index_update_incr_task.go:90: 127.0.0.1 Error 1146: Table 'graph.endpoint' doesn't exist
2015/07/16 17:12:00 index_update_incr_task.go:90: 127.0.0.1 Error 1146: Table 'graph.endpoint' doesn't exist
2015/07/16 17:13:00 index_update_incr_task.go:90: 127.0.0.1 Error 1146: Table 'graph.endpoint' doesn't exist
2015/07/16 17:13:00 index_update_incr_task.go:90: 127.0.0.1 Error 1146: Table 'graph.endpoint' doesn't exist
2015/07/16 17:14:00 index_update_incr_task.go:90: 127.0.0.1 Error 1146: Table 'graph.endpoint' doesn't exist
2015/07/16 17:14:00 index_update_incr_task.go:90: 127.0.0.1 Error 1146: Table 'graph.endpoint' doesn't exist
2015/07/16 17:15:00 index_update_incr_task.go:90: 127.0.0.1 Error 1146: Table 'graph.endpoint' doesn't exist

多次上报某个metric在同一个timestamp的数据

现在group模块对metric在同一个timestamp的数据只保留收到的第一份,但业务上我们需要实现类似update的功能,数据有了变化会多次发送timestamp相同的数据。简单把下面代码中的continue去掉会到导致程序错误,有什么好的建议吗?

    proc.GraphRpcRecvCnt.Incr()

    // To Graph
    first := store.GraphItems.First(key)
    if first != nil && items[i].Timestamp <= first.Timestamp {
        continue
    }
    store.GraphItems.PushFront(key, items[i], checksum, cfg)

    // To Index
    index.ReceiveItem(items[i], checksum)

    // To History
    store.AddItem(checksum, items[i])

程序运行出错: cgo argument has Go pointer to Go pointer

程序运行一会出这个错误

errno: 0x023a, str:opening error
errno: 0panic: runtime error: cgo argument has Go pointer to Go pointer

goroutine 23 [running]:
panic(0x90e0a0, 0xc8203d24e0)
/usr/local/go/src/runtime/panic.go:464 +0x3e6
github.com/open-falcon/rrdlite.(_Updater).update(0xc820032de8, 0xc82039b3c0, 0x6, 0x8, 0x0, 0x0)
/home/work/workspace/src/github.com/open-falcon/rrdlite/rrd_c.go:70 +0x100
github.com/open-falcon/rrdlite.(_Updater).Update(0xc820032de8, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/work/workspace/src/github.com/open-falcon/rrdlite/rrd.go:130 +0x27f
github.com/open-falcon/graph/rrdtool.update(0xc8203ae9b0, 0x46, 0xc8203a9020, 0x6, 0x6, 0x0, 0x0)
/home/work/workspace/src/github.com/open-falcon/graph/rrdtool/rrdtool.go:117 +0x45e
github.com/open-falcon/graph/rrdtool.flushrrd(0xc8203ae9b0, 0x46, 0xc8203a9020, 0x6, 0x6, 0x0, 0x0)
/home/work/workspace/src/github.com/open-falcon/graph/rrdtool/rrdtool.go:142 +0x1a2
github.com/open-falcon/graph/rrdtool.ioWorker()
/home/work/workspace/src/github.com/open-falcon/graph/rrdtool/sync_disk.go:95 +0x38f
created by github.com/open-falcon/graph/rrdtool.Start
/home/work/workspace/src/github.com/open-falcon/graph/rrdtool/rrdtool.go:54 +0x24f

graph连接mysql的疑问

MySQL只需要配一台吗?graph集群里的多个graph连接的是同一个mysql?
类似的问题,多个judge连接的也是同一个redis实例?

rrd数据文件的存储路径

"rrd": {
    "storage": "/home/work/data/6070"
}

这段storage的配置,是否可以配置多个?
如果可以,该怎么配置?
不可以,若需要多个存储目录,该怎么配置?启动多个graph实例吗?还是咋整

为什么代码要写死MIN_STEP = 30s呢

代码http/debug_http.go中 141行
if item.Step < g.MIN_STEP {
item.Step = g.MIN_STEP
}
为什么步长小于30s的强制设定成30s呢,而且是写死没法配置,不太理解,这个设计是出于什么考虑

errno: 0x023d, str:mmap error

有时候报这个错误 errno: 0x023d, str:mmap error 不知道什么原因,没有详细说明。
已经更新到最新的代码,golang 1.7.4 (docker官方仓库golang:lastest版本) build的。

dashboard 空白 errno: 0x023a, str:opening error

root@fdc055cabfe3:/home/work/open-falcon# cat logs/graph.log
errno: 0x023a, str:opening error
errno: 0x023a, str:opening error
errno: 0x023a, str:opening error
errno: 0x023a, str:opening error
errno: 0x023a, str:opening error
errno: 0x023a, str:opening error
errno: 0x023a, str:opening error
errno: 0x023a, str:opening error
errno: 0x023a, str:opening error
errno: 0x023a, str:opening error

使用docker镜像默认配置部署的,dashboard 全部是空白没数据,发现这个错误信息, 不明白什么意思。

"rrd": {
"storage": "/home/work/open-falcon/data/6070"
},
这个目录下是空的,感觉是写数据打开文件失败?,但root启动有写入权限的

关于使用RRD进行存储的疑问

“我们参考RRDtool的理念,在数据每次存入的时候,会自动进行采样、归档。在默认的归档策略,一分钟push一次的频率下,历史数据保存5年。同时为了不丢失信息量,数据归档的时候,会按照平均值采样、最大值采样、最小值采样存三份。用户在查询某个metric,在过去一年的历史数据时,Graph会选择最合适的采样频率,返回采样过后的数据,提高了数据查询速度。”

对这段话,有几个疑问:
1、数据每次存入,怎么理解?什么情况下会触发一次数据存储?一次的存入量,怎么衡量?
2、一分钟push一次的频率下,历史数据保存5年。频率降低的话,是否可以存储更久的数据?
3、对于较久远的历史数据,保存的数据点会不会减少?

[Bug] graph http api broken

curl -vsq localhost:6071/history/

  • Curl_http_done: called premature == 0
  • Empty reply from server
  • Connection #0 to host localhost left intact

$ cd ~/falcon-graph/
$ ./control tail

2017/05/12 18:08:51 server.go:2753: http: panic serving [::1]:59985: runtime error: index out of range
goroutine 20788 [running]:
net/http.(*conn).serve.func1(0xc4200a2c80)
	/usr/local/go/src/net/http/server.go:1721 +0xd0
panic(0x4474900, 0x4720b30)
	/usr/local/go/src/runtime/panic.go:489 +0x2cf
github.com/open-falcon/graph/http.configProcRoutes.func3(0x46fb0a0, 0xc4202582a0, 0xc42000aa00)
	/Users/youzhengchuan/go/src/github.com/open-falcon/graph/http/proc_http.go:30 +0x35c
net/http.HandlerFunc.ServeHTTP(0x450fe28, 0x46fb0a0, 0xc4202582a0, 0xc42000aa00)
	/usr/local/go/src/net/http/server.go:1942 +0x44
net/http.(*ServeMux).ServeHTTP(0x472f380, 0x46fb0a0, 0xc4202582a0, 0xc42000aa00)
	/usr/local/go/src/net/http/server.go:2238 +0x130
net/http.serverHandler.ServeHTTP(0xc4201ee000, 0x46fb0a0, 0xc4202582a0, 0xc42000aa00)
	/usr/local/go/src/net/http/server.go:2568 +0x92
net/http.(*conn).serve(0xc4200a2c80, 0x46fba20, 0xc420224680)
	/usr/local/go/src/net/http/server.go:1825 +0x612
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2668 +0x2ce

graph 崩溃(concurrent map read and map write)

用的是最新版本的代码(gitversion 2d27dc2
长期运行一直很稳定,今天凌晨意外崩溃了。。
可能和当时磁盘IO偏高有关
日志显示这样:

fatal error: concurrent map read and map write

goroutine 61213088 [running]:
runtime.throw(0x86725a, 0x21)
/usr/local/go/src/runtime/panic.go:566 +0x95 fp=0xc438085250 sp=0xc438085230
runtime.mapaccess2(0x7e6e60, 0xc42000d650, 0xc4399b9ac0, 0xc4380852e0, 0xc4380852e0)
/usr/local/go/src/runtime/hashmap.go:340 +0x249 fp=0xc438085298 sp=0xc438085250
reflect.mapaccess(0x7e6e60, 0xc42000d650, 0xc4399b9ac0, 0xc42000d650)
/usr/local/go/src/runtime/hashmap.go:1008 +0x3f fp=0xc4380852d0 sp=0xc438085298
reflect.Value.MapIndex(0x7e6e60, 0xc420088220, 0x195, 0x7c6f20, 0xc4399b9ac0, 0x98, 0x7dcc40, 0xc4399b9af0, 0x94)
/usr/local/go/src/reflect/value.go:1040 +0x128 fp=0xc438085358 sp=0xc4380852d0
encoding/json.(*mapEncoder).encode(0xc42012c208, 0xc42032e0b0, 0x7e6e60, 0xc420088220, 0x195, 0x100)
/usr/local/go/src/encoding/json/encode.go:646 +0x4f0 fp=0xc4380854b0 sp=0xc438085358
encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc42032e0b0, 0x7e6e60, 0xc420088220, 0x195, 0x100)
/usr/local/go/src/encoding/json/encode.go:662 +0x64 fp=0xc4380854f0 sp=0xc4380854b0
encoding/json.(*structEncoder).encode(0xc420418ba0, 0xc42032e0b0, 0x83a420, 0xc4200881c0, 0x199, 0x100)
/usr/local/go/src/encoding/json/encode.go:601 +0x253 fp=0xc438085650 sp=0xc4380854f0
encoding/json.(*structEncoder).(encoding/json.encode)-fm(0xc42032e0b0, 0x83a420, 0xc4200881c0, 0x199, 0xc420080100)
/usr/local/go/src/encoding/json/encode.go:615 +0x64 fp=0xc438085690 sp=0xc438085650
encoding/json.(*ptrEncoder).encode(0xc42012c210, 0xc42032e0b0, 0x827500, 0xc4200881c0, 0x16, 0x820100)
/usr/local/go/src/encoding/json/encode.go:742 +0xe3 fp=0xc4380856d0 sp=0xc438085690
encoding/json.(*ptrEncoder).(encoding/json.encode)-fm(0xc42032e0b0, 0x827500, 0xc4200881c0, 0x16, 0xc420080100)
/usr/local/go/src/encoding/json/encode.go:747 +0x64 fp=0xc438085710 sp=0xc4380856d0
encoding/json.(*encodeState).reflectValue(0xc42032e0b0, 0x827500, 0xc4200881c0, 0x16, 0xc420080100)
/usr/local/go/src/encoding/json/encode.go:307 +0x82 fp=0xc438085748 sp=0xc438085710
encoding/json.interfaceEncoder(0xc42032e0b0, 0x7dcc40, 0xc42e1b02a0, 0x194, 0x7d0100)
/usr/local/go/src/encoding/json/encode.go:573 +0xdb fp=0xc438085788 sp=0xc438085748
encoding/json.(*arrayEncoder).encode(0xc42012c1a8, 0xc42032e0b0, 0x7bfa40, 0xc4416efaa0, 0x97, 0x100)
/usr/local/go/src/encoding/json/encode.go:723 +0xee fp=0xc4380857e0 sp=0xc438085788
encoding/json.(*arrayEncoder).(encoding/json.encode)-fm(0xc42032e0b0, 0x7bfa40, 0xc4416efaa0, 0x97, 0x100)
/usr/local/go/src/encoding/json/encode.go:730 +0x64 fp=0xc438085820 sp=0xc4380857e0
encoding/json.(*sliceEncoder).encode(0xc42012c1b0, 0xc42032e0b0, 0x7bfa40, 0xc4416efaa0, 0x97, 0x7b0100)
/usr/local/go/src/encoding/json/encode.go:697 +0xc1 fp=0xc438085860 sp=0xc438085820
encoding/json.(*sliceEncoder).(encoding/json.encode)-fm(0xc42032e0b0, 0x7bfa40, 0xc4416efaa0, 0x97, 0xc4416e0100)
/usr/local/go/src/encoding/json/encode.go:709 +0x64 fp=0xc4380858a0 sp=0xc438085860
encoding/json.(*encodeState).reflectValue(0xc42032e0b0, 0x7bfa40, 0xc4416efaa0, 0x97, 0xc4416e0100)
/usr/local/go/src/encoding/json/encode.go:307 +0x82 fp=0xc4380858d8 sp=0xc4380858a0
encoding/json.interfaceEncoder(0xc42032e0b0, 0x7dcc40, 0xc4416efcb0, 0x94, 0x100)
/usr/local/go/src/encoding/json/encode.go:573 +0xdb fp=0xc438085918 sp=0xc4380858d8
encoding/json.(*structEncoder).encode(0xc420418a20, 0xc42032e0b0, 0x802880, 0xc4416efca0, 0x99, 0x800100)
/usr/local/go/src/encoding/json/encode.go:601 +0x253 fp=0xc438085a78 sp=0xc438085918
encoding/json.(*structEncoder).(encoding/json.encode)-fm(0xc42032e0b0, 0x802880, 0xc4416efca0, 0x99, 0xc4416e0100)
/usr/local/go/src/encoding/json/encode.go:615 +0x64 fp=0xc438085ab8 sp=0xc438085a78
encoding/json.(*encodeState).reflectValue(0xc42032e0b0, 0x802880, 0xc4416efca0, 0x99, 0x100)
/usr/local/go/src/encoding/json/encode.go:307 +0x82 fp=0xc438085af0 sp=0xc438085ab8
encoding/json.(*encodeState).marshal(0xc42032e0b0, 0x802880, 0xc4416efca0, 0x100, 0x0, 0x0)
/usr/local/go/src/encoding/json/encode.go:280 +0xb8 fp=0xc438085b28 sp=0xc438085af0
encoding/json.Marshal(0x802880, 0xc4416efca0, 0x20, 0xc4204d2401, 0xc4416efca0, 0xc42bde3bd0, 0x41131b)
/usr/local/go/src/encoding/json/encode.go:145 +0x8f fp=0xc438085b70 sp=0xc438085b28
github.com/open-falcon/graph/http.RenderJson(0xc3d3e0, 0xc4287aa410, 0x802880, 0xc4416efca0)
/usr/local/gopath/src/github.com/open-falcon/graph/http/http.go:32 +0x39 fp=0xc438085bd0 sp=0xc438085b70
github.com/open-falcon/graph/http.RenderDataJson(0xc3d3e0, 0xc4287aa410, 0x7bfa40, 0xc4416efaa0)
/usr/local/gopath/src/github.com/open-falcon/graph/http/http.go:42 +0xb4 fp=0xc438085c28 sp=0xc438085bd0
github.com/open-falcon/graph/http.configProcRoutes.func2(0xc3d3e0, 0xc4287aa410, 0xc4336d50e0)
/usr/local/gopath/src/github.com/open-falcon/graph/http/proc_http.go:20 +0x92 fp=0xc438085c78 sp=0xc438085c28
net/http.HandlerFunc.ServeHTTP(0x893c08, 0xc3d3e0, 0xc4287aa410, 0xc4336d50e0)
/usr/local/go/src/net/http/server.go:1726 +0x44 fp=0xc438085ca0 sp=0xc438085c78
net/http.(*ServeMux).ServeHTTP(0xc53c40, 0xc3d3e0, 0xc4287aa410, 0xc4336d50e0)
/usr/local/go/src/net/http/server.go:2022 +0x7f fp=0xc438085ce0 sp=0xc438085ca0
net/http.serverHandler.ServeHTTP(0xc420138100, 0xc3d3e0, 0xc4287aa410, 0xc4336d50e0)
/usr/local/go/src/net/http/server.go:2202 +0x7d fp=0xc438085d28 sp=0xc438085ce0
net/http.(*conn).serve(0xc42badfc80, 0xc3de60, 0xc45161aec0)
/usr/local/go/src/net/http/server.go:1579 +0x4b7 fp=0xc438085f88 sp=0xc438085d28
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc438085f90 sp=0xc438085f88
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2293 +0x44d

为什么查询结果的timestamp和push data时给定的不一样

我在push data时,设定的timestamp比如是
tp=int(time.mktime(time.strptime('2017-07-08 00:10:00', '%Y-%m-%d %H:%M:%S')))
tp是1499443800,给定的value=93
我在调用/graph/history时候,设定"start": 1499150029, "end": 1499505624,返回的结果里面却没有这个时间戳,
[
{
"endpoint": "test-endpoint",
"counter": "test-metric/stats=cw",
"dstype": "GAUGE",
"step": 86400,
"Values": [
{
"timestamp": 1499212800,
"value": null
},
{
"timestamp": 1499299200,
"value": null
},
{
"timestamp": 1499385600,
"value": 93
},
{
"timestamp": 1499472000,
"value": null
}
]
}
]
值为93的时间戳显示的是1499385600,为什么会不一样呢?

graph和数据库连接超过最大等待时间

现在graph和mysql连接后,是否对wait_timeout的心跳检测,今天在日志中发现了如下日志:
[MySQL] 2015/09/14 14:52:41 packets.go:118: write tcp 127.0.0.1:3306: broken pipe
[MySQL] 2015/09/14 14:52:41 packets.go:118: write tcp 127.0.0.1:3306: broken pipe
[MySQL] 2015/09/14 14:52:41 packets.go:118: write tcp 127.0.0.1:3306: broken pipe
[MySQL] 2015/09/14 14:52:41 packets.go:118: write tcp 127.0.0.1:3306: broken pipe
如果有该如何配置呢?

hashKey()返回值为uint32强转成int,idx计算出来为负数,直接panic了

store/storage.go 文件中

func (this *GraphItemMap) First(key string) *cmodel.GraphItem {
    this.RLock()
    defer this.RUnlock()
    idx := int(hashKey(key)) % this.Size
    L, ok := this.A[idx][key]
  • hashKey()函数返回值为uint32的,如果返回的值为3061298526,计算出来的idx为负数,graph直接
    panic。
    神人,帮着看一下^_^

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.