Coder Social home page Coder Social logo

azure-iot-pcs-remote-monitoring-dotnet's Introduction

Build status Issues Gitter

Note: As of December 10th 2020, Remote Monitoring solution accelerator is no longer supported. All supporting repositories have been archived. Check the FAQ to learn more.

Remote Monitoring Solution with Azure IoT

Overview

There is a Java version of this repo available here

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://www.azureiotsolutions.com.

Documentation

See more documentation here.

Getting Started

Deploy a solution

There are three ways to deploy a solution accelerator:

  1. Deploy using the web interface using the instructions here.
  2. Deploy using the command line.
  3. Deploy locally using instructions here.

Common Scenarios

Create additional simulated devices

Once you have a solution up and running, you can create additional simulated devices. You can then stop the default simulated devices by calling the simulation endpoint with the instructions here.

Connect a physical device!

By default, the solution once spun up uses simulated devices. You can start adding your own devices with the instructions here:

Customize the Web UI

You can find information about customizing the remote monitoring solution here.

Architecture Overview

alt text

Learn more about the Remote Monitoring architecture, including the use of microservices and Docker containers.

Components

How-to and Troubleshooting Resources

Feedback

  • 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.

Contributing

Refer to our contribution guidelines. We love PRs!

License

Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License.

azure-iot-pcs-remote-monitoring-dotnet's People

Contributors

andrejpk avatar ashdonaldson14 avatar avneet723 avatar dluc avatar elvinm avatar hegate avatar isaac-dasan avatar jillcary avatar mechaffin avatar ppathan avatar sushilraje avatar timlaverty avatar zhang-hua avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azure-iot-pcs-remote-monitoring-dotnet's Issues

Document PCS All-Up Cost

Type of issue

  • Bug
  • New feature
  • Improvement

Description

Provide customers with a clear summary of the cost breakdown of PCS.
Help customers calculate and modify azure resources to meet their needs (IoTHub, DocumentDb, Storage, etc..)
Help customers understand how adding devices, telemetry frequency, and larger telemetry payloads effect cost.

Problem with location on Firefox

Type of issue

  • [x ] Bug
  • New feature
  • Improvement

Description

Thereโ€™s also a problem with location of the device on Firefox and MAC OS.

Screenshot

Steps to reproduce

  1. Add device active with location.
  2. Access to portal with Firefox and MAC OS.

Expected behavior

The location is the same that others browers.

Current behavior

The location is constantly moving

Context and Environment

  • Operating System: Mac OS X Yosemite
  • Browser: Firefox Quantum

Implement IoT Edge

Type of issue

  • Bug
  • New feature
  • Improvement

Description

Implement Azure IoT Edge functionality into solution.

CLI Standard Deployment Failing

Type of issue

  • [x ] Bug
  • New feature
  • Improvement

Description

Standard deployment failing

Screenshot

error

Steps to reproduce

  1. pcs -s standard

I tried multiple unique names (TMPipeline, TMPipelineSample, TMPipeline2018) and also tried multiple locations (West US and West US 2)

Otherwise entered a unique username, and accepted all of the other defaults.

Expected behavior

Deployment of the standard preconfigured solution

Current behavior

Get the following error. I believe it is related to the container service.

โœ• Deployment failed
{
"status": "Failed",
"error": {
"code": "ResourceDeploymentFailure",
"message": "The resource operation completed with terminal provisioning state 'Failed'.",
"details": [
{
"code": "VMExtensionProvisioningError",
"message": "VM has reported a failure when processing extension 'cse0'. Error message: "Enable failed: failed to execute command: command terminated with exit status=3\n[stdout]\n\n[stderr]\nstat: cannot stat '/opt/azure/containers/provision.complete': No such file or directory\n".",
"details": [
{
"code": "VMExtensionProvisioningError",
"message": "VM has reported a failure when processing extension 'cse0'. Error message: "Enable failed: failed to execute command: command terminated with exit status=3\n[stdout]\n\n[stderr]\nstat: cannot stat '/opt/azure/containers/provision.complete': No such file or directory\n"."
}
]
}
]
}
}

Known workarounds

none

Possible solution

none

Context and Environment

  • Operating System: Windows 10 Enterprise
  • GitHub branch: 1.0.0-preview.5
  • .NET Runtime:

npm install fails on Windows Subsystem For Linux, Ubuntu 16.04.3 if nodejs-legacy is missing

Type of issue

  • Bug
  • New feature
  • Improvement

Description

npm install fails on package [email protected]

Screenshot

npm ERR! [email protected] postinstall: node lib/aesprim.js > generated/aesprim-browser.js
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the [email protected] postinstall script 'node lib/aesprim.js > generated/aesprim-browser.js'.

Steps to reproduce

Start WSL Ubuntu Bash on Windows 10
git clone --recursive https://github.com/Azure/azure-iot-pcs-remote-monitoring-dotnet.git
sudo apt install npm # this pulls node etc. but not nodejs-legacy
cd cli
npm install

Expected behavior

npm install succeeds

Current behavior

npm install fails

Known workarounds

apt install nodejs-legacy

Possible solution

Improve documentation

Context and Environment

  • Operating System: WSL (Windows 10 1709), Ubuntu 16.04.3
  • GitHub branch: master
  • .NET Runtime: ...

Deployment worked. Attaching to dashboard fails with 500: Internal Server Error

Type of issue

  • [X ] Bug
  • New feature
  • Improvement

Description

