Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
enoch
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DevOps
enoch
Commits
3fe4ee2d
Commit
3fe4ee2d
authored
Nov 20, 2019
by
jingbo.wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
总表 OK
parent
84b776f3
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
62 additions
and
40 deletions
+62
-40
report_form.go
pkg/report-form/report_form.go
+4
-4
report_form_test.go
pkg/report-form/report_form_test.go
+11
-0
service.go
pkg/report-form/service.go
+11
-0
service_map.go
pkg/report-form/service_map.go
+13
-17
service_map_test.go
pkg/report-form/service_map_test.go
+1
-1
service_test.go
pkg/report-form/service_test.go
+5
-4
trace.go
pkg/report-form/trace.go
+13
-11
trace_test.go
pkg/report-form/trace_test.go
+4
-3
No files found.
pkg/report-form/report_form.go
View file @
3fe4ee2d
...
...
@@ -82,7 +82,7 @@ func GetServiceNameListFromDb() []string {
}
//从db拉取数据
func
GetDataFromDb
(
startTime
time
.
Time
,
endTime
time
.
Time
)
*
ServiceMap
{
func
GetDataFromDb
(
startTime
time
.
Time
,
endTime
time
.
Time
)
ServiceMap
{
serviceNameList
:=
GetServiceNameListFromDb
()
serviceMap
:=
NewServiceMap
()
...
...
@@ -95,7 +95,7 @@ func GetDataFromDb(startTime time.Time, endTime time.Time) *ServiceMap {
for
_
,
v
:=
range
resp
.
Results
{
for
_
,
row
:=
range
v
.
Series
{
traceList
:=
rowToTraceList
(
row
)
traceList
:=
rowToTraceList
(
serviceName
,
row
)
for
_
,
trace
:=
range
traceList
{
serviceMap
.
AddTrace
(
serviceName
,
trace
.
Path
,
trace
)
}
...
...
@@ -106,7 +106,7 @@ func GetDataFromDb(startTime time.Time, endTime time.Time) *ServiceMap {
return
serviceMap
}
func
rowToTraceList
(
row
models
.
Row
)
[]
*
Trace
{
func
rowToTraceList
(
serviceName
string
,
row
models
.
Row
)
[]
*
Trace
{
//[time duration host msg path sys_name traceId]
rtn
:=
make
([]
*
Trace
,
0
)
durationIndex
,
ok
:=
getModRowKeyIdx
(
"duration"
,
row
)
...
...
@@ -165,7 +165,7 @@ func rowToTraceList(row models.Row) []*Trace {
continue
}
rtn
=
append
(
rtn
,
NewTrace
(
id
,
host
,
path
,
duration
,
timePoint
))
rtn
=
append
(
rtn
,
NewTrace
(
id
,
serviceName
,
host
,
path
,
duration
,
timePoint
))
}
return
rtn
...
...
pkg/report-form/report_form_test.go
View file @
3fe4ee2d
...
...
@@ -14,4 +14,15 @@ func TestGetDataFromDb(t *testing.T) {
start
:=
end
.
AddDate
(
0
,
0
,
-
10
)
sm
:=
GetDataFromDb
(
start
,
end
)
t
.
Log
(
sm
.
GetAverageTime
(),
sm
.
GetCount
())
tl
:=
NewTraceList
(
""
)
for
_
,
v
:=
range
sm
{
if
trace
,
ok
:=
v
.
GetMaxMediaTrace
();
ok
{
tl
.
AddTrace
(
trace
)
}
}
list
:=
tl
.
GetTraceList
()
for
_
,
v
:=
range
list
{
t
.
Log
(
v
.
Duration
,
v
.
ServiceName
,
v
.
Id
,
v
.
Path
)
}
}
pkg/report-form/service.go
View file @
3fe4ee2d
...
...
@@ -28,6 +28,17 @@ func (s *Service) DelPath(path string) {
delete
(
s
.
pathMap
,
path
)
}
//获取最大中位值的trace
func
(
s
*
Service
)
GetMaxMediaTrace
()
(
*
Trace
,
bool
)
{
tl
:=
NewTraceList
(
""
)
for
_
,
path
:=
range
s
.
pathMap
{
if
trace
,
ok
:=
path
.
GetMediaTrace
();
ok
{
tl
.
AddTrace
(
trace
)
}
}
return
tl
.
GetMediaTrace
()
}
//求服务的平均响应时间
func
(
s
*
Service
)
GetAverageTime
()
time
.
Duration
{
count
:=
s
.
GetCount
()
...
...
pkg/report-form/service_map.go
View file @
3fe4ee2d
...
...
@@ -2,40 +2,36 @@ package report_form
import
"time"
type
ServiceMap
struct
{
serviceMap
map
[
string
]
*
Service
}
type
ServiceMap
map
[
string
]
*
Service
func
NewServiceMap
()
*
ServiceMap
{
return
&
ServiceMap
{
serviceMap
:
make
(
map
[
string
]
*
Service
),
}
func
NewServiceMap
()
ServiceMap
{
return
make
(
map
[
string
]
*
Service
)
}
//添加trace
func
(
sm
*
ServiceMap
)
AddTrace
(
service
string
,
path
string
,
trace
*
Trace
)
{
if
_
,
ok
:=
sm
.
serviceMap
[
service
];
!
ok
{
sm
.
serviceMap
[
service
]
=
NewService
(
service
)
func
(
sm
ServiceMap
)
AddTrace
(
service
string
,
path
string
,
trace
*
Trace
)
{
if
_
,
ok
:=
sm
[
service
];
!
ok
{
sm
[
service
]
=
NewService
(
service
)
}
sm
.
serviceMap
[
service
]
.
AddTrace
(
path
,
trace
)
sm
[
service
]
.
AddTrace
(
path
,
trace
)
}
//获取service
func
(
sm
*
ServiceMap
)
GetService
(
service
string
)
(
*
Service
,
bool
)
{
s
,
ok
:=
sm
.
serviceMap
[
service
]
func
(
sm
ServiceMap
)
GetService
(
service
string
)
(
*
Service
,
bool
)
{
s
,
ok
:=
sm
[
service
]
return
s
,
ok
}
//求服务的平均响应时间
func
(
sm
*
ServiceMap
)
GetAverageTime
()
time
.
Duration
{
func
(
sm
ServiceMap
)
GetAverageTime
()
time
.
Duration
{
count
:=
sm
.
GetCount
()
if
count
==
0
{
return
0
}
sum
:=
time
.
Duration
(
0
)
for
_
,
v
:=
range
sm
.
serviceMap
{
for
_
,
v
:=
range
sm
{
for
_
,
vv
:=
range
v
.
pathMap
{
for
_
,
vvv
:=
range
vv
.
traceList
{
sum
+=
vvv
.
Duration
...
...
@@ -47,9 +43,9 @@ func (sm *ServiceMap) GetAverageTime() time.Duration {
}
//求服务的访问量
func
(
sm
*
ServiceMap
)
GetCount
()
int
{
func
(
sm
ServiceMap
)
GetCount
()
int
{
sum
:=
0
for
_
,
v
:=
range
sm
.
serviceMap
{
for
_
,
v
:=
range
sm
{
sum
+=
v
.
GetCount
()
}
return
sum
...
...
pkg/report-form/service_map_test.go
View file @
3fe4ee2d
...
...
@@ -12,7 +12,7 @@ func TestNewServiceMap(t *testing.T) {
host
=
"1.1.1.1"
)
sm
:=
NewServiceMap
()
sm
.
AddTrace
(
service
,
path
,
NewTrace
(
"1"
,
host
,
path
,
1
,
time
.
Now
()))
sm
.
AddTrace
(
service
,
path
,
NewTrace
(
"1"
,
service
,
host
,
path
,
1
,
time
.
Now
()))
s
,
ok
:=
sm
.
GetService
(
service
)
if
!
ok
{
t
.
Error
(
"can not found service:"
,
service
)
...
...
pkg/report-form/service_test.go
View file @
3fe4ee2d
...
...
@@ -8,13 +8,14 @@ import (
func
TestNewService
(
t
*
testing
.
T
)
{
const
(
path
=
"/hello"
host
=
"1.1.1.1"
path
=
"/hello"
host
=
"1.1.1.1"
serviceName
=
"aaaa"
)
s
:=
NewService
(
"aaaa"
)
s
:=
NewService
(
serviceName
)
for
i
:=
1
;
i
<=
10
;
i
++
{
s
.
AddTrace
(
path
,
NewTrace
(
strconv
.
Itoa
(
i
),
host
,
path
,
time
.
Duration
(
i
),
time
.
Now
()
.
Add
(
time
.
Duration
(
i
))))
s
.
AddTrace
(
path
,
NewTrace
(
strconv
.
Itoa
(
i
),
serviceName
,
host
,
path
,
time
.
Duration
(
i
),
time
.
Now
()
.
Add
(
time
.
Duration
(
i
))))
}
t
.
Log
(
s
.
GetAverageTime
())
...
...
pkg/report-form/trace.go
View file @
3fe4ee2d
...
...
@@ -7,20 +7,22 @@ import (
)
type
Trace
struct
{
Id
string
Host
string
Path
string
Duration
time
.
Duration
TimePoint
time
.
Time
Id
string
ServiceName
string
Host
string
Path
string
Duration
time
.
Duration
TimePoint
time
.
Time
}
func
NewTrace
(
id
string
,
host
string
,
path
string
,
duration
time
.
Duration
,
timePoint
time
.
Time
)
*
Trace
{
func
NewTrace
(
id
string
,
serviceName
string
,
host
string
,
path
string
,
duration
time
.
Duration
,
timePoint
time
.
Time
)
*
Trace
{
return
&
Trace
{
Id
:
id
,
Host
:
host
,
Path
:
path
,
Duration
:
duration
,
TimePoint
:
timePoint
,
Id
:
id
,
ServiceName
:
serviceName
,
Host
:
host
,
Path
:
path
,
Duration
:
duration
,
TimePoint
:
timePoint
,
}
}
...
...
pkg/report-form/trace_test.go
View file @
3fe4ee2d
...
...
@@ -8,12 +8,13 @@ import (
func
TestNewTraceList
(
t
*
testing
.
T
)
{
const
(
path
=
"/hello"
host
=
"1.1.1.1"
path
=
"/hello"
host
=
"1.1.1.1"
serviceName
=
"aaaa"
)
tl
:=
NewTraceList
(
path
)
for
i
:=
1
;
i
<=
10
;
i
++
{
tl
.
AddTrace
(
NewTrace
(
strconv
.
Itoa
(
i
),
host
,
path
,
time
.
Duration
(
i
),
time
.
Now
()
.
Add
(
time
.
Duration
(
i
))))
tl
.
AddTrace
(
NewTrace
(
strconv
.
Itoa
(
i
),
serviceName
,
host
,
path
,
time
.
Duration
(
i
),
time
.
Now
()
.
Add
(
time
.
Duration
(
i
))))
}
t
.
Log
(
tl
.
GetCount
())
...
...
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