Download PDF
Download page IoT Monitoring.
IoT Monitoring
Deployment Support
IoT Monitoring requires application developers to instrument their code. To make this process easier, AppDynamics has developed C/C++ and Java SDKs, so that developers using the platforms supporting these languages can leverage the features of the SDK instead of using the REST API. The IoT SDKs use the REST APIs to report IoT Data to the EUM Server , where the data is aggregated and made available to the AppDynamics Controller and the Events Service as shown in this diagram:
Benefits of IoT Monitoring
IoT Monitoring enables you to capture and diagnose network requests, errors, and custom application and domain-specific events for applications running on devices that impact business objectives.
With IoT Monitoring, you can monitor the following for devices:
- Availability
- Network Performance:
- Slow interaction
- Latency between the device and backend services
- Usage: User and system behavior and patterns
- Errors and Exceptions
IoT Monitoring Use Cases
IoT applications are typically embedded applications running on connected devices. This section focuses on how IoT Monitoring can collect and report data for the most common categories of IoT applications.
In the tabs below, you can view these IoT app categories and see how a typical example of each would use the three supported IoT Monitoring events to report data.
This category of IoT apps process orders, payments, and manage product inventory. Examples include point of sale (PoS) devices, smart shelves, and gateways (local servers that aggregate information within certain geography/region).
Device Example | Device Information | Example Network Requests | Custom Events Examples | Handled Errors | Exceptions/Crashes |
---|---|---|---|---|---|
Point of Sale |
|
|
|
|
|
IoT apps in this category enable users to seamlessly experience media content across different devices. An IoT app on a set-top box (STB) can quickly change the channel/content based on what the user was watching or listening to on their computer or phone.
Device Example | Device Information | Example Network Requests | Custom Events Examples | Handled Errors | Exceptions/Crashes |
---|---|---|---|---|---|
Audio Streaming |
|
|
|
|
|
Because automotive head units are often computers, IoT apps are used to manage user subscriptions and monitor the user experience.
Device Example | Device Information | Example Network Requests | Custom Events Examples | Handled Errors | Exceptions/Crashes |
---|---|---|---|---|---|
Infotainment System |
|
|
|
|
|
These IoT apps improve the security as well as reduce the energy and maintenance costs of intelligent buildings and smart homes. Examples include home security devices and smart thermostats, smart keyless locks, and smart lights.
Device Example | Device Information | Example Network Requests | Custom Events Examples | Handled Errors | Exceptions/Crashes |
---|---|---|---|---|---|
Home Security |
|
|
|
|
|
This category of IoT apps monitors and improves the travel experience. You can find IoT apps used in airport kiosks, luggage tracking devices, and embedded in cabin seats to monitor passenger comfort.
Device Example | Device Information | Example Network Requests | Custom Events Examples | Handled Errors | Exceptions/Crashes |
---|---|---|---|---|---|
Airport Kiosk |
|
|
|
|
|
IoT SDKs
IoT Monitoring provides SDKs for C/C++ and Java languages. Some of the features of IoT SDKs are:
APIs for reporting instrumentation data through custom events, error events, and network requests.
Serialization of all events into JSON format before sending them to EUM Server
API to plugin application HTTPS stack into SDK which will be used to communicate with EUM Server
- Business Transaction (BT) correlation
- Auto-disable when monitoring is turned off from the Controller UI
For languages other than C++ and Java, you can use the REST API to send custom events, error events, and network requests.
IoT Monitoring UI
IoT Monitoring also provides the following features through the Controller UI:
- Dashboards for monitoring devices, network requests, as well as errors and exceptions
- Predefined and custom widgets to visualize reported application data
- Analytics for device application data through AppDynamics Application Analytics
- Configuration for naming and excluding network requests
IoT Monitoring Workflow
The IoT SDKs and REST API enable you to report application data for a large number of different kinds of devices. This flexibility allows for a great deal of customization in the kind of the data you report, the quantity of data you report, and the timing of when the data is sent to the EUM Server.
To monitor customized data, you will need to better understand the data generated by your application and your device instrumentation. The goal of this page is to guide you through the process of understanding your application data, instrumenting your device application, and creating custom dashboards, so you can monitor device performance and activity.
We recommend that you follow this procedure as a guideline to monitor your devices:
- Define your monitoring goals.
- Identify what data needs to be captured.
- Determine which events to use to report the data.
- Obtain an EUM App Key.
- Report events.
- Monitor the availability, usage, and performance of your devices.
- Build widgets.
- Diagnose problems through filters.
- Improve monitoring and troubleshoot.
Define Monitoring Goals
AppDynamics IoT Monitoring enables you to monitor the availability, performance, and usage of your device. You should devise a plan that prioritizes your monitoring goals, considering the needs of all stakeholders (developers, DevOps, business units), and lists the resources that need to be monitored. Also, you should consider who will be instrumenting the device application, who will be performing the monitoring, and the parties who should be notified when something goes wrong.
Identify Data to Capture
Next, you will need to analyze your device to identify what application data can be used to meet your monitoring goals. For example, if your device is a car, you would want to look at network requests to check device availability or report custom data for the wear and tear on its components or road conditions.
Determine Which Event Types to Use to Report Data
You report app data through the three types of events shown in the table below. Based on this information, map the most suitable event types to the data you identified and your monitoring goals.
Event Type | Monitoring Objective |
---|---|
Custom | Usage |
Business | |
Network Request | Availability |
Performance | |
Usage | |
Error | Performance |
Obtain an EUM App Key
Follow the instructions provided in Get an EUM App Key.
Report Events
You can use the IoT SDKs or REST API to capture and report key data points using one of the event types. If you are using a language other than C/C++ or Java, use the IoT REST API, which gives you the flexibility to report data from any platform.
Follow the getting started instructions to learn how to install the SDK and instrument your IoT application:
Monitor Your IoT Application
To monitor your IoT applications, you will need to understand the function and purpose of the three IoT dashboards. See Monitor Applications with the IoT Dashboards for a brief introduction of each dashboard and usage instructions.
Build Widgets Based on Your Data Models
Each dashboard has a set of predefined widgets for basic performance and activity monitoring. You will need to create your own widgets, however, to optimize the monitoring capabilities of IoT Monitoring. Based on the events you reported, create custom widgets to monitor device activity and performance. See the section Build Custom Dashboard Widgets to learn how to build widgets with the IoT Widget Builder Wizard.
Diagnose Problems
When you do discover deviations from expected behavior, you can then add criteria to filter results. This enables you to narrow the results to certain devices or possible causes.
Troubleshoot Issues and Improve Monitoring
For performance issues, you can open the device details to analyze errors and slow network requests. The device details allow you to trace the error event you are interested in and even download the stack trace. The developer can then use this information to determine the root cause of the problem and devise a possible solution. Going back to our point-to-sale device example, you might discover that most of the failed payments were due to network request errors.
You can use the usage information to improve your monitoring or the devices themselves. For example, an inventory management application indicates that several stores sell a smaller quantity of a certain product. It turns out that this product is often out of stock at these stores. You could improve the monitoring of your IoT app by using custom events to report when a product is sold out and then creating custom widgets to let you know which stores need to restock.
IoT Analytics
All IoT data is processed and stored by the AppDynamics Platform Events Service. A separate product component, AppDynamics Analytics, has an event type called Connected Device Data. This event type is based on the same Events Service and uses the same data. Viewing this event type from the Analytics UI offers additional capabilities, including:
- Additional predefined widgets, such as the funnel widget
- ADQL for searching the data
- Creating custom widgets
- Manipulating multiple dashboard types
- Longer retention time for data storage
IoT Analytics does not require a license separate from the IoT Monitoring license.
IoT Licenses and Limits
Currently, AppDynamics only offers the IoT PRO license. To learn about the license entitlements and restrictions, contact your AppDynamics account representative.