I followed the instructions on the https://www.azureiotsolutions.com/ site and I get an 500: Internal Server Error.

I am logged in as the Azure Owner.

Screenshot

capture0
capture1

Steps to reproduce

  1. Create New Solution
  2. Launch when ready

Expected behavior

Working Dashboard funtionallity

Current behavior

500: Internal Server Error

Known workarounds

None. I have deleted and provisioned a couple of times and always encounter the same 500: Internal Server Error

Possible solution

...

Context and Environment

  • Operating System: ...
  • GitHub branch: ...
  • .NET Runtime: ...

"Upgrade map key to see devices on a dynamic map" Content is Empty

Type of issue

  • Bug
  • New feature
  • Improvement

Description

The section titled "Upgrade map key to see devices on a dynamic map" on the wiki under "Developer Reference Guide" - "Customization" is empty.

Steps to reproduce

  1. Go to wiki.
  2. Select "Developer Reference Guide".
  3. Under "Contents", select "Upgrade map key to see devices on a dynamic map".

Expected behavior

This section should have content for how to add an interactive map to the solution.

Current behavior

There is no content.

Possible solution

There may be some documentation leftover from the previous implementation of the preconfigured solution that could be used, but I don't know where to find it.

Launch create-hub.sh for create iothub isn't working

Type of issue

  • [x ] Bug
  • New feature
  • Improvement

Description

When create-hub.sh is run, the command window is shown briefly but no Azure credentials are prompted.

Context and Environment

  • Operating System: Windows 10
  • GitHub branch: master
  • .NET Runtime: 4.0

How to Run Every Microservices Separately?

Hi,

I have to run every microservices in separate port.
Can you please provide me the detail step by steps to run for all microservices in different port.
Please tell me how to configure Environmental Variables for every microservices in detail.

DocBug: Add disclaimer that newer versions of Docker for Windows may not work right now

Type of issue

  • Bug
  • New feature
  • Improvement

Description

There have been some issues with using Docker for Windows. It doesn't seem fully solved yet, according to the other GitHub issues. I have not been able to pull images on the Stable version of Docker docker/for-win#1238. docker/for-win#1581 shows that it was a fairly recent development, and the fix is currently in the Edge build.

This should be called out in the documentation. I'm not sure what a good work around is, since I haven't been able to succeed with image building using Edge. I'm running into issues like microsoft/opengcs#148 when trying to create the image. It might be worth redoing the setup on a clean machine using the latest versions of Docker for Windows to ensure that these instructions still work, or note any workarounds you need.
...

Known workarounds

...

Possible solution

...

Context and Environment

  • Operating System: Windows 10 16299.245
  • Docker Version: 18.02.0-ce-rc2-win51 (15631), Channel: Edge
  • GitHub branch: attempted using pcs-remote-monitoring-webui

Can't Set Field on Create Filter

Type of issue

  • Bug
  • New feature
  • Improvement

Description

Following the instructions from Operate the Preconfigured Solution - Update Device Firmware, in the part where it tells how to create a filter, I noticed that I can't set the Field properly because it won't save any text that I enter or show any results in the dropdown.

Steps to reproduce

  1. In the preconfigured solution, navigate to the Devices page and select Manage:

image

  1. Click +Create Filter near the top.
  2. Try setting the Field textbox with any value.

Expected behavior

The dropdown should be automatically updated with field results based on what the user is entering.

Current behavior

The dropdown continues to display No Results and when clicking out of the textbox, whatever field data you wrote will disappear.

Known workarounds

None.

Possible solution

This worked in the stable version of the Remote Monitoring solution. Maybe the functionality from that version could be borrowed and applied to this.

Context and Environment

  • Operating System: Microsoft Edge
  • GitHub branch: master
  • .NET Runtime: Not sure. Where do I find this?

Authenticate to the VM

Type of issue

  • Bug
  • New feature
  • Improvement

Description

Please explain in the developer guide in the section of connecting to the VM that you must to reset the password before connecting the fisrt time.

Screenshot

Steps to reproduce

  1. Try to connect to the VM with SSH
  2. Is requiring the password of the azureuser (or rrot) but is not provided in previous steps.

Expected behavior

Have the password of the user.

Current behavior

We dont have the password when you create the pcs.

Known workarounds

Go to the VM blade in Azure portal and reset the password of the user.

Possible solution

Go to the VM blade in Azure portal and reset the password of the user.

Context and Environment

  • Operating System: ...
  • GitHub branch: ...
  • .NET Runtime: ...

After resize the Virtual Machine, the PCS portal is not working anymore

I create a "Remote monitoring preview" solution from the website:
https://www.azureiotsuite.com/#solutions/types

After creating successfully, it works fine.
However, after I changing the VM size, then the portal is not working, I receive 502 bad gateway error

image

I also try to change the VM size back to original one and restart the VM, it also not work.

Some ideas to solve the problem? Do I need to to restart some services inside the VM?

Thanks

Azure Device Explorer Twin Error

Type of issue

  • [ x] Bug
  • New feature
  • Improvement

Description

Cannot connect to the device via the Azure Device Explorer Twin

Steps to reproduce

  1. I have created the new Remote Monitoring using the Basic / .Net option.
  2. Using the Azure Device Explorer Twin, I have copied my Azure IoT Hub credentials into the IoT Hub Connection String, for example...

HostName=myhost.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=asdf=

  1. I click update and then I go to the Data tab and select a Device ID that is streaming date and click Monitor.

Expected behavior

