This solution is currently in preview (learn more from our blog announcement). The remote monitoring solution incorporates learnings from customers and partners, and is a fully operational IoT solution right out of the box.
Plus, a lot of great functionality will be coming in the next few months, including:
- Extended method support for your simulated devices to help demo and test additional scenarios
- Additional ‘Getting Started’ and ‘Customization’ documentation in our GitHub repositories
- Easier retrieval of your physical device connection string in the web solution
- Performance enhancements
- UX improvements
- Expanded browser compatibility (Internet Explorer and others)
We will also be fixing known bugs. You can refer to our Issues List in this repo (and in any submodules) to see known requests and issues.
There is also a Java version of this repo available here
The preview offers many features but there are known bugs. You can refer to our Issues List in this repo (and in any submodules) to see known requests and issues. If something doesn’t work as you would expect, feel free to submit new issues. We also love PRs for fixes too!
We have a User Voice channel to receive suggestions for features and future supported scenarios. We encourage you to browse what others are suggesting, vote for your favorites, and even enter suggestions of your own.
Remote monitoring helps you get better visibility into your devices, assets, and sensors wherever they happen to be located. You can collect and analyze real-time device data using a remote monitoring solution that triggers automatic alerts and actions — from remote diagnostics to maintenance requests. You can also command and control your devices.
Azure IoT Hub is a key building block of the remote monitoring solution. IoT Hub is a fully managed service that enables reliable and secure bidirectional communications between millions of IoT devices and a solution back end.
Check out the Interactive Demo for a detailed overview of features and use cases.
To get started you can follow along with the Getting Started for a command line deployment. You can also deploy using the web interface at https://azureiotsuite.com.
- Azure Subscription (also see permissions guidelines)
-
Open a terminal window or command shell
-
Check out the repository and submodules
git clone --recursive https://github.com/Azure/azure-iot-pcs-remote-monitoring-dotnet.git
If you cloned the repo without the
--recursive
flag and it's your first time updating the submodules, you can usegit submodule update --init --recursive
. More information on submodules here. -
Set up command line interface for deployments
Mac/Linux
cd azure-iot-pcs-remote-monitoring-dotnet/cli npm install npm start npm link
Windows
cd azure-iot-pcs-remote-monitoring-dotnet\cli npm install npm start npm link
-
Sign into your Azure account with
pcs login
A standard deployment is a production-ready solution for reliability and scale. See Basic vs. Standard Deployments for more details.
pcs -s standard
A lower-cost showcase solution best for discovering and learning about what a Remote Monitoring preconfigured solution has to offer. See Basic vs. Standard Deployments for more details.
pcs
To set up a Remote Monitoring Solution locally see Local Development
By default, the solution uses simulated devices. You can start adding your own devices with the instructions here: Connect a physical device
Once you are ready, you can stop the default simulated devices by calling the simulation endpoint with the instructions here.
Basic deployment is geared toward showcasing the solution. To reduce the cost of this demonstration, all the microservices are deployed in a single virtual machine; this is not considered a production-ready architecture.
Our Standard deployment option should be used when you are ready to customize a production-ready architecture, built for scale and extensibility.
Creating a Basic solution will result in the following Azure services being provisioned into your Azure subscription at cost:
Count | Resource | Type | Used For |
---|---|---|---|
1 | Linux Virtual Machine | Standard D1 V2 | Hosting microservices |
1 | Azure IoT Hub | S1 – Basic tier | Device management and communication |
1 | Azure Cosmos DB | Standard | Storing configuration data, and device telemetry like rules, alarms, and messages |
1 | Azure Storage Account | Standard | Storage for VM and streaming checkpoints |
1 | Web Application | Hosting front-end web application |
The standard deployment is a production-ready deployment a developer can customize and extend to meet their needs. For reliability and scale, application microservices are built as Docker containers and deployed using an orchestrator (Kubernetes by default). The orchestrator is responsible for deployment, scaling, and management of the application.
Creating a Standard solution will result in the following Azure services being provisioned into your Azure subscription at cost:
Count | Resource | SKU / Size | Used For |
---|---|---|---|
4 | Linux Virtual Machines | Standard D2 V2 | 1 master and 3 agents for hosting microservices with redundancy |
1 | Azure Container Service | Kubernetes orchestrator | |
1 | Azure IoT Hub | S1 – Basic tier | Device management, command and control |
1 | Azure Cosmos DB | Standard | Storing configuration data, and device telemetry like rules, alarms, and messages |
5 | Azure Storage Accounts | Standard | 4 for VM storage, and 1 for the streaming checkpoints |
1 | App Service | S1 Standard | Application gateway over SSL |
Pricing information for these services can be found here. Usage amounts and billing details for your subscription can be found in the Azure Portal.
Remote Monitoring is the first of our preconfigured solutions to leverage a microservices architecture. The solution is available in both .NET and Java. Microservices have emerged as a prevalent pattern to achieve scale and flexibility (by allowing containers to be scaled individually), without compromising development speed. Microservices compartmentalize the code and provide well defined interfaces making the solution easier to understand and less monolithic. It also further expands options for partners that want to extend our current preconfigured solutions to build finished solutions that can be monetized.
Learn more about Docker Containers
- Remote Monitoring Web UI
- Command Line Interface (CLI)
- IoT Hub manager
- User Management
- Device Simulation
- Telemetry
- Telemetry Agent
- Configuration
- Storage Adapter
- Application Gateway (SSL Proxy WebApp)
- API Gateway
- If you have feedback, feature requests, or find a problem, you can create a new issue in the GitHub Issues
- We also have a User Voice channel to receive suggestions for features and future supported scenarios.
Refer to our contribution guidelines
Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License.