Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
event-analysis
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
崔义雄
event-analysis
Commits
c10922d4
Commit
c10922d4
authored
May 12, 2020
by
Kerwin_Cui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
编辑
parent
f0804268
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
185 additions
and
184 deletions
+185
-184
event_analysis/urls.py
event_analysis/urls.py
+1
-0
event_analysis/views.py
event_analysis/views.py
+138
-3
templates/event_analysis/alarm_edit.html
templates/event_analysis/alarm_edit.html
+22
-52
templates/event_analysis/error_alarm.html
templates/event_analysis/error_alarm.html
+24
-129
No files found.
event_analysis/urls.py
View file @
c10922d4
...
...
@@ -32,6 +32,7 @@ urlpatterns = [
url
(
r'^alarm_edit/$'
,
alarm_edit
),
url
(
r'^alarm_count/$'
,
alarm_count
),
url
(
r'^create_alarm/$'
,
create_alarm
),
url
(
r'^edit_alarm_display/$'
,
edit_alarm_display
),
url
(
r'^edit_alarm/$'
,
edit_alarm
),
url
(
r'^search_alarm/$'
,
search_alarm
),
url
(
r'^del_alarm/$'
,
del_alarm
),
...
...
event_analysis/views.py
View file @
c10922d4
...
...
@@ -2266,8 +2266,91 @@ def create_alarm(request):
)
def
edit_alarm_display
(
request
):
try
:
req
=
json
.
loads
(
request
.
body
)
alarm_number
=
req
[
'alarm_number'
]
alarm
=
Error_alarm
.
objects
.
get
(
alarm_number
=
alarm_number
)
client
=
get_client_by_request
(
request
)
bk_token
=
request
.
COOKIES
.
get
(
'bk_token'
)
client
.
set_bk_api_ver
(
'v2'
)
parse
=
{
'bk_token'
:
bk_token
,
'bk_app_code'
:
APP_ID
,
'bk_app_secret'
:
APP_TOKEN
}
result
=
client
.
bk_login
.
get_user
(
parse
)
login_person
=
result
[
'data'
][
'chname'
]
if
login_person
==
alarm
.
user
:
show_src
=
0
else
:
show_src
=
1
data
=
{
'alarm_type'
:
alarm
.
alarm_level
if
alarm
.
alarm_level
else
''
,
'alarm_system'
:
alarm
.
alarm_system
if
alarm
.
alarm_system
else
''
,
'alarm_time'
:
alarm
.
alarm_happen_time
.
strftime
(
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
)
if
alarm
.
alarm_happen_time
else
''
,
'recover_time'
:
alarm
.
alarm_recover_time
.
strftime
(
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
)
if
alarm
.
alarm_recover_time
else
''
,
'alarm_summary'
:
alarm
.
alarm_summary
if
alarm
.
alarm_summary
else
''
,
'if_interpose'
:
alarm
.
if_interpose
if
alarm
.
if_interpose
else
''
,
'solve_process'
:
alarm
.
solve_process
if
alarm
.
solve_process
else
''
,
'if_workday'
:
alarm
.
if_workday
if
alarm
.
if_workday
else
''
,
'if_auto'
:
alarm
.
if_auto
if
alarm
.
if_auto
else
''
,
'auto_sysname'
:
alarm
.
auto_sysname
if
alarm
.
auto_sysname
else
''
,
'auto_name'
:
alarm
.
auto_name
if
alarm
.
auto_name
else
''
,
'other_autoname'
:
alarm
.
other_autoname
if
alarm
.
other_autoname
else
''
,
'monitor_name'
:
alarm
.
monitor_name
if
alarm
.
monitor_name
else
''
,
'if_icube'
:
alarm
.
if_icube
if
alarm
.
if_icube
else
''
,
'show_src'
:
show_src
}
return
render_json
(
{
"result"
:
True
,
"message"
:
u"查询数据成功"
,
"code"
:
0
,
"results"
:
data
,
}
)
except
Exception
as
e
:
return
render_json
(
{
"result"
:
False
,
"code"
:
1
,
"message"
:
u"未知错误:
%
s"
%
e
,
"data"
:
{}
}
)
def
edit_alarm
(
request
):
pass
try
:
data
=
json
.
loads
(
request
.
body
)
alarm_type
=
data
[
'alarm_type'
]
alarm_system
=
data
[
'alarm_system'
]
alarm_time
=
data
[
'alarm_time'
]
recover_time
=
data
[
'recover_time'
]
alarm_summary
=
data
[
'alarm_summary'
]
if_interpose
=
data
[
'if_interpose'
]
solve_process
=
data
[
'solve_process'
]
if_workday
=
data
[
'if_workday'
]
if_auto
=
data
[
'if_auto'
]
auto_sysname
=
data
[
'auto_sysname'
]
auto_name
=
data
[
'auto_name'
]
other_autoname
=
data
[
'other_autoname'
]
monitor_name
=
data
[
'monitor_name'
]
if_icube
=
data
[
'if_icube'
]
alarm_time
=
alarm_time
.
replace
(
'T'
,
' '
)
alarm_time
=
alarm_time
[
0
:
-
5
]
alarm_time
=
datetime
.
datetime
.
strptime
(
alarm_time
,
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
alarm_time
=
(
alarm_time
+
datetime
.
timedelta
(
hours
=
8
))
recover_time
=
recover_time
.
replace
(
'T'
,
' '
)
recover_time
=
recover_time
[
0
:
-
5
]
recover_time
=
datetime
.
datetime
.
strptime
(
recover_time
,
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
recover_time
=
(
recover_time
+
datetime
.
timedelta
(
hours
=
8
))
except
Exception
as
e
:
return
render_json
(
{
"result"
:
False
,
"code"
:
1
,
"message"
:
u"未知错误:
%
s"
%
e
,
"data"
:
{}
}
)
def
del_alarm
(
request
):
...
...
@@ -2306,10 +2389,49 @@ def del_alarm(request):
def
create_alarm_by_icube
(
request
):
try
:
req
=
json
.
loads
(
request
.
body
)
client
=
get_client_by_request
(
request
)
bk_token
=
request
.
COOKIES
.
get
(
'bk_token'
)
client
.
set_bk_api_ver
(
'v2'
)
parse
=
{
'bk_token'
:
bk_token
,
'bk_app_code'
:
APP_ID
,
'bk_app_secret'
:
APP_TOKEN
}
result
=
client
.
bk_login
.
get_user
(
parse
)
login_person
=
result
[
'data'
][
'chname'
]
for
i
in
req
[
'info'
]:
time
=
i
[
'alarm_time'
]
time
=
time
.
replace
(
'-'
,
''
)
time
=
time
.
replace
(
' '
,
''
)
time
=
time
.
replace
(
':'
,
''
)
alarm_number
=
'alarm_'
+
time
if_exit
=
Error_alarm
.
objects
.
filter
(
alarm_number__contains
=
alarm_number
)
alarm_number
=
alarm_number
+
'_'
+
str
(
len
(
if_exit
))
alarm_time
=
i
[
'alarm_time'
]
alarm_time
=
datetime
.
datetime
.
strptime
(
alarm_time
,
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
system
=
req
[
'system'
]
system
=
Syetem
.
objects
.
get
(
systemcode
=
system
)
alarm_system
=
[
system
.
systemname
]
error_alarm
=
Error_alarm
.
objects
.
create
(
alarm_number
=
alarm_number
,
alarm_summary
=
i
[
'alarm_info'
],
alarm_level
=
''
,
alarm_system
=
alarm_system
,
alarm_happen_time
=
alarm_time
,
alarm_recover_time
=
alarm_time
,
if_interpose
=
''
,
solve_process
=
''
,
if_workday
=
''
,
if_auto
=
''
,
auto_sysname
=
''
,
auto_name
=
''
,
other_autoname
=
''
,
monitor_name
=
''
,
if_icube
=
''
,
user
=
login_person
)
error_alarm
.
save
()
return
render_json
(
{
"result"
:
True
,
"code"
:
0
,
"message"
:
u"预警
删除
成功!"
,
"message"
:
u"预警
新建
成功!"
,
"data"
:
''
})
except
Exception
as
e
:
...
...
@@ -2322,6 +2444,7 @@ def create_alarm_by_icube(request):
}
)
def
search_alarm
(
request
):
try
:
req
=
json
.
loads
(
request
.
body
)
...
...
@@ -2330,8 +2453,20 @@ def search_alarm(request):
alarm_list
=
alarm_list
.
filter
(
alarm_system__contains
=
req
[
'data'
][
'alarm_system'
])
if
req
[
'data'
][
'priority'
]:
alarm_list
=
alarm_list
.
filter
(
alarm_level
=
req
[
'data'
][
'priority'
])
# if req['dateoutinfo']:
# if req['dateoutinfo'] == '' or req['event_hap_time'] == None:
# pass
# else:
# hptime_choose = req.get("event_hap_time")
# startTime = hptime_choose[0]
# startTime = datetime.datetime.strptime(startTime[0:10], "%Y-%m-%d")
# startTime = (startTime + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
# endTime = hptime_choose[1]
# endTime = datetime.datetime.strptime(endTime[0:10], "%Y-%m-%d")
# endTime = (endTime + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
# eventList = eventList.filter(event_happened_time__gte=startTime).filter(
# event_happened_time__lte=endTime)
if
req
[
'data'
][
'alarm_number'
]:
alarm_list
=
alarm_list
.
filter
(
alarm_number__contains
=
req
[
'data'
][
'alarm_number'
])
...
...
templates/event_analysis/alarm_edit.html
View file @
c10922d4
...
...
@@ -32,7 +32,7 @@
<div
id=
"alarmEdit"
>
<div
class=
"alarmEdit"
v-cloak
>
<div
style=
" padding: 20px;"
>
<el-form
label-width=
"90px"
:model=
"formLine"
>
<el-form
label-width=
"90px"
:model=
"formLine"
::disabled=
"showStatus"
>
<div
class=
"bk-panel"
>
<div>
<el-form-item
label=
"故障预警级别:"
label-width=
"200px"
class=
"normal"
...
...
@@ -87,8 +87,8 @@
<el-form-item
label=
"是否需要干预:"
class=
"normal"
label-width=
"200px"
>
<el-radio-group
style=
"margin-left: 5px;"
@
change=
"changeAuto"
v-model=
"formLine.if_interpose"
>
<el-radio
:label=
"
4
"
>
是
</el-radio>
<el-radio
:label=
"
8
"
>
否
</el-radio>
<el-radio
:label=
"
1
"
>
是
</el-radio>
<el-radio
:label=
"
2
"
>
否
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"处置过程:"
label-width=
"200px"
class=
"normal"
...
...
@@ -101,17 +101,17 @@
<el-form-item
label=
"是否为工作日:"
class=
"normal"
label-width=
"200px"
>
<el-radio-group
style=
"margin-left: 5px;"
@
change=
"changeAuto"
v-model=
"formLine.if_workday"
>
<el-radio
:label=
"
4
"
>
是
</el-radio>
<el-radio
:label=
"
8
"
>
否
</el-radio>
<el-radio
:label=
"
3
"
>
是
</el-radio>
<el-radio
:label=
"
4
"
>
否
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"是否自动化处理:"
class=
"normal"
label-width=
"200px"
>
<el-radio-group
style=
"margin-left: 5px;"
@
change=
"changeAuto"
v-model=
"formLine.if_auto"
>
<el-radio
:label=
"
4
"
>
已自动化
</el-radio>
<el-radio
:label=
"
8
"
>
已自动化(非一体化平台)
</el-radio>
<el-radio
:label=
"
6
"
style=
"margin-left: 47px"
>
未自动化
</el-radio>
<el-radio
:label=
"
5
"
>
已自动化
</el-radio>
<el-radio
:label=
"
6
"
>
已自动化(非一体化平台)
</el-radio>
<el-radio
:label=
"
7
"
style=
"margin-left: 47px"
>
未自动化
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"系统所属名称:"
label-width=
"200px"
class=
"normal"
...
...
@@ -154,8 +154,8 @@
<el-form-item
label=
"告警是否来自一体化平台:"
class=
"normal"
label-width=
"200px"
>
<el-radio-group
style=
"margin-left: 5px;"
@
change=
"changeAuto"
v-model=
"formLine.if_icube"
:disabled=
"true"
>
<el-radio
:label=
"
4
"
>
是
</el-radio>
<el-radio
:label=
"
8
"
>
否
</el-radio>
<el-radio
:label=
"
8
"
>
是
</el-radio>
<el-radio
:label=
"
9
"
>
否
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
...
...
@@ -338,54 +338,26 @@
mounted
()
{
let
vm
=
this
;
let
data
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'
alarm_time
'
))
let
data
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'
alarm_info
'
));
console
.
log
(
data
)
if
(
!!
data
)
{
console
.
log
(
123
)
this
.
type
=
"
edit
"
if
(
data
.
show_src
==
1
)
{
//同步数据
this
.
showStatus
=
true
this
.
editStatus
=
true
//this.activeClass = "disabledClass"
}
else
if
(
data
.
show_src
==
0
&&
data
.
data_src
==
1
)
{
this
.
editStatus
=
true
this
.
showStatus
=
false
//this.activeClass = "disabledClass"
}
else
{
this
.
showStatus
=
false
this
.
editStatus
=
false
//this.activeClass = "activeClass"
}
data
.
urgency_degree
=
formatToId
(
data
.
urgency_degree
,
keyArray
.
influenceLevel
)
data
.
priority
=
formatToId
(
data
.
priority
,
keyArray
.
priority
)
data
.
event_type
=
formatToId
(
data
.
event_type
,
keyArray
.
eventType
)
//
data.urgency_degree = formatToId(data.urgency_degree, keyArray.influenceLevel)
//
data.priority = formatToId(data.priority, keyArray.priority)
//
data.event_type = formatToId(data.event_type, keyArray.eventType)
this
.
formLine
=
data
;
if
(
data
.
urgency
.
autochange
==
1
)
{
this
.
autochange
=
true
}
else
if
(
data
.
urgency
.
notbkauto
==
1
)
{
this
.
notbkauto
=
true
}
else
if
(
data
.
urgency
.
cantauto
==
1
)
{
this
.
cantauto
=
true
}
else
if
(
data
.
urgency
.
notautoyet
==
1
)
{
this
.
notautoyet
=
true
}
if
(
data
.
failure_analysis
.
alarmchange
==
1
)
{
this
.
alarmchange
=
true
}
else
if
(
data
.
failure_analysis
.
notbkalarm
==
1
)
{
this
.
notbkalarm
=
true
}
else
if
(
data
.
failure_analysis
.
havemonitor
==
1
)
{
this
.
havemonitor
=
true
}
else
if
(
data
.
failure_analysis
.
notmonitor
==
1
)
{
this
.
notmonitor
=
true
}
}
else
{
console
.
log
(
456
);
this
.
type
=
"
new
"
;
this
.
editStatus
=
false
;
this
.
showStatus
=
false
;
this
.
activeClass
=
"
activeClass
"
//
this.editStatus = false;
//
this.showStatus = false;
//
this.activeClass = "activeClass"
}
this
.
getuser
();
this
.
getAutoList
();
...
...
@@ -731,8 +703,8 @@
type
:
'
success
'
,
message
:
res
.
message
});
this
.
dellabelshow
=
false
this
.
getLabel
()
//
this.dellabelshow = false
//
this.getLabel()
}
else
{
this
.
$message
({
type
:
'
error
'
,
...
...
@@ -740,11 +712,9 @@
});
this
.
dellabelshow
=
false
}
})
});
window
.
history
.
go
(
-
1
)
}
else
{
//新建
console
.
log
(
'
新建
'
);
axios
.
post
(
'
${SITE_URL}create_alarm/
'
,
this
.
formLine
).
then
(
res
=>
{
if
(
res
.
code
==
0
){
...
...
templates/event_analysis/error_alarm.html
View file @
c10922d4
...
...
@@ -411,24 +411,22 @@
message
:
'
请选择告警!
'
});
}
else
{
axios
.
post
(
'
${SITE_URL}create_alarm_by_icube/
'
,
alarmList
).
then
(
res
=>
{
axios
.
post
(
'
${SITE_URL}create_alarm_by_icube/
'
,
{
'
info
'
:
this
.
selectData
,
'
system
'
:
this
.
formLine
.
failure_analysis
.
system_code
}
).
then
(
res
=>
{
if
(
res
.
code
==
0
)
{
this
.
$message
({
type
:
"
success
"
,
message
:
'
查询
成功
'
message
:
'
新建预警
成功
'
});
this
.
batchNewVisible
=
false
;
this
.
getAlarmList
();
}
else
{
this
.
$message
({
type
:
"
error
"
,
message
:
'
查询失败
'
+
res
.
message
message
:
res
.
message
});
this
.
formLine
=
data
//
this.formLine = data
}
})
vm
.
$message
({
type
:
'
success
'
,
message
:
'
下载成功
'
});
});
}
},
...
...
@@ -526,29 +524,23 @@
}
,
setmainuser
()
{
setmainuser
()
{
axios
.
get
(
'
${SITE_URL}getuser/
'
).
then
(
res
=>
{
res
=
res
.
data
;
this
.
user
=
res
})
}
,
},
//编辑模板
readRow
(
row
)
{
let
data
=
{
event_number
:
row
.
event_number
};
axios
.
post
(
"
${SITE_URL}event_edit_display/
"
,
data
).
then
(
res
=>
{
window
.
localStorage
.
setItem
(
"
event_number
"
,
JSON
.
stringify
(
res
.
results
));
window
.
location
.
href
=
"
${SITE_URL}event_edit
"
readRow
(
row
)
{
let
data
=
{
alarm_number
:
row
.
alarm_number
};
axios
.
post
(
"
${SITE_URL}edit_alarm_display/
"
,
data
).
then
(
res
=>
{
window
.
localStorage
.
setItem
(
"
alarm_info
"
,
JSON
.
stringify
(
res
.
results
));
window
.
location
.
href
=
"
${SITE_URL}alarm_edit
"
})
}
,
},
handleCurPageChange
()
{
handleCurPageChange
()
{
let
arr
=
[];
if
(
!!
this
.
selectData
[
this
.
currentPage
])
{
this
.
selectData
[
this
.
currentPage
].
map
(
item
=>
{
...
...
@@ -558,11 +550,9 @@
})
}
this
.
toggleSelection
(
arr
)
}
,
},
toggleSelection
(
rows
)
{
toggleSelection
(
rows
)
{
this
.
$nextTick
(()
=>
{
if
(
rows
)
{
rows
.
forEach
(
row
=>
{
...
...
@@ -572,11 +562,9 @@
this
.
$refs
.
table
.
clearSelection
();
}
})
}
,
},
sureDelete
(
id
)
{
sureDelete
(
id
)
{
let
vm
=
this
;
let
data
=
{
alarm_number
:
id
};
axios
.
post
(
'
${SITE_URL}del_alarm/
'
,
data
).
then
(
res
=>
{
...
...
@@ -600,12 +588,10 @@
});
})
}
,
},
//清除事件搜索条件
emptySearch
()
{
emptySearch
()
{
this
.
formLine
.
alarm_number
=
''
;
this
.
formLine
.
priority
=
''
;
this
.
formLine
.
alarm_system
=
''
;
...
...
@@ -615,98 +601,8 @@
this
.
formLine
.
event_number
=
''
;
this
.
formLine
.
all_fields
=
''
;
this
.
formLine
.
event_label
=
''
;
}
,
//选择事件导出文件
async
checkedColums
()
{
let
eventList
=
[];
let
vm
=
this
;
for
(
let
i
in
this
.
selectData
)
{
eventList
=
eventList
.
concat
(
this
.
selectData
[
i
])
}
if
(
eventList
.
length
==
0
)
{
vm
.
$message
({
type
:
'
error
'
,
message
:
'
请选择需要导出的事件
'
});
}
else
{
await
this
.
check
(
eventList
);
vm
.
$message
({
type
:
'
success
'
,
message
:
'
下载成功
'
});
this
.
download
()
}
}
,
check
(
eventList
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
axios
.
post
(
"
${SITE_URL}event_out/
"
,
{
eventList
:
eventList
}).
then
(
res
=>
{
if
(
res
.
data
==
1
)
{
resolve
(
'
ok
'
)
}
});
})
}
,
// 选择日期导出文件
async
dateout
()
{
if
(
this
.
dateoutinfo
==
null
||
this
.
dateoutinfo
.
length
==
0
)
{
vm
.
$message
({
type
:
'
error
'
,
message
:
'
请选择时间
'
});
}
else
{
console
.
log
(
'
进入按时间导出1
'
)
await
this
.
checkk
();
console
.
log
(
this
.
dateoutflag
)
if
(
this
.
dateoutflag
==
true
)
{
vm
.
$message
({
type
:
'
success
'
,
message
:
'
下载成功
'
});
this
.
download
()
}
else
{
vm
.
$message
({
type
:
'
error
'
,
message
:
'
该时间段内没有事件发生
'
});
}
}
}
,
checkk
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
axios
.
post
(
"
${SITE_URL}event_out/
"
,
this
.
dateoutinfo
).
then
(
res
=>
{
if
(
res
.
data
==
1
)
{
resolve
(
'
ok
'
)
console
.
log
(
'
时间段内有事件2
'
);
this
.
dateoutflag
=
true
}
else
{
resolve
(
'
ok
'
)
console
.
log
(
'
时间段内无事件2
'
);
this
.
dateoutflag
=
false
}
})
})
}
,
},
download
()
{
window
.
location
.
href
=
"
${SITE_URL}download
"
;
}
,
handleCurrentChange
(
val
)
{
...
...
@@ -717,8 +613,7 @@
this
.
handleCurPageChange
()
})
}
}
,
},
},
...
...
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