I would see the streaming JSON data in the Event Hub Data window.
...

Current behavior

I receive the following error...

Receiving events...
Stopped Monitoring events. At least one receiver for the endpoint is created with epoch of '1', and so non-epoch receiver is not allowed. Either reconnect with a higher epoch, or make sure all epoch receivers are closed or disconnected. TrackingId:eb61f3d3-2c4a-4ab4-9362-694f803a6157_B5, SystemTracker:iothub-ns-cfs365v3b8-254072-f2e846dcb1:eventhub:cfs365v3b862732766, Timestamp:11/4/2017 12:10:08 PM Reference:b4ce1ddf-7641-4e7c-b7e5-56d0b8b9b8af, TrackingId:a19ee7f7-0d33-4682-8217-6cf94aeca39c_B5, SystemTracker:iothub-ns-cfs365v3b8-254072-f2e846dcb1:eventhub:cfs365v3b862732766|$default, Timestamp:11/4/2017 12:10:08 PM TrackingId:eb5d3594c4284da0bca9ffed025e4c0e_G9, SystemTracker:gateway6, Timestamp:11/4/2017 12:10:08 PM
device twin error

Known workarounds

None
...

Possible solution

I am not sure as this works on my other IoT Hubs, including ones created by the legacy Remote Monitoring solution.
...

Context and Environment

  • Operating System: ...
  • GitHub branch: ...
  • .NET Runtime: ...

Code to reproduce the bug

using Xunit;

public class MyTest
{
    [Fact]
    public void TestToReproduceIssue()
    {
        // Arrange
        ...

        // Act
        ...

        // Assert
        ...
    }
}

Why containers instead of functions?

Type of issue

  • Bug
  • New feature
  • [ X ] Improvement

Description

Not really an issue, more of a question: why are the major pieces of this sample implemented using containers instead of as one of the native Azure solutions that already provides the same benefits (scalability, robustness), such as Azure Functions or web apps? Why self-host everything in VMs? I'd like to know more about the tradeoffs that were considered and why the solution was implemented as it currently is.

Thanks!

Error example in /scripts/local/.env

Type of issue

  • Bug
  • New feature
  • Improvement

Description

There is an error example in the /scripts/local/.env will cause a strange exception when you run the preview5 locally.

Line 27 (/scripts/local/.env) :
PCS_IOTHUBREACT_HUB_ENDPOINT=Endpoint=sb://iothub-foo-iothub-bar-12345-12345.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=12345=

In the telemetry-agent-dotnet releases:
Line 34 (/scripts/env-vars-setup) :
e.g. "iothub-ns-aaa-bbb-123456-abcdefghij.servicebus.windows.net"

And in telemetry-agent-dotnet project code:
Line 152~155 ๏ผˆStreamingAgent/Agent.cs) :

if (!Uri.TryCreate($"sb://{config.IoTHubConfig.ConnectionConfig.HubEndpoint}/", UriKind.Absolute, out endpoint))
{
throw new InvalidConfigurationException($"Invalid IoTHub endpoint {config.IoTHubConfig.ConnectionConfig.HubEndpoint}");
}

The error example will cause the InvalidConfigurationException.
We only need the strings after sb:// (iothub-ns-aaa-bbb-123456-abcdefghij.servicebus.windows.net) not the full strings(Endpoint=sb://iothub-foo-iothub-bar-12345-12345.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=12345=) copied from Azure Portal.

Add tests to ensure repo and submodules are configured

Type of issue

  • Bug
  • New feature
  • Improvement

Description

Ensure that the repository is well configured:

  • All expected submodules exist
  • All submodules contain code (i.e. are not empty)
  • The solution can be launched
  • Submodules point to a tag

Map is not accurate

Type of issue

  • Bug
  • New feature
  • Improvement

Description

Map is not accurate. Location of devices shown on the map does not correspond with actual coordinates

Screenshot

Steps to reproduce

  1. Add an active device with a known location

Expected behavior

Device's position should match actual location

Current behavior

Location not correspond with actual coordinates.

Context and Environment

  • Operating System: Mac OS X Yosemite
  • Browser : Firefox Quantum

Developer Guide

Type of issue

  • Bug
  • [x ] New feature
  • [x ] Improvement

Description

We need to give folks detailed instructions on common developer tasks such as:

  1. How do I run the webui against services in a VM that I deployed through CLI Basic, 2) How do I replace a container in my Standard CLI install (K8, etc.), 3) How do I have CLI Basic or Standard deploy containers from my docker-hub account rather than the pcs team account, 4) How do I edit the build and deploy scripts in scripts/docker in the repos to change the container names and to upload the containers to my docker-hub account? 5) how to ssh into a vm and replace a running container on the box.

...

Decide on what the frequency of the messages should be for Basic vs Enterprise

Type of issue

  • Bug
  • New feature
  • Improvement

Description

After starting a Basic or Enterprise deployment, we hit the IotHubQuotaExceeded exception pretty easily. We should decide on what the frequency of messages, device count etc should be, such that the simulation and messages are meaningful for reasonable amount of time

The IU doesn't refresh properly.

Type of issue

  • [x ] Bug
  • New feature
  • Improvement

Description

The IU doesn't refresh properly. You have to change pages to see the graphic move or devices appear on the map.

Screenshot

Steps to reproduce

  1. Access to portal
  2. Activate a device sending data

Expected behavior

When the device is activated, it must refresh automatically and appear on the map.

Current behavior

