Skip to content

Commit f10ee96

Browse files
Sam RystromSam Rystrom
Sam Rystrom
authored and
Sam Rystrom
committed
first commit
0 parents  commit f10ee96

File tree

9 files changed

+196
-0
lines changed

9 files changed

+196
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# nlogservercalc

assets/img/10.png

86 KB
Loading

assets/img/2.png

36 KB
Loading

assets/img/3.png

50.4 KB
Loading

assets/img/4.png

52.1 KB
Loading

assets/javascripts/index.js

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
function validateForm(form) {
2+
3+
var data = form.data.value;
4+
var retention = form.retention.value;
5+
var drive = form.drive.value;
6+
7+
function validateNumber(num, id) {
8+
9+
if (num === "" || num < 0 || num === null) {
10+
11+
document.getElementById('invalid-' + id).classList.add("visible");
12+
13+
return false;
14+
15+
}
16+
17+
document.getElementById('invalid-' + id).classList.remove("visible");
18+
19+
return true;
20+
21+
}
22+
23+
var dataValid = validateNumber(data, "data");
24+
var retentionValid = validateNumber(data, "retention");
25+
var driveValid = validateNumber(drive, "drive");
26+
27+
if (dataValid == false || retentionValid == false || driveValid == false) {
28+
return false;
29+
}
30+
31+
return true;
32+
33+
}
34+
35+
function calculate(form) {
36+
37+
var data = form.data.value;
38+
var retention = form.retention.value;
39+
var drive = form.drive.value;
40+
41+
var formValidated = validateForm(form);
42+
43+
if (formValidated == true) {
44+
45+
var instances = ((data * 2) * retention) / ((drive * 1024) - 10);
46+
47+
if (instances <= 2) {instances = 2}
48+
else if (instances <= 3) {instances = 3}
49+
else if (instances <= 4) {instances = 4}
50+
else if (instances <= 10) {instances = 10}
51+
else if (instances > 10) {instances = 10};
52+
53+
// TODO: 20
54+
55+
document.getElementById("node-count").innerText = instances;
56+
document.getElementById("diagram").setAttribute("src", "assets/img/" + instances + ".png");
57+
58+
}
59+
60+
}

assets/stylesheets/index.css

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
.download {
2+
margin: .1em 1em .1em 0;
3+
padding: .5em 1em;
4+
background: #4d89f9;
5+
color: #fff;
6+
border: 0;
7+
text-align: center;
8+
}
9+
10+
.invalid-feedback {
11+
display: none;
12+
color: red;
13+
}
14+
15+
.invalid-feedback.visible {
16+
display: block;
17+
}
18+
19+
.instance {
20+
background-color: #4cae4c;
21+
color: white;
22+
padding: 16px;
23+
}
24+
25+
img {
26+
width: 100%;
27+
}

assets/stylesheets/nagios.css

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

index.html

+107
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
<html>
2+
3+
<head>
4+
<!-- <link rel="stylesheet" href="https://www.nagios.com/wp-content/themes/pursuit/assets/css/A.bootstrap.min.css,qver=3.1.1.pagespeed.cf.jfLbuhCNp4.css"> -->
5+
<link rel="stylesheet" href="assets/stylesheets/nagios.css">
6+
<link rel="stylesheet" href="assets/stylesheets/index.css">
7+
</head>
8+
9+
<body>
10+
11+
<title>Test</title>
12+
13+
<div class="container">
14+
15+
<div class="row">
16+
<div class="col-s6">
17+
<h3>
18+
Nagios Log Server
19+
</h3>
20+
<h1>
21+
Nagios Log Server Hardware Sizing Requirements
22+
</h1>
23+
<h5>Estimate the required number of Nagios Log Server instances for your environment</h5>
24+
</div>
25+
</div>
26+
27+
<div class="row" style="margin-top: 30px;">
28+
29+
<div class="col-sm-3">
30+
31+
<form name="calculates" action="" method="GET">
32+
33+
<div class="form-group">
34+
<label for="data">Log Data Per Day (GB)</label>
35+
<input class="form-control" placeholder="Data in per day* (GB)" type="number" name="data"
36+
value="">
37+
<div id="invalid-data" class="invalid-feedback">Please enter a value.</div>
38+
<small>How much aggregate log data will you be sending to Nagios Log Server per day?</small>
39+
</div>
40+
41+
<div class="form-group">
42+
<label for="retention">Retention period (days)</label>
43+
<input class="form-control" placeholder="Retention period (days)*" type="number"
44+
name="retention" value="">
45+
<div id="invalid-retention" class="invalid-feedback">Please enter a value.</div>
46+
<small>How many days would you like Log Server to retain data? Data retained on Nagios Log
47+
Server can be easily searched and queried. Data past this period will be available on
48+
external storage.</small>
49+
</div>
50+
51+
<div class="form-group">
52+
<label for="drive">Available Drive Space Per Server (TB)</label>
53+
<input class="form-control" placeholder="Drive Space (TB)*" type="number" name="drive" value="">
54+
<div id="invalid-drive" class="invalid-feedback">Please enter a value.</div>
55+
<small>How much drive space will be available for <i>each</i> Nagios Log Server instance
56+
(server)?</small>
57+
</div>
58+
59+
<input type="button" class="download" onclick="calculate(this.form)" value="Submit">
60+
61+
</form>
62+
63+
</div>
64+
65+
<div class="col-sm-9">
66+
67+
<h3 class="text-center">Recommended Nagios Log Server Cluster</h3>
68+
69+
<h2 id="instance" class="text-center"><span id="node-count">4</span> Instance Cluster</h2>
70+
71+
<div class="row align-items-center">
72+
73+
<div class="col-sm-2"></div>
74+
<div class="col-sm-8">
75+
<img id="diagram" src="assets/img/2.png"></img>
76+
</div>
77+
<!-- <div class="col-sm-4">
78+
<div class="instance">
79+
<h3 class="text-center">Log Server Instance</h3>
80+
</div>
81+
</div>
82+
83+
<div class="col-sm-4">
84+
<div class="instance">
85+
<h3 class="text-center">Log Server Instance</h3>
86+
</div>
87+
</div>
88+
89+
<div class="col-sm-4">
90+
<div class="instance">
91+
<h3 class="text-center">Log Server Instance</h3>
92+
</div>
93+
</div> -->
94+
95+
</div>
96+
97+
</div>
98+
99+
</div>
100+
101+
</div>
102+
103+
<script src="assets/javascripts/index.js"></script>
104+
105+
</body>
106+
107+
</html>

0 commit comments

Comments
 (0)