mirror of
https://github.com/status-im/consul.git
synced 2025-02-12 05:36:55 +00:00
* Remove unused StatsCard component * Create Card and Stats contextual components with styling * Send endpoint, item, and protocol to Stats as props * WIP basic plumbing for metrics in Ember * WIP metrics data source now works for different protocols and produces reasonable mock responses * WIP sparkline component * Mostly working metrics and graphs in topology * Fix date in tooltip to actually be correct * Clean up console.log * Add loading frame and create a style sheet for Stats * Various polish fixes: - Loading state for graph - Added fake latency cookie value to test loading - If metrics provider has no series/stats for the service show something that doesn't look broken - Graph hover works right to the edge now - Stats boxes now wrap so they are either shown or not as will fit not cut off - Graph resizes when browser window size changes - Some tweaks to number formats and stat metrics to make them more compact/useful * Thread Protocol through topology model correctly * Rebuild assetfs * Fix failing tests and remove stats-card now it's changed and become different * Fix merge conflict * Update api doublt * more merge fixes * Add data-permission and id attr to Card * Run JS linter * Move things around so the tests run with everything available * Get tests passing: 1. Remove fakeLatency setTimeout (will be replaced with CONSUL_LATENCY in mocks) 2. Make sure any event handlers are removed * Make sure the Consul/scripts are available before the app * Make sure interval gets set if there is no cookie value * Upgrade mocks so we can use CONSUL_LATENCY * Fix handling of no series values from Prometheus * Update assetfs and fix a comment * Rebase and rebuild assetfs; fix tcp metric series units to be bits not bytes * Rebuild assetfs * Hide stats when provider is not configured Co-authored-by: kenia <keniavalladarez@gmail.com> Co-authored-by: John Cowen <jcowen@hashicorp.com>
144 lines
2.9 KiB
SCSS
144 lines
2.9 KiB
SCSS
.topology-container {
|
|
color: $gray-700;
|
|
}
|
|
|
|
// Columns/Containers & Lines
|
|
#downstream-container,
|
|
#metrics-container,
|
|
#upstream-container {
|
|
border: 1px solid $gray-200;
|
|
border-radius: $decor-radius-100;
|
|
}
|
|
#downstream-container,
|
|
#upstream-container {
|
|
background-color: $gray-100;
|
|
}
|
|
#downstream-container div:first-child {
|
|
display: inline-flex;
|
|
span::before {
|
|
@extend %with-info-circle-outline-mask, %as-pseudo;
|
|
background-color: $gray-500;
|
|
}
|
|
}
|
|
#upstream-container .card,
|
|
#downstream-container .card {
|
|
background-color: $white;
|
|
border-radius: $decor-radius-100;
|
|
border: 1px solid $gray-200;
|
|
div {
|
|
dd {
|
|
color: $gray-700;
|
|
}
|
|
.nspace dt::before {
|
|
@extend %with-folder-outline-mask, %as-pseudo;
|
|
}
|
|
.health dt::before {
|
|
@extend %with-help-circle-outline-mask, %as-pseudo;
|
|
}
|
|
.nspace dt::before {
|
|
@extend %with-folder-outline-mask, %as-pseudo;
|
|
}
|
|
.health dt::before {
|
|
@extend %with-help-circle-outline-mask, %as-pseudo;
|
|
}
|
|
.nspace dt::before,
|
|
.health dt::before {
|
|
background-color: $gray-500;
|
|
}
|
|
.passing::before {
|
|
@extend %with-check-circle-fill-color-mask, %as-pseudo;
|
|
background-color: $green-500;
|
|
}
|
|
.warning::before {
|
|
@extend %with-alert-triangle-color-mask, %as-pseudo;
|
|
background-color: $orange-500;
|
|
}
|
|
.critical::before {
|
|
@extend %with-cancel-square-fill-color-mask, %as-pseudo;
|
|
background-color: $red-500;
|
|
}
|
|
}
|
|
div:nth-child(3) {
|
|
border-top: 1px solid $gray-200;
|
|
}
|
|
}
|
|
|
|
// Metrics Container
|
|
#metrics-container {
|
|
div:first-child {
|
|
background-color: $white;
|
|
}
|
|
.link {
|
|
background-color: $gray-100;
|
|
a {
|
|
color: $gray-700;
|
|
}
|
|
a::before {
|
|
background-color: $gray-500;
|
|
}
|
|
a:hover {
|
|
color: $color-action;
|
|
}
|
|
.metrics-link::before {
|
|
@extend %with-exit-mask, %as-pseudo;
|
|
}
|
|
.settings-link::before {
|
|
@extend %with-docs-mask, %as-pseudo;
|
|
}
|
|
}
|
|
div:nth-child(3) {
|
|
border-top: 1px solid $gray-200;
|
|
}
|
|
}
|
|
|
|
// SVG Line styling
|
|
#downstream-lines svg,
|
|
#upstream-lines svg {
|
|
path {
|
|
fill: $transparent;
|
|
}
|
|
circle {
|
|
fill: $white;
|
|
}
|
|
#allow-arrow {
|
|
fill: $gray-300;
|
|
stroke-linejoin: round;
|
|
}
|
|
path,
|
|
#allow-dot,
|
|
#allow-arrow {
|
|
stroke: $gray-300;
|
|
stroke-width: 2;
|
|
}
|
|
path[data-permission='deny'] {
|
|
stroke: $red-500;
|
|
}
|
|
#deny-dot {
|
|
stroke: $red-500;
|
|
stroke-width: 2;
|
|
}
|
|
#deny-arrow {
|
|
fill: $red-500;
|
|
stroke: $red-500;
|
|
stroke-linejoin: round;
|
|
}
|
|
}
|
|
|
|
|
|
// Icon on SVG Lines
|
|
#downstream-lines,
|
|
#upstream-lines {
|
|
.deny::before {
|
|
@extend %with-cancel-square-fill-color-mask, %as-pseudo;
|
|
background-color: $red-500;
|
|
}
|
|
.L7::before {
|
|
@extend %with-layers-mask, %as-pseudo;
|
|
background-color: $gray-300;
|
|
}
|
|
span {
|
|
transform: translate(-50%,-50%);
|
|
position: absolute;
|
|
background-color: $white;
|
|
}
|
|
} |