The IU doesn't refresh and you have to change pages to see devices or see the graphic.

Context and Environment

  • Operating System: Windows 10
  • Browser: Edge, Google Chrome, Firefox

Proxy returns empty body for device telemetry POST /v1/rules - unable to create rules

Type of issue

  • Bug
  • New feature
  • Improvement

Description

The creation of rules fails when going through the proxy, but works when executed directly from within the VM where microservices are deployed. (Basic deployment).

Localhost - [Success]

Run device-telemetry-java locally (depends on storage adapter)
POST with the following parameters from Postman succeeds

Request: localhost:9004/v1/rules/
Body:
{
    "Name": "Prototyping device temperature too high",
    "Enabled": true,
    "Description": "Temperature > 88",
    "GroupId": "Prototyping devices",
    "Severity": "critical",
    "Conditions": [
        {
            "Field": "temperature",
            "Operator": "GreaterThan",
            "Value": "88"
        }
    ]
}

Curl command ssh-ed into VM - [Success]

ssh into the deployed VM and run:

curl -k -X POST   https://localhost/devicetelemetry/v1/rules   -H 'cache-control: no-cache'   -H 'Content-Type: application/json' -d '{
    "Name": "Prototyping device temperature too high",
    "Enabled": true,
    "Description": "Temperature > 88",
    "GroupId": "Prototyping devices",
    "Severity": "critical",
    "Conditions": [
        {
            "Field": "temperature",
            "Operator": "GreaterThan",
            "Value": "88"
        }
    ]
}'
Response:
{"Id":"a09d6f92-6004-491e-abc2-f31cfb5da0e9","Name":"Prototyping device temperature too high","DateCreated":"2017-09-15T19:37:26.615Z","DateModified":"2017-09-15T19:37:26.677Z","Enabled":true,"Description":"Temperature > 88","GroupId":"Prototyping devices","Severity":"critical","Conditions":[{"Field":"temperature","Operator":"GreaterThan","Value":"88"}],"ETag":"\"110009c2-0000-0000-0000-59bc2bf60000\"","$metadata":{"$type":"Rule;v1","$uri":"/v1/rules/a09d6f92-6004-491e-abc2-f31cfb5da0e9"}}

Request from postman from https://jbendseptbugbash.azurewebsites.net/devicetelemetry/v1/rules [Fail]

From Postman try a GET request:

GET https://jbendseptbugbash.azurewebsites.net/devicetelemetry/v1/rules

notice that this returns 200 OK with results

From Postman try a POST request:

Request: POST https://jbendseptbugbash.azurewebsites.net/devicetelemetry/v1/rules
Header: Content-Type: application/json
Body:
{
    "Name": "Prototyping device temperature too high",
    "Enabled": true,
    "Description": "Temperature > 88",
    "GroupId": "Prototyping devices",
    "Severity": "critical",
    "Conditions": [
        {
            "Field": "temperature",
            "Operator": "GreaterThan",
            "Value": "88"
        }
    ]
}

Result: 403 Forbidden

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Unauthorized</title>
        <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAlFJREFUeNqUU8tOFEEUPVVdNV3dPe8xYRBnjGhmBgKjKzCIiQvBoIaNbly5Z+PSv3Aj7DSiP2B0rwkLGVdGgxITSCRIJGSMEQWZR3eVt5sEFBgTb/dN1yvnnHtPNTPG4PqdHgCMXnPRSZrpSuH8vUJu4DE4rYHDGAZDX62BZttHqTiIayM3gGiXQsgYLEvATaqxU+dy1U13YXapXptpNHY8iwn8KyIAzm1KBdtRZWErpI5lEWTXp5Z/vHpZ3/wyKKwYGGOdAYwR0EZwoezTYApBEIObyELl/aE1/83cp40Pt5mxqCKrE4Ck+mVWKKcI5tA8BLEhRBKJLjez6a7MLq7XZtp+yyOawwCBtkiBVZDKzRk4NN7NQBMYPHiZDFhXY+p9ff7F961vVcnl4R5I2ykJ5XFN7Ab7Gc61VoipNBKF+PDyztu5lfrSLT/wIwCxq0CAGtXHZTzqR2jtwQiXONma6hHpj9sLT7YaPxfTXuZdBGA02Wi7FS48YiTfj+i2NhqtdhP5RC8mh2/Op7y0v6eAcWVLFT8D7kWX5S9mepp+C450MV6aWL1cGnvkxbwHtLW2B9AOkLeUd9KEDuh9fl/7CEj7YH5g+3r/lWfF9In7tPz6T4IIwBJOr1SJyIGQMZQbsh5P9uBq5VJtqHh2mo49pdw5WFoEwKWqWHacaWOjQXWGcifKo6vj5RGS6zykI587XeUIQDqJSmAp+lE4qt19W5P9o8+Lma5DcjsC8JiT607lMVkdqQ0Vyh3lHhmh52tfNy78ajXv0rgYzv8nfwswANuk+7sD/Q0aAAAAAElFTkSuQmCC">
        <style>
            html, body, pre {
                margin: 0;
                padding: 0;
                font-family: Monaco, 'Lucida Console', monospace;
                background: #ECECEC;
            }
            h1 {
                margin: 0;
                background: #333;
                padding: 20px 45px;
                color: #fff;
                text-shadow: 1px 1px 1px rgba(0,0,0,.3);
                border-bottom: 1px solid #111;
                font-size: 28px;
            }
            p#detail {
                margin: 0;
                padding: 15px 45px;
                background: #888;
                border-top: 4px solid #666;
                color: #111;
                text-shadow: 1px 1px 1px rgba(255,255,255,.3);
                font-size: 14px;
                border-bottom: 1px solid #333;
            }
        </style>
    </head>
    <body>
        <h1>Unauthorized</h1>
 
        <p id="detail">
            You must be authenticated to access this page.
        </p>
 
    </body>
