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.
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:
- Data collection (from the endpoint and other sources)
- Data processing to deliver actionable insights
- 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:
- Canopy’s primary device-side agent, called “Leaf”
- How Leaf collects data from devices
- Included tools that automate collection of commonly used data
- 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
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 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.
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.