Article
Jan 16, 2024

Canopy Data Collection from the Edge: Understanding the Mechanisms of Data Collection on Devices

Discover Canopy's data collection with Leaf, the robust device-side Agent. Uncover insights on gathering data from diverse endpoints at the edge.

RMM Tech Explained

Introduction to Canopy’s Data Collection

With more and more Internet of Things (IoT) devices and smart hardware systems being deployed into unattended environments, remote monitoring and management (RMM) has become an increasing critical capability. RMM software helps teams prevent outages and ensure your organization’s physical hardware is operating efficiently.

A critical component of RMM software is comprehensive data collection and centralized reporting for real-time status monitoring. The data processing chain for a best-in-class RMM solution consists of:

  1. Data collection (from the endpoint and other sources)
  2. Data processing to deliver actionable insights
  3. Acting on these insights to achieve business objectives

In this blog post, we are diving deep into the first step in this process, data collection. We will discuss how Canopy collects all pertinent information using its agent-based architecture and the tools it utilizes for efficient data retrieval from host devices and peripherals at the IoT edge. To explore this topic will discuss:

  1. Canopy’s primary device-side agent, called “Leaf”
  2. How Leaf collects data from devices
  3. Included tools that automate collection of commonly used data
  4. How any application, script, or custom device can be part of this data collection process

Discover Canopy's Data Collection with Leaf

In most cases, Canopy relies on a device agent service called “Leaf.” Leaf is a lightweight software running on the host device to facilitate the collection of data. Leaf can run on most architectures and platforms, spanning the world of Windows (modern versions), Linux (most flavors), and beyond.

Once running on a host device, Leaf can also interact with attached peripheral devices, or other more proprietary devices (like cameras, routers, or custom-built devices) to monitor and manage them as well. The primary role of the Leaf agent is to maintain connectivity to the Canopy cloud, handle the basic transport of data to Canopy, react to the response (which may include actions or updates to execute), and system-level interactions. It acts as a conduit for communication between the host device (including connected peripherals and other devices) and Canopy in the cloud.

Leaf accepts messages from various tools, then packages them for transmission to Canopy. Leaf also manages retries (if a package fails to deliver), waits for responses from Canopy, and executes actions queued within Canopy through manual, scheduled, or automated processes.

Leaf Supports Multiple Intra-Device Communication Channels and Data Formats

To ensure flexibility and compatibility, the Leaf Agent supports multiple communication channels for receiving messages from other tools local to the device. Some common channels that are supported include:

  • Local HTTP
  • File Queues
  • Message queues using the STOMP protocol
  • MQTT

This versatility enables seamless integration possibilities with a variety of tools, making Canopy adaptable to different environments and processes. Leaf also accepts any dataset (within reasonable size limits) that is encapsulated as a JSON object, including simple key-value pairs as well as arrays and complex nested data.

This flexibility is particularly valuable if you have a deployment with mixed hardware types that communicate with different protocols. With Canopy, all that data can still be collected by the same mechanism and reported centrally into Canopy.

Canopy’s Leaf Services Enables Automated Data Collection for Commonly Used Sources

There are data sources that many implementations need. For example, system or hardware resources like CPU, memory, network monitoring, etc. For these aspects, Canopy provides a tool called Leaf_services, offering basic monitoring functionalities that can be customized based on specific requirements.

The built-in monitoring components available in Leaf_services include:

  • Utilization: Common system utilization metrics like CPU, memory, disk usage
  • Utilization Alerts: Triggers messages when specified utilization metrics reach configured thresholds, such as memory, CPU, and disk thresholds. This enables your team to spot issues real-time and take corrective action immediately
  • System Info: Common device and OS properties
  • Processes: Specific software process run state
  • Version: Reports file versions recorded in binary files meta information
  • FileMonitor: File changes, including creation, deletion, or updates on specified files (with built-in interpreters for JSON and XML)
  • Network: Monitors common network utilization metrics
  • Ping: Network-attached devices for reporting connection status
  • SNMP: Retrieves and reports data from network devices via SNMP

Canopy’s Agent-driven architecture and event-driven data processing and response capabilities enable real-time issue detection and automated remote resolutions to reduce downtime and prevent on-site visits to restore devices.

Canopy Also Enables Custom Data Capture

Canopy allows the creation of custom tools to capture additional data for customers. Any process, script or tool can be leveraged to produce data for Canopy to consume via Leaf.

As an example, Leaf can leverage LibreHardware, an open source hardware information collection tool. A simple script that interacts with the LibreHardware API can collect the information needed (like fan speeds, cpu temperatures, etc), then use one of the Intra-Device channels above (e.g. passing the data through local-http call) to pass this data to Leaf.

No matter the source of data, Leaf will handle the transmission of that data to Canopy, making it available to expose key information, calculate insights, and drive reactive actions to solve problems.

Canopy Gives Customers the Power to Package Data and Send it into Canopy as Needed

Due to Leaf’s open nature, multiple communication options, and JSON format support, Customers have the flexibility to contribute their own data to Canopy. They can achieve this by writing a tool to collect the data and submitting it to Leaf in the correct JSON format. Additionally, customers can instrument their applications or tools to send data directly from their applications to Leaf, offering a tailored approach to data collection.

Conclusion

Canopy's agent-based architecture and versatile communication channels empower organizations to gather comprehensive data seamlessly. The inclusion of Leaf Services to handle common cases makes it easy to collect standard data streams. The ability to accept custom data inputs underscore Canopy's adaptability to diverse monitoring needs. The flexibility of and ease of communication with Leaf allows users to extend the built-in data collection abilities by including data from their own data sources, including home-built applications. As technology continues to advance, Canopy stands as a robust solution for efficient and customizable data collection on devices.

If you’re interested in learning more about Canopy’s technical capabilities to see if our RMM software may be a potential fit for your business, we’d love to help. Reach out to us at info@goCanopy.com to get in touch or reach out on our website to start a conversation.

Download the FREE eBook

Please fill out the following information to receive a free download of our informational eBook.

Heading 1

Heading 2

Heading 3

Heading 4

Heading 5
Heading 6

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Block quote

Ordered list

  1. Item 1
  2. Item 2
  3. Item 3

Unordered list

  • Item A
  • Item B
  • Item C

Text link

Bold text

Emphasis

Superscript

Subscript