</html>

Error in executing direct methods such as Reboot to a physical device

Type of issue

  • Bug
  • New feature
  • Improvement

Description

Error in executing direct methods such as Reboot to a physical device, such as one built by following the tutorial at https://docs.microsoft.com/en-us/azure/iot-suite/iot-suite-connecting-pi-c.

The same thing goes with trying to change reported property in "physical device".

Screenshot

IoTHubClient accepted the message for delivery
Error: Time:Sun Nov 26 22:25:43 2017 File:/build/azure-iot-sdk-c-QvBScE/azure-iot-sdk-c-0.1.0/serializer/src/commanddecoder.c Func:CommandDecoder_ExecuteMethod Line:734 Decoding JSON to a multi tree failed
Error: Time:Sun Nov 26 22:25:43 2017 File:/usr/include/azureiot/serializer_devicetwin.h Func:deviceMethodCallback Line:73 failure in EXECUTE_METHOD

Steps to reproduce

  1. Run sample app on Raspberry Pi, ./sample_app
  2. Go to remote monitoring solution portal.
  3. Under Devices, select the physical device representing the Raspberry Pi, click Schedule.
  4. Select method "Reboot" and click Apply.

Expected behavior

  1. Direct method returns with message "Rebooting" with status code 201, and the following is displayed on the sample_app console - "Received reboot request"

Current behavior

IoTHubClient accepted the message for delivery
Error: Time:Sun Nov 26 22:25:43 2017 File:/build/azure-iot-sdk-c-QvBScE/azure-iot-sdk-c-0.1.0/serializer/src/commanddecoder.c Func:CommandDecoder_ExecuteMethod Line:734 Decoding JSON to a multi tree failed
Error: Time:Sun Nov 26 22:25:43 2017 File:/usr/include/azureiot/serializer_devicetwin.h Func:deviceMethodCallback Line:73 failure in EXECUTE_METHOD

Known workarounds

None

Possible solution

?

Context and Environment

  • Operating System: Raspberry Pi 3
  • GitHub branch: Current main branch
  • .NET Runtime: N/A

Make the arch diagram navigable

Type of issue

  • Bug
  • New feature
  • [x ] Improvement

Description

clickable, navigable, etc. so it's easier to drive through the arch from it. Potentially will involve moving the wiki to a folder we put under Git.

Launch button on welcome email not working

Type of issue

  • Bug
  • New feature
  • Improvement

Description

Latest version of Remote monitoring email. Launch button doesn't take me to the solution, neither in MAC or PC. Button does nothing?

I have fwd the email to Timlav.

The solution doesn't recover from temporary AAD errors during bootstrap

Type of issue

  • Bug
  • New feature
  • Improvement

Description

When AAD or the Open ID Connect provider URL is not available during the backend services bootstrap, all the microservices requiring Authorization fail to authorize future requests, until they are restarted.

When the following exception occurs:

IDX10803: Unable to obtain configuration from: 'https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/.well-known/openid-configuration'

e.g.

[WebService.3dd3e554-c3bb-4c3b-be4d-18115315be39][2017-10-18 00:49:54Z][ERROR][AuthMiddleware:GetSigningKeys] Failed to setup OpenId Connect, {"e":{"ExceptionFullName":"System.AggregateException","ExceptionMessage":"One or more errors occurred. (IDX10803: Unable to obtain configuration from: 'https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/.well-known/openid-configuration'.)","StackTrace":" at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification)\n at Microsoft.Azure.IoTSolutions.DeviceTelemetry.WebService.Auth.AuthMiddleware.GetSigningKeys() in /builds/device-telemetry-dotnet/WebService/Auth/AuthMiddleware.cs:line 209","Source":"System.Private.CoreLib","Data":{},"InnerExceptions":[{"ExceptionFullName":"System.InvalidOperationException","ExceptionMessage":"IDX10803: Unable to obtain configuration from: 'https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/.well-known/openid-configuration'.","StackTrace":" at Microsoft.IdentityModel.Protocols.ConfigurationManager1.d__24.MoveNext()","Source":"Microsoft.IdentityModel.Protocols","Data":{},"InnerException":{"ExceptionFullName":"System.IO.IOException","ExceptionMessage":"IDX10804: Unable to retrieve document from: 'https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/.well-known/openid-configuration'.","StackTrace":" at Microsoft.IdentityModel.Protocols.HttpDocumentRetriever.d__8.MoveNext()\n--- End of stack trace from previous location where exception was thrown ---\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n at Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectConfigurationRetriever.d__3.MoveNext()\n--- End of stack trace from previous location where exception was thrown ---\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n at Microsoft.IdentityModel.Protocols.ConfigurationManager`1.d__24.MoveNext()","Source":"Microsoft.IdentityModel.Protocols","Data":{},"InnerException":"-max serialization depth reached-"}}]}}

by design, the system should retry until AAD recovers.

Add a batch layer for a lambda like architecture

Type of issue

  • Bug
  • New feature
  • Improvement

Description

