Sign inSign up

numaoffcl/numa-iot-agent

By numaoffcl

•Updated 8 months ago

Numa Analytics agent for monitoring devices and sending reports to the cloud API.

Image
Internet of things
Data science
Monitoring & observability
0

1.0K

numaoffcl/numa-iot-agent repository overview

⁠Overview

Numa Analytics is a high-performance telemetry and analytics platform designed to collect, transmit, and store system and environmental metrics from various computing resources including:

  • Hardware devices (PCs, servers)
  • Virtual Machines (VMs)
  • IoT devices (sensors, gateways, etc.)
  • Operating Systems (Linux, Windows)

The agent runs as a lightweight background process and securely transmits metrics to a centralized API, where each ingestion is assigned a permanent report ID. Reports are stored in Amazon S3 and can be retrieved via the report ID at any time for further analysis or integration.

This repository contains the full implementation of the Numa Analytics Agent in Python, with Go variants also available, suitable for containerization and deployment across fleets of devices.


⁠Features

  • Real-time telemetry collection
  • Periodic report generation (default: every 60 seconds)
  • Secure HTTPS POST transmission to Numa Analytics ingestion API
  • Report-based identification with unique 32-digit report ID
  • S3-based persistent storage of every report
  • Public link access to reports
  • Retry logic for intermittent connectivity
  • Platform-agnostic: runs on Linux, Windows, and containers

⁠Data Collected

The agent collects and transmits the following metrics in JSON format:

⁠System Metadata
FieldTypeDescription
device_idstringUnique identifier for the host device
timestampintEpoch timestamp of collection
datetime_isostringISO 8601 UTC timestamp of report
report_idstringUnique 32-character report identifier
received_atstringUTC timestamp when the server received the report
⁠CPU Metrics
FieldTypeDescription
cpu_percentfloatCPU utilization in percent
⁠Memory Metrics
FieldTypeDescription
memory_totalintTotal memory in bytes
memory_usedintUsed memory in bytes
memory_availableintAvailable memory in bytes
⁠Disk I/O Metrics
FieldTypeDescription
disk_read_bytesintTotal bytes read from disk
disk_write_bytesintTotal bytes written to disk
⁠Network I/O Metrics
FieldTypeDescription
net_bytes_sentintTotal bytes sent via network interface
net_bytes_recvintTotal bytes received
⁠System Process Metrics
FieldTypeDescription
process_countintNumber of running processes
system_uptime_secondsintSeconds since the system booted
⁠Optional IoT Sensor Data (Simulated or Real)
FieldTypeDescription
sensor_valuesobject (map)Key-value pair of sensor readings (e.g., temperature, humidity)
battery_levelfloat (0-100)Device battery level (simulated or real)
connectivitystringNetwork status (e.g., "online", "offline", "poor")

⁠Report Access

Each report is associated with a 32-digit report_id, which can be used to view or retrieve the report data at any time. The ingestion API returns a permanent report URL in the format:

https://cdpn.io/pen/debug/myeJJRP?reportId=<report_id>

These links never expire and should be saved or stored for later access and analysis.


⁠API Integration

⁠Ingestion Endpoint
POST /ingest
Content-Type: application/json
⁠Example Request Body
{
  "device_id": "iot-sensor-001",
  "timestamp": 1720963123,
  "datetime_iso": "2025-07-14T18:32:03Z",
  "metrics": {
    "cpu_percent": 15.6,
    "memory_total": 8192000000,
    "memory_used": 4321000000,
    "disk_read_bytes": 2381920,
    "disk_write_bytes": 813280,
    "net_bytes_sent": 1093280,
    "net_bytes_recv": 2038192,
    "process_count": 102,
    "system_uptime_seconds": 92538
  },
  "sensor_values": {
    "temperature": 23.5,
    "humidity": 48.2
  },
  "battery_level": 76.5,
  "connectivity": "online"
}
⁠Example Successful Response
{
  "status": "success",
  "report": "https://cdpn.io/pen/debug/myeJJRP?reportId=afc28a3a1e6d44c4a3d01940db1c13b9"
}

⁠Deployment Options

  • Native OS installation (systemd, Windows service)
  • Containerized deployment via Docker
  • Can be deployed as a binary or script agent
  • Compatible with Kubernetes (sidecar or daemonset)

⁠Security Notes

  • All communication with the API is over HTTPS
  • Report URLs are not guessable (32-digit report ID)
  • No personally identifiable data is collected by default
  • Production environments should not hard-code AWS credentials (use IAM roles or environment variables)

⁠License & Terms

This software and its documentation are confidential and proprietary information of Megatech Corporation, Ltd. No part of the software and documents may be copied, reproduced, transmitted, or reduced to any electronic or machine-readable form without prior written consent.

The contents herein are subject to change without notice. Megatech Corporation makes no guarantees regarding accuracy or completeness and assumes no liability for any outcomes resulting from the use of this software.


⁠About Megatech Corporation

Megatech Corporation, Ltd. is the sole developer and intellectual property holder of the Numa Analytics platform. Founded on the principle of empowering data visibility and telemetry for critical systems, Megatech provides secure, scalable, and enterprise-ready monitoring technologies that bridge the physical and virtual.

Numa Analytics and its components (agent, ingestion API, storage layer, dashboard interface) are proprietary technologies developed exclusively by Megatech. All tools and services offered under this project are subject to internal compliance, licensing, and operational policies.

The contents of this repository, its software, documentation, and branding materials are:

  • Copyright © Megatech Corporation
  • Not to be redistributed without written permission
  • Protected by applicable intellectual property laws

All use of this software should conform to Megatech’s Acceptable Use Policy (AUP) and security guidelines. Unauthorized use or misuse of the agent, APIs, or stored reports is strictly prohibited.

Any entity using this software in production must enter a formal agreement with Megatech to ensure legal compliance and support eligibility.

For inquiries, licensing, support, or contribution interests, contact:

Website: https://000693988.codepen.website/⁠
Email: [email protected]⁠
Phone: +1 (888) 962-5173

Tag summary

Content type

Image

Digest

sha256:c13e65df4…

Size

317.3 MB

Last updated

about 1 year ago

docker pull numaoffcl/numa-iot-agent