UNPKG

thalassa-aqueduct

Version:

Dynamic haproxy load balancer and configuration. Part of Thalassa

519 lines (444 loc) 8.87 kB
/********************************** BEGIN TEMP CSS */ .entry { float: left; min-width: 560px; margin-right: 10px; margin-bottom: 10px; border: 4px solid #eee; clear: left; } .entry:nth-child(even) { margin-right: 0; clear: none; } @media (max-width: 1200px) { .entry { width: 100%; min-width: 600px; max-width: 1000px; } } table.dashboard > tbody > tr.success > td { background: #fff; } table.dashboard th { text-align: left; background: #eee; } table.dashboard td { text-align: center; } table.dashboard tbody>tr>th { border: none; } table.dashboard th h2 { font-size: 24px; font-weight: 200; margin: 0; padding-bottom: 5px; } table.dashboard th .id { font-size: 14px; font-weight: 500; } table.dashboard th .favorite-icon { position: relative; float: right; margin-right: 10px; margin-top: -45px; font-size: 20px; cursor: pointer; } table.dashboard td.status-label div { margin-top: -9px; margin-left: -9px; padding: 5px; color: #fff; font-weight: 200; } table.dashboard .name { font-size: 20px; font-weight: 500; } table.dashboard .little-graph { display: inline-block; vertical-align: middle; } table.dashboard .big-block { display: inline-block; vertical-align: middle; min-width: 130px; } table.dashboard .big-number { line-height: 110%; font-size: 34px; font-weight: 100; } table.dashboard .big-number-label { font-size: 12px; font-weight: 400; color: #333; } table.dashboard td.servers { padding-top: 13px; } .favorite-true { color: #999 !important; transform: rotate(45deg); -ms-transform: rotate(45deg); /* IE 9 */ -webkit-transform: rotate(45deg); /* Safari and Chrome */ } .favorite-false { color: #999 !important; } .pool-detail { width: 100%; margin-top: -30px; border-left: 1px solid #ccc; border-right: 1px solid #ccc; background: #eee; } .pool-detail .pool-heading { background: #eee; padding: 10px; border-bottom: 1px solid #ccc; } .pool-detail .pool-heading h2 { margin: 0; font-size: 35px; font-weight: 200; } .pool-detail .pool-heading span { font-size: 16px; font-weight: 200; color: #333; } .pool-detail .frontends { float: left; width: 50%; background: #fff; border-left: none; } .pool-detail .backends { float: left; width: 50%; background: #fff; border-left: 1px solid #ccc; } .pool-detail h3 { display: block; margin: 0; padding: 20px; background: #ddd; font-size: 20px; background: #ddd; border-bottom: 1px solid #ccc; } .pool-detail .pool-info { padding-bottom: 20px; border-bottom: 1px solid #ccc; } .pool-detail .pool-info .status-label { display: inline-block; vertical-align: middle; margin-right: 20px; padding: 10px; font-size: 24px; font-weight: 100 !important; letter-spacing: 1px; color: #fff; font-weight: bold; } .pool-detail .pool-info h4 { display: inline-block; vertical-align: middle; margin: 0; font-size: 24px; font-weight: 800; max-width: 380px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .pool-detail .pool-info .version { display: inline-block; margin: 15px 15px 0 0; } .pool-detail .pool-info .time-series-wrapper { margin: 20px 10px 10px 10px; } .pool-detail .pool-info .donut { margin-left: 5px; } .pool-detail .pool-info h5 { font-weight: 800; } .pool-detail .pool-info ul, .pool-detail .pool-info .members { padding: 0 10px; } .pool-detail .pool-info .members > div { padding: 5px 0; border-top: 1px solid #ddd; } .pool-detail .pool-info .members > div:last-child { border-bottom: 1px solid #ddd; } /********************************** END TEMP CSS */ #view-container { margin-top: 80px; } .connection-status { position: absolute; width: 1.25em; height: 1.25em; top: 15px; left: 10px; display: inline-block; text-align: center; border-radius: 1.25em; line-height: normal; } .connection-status span { font-size: 8px; color: #ddd; } .connection-status-connected { background-color: #00CD00; } .connection-status-disconnected { background-color: #CD0000; } .connection-status-connecting { background-color: #FF7F00; } .favorite-true { color: red; } .favorite-false { color: gray; } div.proxy-detail .favorite-true, div.proxy-detail .favorite-false, div.favorites .favorite-true, div.favorites .favorite-false { position: absolute; right: 0.25em; top: 0.25em; font-size: 2em; } .proxy-list li a { font-weight: bold; font-size: 1.2em; margin-right: 0.5em; } .proxy-list .favorite-true, .proxy-list .favorite-false { font-size: 1.2em; margin-right: 0.5em; } .service-list, .activity-list { list-style: none; } .service-list li, .activity-list li { margin-top: 5px; } .activity-list small { color: gray; } .label-online { background-color: #5cb85c; } .label-offline { background-color: #d9534f; } .label-started { background-color: #f0ad4e; } .label-haproxyRestarted { background-color: #f0ad4e; } .label-haproxyConfigChanged { background-color: #428bca; } .time-series-label { opacity: 0.8; font-size: 0.9em; } .time-series-wrapper { position: relative; } .panel.favorites, .panel.proxy-detail { margin-right: 15px; float: left; } .panel.proxy-detail .panel-heading h3, .panel.proxy-detail .panel-heading span, .panel.favorites .panel-heading h3, .panel.favorites .panel-heading span { padding-right:30px; } .panel.proxy-detail .frontends, .panel.proxy-detail .backends{ float: left; padding-right: 20px; } .panel.favorites .frontends, .panel.favorites .backends { float: left; padding-right: 10px; } .panel-heading a { color: #428bca; } .inline { display: inline; } /* ticks */ .rickshaw_graph .x_tick { position: absolute; top: 0; bottom: 0; width: 0px; border-left: 1px dotted rgba(0, 0, 0, 0.2); pointer-events: none; } .rickshaw_graph .x_tick .title { position: absolute; font-size: 12px; font-family: Arial, sans-serif; opacity: 0.5; white-space: nowrap; margin-left: 3px; bottom: 1px; } /* annotations */ .rickshaw_annotation_timeline { height: 1px; border-top: 1px solid #e0e0e0; margin-top: 10px; position: relative; } .rickshaw_annotation_timeline .annotation { position: absolute; height: 6px; width: 6px; margin-left: -2px; top: -3px; border-radius: 5px; background-color: rgba(0, 0, 0, 0.25); } .rickshaw_graph .annotation_line { position: absolute; top: 0; bottom: -6px; width: 0px; border-left: 2px solid rgba(0, 0, 0, 0.3); display: none; } .rickshaw_graph .annotation_line.active { display: block; } .rickshaw_graph .annotation_range { background: rgba(0, 0, 0, 0.1); display: none; position: absolute; top: 0; bottom: -6px; } .rickshaw_graph .annotation_range.active { display: block; } .rickshaw_graph .annotation_range.active.offscreen { display: none; } .rickshaw_annotation_timeline .annotation .content { background: white; color: black; opacity: 0.9; padding: 5px 5px; box-shadow: 0 0 2px rgba(0, 0, 0, 0.8); border-radius: 3px; position: relative; z-index: 20; font-size: 12px; padding: 6px 8px 8px; top: 18px; left: -11px; width: 160px; display: none; cursor: pointer; } .rickshaw_annotation_timeline .annotation .content:before { content: "\25b2"; position: absolute; top: -11px; color: white; text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.8); } .rickshaw_annotation_timeline .annotation.active, .rickshaw_annotation_timeline .annotation:hover { background-color: rgba(0, 0, 0, 0.8); cursor: none; } .rickshaw_annotation_timeline .annotation .content:hover { z-index: 50; } .rickshaw_annotation_timeline .annotation.active .content { display: block; } .rickshaw_annotation_timeline .annotation:hover .content { display: block; z-index: 50; } .rickshaw_graph .y_axis, .rickshaw_graph .x_axis_d3 { fill: none; } .rickshaw_graph .y_ticks .tick, .rickshaw_graph .x_ticks_d3 .tick { stroke: rgba(0, 0, 0, 0.16); stroke-width: 2px; shape-rendering: crisp-edges; pointer-events: none; } .rickshaw_graph .y_grid .tick, .rickshaw_graph .x_grid_d3 .tick { z-index: -1; stroke: rgba(0, 0, 0, 0.20); stroke-width: 1px; stroke-dasharray: 1 1; } .rickshaw_graph .y_grid path, .rickshaw_graph .x_grid_d3 path { fill: none; stroke: none; } .rickshaw_graph .y_ticks path, .rickshaw_graph .x_ticks_d3 path { fill: none; stroke: #808080; } .rickshaw_graph .y_ticks text, .rickshaw_graph .x_ticks_d3 text { opacity: 0.5; font-size: 12px; pointer-events: none; } .rickshaw_graph .x_tick.glow .title, .rickshaw_graph .y_ticks.glow text { fill: black; color: black; text-shadow: -1px 1px 0 rgba(255, 255, 255, 0.1), 1px -1px 0 rgba(255, 255, 255, 0.1), 1px 1px 0 rgba(255, 255, 255, 0.1), 0px 1px 0 rgba(255, 255, 255, 0.1), 0px -1px 0 rgba(255, 255, 255, 0.1), 1px 0px 0 rgba(255, 255, 255, 0.1), -1px 0px 0 rgba(255, 255, 255, 0.1), -1px -1px 0 rgba(255, 255, 255, 0.1); }