Add blob storage support for lower cost and batch processing scenarios through lambda architecture implementation. Context information in https://docs.microsoft.com/en-us/azure/cosmos-db/lambda-architecture#speed-layer using feed support for Cosmos DB

Screenshot

imagen

Expected behavior

Reduce total cost, and allow more batch processing scenarios

Current behavior

Use of Cosmos DB for Real Time and "batch layer", in a non optimize storage for long term storage.

Updating Simulated Device Firmware Doesn't Update Firmware Version

Type of issue

  • Bug
  • New feature
  • Improvement

Description

Following the instructions on Operate the preconfigured solution - Update device firmware to update prototype device firmware doesn't update device firmware version.

Steps to reproduce

  1. Navigate to the Devices page. Choose the Prototyping devices filter in the Filters drop-down:

image

  1. Select one of the prototyping devices:

image

  1. Click the Schedule button and then choose Firmware update. Enter values for Job name and Firmware URI. Choose Apply to schedule the job to run now:

image

  1. Choose Apply:

image

  1. Wait for the job to complete.

image

  1. Navigate back to the Devices page and check the Firmware version.

image

Expected behavior

The firmware version should change to display 2.0.0 after running the FirmwareUpdate method on the device.

Current behavior

The firmware version remains the same after running the FirmwareUpdate method on the device.

Known workarounds

None.

Possible solution

This works on the stable version of the preconfigured solution, so maybe there's a hint to a solution in that?

Context and Environment

  • Operating System: Microsoft Edge
  • GitHub branch: master
  • .NET Runtime: ???

Map API is not getting configured correctly

Type of issue

  • Bug
  • New feature
  • Improvement

Description

My subscription do not have any usage of Map API but still when i try to kick new deployment I get warning that I will need to fix it manually later. I have tried with two different subscriptions I have.

Steps to reproduce

  1. Create a solution with a subscription with less than 2 MAP APIs in use.

Expected behavior

Solution should get created with Map API enabled.

image

Can't run rms using Custom docker image

Type of issue

  • Bug
  • New feature
  • Improvement

Description

Trying to create a customized image of device simulation using dockerfile present in ./device-simulation/scripts/docker using command docker build .
facing following error.

