잘 나는 그것이 어떻게 작동하는지 발견,하지만 난 어디 문서화되지 않는다는 이상한라고해야하고 소스 코드에 약간의 수정을 포함 ...
첫 번째 상황의
조금 나는 "Nagios의"라는 influxdb 데이터베이스를 가지고있다. 이 데이터베이스에는 여러 시리즈가 있습니다. 다음과 같이 influxdb에서 쇼 시리즈는 시리즈 CPULoad의 데이터의 다음
> show series
key
---
nagios.CPULoad,hostname=cbba.storage,state=OK
nagios.CPULoad,hostname=ussd1,state=OK
nagios.CPULoad,hostname=ussd2,state=OK
nagios.CPULoad,hostname=ussd3,state=OK
nagios.CPULoad,hostname=ussd4,state=OK
구조는 scripted.js이
> select * from "nagios.CPULoad" limit 1
name: nagios.CPULoad
time hostname load1 load15 load5 state
---- -------- ----- ------ ----- -----
1487867813000000000 cbba.storage 0 0 0 OK
내 URL처럼 보여줍니다
http://10.72.6.220:3000/dashboard/script/scripted.js?name=CPULoad&field=load1&hostname=ussd3
name indicates the series in influxDB I want to graph
field indicates which field to use
hostname indicates the host to choose
SELECT mean("load1") FROM "nagios.CPULoad" WHERE "hostname" = 'ussd3' AND $timeFilter GROUP BY time($interval) fill(null)
다음과 같이 내가 grafana scripted.js 구축하고자하는 SQL입니다 내부 scripted.js 구축 6,
코드는 dashboard.rows 구조에서 "대상"파라미터를 수정하는 것을 포함하고,이 같은 것으로 판명하기
targets: [
{
"measurement": "nagios." + ARGS.name,
"metric": ARGS.name,
"tags": {
"hostname": {
operator: "=" ,
value: ARGS.hostname
}
},
"select": [[{
type: "field",
params: [ARGS.field]
}, {
type: "mean",
params: []
}]],
},
],
(I 코드 거쳐이 발견) 이유는 모르겠지만 키 "호스트 이름"을 고려하기 위해 코드를 수정해야했습니다. b는 "호스트 이름"
을 수행 이후 편의
a.prototype.renderTagCondition = function(a, b, c) {
var d = ""
, e = a.operator
, f = a.value;
return b > 0 && (d = (a.condition || "AND") + " "),
e || (e = /^\/.*\/$/.test(f) ? "=~" : "="),
"=~" !== e && "!~" !== e ? (c && (f = this.templateSrv.replace(f, this.scopedVars)),
">" !== e && "<" !== e && (f = "'" + f.replace(/\\/g, "\\\\") + "'")) : c && (f = this.templateSrv.replace(f, this.scopedVars, "regex")),
d + '"' + a.key + '" ' + e + " " + f
}
d + '"' + a.key + '" ' + e + " " + f
잘못된 것 같다 반환 값 여기를 복사 기능 renderTagCondition에서 ... 그것은
d + '"' + b + '" ' + e + " " + f
해야한다 내가 처음에 언급 한 URL을 호출이 모든 후
는 모두가 아 꽤 잘되었다 L