Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
spring-boot-admin
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
openSource
spring-boot-admin
Commits
baa6d4e1
Commit
baa6d4e1
authored
Mar 03, 2015
by
Johannes Stelzer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
normalize eol via .gitattributes
closes #49
parent
62b5eeaa
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
276 additions
and
258 deletions
+276
-258
.gitattributes
.gitattributes
+17
-0
jmx.html
spring-boot-admin-server-ui/app/views/apps/jmx.html
+150
-150
logging.html
spring-boot-admin-server-ui/app/views/apps/logging.html
+37
-36
threads.html
spring-boot-admin-server-ui/app/views/apps/threads.html
+72
-72
No files found.
.gitattributes
0 → 100644
View file @
baa6d4e1
# All text files should have the "lf" (Unix) line endings
* text eol=lf
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.java text
*.js text
*.css text
*.html text
*.properties text
*.xml text
*.yml text
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.jar binary
spring-boot-admin-server-ui/app/views/apps/jmx.html
View file @
baa6d4e1
<div
class=
"alert alert-error"
ng-if=
"error"
>
<div
class=
"alert alert-error"
ng-if=
"error"
>
<b>
Error:
</b>
{{ error }}
<b>
Error:
</b>
{{ error }}
</div>
</div>
<div
class=
"container"
>
<div
class=
"container"
>
<accordion
close-others=
"true"
>
<accordion
close-others=
"true"
>
<accordion-group
ng-repeat=
"domain in domains track by domain.name"
>
<accordion-group
ng-repeat=
"domain in domains track by domain.name"
>
<accordion-heading>
<accordion-heading>
<small
class=
"muted"
>
Domain
</small>
{{domain.name}}
<small
class=
"muted"
>
Domain
</small>
{{domain.name}}
</accordion-heading>
</accordion-heading>
<tabset
class=
"tabs-left"
ng-init=
"visible = []"
>
<tabset
class=
"tabs-left"
ng-init=
"visible = []"
>
<tab
ng-repeat=
"bean in domain.beans track by bean.id"
select=
"visible[bean.id] = true"
deselect=
"visible[bean.id] = false"
>
<tab
ng-repeat=
"bean in domain.beans track by bean.id"
select=
"visible[bean.id] = true"
deselect=
"visible[bean.id] = false"
>
<tab-heading>
<tab-heading>
<small
class=
"muted"
>
MBean
</small>
{{bean.name }}
<small
class=
"muted"
>
MBean
</small>
{{bean.name }}
</tab-heading>
</tab-heading>
<div
ng-if=
"visible[bean.id]"
>
<div
ng-if=
"visible[bean.id]"
>
<h2>
<h2>
{{bean.name}}
<br/><small>
{{bean.description}}
</small>
{{bean.name}}
<br/><small>
{{bean.description}}
</small>
</h2>
</h2>
<dl>
<dl>
<dt>
Id
</dt>
<dt>
Id
</dt>
<dd
style=
"word-break: break-all;"
>
{{ bean.id }}
</dd>
<dd
style=
"word-break: break-all;"
>
{{ bean.id }}
</dd>
<dt
ng-repeat-start=
"(name, value) in bean.nameProps"
>
{{ name }}
</dt>
<dt
ng-repeat-start=
"(name, value) in bean.nameProps"
>
{{ name }}
</dt>
<dd
ng-repeat-end
>
{{ value }}
</dd>
<dd
ng-repeat-end
>
{{ value }}
</dd>
</dl>
</dl>
<form
class=
"form-horizontal"
ng-if=
"bean.attributes !== undefinded"
>
<form
class=
"form-horizontal"
ng-if=
"bean.attributes !== undefinded"
>
<legend>
<legend>
Attributes
Attributes
<button
class=
"btn"
type=
"button"
ng-click=
"readAllAttr(bean)"
>
read
</button>
<button
class=
"btn"
type=
"button"
ng-click=
"readAllAttr(bean)"
>
read
</button>
</legend>
</legend>
<div
ng-show=
"bean.error"
class=
"alert alert-error"
>
<div
ng-show=
"bean.error"
class=
"alert alert-error"
>
<b>
Error:
</b>
{{ bean.error }}
<b>
Error:
</b>
{{ bean.error }}
</div>
</div>
<div
class=
"control-group"
ng-repeat=
"(name, attr) in bean.attributes track by name"
ng-class=
"{error: attr.error}"
>
<div
class=
"control-group"
ng-repeat=
"(name, attr) in bean.attributes track by name"
ng-class=
"{error: attr.error}"
>
<label
class=
"control-label"
for=
"{{name}}"
style=
"word-break: break-all;"
>
<label
class=
"control-label"
for=
"{{name}}"
style=
"word-break: break-all;"
>
{{name}}
<br/>
{{name}}
<br/>
<small
class=
"muted"
>
{{attr.type}}
</small>
<small
class=
"muted"
>
{{attr.type}}
</small>
</label>
</label>
<div
class=
"controls"
>
<div
class=
"controls"
>
<div
class=
"input-prepend"
ng-switch=
"attr.type.toLowerCase()"
>
<div
class=
"input-prepend"
ng-switch=
"attr.type.toLowerCase()"
>
<button
class=
"btn"
type=
"button"
ng-click=
"writeAttr(bean, name, attr)"
ng-disabled=
"!attr.rw"
>
write
</button>
<button
class=
"btn"
type=
"button"
ng-click=
"writeAttr(bean, name, attr)"
ng-disabled=
"!attr.rw"
>
write
</button>
<input
ng-switch-when=
"java.lang.string"
class=
"span5"
type=
"text"
ng-model=
"attr.value"
ng-disabled=
"!attr.rw"
/>
<input
ng-switch-when=
"java.lang.string"
class=
"span5"
type=
"text"
ng-model=
"attr.value"
ng-disabled=
"!attr.rw"
/>
<input
ng-switch-when=
"long"
class=
"span5"
type=
"number"
ng-model=
"attr.value"
ng-disabled=
"!attr.rw"
/>
<input
ng-switch-when=
"long"
class=
"span5"
type=
"number"
ng-model=
"attr.value"
ng-disabled=
"!attr.rw"
/>
<input
ng-switch-when=
"int"
class=
"span5"
type=
"number"
ng-model=
"attr.value"
ng-disabled=
"!attr.rw"
/>
<input
ng-switch-when=
"int"
class=
"span5"
type=
"number"
ng-model=
"attr.value"
ng-disabled=
"!attr.rw"
/>
<input
ng-switch-when=
"double"
class=
"span5"
type=
"number"
ng-model=
"attr.value"
ng-disabled=
"!attr.rw"
/>
<input
ng-switch-when=
"double"
class=
"span5"
type=
"number"
ng-model=
"attr.value"
ng-disabled=
"!attr.rw"
/>
<select
ng-switch-when=
"boolean"
class=
"span5"
ng-model=
"attr.value"
ng-disabled=
"!attr.rw"
ng-options=
"val for val in [true, false]"
/>
<select
ng-switch-when=
"boolean"
class=
"span5"
ng-model=
"attr.value"
ng-disabled=
"!attr.rw"
ng-options=
"val for val in [true, false]"
/>
<textarea
ng-switch-default
style=
"word-break: break-all;"
class=
"span5"
ng-model=
"attr.jsonValue"
ng-disabled=
"!attr.rw"
/>
<textarea
ng-switch-default
style=
"word-break: break-all;"
class=
"span5"
ng-model=
"attr.jsonValue"
ng-disabled=
"!attr.rw"
/>
</div>
</div>
<span
class=
"help-block"
>
{{attr.desc}}
</span>
<span
class=
"help-block"
>
{{attr.desc}}
</span>
<span
class=
"help-inline"
>
{{attr.error}}
</span>
<span
class=
"help-inline"
>
{{attr.error}}
</span>
</div>
</div>
</div>
</div>
</form>
</form>
<form
class=
"form"
ng-if=
"bean.operations !== undefinded"
>
<form
class=
"form"
ng-if=
"bean.operations !== undefinded"
>
<legend>
Operations
</legend>
<legend>
Operations
</legend>
<div
class=
"control-group"
ng-repeat=
"(name, op) in bean.operations track by name"
>
<div
class=
"control-group"
ng-repeat=
"(name, op) in bean.operations track by name"
>
<button
class=
"btn span6"
style=
"text-align: left; padding-left: 5px;"
ng-click=
"prepareInvoke(bean, name, op)"
>
<button
class=
"btn span6"
style=
"text-align: left; padding-left: 5px;"
ng-click=
"prepareInvoke(bean, name, op)"
>
{{name}}
<br/>
{{name}}
<br/>
<small
class=
"muted"
style=
"word-break: break-all;"
>
{{op.ret}}
</small>
<small
class=
"muted"
style=
"word-break: break-all;"
>
{{op.ret}}
</small>
<span
class=
"help-block"
>
{{op.desc}}
</span>
<span
class=
"help-block"
>
{{op.desc}}
</span>
</button>
</button>
</div>
</div>
</form>
</form>
</div>
</div>
</tab>
</tab>
</tabset>
</tabset>
</accordion-group>
</accordion-group>
</accordion>
</accordion>
</div>
</div>
<script
type=
"text/ng-template"
id=
"invocationPrepareDialog.html"
>
<script
type=
"text/ng-template"
id=
"invocationPrepareDialog.html"
>
<
div
class
=
"modal-header"
>
<
div
class
=
"modal-header"
>
<
h3
>
Arguments
for
{{
invocation
.
opname
}}
<
/h3>
<
h3
>
Arguments
for
{{
invocation
.
opname
}}
<
/h3
>
<
/div>
<
/div
>
<
div
class
=
"modal-body"
>
<
div
class
=
"modal-body"
>
<
p
>
Please
input
the
arguments
<
/p>
<
p
>
Please
input
the
arguments
<
/p
>
<
form
class
=
"form"
>
<
form
class
=
"form"
>
<
div
class
=
"control-group"
ng
-
repeat
=
"arg in invocation.opdesc.args"
>
<
div
class
=
"control-group"
ng
-
repeat
=
"arg in invocation.opdesc.args"
>
<
label
class
=
"control-label"
for
=
"{{arg.name}}"
style
=
"word-break: break-all;"
>
<
label
class
=
"control-label"
for
=
"{{arg.name}}"
style
=
"word-break: break-all;"
>
{{
arg
.
name
}}
<
small
class
=
"muted"
style
=
"word-break: break-all;"
>
{{
arg
.
type
}}
<
/small>
{{
arg
.
name
}}
<
small
class
=
"muted"
style
=
"word-break: break-all;"
>
{{
arg
.
type
}}
<
/small
>
<
/label>
<
/label
>
<
div
class
=
"controls"
ng
-
switch
=
"arg.type.toLowerCase()"
>
<
div
class
=
"controls"
ng
-
switch
=
"arg.type.toLowerCase()"
>
<
input
ng
-
switch
-
when
=
"java.lang.string"
class
=
"span6"
type
=
"text"
ng
-
model
=
"invocation.args[$index]"
/>
<
input
ng
-
switch
-
when
=
"java.lang.string"
class
=
"span6"
type
=
"text"
ng
-
model
=
"invocation.args[$index]"
/>
<
input
ng
-
switch
-
when
=
"long"
class
=
"span6"
type
=
"number"
ng
-
model
=
"invocation.args[$index]"
/>
<
input
ng
-
switch
-
when
=
"long"
class
=
"span6"
type
=
"number"
ng
-
model
=
"invocation.args[$index]"
/>
<
input
ng
-
switch
-
when
=
"int"
class
=
"span6"
type
=
"number"
ng
-
model
=
"invocation.args[$index]"
/>
<
input
ng
-
switch
-
when
=
"int"
class
=
"span6"
type
=
"number"
ng
-
model
=
"invocation.args[$index]"
/>
<
input
ng
-
switch
-
when
=
"double"
class
=
"span6"
type
=
"number"
ng
-
model
=
"invocation.args[$index]"
/>
<
input
ng
-
switch
-
when
=
"double"
class
=
"span6"
type
=
"number"
ng
-
model
=
"invocation.args[$index]"
/>
<
select
ng
-
switch
-
when
=
"boolean"
class
=
"span6"
ng
-
model
=
"invocation.args[$index]"
ng
-
options
=
"val for val in [true, false]"
/>
<
select
ng
-
switch
-
when
=
"boolean"
class
=
"span6"
ng
-
model
=
"invocation.args[$index]"
ng
-
options
=
"val for val in [true, false]"
/>
<
textarea
ng
-
switch
-
default
style
=
"word-break: break-all;"
class
=
"span6"
ng
-
model
=
"invocation.args[$index]"
/>
<
textarea
ng
-
switch
-
default
style
=
"word-break: break-all;"
class
=
"span6"
ng
-
model
=
"invocation.args[$index]"
/>
<
span
class
=
"help-block"
>
{{
arg
.
desc
}}
<
/span>
<
span
class
=
"help-block"
>
{{
arg
.
desc
}}
<
/span
>
<
/div>
<
/div
>
<
/div>
<
/div
>
<
/form>
<
/form
>
<
/div>
<
/div
>
<
div
class
=
"modal-footer"
>
<
div
class
=
"modal-footer"
>
<
button
class
=
"btn"
ng
-
click
=
"$dismiss()"
>
Abort
<
/button>
<
button
class
=
"btn"
ng
-
click
=
"$dismiss()"
>
Abort
<
/button
>
<
button
class
=
"btn btn-inverse"
ng
-
click
=
"$close()"
>
Execute
<
/button>
<
button
class
=
"btn btn-inverse"
ng
-
click
=
"$close()"
>
Execute
<
/button
>
<
/div>
<
/div
>
</script>
</script>
<script
type=
"text/ng-template"
id=
"invocationVariantDialog.html"
>
<script
type=
"text/ng-template"
id=
"invocationVariantDialog.html"
>
<
div
class
=
"modal-header"
>
<
div
class
=
"modal-header"
>
<
h3
>
Variant
for
{{
invocation
.
opname
}}
<
/h3>
<
h3
>
Variant
for
{{
invocation
.
opname
}}
<
/h3
>
<
/div>
<
/div
>
<
div
class
=
"modal-body"
>
<
div
class
=
"modal-body"
>
<
p
>
The
method
is
overloaded
.
Please
choose
a
variant
.
<
/p>
<
p
>
The
method
is
overloaded
.
Please
choose
a
variant
.
<
/p
>
<
form
>
<
form
>
<
div
class
=
"control-group"
>
<
div
class
=
"control-group"
>
<
button
class
=
"btn btn-block"
style
=
"text-align: left; padding-left: 5px;"
ng
-
repeat
=
"op in invocation.opdesc"
ng
-
click
=
"$close(op)"
>
<
button
class
=
"btn btn-block"
style
=
"text-align: left; padding-left: 5px;"
ng
-
repeat
=
"op in invocation.opdesc"
ng
-
click
=
"$close(op)"
>
<
b
>
{{
invocation
.
opname
}}
<
/b>
(
<
b
>
{{
invocation
.
opname
}}
<
/b>
(
<
span
ng
-
repeat
-
start
=
"arg in op.args"
data
-
toggle
=
"tooltip"
title
=
"{{arg.desc}}"
>
{{
arg
.
type
}}
{{
arg
.
name
}}
<
/span>
<
span
ng
-
repeat
-
start
=
"arg in op.args"
data
-
toggle
=
"tooltip"
title
=
"{{arg.desc}}"
>
{{
arg
.
type
}}
{{
arg
.
name
}}
<
/span
>
<
span
ng
-
repeat
-
end
ng
-
if
=
"!$last"
>
,
<
/span>
<
span
ng
-
repeat
-
end
ng
-
if
=
"!$last"
>
,
<
/span>
)
<
br
/><
small
class
=
"muted"
>
{{
op
.
ret
}}
<
/small>
)
<
br
/><
small
class
=
"muted"
>
{{
op
.
ret
}}
<
/small
>
<
span
class
=
"help-block"
>
{{
op
.
desc
}}
<
/span>
<
span
class
=
"help-block"
>
{{
op
.
desc
}}
<
/span
>
<
/button>
<
/button
>
<
/div>
<
/div
>
<
/form>
<
/form
>
<
/div>
<
/div
>
<
div
class
=
"modal-footer"
>
<
div
class
=
"modal-footer"
>
<
button
class
=
"btn"
ng
-
click
=
"$dismiss()"
>
Abort
<
/button>
<
button
class
=
"btn"
ng
-
click
=
"$dismiss()"
>
Abort
<
/button
>
<
/div>
<
/div>
</script>
</script>
<script
type=
"text/ng-template"
id=
"invocationResultDialog.html"
>
<script
type=
"text/ng-template"
id=
"invocationResultDialog.html"
>
<
div
class
=
"modal-header"
>
<
div
class
=
"modal-header"
>
<
h3
>
Executing
{{
invocation
.
opname
}}
<
/h3>
<
h3
>
Executing
{{
invocation
.
opname
}}
<
/h3
>
<
/div>
<
/div
>
<
div
class
=
"modal-body"
ng
-
switch
=
"invocation.state"
>
<
div
class
=
"modal-body"
ng
-
switch
=
"invocation.state"
>
<
div
ng
-
switch
-
when
=
"executing"
class
=
"progress progress-striped active"
>
<
div
ng
-
switch
-
when
=
"executing"
class
=
"progress progress-striped active"
>
<
div
class
=
"bar"
>
executing
...
<
/div>
<
div
class
=
"bar"
>
executing
...
<
/div
>
<
/div>
<
/div
>
<
div
ng
-
switch
-
when
=
"success"
>
<
div
ng
-
switch
-
when
=
"success"
>
<
div
class
=
"alert alert-success"
>
<
div
class
=
"alert alert-success"
>
<
b
>
Success
<
/b>
<
b
>
Success
<
/b
>
<
/div>
<
/div
>
<
h4
>
Result
<
small
class
=
"muted"
>
{{
invocation
.
opdesc
.
ret
}}
<
/small></
h4
>
<
h4
>
Result
<
small
class
=
"muted"
>
{{
invocation
.
opdesc
.
ret
}}
<
/small></
h4
>
<
pre
>
{{
invocation
.
result
|
json
}}
<
/pre>
<
pre
>
{{
invocation
.
result
|
json
}}
<
/pre
>
<
/div>
<
/div
>
<
div
ng
-
switch
-
when
=
"error"
>
<
div
ng
-
switch
-
when
=
"error"
>
<
div
class
=
"alert alert-error"
>
<
div
class
=
"alert alert-error"
>
<
b
>
Error
:
<
/b> {{ invocation.error }}
<
b
>
Error
:
<
/b> {{ invocation.error }
}
<
/div>
<
/div
>
<
h4
>
Stacktrace
:
<
/h4>
<
h4
>
Stacktrace
:
<
/h4
>
<
pre
>
{{
invocation
.
stacktrace
}}
<
/pre>
<
pre
>
{{
invocation
.
stacktrace
}}
<
/pre
>
<
/div>
<
/div
>
<
/div>
<
/div
>
<
div
class
=
"modal-footer"
>
<
div
class
=
"modal-footer"
>
<
button
class
=
"btn"
ng
-
click
=
"$close()"
>
Close
<
/button>
<
button
class
=
"btn"
ng
-
click
=
"$close()"
>
Close
<
/button
>
<
/div>
<
/div>
</script>
</script>
spring-boot-admin-server-ui/app/views/apps/logging.html
View file @
baa6d4e1
<div
class=
"container"
>
<div
class=
"container"
>
<form
ng-init=
"showPackageLoggers = false"
>
<form
ng-init=
"showPackageLoggers = false"
>
<div
class=
"input-prepend input-append"
>
<div
class=
"input-prepend input-append"
>
<button
class=
"btn"
title=
"Show package-level loggers"
ng-class=
"{'btn-inverse': showPackageLoggers}"
ng-model=
"showPackageLoggers"
btn-checkbox
><i
class=
"icon-folder-open"
ng-class=
"{'icon-white': showPackageLoggers}"
></i></button>
<button
class=
"btn"
title=
"Show package-level loggers"
ng-class=
"{'btn-inverse': showPackageLoggers}"
ng-model=
"showPackageLoggers"
btn-checkbox
><i
class=
"icon-folder-open"
ng-class=
"{'icon-white': showPackageLoggers}"
></i></button>
<input
placeholder=
"Filter by name ..."
class=
"span10"
type=
"search"
ng-model=
"filterLogger.name"
/>
<input
placeholder=
"Filter by name ..."
class=
"span10"
type=
"search"
ng-model=
"filterLogger.name"
/>
<button
class=
"btn"
title=
"reload list"
ng-click=
"reload()"
><i
class=
"icon-refresh"
></i></button>
<button
class=
"btn"
title=
"reload list"
ng-click=
"reload()"
><i
class=
"icon-refresh"
></i></button>
<span
title=
"filtered / total"
class=
"add-on"
>
{{ filteredLoggers.length }}/{{ loggers.length }}
</span>
<span
title=
"filtered / total"
class=
"add-on"
>
{{ filteredLoggers.length }}/{{ loggers.length }}
</span>
</div>
</div>
</form>
</form>
<table
class=
"table"
>
<table
class=
"table"
>
<tbody>
<tbody>
<tr
ng-repeat=
"logger in (filteredLoggers = (loggers | classNameLoggerOnly:!showPackageLoggers | filter:filterLogger) ) | limitTo: limit track by logger.name"
>
<tr
ng-repeat=
"logger in (filteredLoggers = (loggers | classNameLoggerOnly:!showPackageLoggers | filter:filterLogger) ) | limitTo: limit track by logger.name"
>
<td>
<td>
{{ logger.name }}
{{ logger.name }}
<div
class=
"btn-group pull-right"
>
<div
class=
"btn-group pull-right"
>
<label
class=
"btn btn-small"
ng-class=
"{'active btn-danger': logger.level== 'TRACE'}"
ng-click=
"setLogLevel(logger.name, 'TRACE')"
>
TRACE
</label>
<label
class=
"btn btn-small"
ng-class=
"{'active btn-danger': logger.level== 'TRACE'}"
ng-click=
"setLogLevel(logger.name, 'TRACE')"
>
TRACE
</label>
<label
class=
"btn btn-small"
ng-class=
"{'active btn-warning': logger.level=='DEBUG'}"
ng-click=
"setLogLevel(logger.name, 'DEBUG')"
>
DEBUG
</label>
<label
class=
"btn btn-small"
ng-class=
"{'active btn-warning': logger.level=='DEBUG'}"
ng-click=
"setLogLevel(logger.name, 'DEBUG')"
>
DEBUG
</label>
<label
class=
"btn btn-small"
ng-class=
"{'active btn-info': logger.level=='INFO'}"
ng-click=
"setLogLevel(logger.name, 'INFO')"
>
INFO
</label>
<label
class=
"btn btn-small"
ng-class=
"{'active btn-info': logger.level=='INFO'}"
ng-click=
"setLogLevel(logger.name, 'INFO')"
>
INFO
</label>
<label
class=
"btn btn-small"
ng-class=
"{'active btn-success': logger.level == 'WARN'}"
ng-click=
"setLogLevel(logger.name, 'WARN')"
>
WARN
</label>
<label
class=
"btn btn-small"
ng-class=
"{'active btn-success': logger.level == 'WARN'}"
ng-click=
"setLogLevel(logger.name, 'WARN')"
>
WARN
</label>
<label
class=
"btn btn-small"
ng-class=
"{'active btn-primary': logger.level == 'ERROR'}"
ng-click=
"setLogLevel(logger.name, 'ERROR')"
>
ERROR
</label>
<label
class=
"btn btn-small"
ng-class=
"{'active btn-primary': logger.level == 'ERROR'}"
ng-click=
"setLogLevel(logger.name, 'ERROR')"
>
ERROR
</label>
<label
class=
"btn btn-small"
ng-class=
"{'active btn-inverse': logger.level == 'OFF'}"
ng-click=
"setLogLevel(logger.name, 'OFF')"
>
OFF
</label>
<label
class=
"btn btn-small"
ng-class=
"{'active btn-inverse': logger.level == 'OFF'}"
ng-click=
"setLogLevel(logger.name, 'OFF')"
>
OFF
</label>
</div>
</div>
</td>
</td>
</tr>
</tr>
<tr
ng-show=
"limit < loggers.length"
>
<tr
ng-show=
"limit < loggers.length"
>
<td>
<td>
<button
class=
"btn btn-link btn-block"
ng-click=
"limit = limit + 10"
>
show more
</button>
<button
class=
"btn btn-link btn-block"
ng-click=
"limit = limit + 10"
>
show more
</button>
</td>
</td>
</tr>
</tr>
<tr
ng-show=
"limit < loggers.length"
>
<tr
ng-show=
"limit < loggers.length"
>
<td>
<td>
<button
class=
"btn btn-link btn-block"
ng-click=
"limit = loggers.length"
>
show all
</button>
<button
class=
"btn btn-link btn-block"
ng-click=
"limit = loggers.length"
>
show all
</button>
</td>
</td>
</tr>
</tr>
</tbody>
</tbody>
</table>
</table>
</div>
</div>
\ No newline at end of file
spring-boot-admin-server-ui/app/views/apps/threads.html
View file @
baa6d4e1
<div
class=
"alert alert-error"
ng-if=
"error"
>
<div
class=
"alert alert-error"
ng-if=
"error"
>
<b>
Error:
</b>
{{ error }}
<b>
Error:
</b>
{{ error }}
</div>
</div>
<div
class=
"container"
>
<div
class=
"container"
>
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"span12 text-center"
>
<div
class=
"span12 text-center"
>
<form>
<form>
<button
class=
"btn"
ng-click=
"dumpThreads()"
><i
class=
"icon-screenshot"
></i>
Dump all threads!
</button>
<button
class=
"btn"
ng-click=
"dumpThreads()"
><i
class=
"icon-screenshot"
></i>
Dump all threads!
</button>
</form>
</form>
</div>
</div>
</div>
</div>
<div
class=
"row"
ng-show=
"threadStats"
>
<div
class=
"row"
ng-show=
"threadStats"
>
<div
class=
"span12"
>
<div
class=
"span12"
>
<div
class=
"progress"
>
<div
class=
"progress"
>
<div
ng-if=
"threadStats.NEW > 0"
class=
"bar bar-info"
style=
"width:{{ threadStats.NEW / threadStats.total * 100 | number:2 }}%;"
>
<div
ng-if=
"threadStats.NEW > 0"
class=
"bar bar-info"
style=
"width:{{ threadStats.NEW / threadStats.total * 100 | number:2 }}%;"
>
New {{ threadStats.NEW }}
New {{ threadStats.NEW }}
</div>
</div>
<div
ng-if=
"threadStats.RUNNABLE > 0"
class=
"bar bar-success"
style=
"width:{{ threadStats.RUNNABLE / threadStats.total * 100 | number:2 }}%;"
>
<div
ng-if=
"threadStats.RUNNABLE > 0"
class=
"bar bar-success"
style=
"width:{{ threadStats.RUNNABLE / threadStats.total * 100 | number:2 }}%;"
>
Runnable {{ threadStats.RUNNABLE }}
Runnable {{ threadStats.RUNNABLE }}
</div>
</div>
<div
ng-if=
"threadStats.BLOCKED > 0"
class=
"bar bar-danger"
style=
"width:{{ threadStats.BLOCKED / threadStats.total * 100 | number:2 }}%;"
>
<div
ng-if=
"threadStats.BLOCKED > 0"
class=
"bar bar-danger"
style=
"width:{{ threadStats.BLOCKED / threadStats.total * 100 | number:2 }}%;"
>
Blocked {{ threadStats.BLOCKED }}
Blocked {{ threadStats.BLOCKED }}
</div>
</div>
<div
ng-if=
"threadStats.WAITING > 0"
class=
"bar bar-warning"
style=
"width:{{ threadStats.WAITING / threadStats.total * 100 | number:2 }}%;"
>
<div
ng-if=
"threadStats.WAITING > 0"
class=
"bar bar-warning"
style=
"width:{{ threadStats.WAITING / threadStats.total * 100 | number:2 }}%;"
>
Waiting {{ threadStats.WAITING }}
Waiting {{ threadStats.WAITING }}
</div>
</div>
<div
ng-if=
"threadStats.TIMED_WAITING > 0"
class=
"bar bar-warning bar-striped"
style=
"width:{{ threadStats.TIMED_WAITING / threadStats.total * 100 | number:2 }}%;"
>
<div
ng-if=
"threadStats.TIMED_WAITING > 0"
class=
"bar bar-warning bar-striped"
style=
"width:{{ threadStats.TIMED_WAITING / threadStats.total * 100 | number:2 }}%;"
>
Timed waiting {{ threadStats.TIMED_WAITING }}
Timed waiting {{ threadStats.TIMED_WAITING }}
</div>
</div>
<div
ng-if=
"threadStats.TERMINATED > 0"
class=
"bar bar-info"
style=
"width:{{ threadStats.TERMINATED / threadStats.total * 100 | number:2 }}%;"
>
<div
ng-if=
"threadStats.TERMINATED > 0"
class=
"bar bar-info"
style=
"width:{{ threadStats.TERMINATED / threadStats.total * 100 | number:2 }}%;"
>
Terminated {{ threadStats.TERMINATED }}
Terminated {{ threadStats.TERMINATED }}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"row"
ng-show=
"dump"
>
<div
class=
"row"
ng-show=
"dump"
>
<div
class=
"span12"
>
<div
class=
"span12"
>
<accordion
close-others=
"true"
>
<accordion
close-others=
"true"
>
<accordion-group
ng-repeat=
"thread in dump | orderBy:'threadName' track by thread.threadId"
>
<accordion-group
ng-repeat=
"thread in dump | orderBy:'threadName' track by thread.threadId"
>
<accordion-heading>
<accordion-heading>
<small
class=
"muted"
>
{{thread.threadId}}
</small>
<small
class=
"muted"
>
{{thread.threadId}}
</small>
{{thread.threadName}}
{{thread.threadName}}
<span
class=
"pull-right label"
ng-class=
"{ 'label-info': thread.threadState == 'NEW', 'label-success': thread.threadState == 'RUNNABLE', 'label-important': thread.threadState == 'BLOCKED', 'label-warning': thread.threadState == 'TIMED_WAITING' || thread.threadState == 'WAITING', 'label-info': thread.threadState == 'TERMINATED'}"
>
{{thread.threadState}}
</span>
<span
class=
"label label-warning"
ng-if=
"thread.suspended"
>
suspended
</span>
<span
class=
"pull-right label"
ng-class=
"{ 'label-info': thread.threadState == 'NEW', 'label-success': thread.threadState == 'RUNNABLE', 'label-important': thread.threadState == 'BLOCKED', 'label-warning': thread.threadState == 'TIMED_WAITING' || thread.threadState == 'WAITING', 'label-info': thread.threadState == 'TERMINATED'}"
>
{{thread.threadState}}
</span>
<span
class=
"label label-warning"
ng-if=
"thread.suspended"
>
suspended
</span>
</accordion-heading>
</accordion-heading>
<div
class=
"container"
>
<div
class=
"container"
>
<div
class=
"row"
>
<div
class=
"row"
>
<table
class=
"span6"
>
<table
class=
"span6"
>
<colgroup>
<colgroup>
<col
style=
"min-width: 10em;"
/>
<col
style=
"min-width: 10em;"
/>
</colgroup>
</colgroup>
<tr><td>
Blocked count
</td><td>
{{thread.blockedCount}}
</td></tr>
<tr><td>
Blocked count
</td><td>
{{thread.blockedCount}}
</td></tr>
<tr><td>
Blocked time
</td><td>
{{thread.blockedTime}}
</td></tr>
<tr><td>
Blocked time
</td><td>
{{thread.blockedTime}}
</td></tr>
<tr><td>
Waited count
</td><td>
{{thread.waitedCount}}
</td></tr>
<tr><td>
Waited count
</td><td>
{{thread.waitedCount}}
</td></tr>
<tr><td>
Waited time
</td><td>
{{thread.waitedTime}}
</td></tr>
<tr><td>
Waited time
</td><td>
{{thread.waitedTime}}
</td></tr>
</table>
</table>
<table
class=
"span6"
>
<table
class=
"span6"
>
<colgroup>
<colgroup>
<col
style=
"min-width: 10em;"
/>
<col
style=
"min-width: 10em;"
/>
</colgroup>
</colgroup>
<tr><td>
Lock name
</td><td
style=
"word-break: break-word;"
>
{{thread.lockName}}
</td></tr>
<tr><td>
Lock name
</td><td
style=
"word-break: break-word;"
>
{{thread.lockName}}
</td></tr>
<tr><td>
Lock owner id
</td><td>
{{thread.lockOwnerId}}
</td></tr>
<tr><td>
Lock owner id
</td><td>
{{thread.lockOwnerId}}
</td></tr>
<tr><td>
Lock owner name
</td><td
style=
"word-break: break-word;"
>
{{thread.lockOwnerName}}
</td></tr>
<tr><td>
Lock owner name
</td><td
style=
"word-break: break-word;"
>
{{thread.lockOwnerName}}
</td></tr>
</table>
</table>
</div>
</div>
</div>
</div>
<pre
style=
"overflow: auto; max-height: 20em"
ng-if=
"thread.stackTrace"
><span
ng-repeat=
"el in thread.stackTrace"
>
{{el.className}}.{{el.methodName}}({{el.fileName}}:{{el.lineNumber}})
<span
class=
"label"
ng-if=
"el.nativeMethod"
>
native
</span>
<pre
style=
"overflow: auto; max-height: 20em"
ng-if=
"thread.stackTrace"
><span
ng-repeat=
"el in thread.stackTrace"
>
{{el.className}}.{{el.methodName}}({{el.fileName}}:{{el.lineNumber}})
<span
class=
"label"
ng-if=
"el.nativeMethod"
>
native
</span>
</span></pre>
</span></pre>
</accordion-group>
</accordion-group>
</accordion>
</accordion>
</div>
</div>
</div>
</div>
</div>
</div>
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