Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nexpie-grafana-theme
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kornkitt Poolsup
nexpie-grafana-theme
Commits
86aea892
Commit
86aea892
authored
Sep 01, 2016
by
bergquist
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
style(tsdb): extract some methods
parent
d73547c0
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
44 additions
and
28 deletions
+44
-28
pkg/tsdb/graphite/graphite.go
+44
-28
No files found.
pkg/tsdb/graphite/graphite.go
View file @
86aea892
...
...
@@ -36,7 +36,7 @@ func init() {
func
(
e
*
GraphiteExecutor
)
Execute
(
queries
tsdb
.
QuerySlice
,
context
*
tsdb
.
QueryContext
)
*
tsdb
.
BatchResult
{
result
:=
&
tsdb
.
BatchResult
{}
params
:=
url
.
Values
{
formData
:=
url
.
Values
{
"from"
:
[]
string
{
"-"
+
formatTimeRange
(
context
.
TimeRange
.
From
)},
"until"
:
[]
string
{
formatTimeRange
(
context
.
TimeRange
.
To
)},
"format"
:
[]
string
{
"json"
},
...
...
@@ -44,63 +44,79 @@ func (e *GraphiteExecutor) Execute(queries tsdb.QuerySlice, context *tsdb.QueryC
}
for
_
,
query
:=
range
queries
{
params
[
"target"
]
=
[]
string
{
query
.
Query
}
formData
[
"target"
]
=
[]
string
{
query
.
Query
}
}
u
,
_
:=
url
.
Parse
(
e
.
Url
)
u
.
Path
=
path
.
Join
(
u
.
Path
,
"render"
)
glog
.
Info
(
"Graphite request body"
,
"formdata"
,
params
.
Encode
())
glog
.
Info
(
"Graphite request body"
,
"formdata"
,
formData
.
Encode
())
req
,
err
:=
http
.
NewRequest
(
http
.
MethodPost
,
u
.
String
(),
strings
.
NewReader
(
params
.
Encode
())
)
req
,
err
:=
e
.
createRequest
(
formData
)
if
err
!=
nil
{
glog
.
Info
(
"Failed to create request"
,
"error"
,
err
)
result
.
Error
=
fmt
.
Errorf
(
"Failed to create request. error: %v"
,
err
)
result
.
Error
=
err
return
result
}
req
.
Header
.
Set
(
"Content-Type"
,
"application/x-www-form-urlencoded"
)
if
e
.
BasicAuth
{
re
q
.
SetBasicAuth
(
e
.
BasicAuthUser
,
e
.
BasicAuthPassword
)
res
,
err
:=
HttpClient
.
Do
(
req
)
if
err
!=
nil
{
result
.
Error
=
err
re
turn
result
}
res
,
err
:=
HttpClient
.
Do
(
req
)
data
,
err
:=
e
.
parseResponse
(
res
)
if
err
!=
nil
{
result
.
Error
=
err
return
result
}
result
.
QueryResults
=
make
(
map
[
string
]
*
tsdb
.
QueryResult
)
queryRes
:=
&
tsdb
.
QueryResult
{}
for
_
,
series
:=
range
data
{
queryRes
.
Series
=
append
(
queryRes
.
Series
,
&
tsdb
.
TimeSeries
{
Name
:
series
.
Target
,
Points
:
series
.
DataPoints
,
})
}
result
.
QueryResults
[
"A"
]
=
queryRes
return
result
}
func
(
e
*
GraphiteExecutor
)
parseResponse
(
res
*
http
.
Response
)
([]
TargetResponseDTO
,
error
)
{
body
,
err
:=
ioutil
.
ReadAll
(
res
.
Body
)
defer
res
.
Body
.
Close
()
if
err
!=
nil
{
result
.
Error
=
err
return
result
return
nil
,
err
}
if
res
.
StatusCode
==
http
.
StatusUnauthorized
{
glog
.
Info
(
"Request is Unauthorized"
,
"status"
,
res
.
Status
,
"body"
,
string
(
body
))
result
.
Error
=
fmt
.
Errorf
(
"Request is Unauthorized status: %v body: %s"
,
res
.
Status
,
string
(
body
))
return
result
return
nil
,
fmt
.
Errorf
(
"Request is Unauthorized status: %v body: %s"
,
res
.
Status
,
string
(
body
))
}
var
data
[]
TargetResponseDTO
err
=
json
.
Unmarshal
(
body
,
&
data
)
if
err
!=
nil
{
glog
.
Info
(
"Failed to unmarshal graphite response"
,
"error"
,
err
,
"status"
,
res
.
Status
,
"body"
,
string
(
body
))
result
.
Error
=
err
return
result
return
nil
,
err
}
result
.
QueryResults
=
make
(
map
[
string
]
*
tsdb
.
QueryResult
)
queryRes
:=
&
tsdb
.
QueryResult
{}
for
_
,
series
:=
range
data
{
queryRes
.
Series
=
append
(
queryRes
.
Series
,
&
tsdb
.
TimeSeries
{
Name
:
series
.
Target
,
Points
:
series
.
DataPoints
,
})
return
data
,
nil
}
func
(
e
*
GraphiteExecutor
)
createRequest
(
data
url
.
Values
)
(
*
http
.
Request
,
error
)
{
u
,
_
:=
url
.
Parse
(
e
.
Url
)
u
.
Path
=
path
.
Join
(
u
.
Path
,
"render"
)
req
,
err
:=
http
.
NewRequest
(
http
.
MethodPost
,
u
.
String
(),
strings
.
NewReader
(
data
.
Encode
()))
if
err
!=
nil
{
glog
.
Info
(
"Failed to create request"
,
"error"
,
err
)
return
nil
,
fmt
.
Errorf
(
"Failed to create request. error: %v"
,
err
)
}
result
.
QueryResults
[
"A"
]
=
queryRes
return
result
req
.
Header
.
Set
(
"Content-Type"
,
"application/x-www-form-urlencoded"
)
if
e
.
BasicAuth
{
req
.
SetBasicAuth
(
e
.
BasicAuthUser
,
e
.
BasicAuthPassword
)
}
return
req
,
err
}
func
formatTimeRange
(
input
string
)
string
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment