forked from plurby/SiteMonitR
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
036427b
commit 28d79fc
Showing
11 changed files
with
531 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,336 @@ | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | ||
<head> | ||
<title>README.md</title> | ||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
<style type="text/css"> | ||
body{ | ||
margin: 0 auto; | ||
font-family: Georgia, Palatino, serif; | ||
color: #444444; | ||
line-height: 1; | ||
max-width: 960px; | ||
padding: 5px; | ||
} | ||
h1, h2, h3, h4 { | ||
color: #111111; | ||
font-weight: 400; | ||
} | ||
h1, h2, h3, h4, h5, p { | ||
margin-bottom: 16px; | ||
padding: 0; | ||
} | ||
h1 { | ||
font-size: 28px; | ||
} | ||
h2 { | ||
font-size: 22px; | ||
margin: 20px 0 6px; | ||
} | ||
h3 { | ||
font-size: 21px; | ||
} | ||
h4 { | ||
font-size: 18px; | ||
} | ||
h5 { | ||
font-size: 16px; | ||
} | ||
a { | ||
color: #0099ff; | ||
margin: 0; | ||
padding: 0; | ||
vertical-align: baseline; | ||
} | ||
a:hover { | ||
text-decoration: none; | ||
color: #ff6600; | ||
} | ||
a:visited { | ||
color: purple; | ||
} | ||
ul, ol { | ||
padding: 0; | ||
margin: 0; | ||
} | ||
li { | ||
line-height: 24px; | ||
margin-left: 44px; | ||
} | ||
li ul, li ul { | ||
margin-left: 24px; | ||
} | ||
p, ul, ol { | ||
font-size: 14px; | ||
line-height: 20px; | ||
max-width: 540px; | ||
} | ||
pre { | ||
padding: 0px 24px; | ||
max-width: 800px; | ||
white-space: pre-wrap; | ||
} | ||
code { | ||
font-family: Consolas, Monaco, Andale Mono, monospace; | ||
line-height: 1.5; | ||
font-size: 13px; | ||
} | ||
aside { | ||
display: block; | ||
float: right; | ||
width: 390px; | ||
} | ||
blockquote { | ||
border-left:.5em solid #eee; | ||
padding: 0 2em; | ||
margin-left:0; | ||
max-width: 476px; | ||
} | ||
blockquote cite { | ||
font-size:14px; | ||
line-height:20px; | ||
color:#bfbfbf; | ||
} | ||
blockquote cite:before { | ||
content: '\2014 \00A0'; | ||
} | ||
|
||
blockquote p { | ||
color: #666; | ||
max-width: 460px; | ||
} | ||
hr { | ||
width: 540px; | ||
text-align: left; | ||
margin: 0 auto 0 0; | ||
color: #999; | ||
} | ||
|
||
button, | ||
input, | ||
select, | ||
textarea { | ||
font-size: 100%; | ||
margin: 0; | ||
vertical-align: baseline; | ||
*vertical-align: middle; | ||
} | ||
button, input { | ||
line-height: normal; | ||
*overflow: visible; | ||
} | ||
button::-moz-focus-inner, input::-moz-focus-inner { | ||
border: 0; | ||
padding: 0; | ||
} | ||
button, | ||
input[type="button"], | ||
input[type="reset"], | ||
input[type="submit"] { | ||
cursor: pointer; | ||
-webkit-appearance: button; | ||
} | ||
input[type=checkbox], input[type=radio] { | ||
cursor: pointer; | ||
} | ||
/* override default chrome & firefox settings */ | ||
input:not([type="image"]), textarea { | ||
-webkit-box-sizing: content-box; | ||
-moz-box-sizing: content-box; | ||
box-sizing: content-box; | ||
} | ||
|
||
input[type="search"] { | ||
-webkit-appearance: textfield; | ||
-webkit-box-sizing: content-box; | ||
-moz-box-sizing: content-box; | ||
box-sizing: content-box; | ||
} | ||
input[type="search"]::-webkit-search-decoration { | ||
-webkit-appearance: none; | ||
} | ||
label, | ||
input, | ||
select, | ||
textarea { | ||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | ||
font-size: 13px; | ||
font-weight: normal; | ||
line-height: normal; | ||
margin-bottom: 18px; | ||
} | ||
input[type=checkbox], input[type=radio] { | ||
cursor: pointer; | ||
margin-bottom: 0; | ||
} | ||
input[type=text], | ||
input[type=password], | ||
textarea, | ||
select { | ||
display: inline-block; | ||
width: 210px; | ||
padding: 4px; | ||
font-size: 13px; | ||
font-weight: normal; | ||
line-height: 18px; | ||
height: 18px; | ||
color: #808080; | ||
border: 1px solid #ccc; | ||
-webkit-border-radius: 3px; | ||
-moz-border-radius: 3px; | ||
border-radius: 3px; | ||
} | ||
select, input[type=file] { | ||
height: 27px; | ||
line-height: 27px; | ||
} | ||
textarea { | ||
height: auto; | ||
} | ||
|
||
/* grey out placeholders */ | ||
:-moz-placeholder { | ||
color: #bfbfbf; | ||
} | ||
::-webkit-input-placeholder { | ||
color: #bfbfbf; | ||
} | ||
|
||
input[type=text], | ||
input[type=password], | ||
select, | ||
textarea { | ||
-webkit-transition: border linear 0.2s, box-shadow linear 0.2s; | ||
-moz-transition: border linear 0.2s, box-shadow linear 0.2s; | ||
transition: border linear 0.2s, box-shadow linear 0.2s; | ||
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); | ||
-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); | ||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); | ||
} | ||
input[type=text]:focus, input[type=password]:focus, textarea:focus { | ||
outline: none; | ||
border-color: rgba(82, 168, 236, 0.8); | ||
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); | ||
-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); | ||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); | ||
} | ||
|
||
/* buttons */ | ||
button { | ||
display: inline-block; | ||
padding: 4px 14px; | ||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | ||
font-size: 13px; | ||
line-height: 18px; | ||
-webkit-border-radius: 4px; | ||
-moz-border-radius: 4px; | ||
border-radius: 4px; | ||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); | ||
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); | ||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); | ||
background-color: #0064cd; | ||
background-repeat: repeat-x; | ||
background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd)); | ||
background-image: -moz-linear-gradient(top, #049cdb, #0064cd); | ||
background-image: -ms-linear-gradient(top, #049cdb, #0064cd); | ||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd)); | ||
background-image: -webkit-linear-gradient(top, #049cdb, #0064cd); | ||
background-image: -o-linear-gradient(top, #049cdb, #0064cd); | ||
background-image: linear-gradient(top, #049cdb, #0064cd); | ||
color: #fff; | ||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | ||
border: 1px solid #004b9a; | ||
border-bottom-color: #003f81; | ||
-webkit-transition: 0.1s linear all; | ||
-moz-transition: 0.1s linear all; | ||
transition: 0.1s linear all; | ||
border-color: #0064cd #0064cd #003f81; | ||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); | ||
} | ||
button:hover { | ||
color: #fff; | ||
background-position: 0 -15px; | ||
text-decoration: none; | ||
} | ||
button:active { | ||
-webkit-box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); | ||
-moz-box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); | ||
box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); | ||
} | ||
button::-moz-focus-inner { | ||
padding: 0; | ||
border: 0; | ||
} | ||
|
||
/* CSS stylesheet is based on Kevin Burke's Markdown.css project (http://kevinburke.bitbucket.org/markdowncss) */ | ||
</style> | ||
</head> | ||
<body> | ||
<h1>SiteMonitR Sample</h1> | ||
|
||
<p>The SiteMonitR sample demonstrates how a Windows Azure Cloud Service and a Windows Azure Web Site can use SignalR to communicate in an asynchronous communication. The SiteMonitR Cloud Service pings all of the sites in a list of sites stored in Windows Azure Table Storage. As each site's status is obtained, it is sent over to a SignalR Hub housed in a Windows Azure Web Site. When the SignalR Hub receives notifications for a site, the Web Site's user interface is updated in real-time. The result is a web site monitoring application that provides up-to-date status of web sites, giving site administrators real-time data on how their sites are performing. </p> | ||
|
||
<h3>Prerequisites</h3> | ||
|
||
<ul> | ||
<li><a href="http://www.microsoft.com/visualstudio/en-us/products">Visual Studio 2012</a> </li> | ||
<li><a href="http://www.windowsazure.com/en-us/develop/net/">Windows Azure SDK for .NET 1.7</a></li> | ||
</ul> | ||
|
||
<h3>Running the Sample Locally</h3> | ||
|
||
<p>To get the site and cloud service running locally on a development workstation execute the following steps. </p> | ||
|
||
<ol> | ||
<li>Open Visual Studio 2012 as an Administrator (the Windows Azure SDK requires elevated priveleges to run the Windows Azure Compute and Storage emulators)</li> | ||
<li>Open the SiteMonitR.sln solution</li> | ||
<li>Press the F5 key to run the Cloud Service and Web Site simultaneously</li> | ||
<li>Use the HTML form to add a URL (include the "http://" in the text box)</li> | ||
<li>Observe as the site is monitored</li> | ||
<li>Add any additional sites and observe how they are monitored in real time</li> | ||
</ol> | ||
|
||
<h3>Running the Sample in Windows Azure</h3> | ||
|
||
<p>To get the site and cloud service running in Windows Azure, execute the following steps. A more comprehensive walk-through on setting up the entire application, see the <a href="https://github.com/WindowsAzure-Samples/SiteMonitR/blob/master/GettingStarted.md">Getting Started</a> document for this sample. </p> | ||
|
||
<ol> | ||
<li>Log in to the Windows Azure portal. </li> | ||
<li>Create a new storage account to be used by the application.</li> | ||
<li>Create a new Cloud Service to use as the background service for the SiteMonitR application.</li> | ||
<li>Create a new Web Site to use to as the front-end web site for the SiteMonitR application.</li> | ||
<li>Go into the dashboard for the new storage account you created and click the <strong>Manage Keys</strong> button at the bottom of the portal. Copy the storage account's key to the clipboard.</li> | ||
<li>In Visual Studio 2012, expand the <strong>SiteMonitR.Azure</strong> project's <strong>Roles</strong> node. Double-click the <strong>SiteMonitR.WorkerRole</strong> node to open up the role's settings pane.</li> | ||
<li>Select the <strong>Cloud</strong> option from the <strong>Service Configuration</strong> drop-down menu. </li> | ||
<li>Click the ellipse button next to the <strong>SiteMonitRConnectionString</strong> setting. </li> | ||
<li>Enter in the storage account name and primary access key copied from the portal.</li> | ||
<li>Click the OK button.</li> | ||
<li>Repeat the same steps to set the <strong>Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString</strong> setting.</li> | ||
<li>Change the <strong>GUI_URL</strong> setting to reflect the URL of the Windows Azure Web Site you created using the Windows Azure portal. </li> | ||
<li>Right-click the <strong>SiteMonitR.Azure</strong> project and select the <strong>Publish</strong> menu item from the context menu.</li> | ||
<li>If you haven't yet imported your publish settings, click the <strong>Sign in to download credentials</strong> link in the publish dialog. </li> | ||
<li>Your web browser will open up and browse to the Windows Azure publish profile download page. When the page tries to download the publish settings file, click the <strong>Save</strong> button to save the file to your local workstation.</li> | ||
<li>Go back to Visual Studio 2012. Click the <strong>Import</strong> button in the publish dialog. Then, browse to the publish settings file you just downloaded and select it. </li> | ||
<li>Click the <strong>Publish</strong> button to deploy the Cloud Service to Windows Azure.</li> | ||
<li>The <strong>Windows Azure Activity Log</strong> window should open to display the Cloud Service's publishing process happening.</li> | ||
<li>Go back to the Windows Azure portal. Click the web site you just created to load the site's dashboard page. </li> | ||
<li>Once the site's dashboard loads in the browser, click the <strong>Download publish profile</strong> link.</li> | ||
<li>When the browser tries to download the file, save it to your local workstation. </li> | ||
<li>Right-click the <strong>SiteMonitR.Web</strong> project in Visual Studio 2012. Then select the <strong>Publish</strong> menu item from the context menu.</li> | ||
<li>Click the <strong>Import</strong> button on the publish dialog. Then, find the web site publish settings file downloaded from the Windows Azure portal.</li> | ||
<li>Click the <strong>Publish</strong> button in the dialog to publish the web site to Windows Azure.</li> | ||
<li>Once the site has been published, go back to the site's dashboard page in the Windows Azure portal. Click the <strong>Configure</strong> tab. </li> | ||
<li>Change the default document from <strong>Default.htm</strong> to <strong>Default.html</strong>. Then delete the other options from the list of default pages. Then, click the <strong>Save</strong> button to save the site configuration.</li> | ||
<li>Click the <strong>Browse</strong> button at the bottom of the web site's dashboard to browse the site.</li> | ||
<li>The site will open and present you with a simple form you can use to provide URL's of sites you'd like to monitor. </li> | ||
<li>Type in a site URL and click the <strong>Add Site</strong> button. The site will be added to the list of sites you are monitoring. </li> | ||
<li>Add in as many sites as you would like. All of the sites are monitored by the Cloud Service. Their status will update in real-time as the sites are hit by the service and reported in the web site. To remove a site, click the X button and the site will be removed from the list of sites monitored by the application. </li> | ||
</ol> | ||
|
||
<h3>Detailed Instructions</h3> | ||
|
||
<p>For a more detailed walk-through on how to perform each of the individual tasks required to get this sample working in Windows Azure, see the sample's <a href="https://github.com/WindowsAzure-Samples/SiteMonitR/blob/master/GettingStarted.md">Getting Started</a> document in the repository containing the code for the sample. </p> | ||
|
||
</body> | ||
</html> | ||
<!-- This document was created with MarkdownPad, the Markdown editor for Windows (http://markdownpad.com) --> |
Oops, something went wrong.