D:\azure-iot-pcs-remote-monitoring-dotnet\device-simulation\scripts\docker>docker build .
Sending build context to Docker daemon 17.41kB
Step 1/12 : FROM microsoft/dotnet:2.0.3-runtime-jessie
---> ae7549202f75
Step 2/12 : MAINTAINER Devis Lucato (https://github.com/dluc)
---> Using cache
---> 3ac3078a2baf
Step 3/12 : LABEL Tags="Azure,IoT,Solutions,Simulation,.NET"
---> Using cache
---> d8ff7253ea11
Step 4/12 : ARG user=pcsuser
---> Using cache
---> 8b375c5bac2e
Step 5/12 : RUN useradd -m -s /bin/bash -U $user
---> Using cache
---> ba742e33703e
Step 6/12 : COPY . /app/
---> af67933c0c40
Step 7/12 : RUN chown -R $user.$user /app
---> Running in 9c7034410ae6
Removing intermediate container 9c7034410ae6
---> a211c60d06f4
Step 8/12 : WORKDIR /app
Removing intermediate container da1f6e17ec06
---> 1899efc016b3
Step 9/12 : RUN chmod ugo+x /app/run.sh && rm -f /app/Dockerfile /app/.dockerignore
---> Running in fef9c1c26903
chmod: cannot access '/app/run.sh': No such file or directory
The command '/bin/sh -c chmod ugo+x /app/run.sh && rm -f /app/Dockerfile /app/.dockerignore' returned a non-zero code: 1

Same thing is happening for asa-manager also.

Steps to reproduce

  1. Goto directory- ./device-simulation/scripts/docker
  2. In cmd, rum docker build .

Context and Environment

  • Operating System: ... Windows 10

Local deployment - exception raised while loading Device Model configuration

Type of issue

  • Bug
  • New feature
  • Improvement

Description

I am trying to perform a local deployment. After several tries and fixes, yesterday, I managed to have all docker processes running (at a Linux ubuntu). But device models could not be established and thus all the devices were off line.

Screenshot

[ERROR][2018-04-18 11:23:32.305][WebService.1c3774bf-43e1-425f-9700-0457bf32b9b9][DeviceModels:GetList] Unable to load Device Model configuration, {"Message":"Could not find a part of the path '/app/webservice/data/devicemodels/'.","Exception":{"ExceptionFullName":"System.IO.DirectoryNotFoundException","ExceptionMessage":"Could not find a part of the path '/app/webservice/data/devicemodels/'.","StackTrace":" at System.IO.UnixFileSystem.FileSystemEnumerable1.OpenDirectory(String fullPath)\n at System.IO.UnixFileSystem.FileSystemEnumerable1.Enumerate()\n at System.IO.UnixFileSystem.FileSystemEnumerable1..ctor(String userPath, String searchPattern, SearchOption searchOption, SearchTarget searchTarget, Func3 translateResult)\n at System.IO.UnixFileSystem.EnumeratePaths(String path, String searchPattern, SearchOption searchOption, SearchTarget searchTarget)\n at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption)\n at System.IO.Directory.GetFiles(String path)\n at Microsoft.Azure.IoTSolutions.DeviceSimulation.Services.DeviceModels.GetDeviceModelFiles() in /opt/vsts/work/1/s/Services/DeviceModels.cs:line 88\n at Microsoft.Azure.IoTSolutions.DeviceSimulation.Services.DeviceModels.GetList() in /opt/vsts/work/1/s/Services/DeviceModels.cs:line 54","Source":"System.IO.FileSystem","Data":{},"InnerException":null}}
devicesimulation_1 | [ERROR][2018-04-18 11:23:32.342][WebService.1c3774bf-43e1-425f-9700-0457bf32b9b9][SimulationRunner:Start] Unexpected error preparing the device model, {"Id":"chiller-01","e":{"ExceptionFullName":"Microsoft.Azure.IoTSolutions.DeviceSimulation.Services.Exceptions.InvalidConfigurationException","ExceptionMessage":"Unable to load Device Model configuration: Could not find a part of the path '/app/webservice/data/devicemodels/'.","StackTrace":" at Microsoft.Azure.IoTSolutions.DeviceSimulation.Services.DeviceModels.GetList() in /opt/vsts/work/1/s/Services/DeviceModels.cs:line 66\n at Microsoft.Azure.IoTSolutions.DeviceSimulation.Services.DeviceModels.Get(String id) in /opt/vsts/work/1/s/Services/DeviceModels.cs:line 74\n at Microsoft.Azure.IoTSolutions.DeviceSimulation.SimulationAgent.SimulationRunner.GetDeviceModel(String id, DeviceModelOverride overrides) in /opt/vsts/work/1/s/SimulationAgent/SimulationRunner.cs:line 293\n at Microsoft.Azure.IoTSolutions.DeviceSimulation.SimulationAgent.SimulationRunner.Start(Simulation simulation) in /opt/vsts/work/1/s/SimulationAgent/SimulationRunner.cs:line 187","Source":"Microsoft.Azure.IoTSolutions.DeviceSimulation.Services","Data":{},"InnerException":{"ExceptionFullName":"System.IO.DirectoryNotFoundException","ExceptionMessage":"Could not find a part of the path '/app/webservice/data/devicemodels/'.","StackTrace":" at System.IO.UnixFileSystem.FileSystemEnumerable1.OpenDirectory(String fullPath)\n at System.IO.UnixFileSystem.FileSystemEnumerable1.Enumerate()\n at System.IO.UnixFileSystem.FileSystemEnumerable1..ctor(String userPath, String searchPattern, SearchOption searchOption, SearchTarget searchTarget, Func3 translateResult)\n at System.IO.UnixFileSystem.EnumeratePaths(String path, String searchPattern, SearchOption searchOption, SearchTarget searchTarget)\n at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption)\n at System.IO.Directory.GetFiles(String path)\n at Microsoft.Azure.IoTSolutions.DeviceSimulation.Services.DeviceModels.GetDeviceModelFiles() in /opt/vsts/work/1/s/Services/DeviceModels.cs:line 88\n at Microsoft.Azure.IoTSolutions.DeviceSimulation.Services.DeviceModels.GetList() in /opt/vsts/work/1/s/Services/DeviceModels.cs:line 54","Source":"System.IO.FileSystem","Data":{},"InnerException":null}}}
devicesimulation_1 | [WARN][2018-04-18 11:23:32.343][WebService.1c3774bf-43e1-425f-9700-0457bf32b9b9][DeviceModels:Get] Device model not found, {"id":"chiller-02"}
devicesimulation_1 | [ERROR][2018-04-18 11:23:32.343][WebService.1c3774bf-43e1-425f-9700-0457bf32b9b9][SimulationRunner:Start] The device model doesn't exist, {"Id":"chiller-02"}

Steps to reproduce

  1. [First step]
  2. [Second step]
  3. [and so on...]

Expected behavior

...

Current behavior

...

Known workarounds

...

Possible solution

...

Context and Environment

  • Operating System: Linux Ubuntu
  • GitHub branch: ...
  • .NET Runtime: ...

Local deployment - dashboard can't accessed from any browser

Type of issue

  • Bug
  • New feature
  • Improvement

Description

I have followed the instructions in
https://docs.microsoft.com/en-us/azure/iot-suite/iot-suite-remote-monitoring-deploy-local to perform a local deployment. At the end, I could not access the dashboard (through http://localhost:8080 ). The error message at Chrome was 'the site can not be reached' while at Firefox was 'Unable to connect'. Platforms used: Windows 10 and Linux Ubuntu.

Screenshot

Steps to reproduce

  1. [First step]
  2. [Second step]
  3. [and so on...]

Expected behavior

To access the remote monitoring solution dashboard, through http://localhost:8080 in browser.

Current behavior

The dashboard can not reached through http://localhost:8080 in any browser (Chrome / Firefox)

Known workarounds

...

Possible solution

...

Context and Environment

  • Operating System: Windows 10 / Linux Ubuntu 17
  • GitHub branch:
  • .NET Runtime: ...

Total occurrences number doesn't match

Type of issue

  • Bug
  • New feature
  • Improvement

Description

In system alarms, total nmber of occurrences always points to 1, and it should match the number of total alarms.

In this case, I haven't closed or ack any alarm, so it should say 52 open occurrences

image

Steps to reproduce

  1. [First step]
  2. [Second step]
  3. [and so on...]

Expected behavior

...

Current behavior

...

Known workarounds

...

Possible solution

...

Context and Environment

  • Operating System: ...
  • GitHub branch: ...
  • .NET Runtime: ...

Code to reproduce the bug

using Xunit;

public class MyTest
{
    [Fact]
    public void TestToReproduceIssue()
    {
        // Arrange
        ...

        // Act
        ...

        // Assert
        ...
    }
}

Not able to deploy Locally..

I have cloned the code but i am not able to deploy Locally because when i gave docker-compose up command Dashboard page is loading but data is not displaying in dashboard page. In device Page, all details are displaying. Please Resolve this error as soon as possible. Please see the Screenshot for reference.
error

https://azureiotsuite.com appears to be offline

Type of issue

  • Bug
  • New feature
  • Improvement

Description

...

Screenshot

Steps to reproduce

  1. [First step]
  2. [Second step]
  3. [and so on...]

Expected behavior

...

Current behavior

...

Known workarounds

...

Possible solution

...

Context and Environment

  • Operating System: ...
  • GitHub branch: ...
  • .NET Runtime: ...

pcs login command fails

Type of issue

  • Bug
  • New feature
  • Improvement

Description

I am following the instructions at Getting Started / Setup section to proceed to a basic deployment but the pcs login command fails. The output is:

Screenshot

C:\Users\mtheo\source\repos\azure-iot-pcs-remote-monitoring-dotnet\cli>pcs login
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code C75HJNRLC to authenticate.
TypeError: Reflect.apply: argument is not an array or array-like object
at ensureStackTrace (Unknown script code:234:9)
at stackGetter (Unknown script code:244:9)
at Logger.prototype.log (C:\Users\mtheo\source\repos\azure-iot-pcs-remote-monitoring-dotnet\cli\node_modules\adal-node\lib\log.js:156:7)
at Logger.prototype.error (C:\Users\mtheo\source\repos\azure-iot-pcs-remote-monitoring-dotnet\cli\node_modules\adal-node\lib\log.js:168:3)
at Logger.prototype.createError (C:\Users\mtheo\source\repos\azure-iot-pcs-remote-monitoring-dotnet\cli\node_modules\adal-node\lib\log.js:202:3)
at Anonymous function (C:\Users\mtheo\source\repos\azure-iot-pcs-remote-monitoring-dotnet\cli\node_modules\adal-node\lib\util.js:130:7)
at self.callback (C:\Users\mtheo\source\repos\azure-iot-pcs-remote-monitoring-dotnet\cli\node_modules\request\request.js:186:7)
at emitTwo (events.js:106:5)
at emit (events.js:191:7)
at Anonymous function (C:\Users\mtheo\source\repos\azure-iot-pcs-remote-monitoring-dotnet\cli\node_modules\request\request.js:1163:5)
at emitOne (events.js:96:5)
at emit (events.js:188:7)
at Anonymous function (C:\Users\mtheo\source\repos\azure-iot-pcs-remote-monitoring-dotnet\cli\node_modules\request\request.js:1085:7)
at g (events.js:286:7)
at emitNone (events.js:91:7)
at emit (events.js:185:7)

C:\Users\mtheo\source\repos\azure-iot-pcs-remote-monitoring-dotnet\cli>pcs
Please run pcs login

Steps to reproduce

  1. [First step]
  2. [Second step]
  3. [and so on...]

Expected behavior

...

Current behavior

I am following the https://microsoft.com/devicelogin and I am "successfully" authenticated with the provided code but I can't proceed to the next step "pcs" (basic deployment)

Known workarounds

...

Possible solution

...

Context and Environment

  • Operating System: ...
  • GitHub branch: ...
  • .NET Runtime: ...

Missing values for environment variables on docker-compose.yml

Type of issue

  • Bug
  • New feature
  • Improvement

Description

When docker-compose is launched, although some containers do start, there are multiple errors due to missing values for environment variables.
Some of them can be guessed by looking at the error messages, but not all of them.

Context and Environment

  • Operating System: Windows 10
  • GitHub branch: master
  • .NET Runtime: 4.0
  • Docker for Windows: Version 17.09.0-ce-win33

How to debug?

I have deployed the OOB Azure IoT RMS to Azure, working fine there. But, once I tried to customize the solution locally and deployed to Azure IoT suite, it's not working anymore. The dashboard doesn't show any data.
Can you please guide me how can I debug my solution locally? Is there any way to attach to that process? Please note, I am not very familiar with Linux. I just really need to know what's happening in the background.

Any suggestion?

Local deployment - local_webui exiting - Permission denied

Type of issue

  • Bug
  • New feature
  • Improvement

Description

Yesterday, I managed to performed a local deployment (at a Linux Ubuntu) with all pcs up and running. Today I tried to redeploy by following the following: docker-compose down --rmi all and docker-compose up. The webui is exited and the logs refer to lack permissions.

Screenshot

webui_1 | + mkdir -p /app/logs
webui_1 | + nginx -c /app/nginx.conf
webui_1 | nginx: [alert] could not open error log file: open() "/var/lib/nginx/logs/error.log" failed (13: Permission denied)
webui_1 | 2018/04/18 11:23:29 [emerg] 7#7: mkdir() "/var/tmp/nginx/client_body" failed (13: Permission denied)
reverseproxy_1 | + mkdir -p /app/logs
reverseproxy_1 | + nginx -c /app/config/nginx.conf
local_webui_1 exited with code 1

Steps to reproduce

  1. [First step]
  2. [Second step]
  3. [and so on...]

Expected behavior

...

Current behavior

...

Known workarounds

...

Possible solution

...

Context and Environment

  • Operating System: ...
  • GitHub branch: ...
  • .NET Runtime: ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.