<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Monitoring &amp; Telemetry on Embedded Systems Development</title><link>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/</link><description>Recent content in Monitoring &amp; Telemetry on Embedded Systems Development</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/index.xml" rel="self" type="application/rss+xml"/><item><title>Centralized Logging with ELK</title><link>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/centralized-logging-elk/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/centralized-logging-elk/</guid><description>&lt;h1 id="centralized-logging-with-elk"&gt;Centralized Logging with ELK&lt;a class="anchor" href="#centralized-logging-with-elk"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Embedded devices produce logs that are sparse, irregular, and arrive over constrained links — a fundamentally different ingestion profile than web servers generating gigabytes of access logs per hour. A fleet of 5,000 devices each emitting 50 log entries per day produces roughly 250,000 entries and 50 MB of raw data daily. That volume is modest by cloud-logging standards, but the operational value per entry is high: a single &lt;code&gt;ERR&lt;/code&gt; log from a remote sensor node may be the only clue to a hardware failure that cannot be reproduced in the lab. Centralized logging infrastructure must ingest these entries reliably, index them for fast search, and retain them long enough to support forensic analysis of failures that may not be investigated for weeks.&lt;/p&gt;</description></item><item><title>Metrics &amp; Dashboards</title><link>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/metrics-dashboards/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/metrics-dashboards/</guid><description>&lt;h1 id="metrics--dashboards"&gt;Metrics &amp;amp; Dashboards&lt;a class="anchor" href="#metrics--dashboards"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Metrics are numeric measurements sampled at regular intervals — CPU usage, battery voltage, RSSI, heap free bytes, message throughput. Unlike logs (discrete events with variable content), metrics are structured, compact, and designed for time-series aggregation. A fleet of 10,000 devices reporting 8 metrics every 60 seconds generates 480,000 data points per minute, or roughly 700 million per day. This write-heavy, append-only workload demands infrastructure purpose-built for time-series data: efficient ingestion, columnar compression, and query engines optimized for range scans and aggregations over time windows.&lt;/p&gt;</description></item><item><title>Alerting</title><link>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/alerting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/alerting/</guid><description>&lt;h1 id="alerting"&gt;Alerting&lt;a class="anchor" href="#alerting"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Alerting bridges the gap between passive dashboards and active incident response. A Grafana dashboard showing that 200 devices went offline is useful only if someone happens to be looking at it. An alerting pipeline detects the condition automatically, evaluates whether it warrants human attention, routes the notification to the right team through the right channel, and provides enough context for the responder to act without first spending 20 minutes reconstructing what happened. For IoT fleets, alerting must handle both individual device failures (a single sensor node with a dead battery) and fleet-wide events (a firmware rollout causing boot loops across 5% of devices) — two very different patterns that require different routing, grouping, and suppression strategies.&lt;/p&gt;</description></item><item><title>Time-Series Databases</title><link>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/time-series-databases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/time-series-databases/</guid><description>&lt;h1 id="time-series-databases"&gt;Time-Series Databases&lt;a class="anchor" href="#time-series-databases"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Time-series databases (TSDBs) are purpose-built for storing and querying timestamped data: sensor readings, device metrics, event counters, and environmental measurements that arrive continuously and are almost always queried by time range. Relational databases can store time-series data, but they struggle with the write throughput, compression ratios, and time-range query performance that IoT workloads demand. A fleet of 10,000 devices reporting 8 metrics every 60 seconds generates 480,000 writes per minute — a sustained write load that requires storage engines optimized for append-heavy, rarely-updated data with natural time-based partitioning.&lt;/p&gt;</description></item><item><title>Distributed Tracing</title><link>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/distributed-tracing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/distributed-tracing/</guid><description>&lt;h1 id="distributed-tracing"&gt;Distributed Tracing&lt;a class="anchor" href="#distributed-tracing"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Distributed tracing tracks a single request or event as it flows through multiple services in a pipeline. In traditional microservice architectures, a trace follows an HTTP request from API gateway through authentication, business logic, and database layers. In IoT, the &amp;ldquo;request&amp;rdquo; is a telemetry message or command that traverses a fundamentally different path: from a constrained device through an MQTT broker, a message router or rule engine, a cloud function, and into a time-series database or command-and-control service. When a sensor reading fails to appear in a dashboard, the question is: did the device fail to publish, did the broker drop the message, did the rule engine misroute it, did the cloud function error, or did the database reject the write? Without distributed tracing, answering this question requires manually correlating logs across 4–6 independent systems.&lt;/p&gt;</description></item><item><title>SIEM &amp; Security Monitoring</title><link>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/siem-security-monitoring/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/iot-systems/monitoring-telemetry/siem-security-monitoring/</guid><description>&lt;h1 id="siem--security-monitoring"&gt;SIEM &amp;amp; Security Monitoring&lt;a class="anchor" href="#siem--security-monitoring"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Security Information and Event Management (SIEM) applies to IoT fleets differently than to traditional IT infrastructure. Enterprise SIEM monitors user logins, firewall logs, endpoint detection alerts, and application audit trails. IoT SIEM monitors device authentication events, firmware integrity, anomalous traffic patterns, and communication between constrained devices and cloud endpoints — a fundamentally different telemetry profile with different threat models. A compromised web server exfiltrates data; a compromised IoT device may become part of a botnet, physically manipulate an actuator, or provide a lateral entry point into an enterprise network. Detecting and responding to these threats requires security monitoring infrastructure tuned to the unique characteristics of embedded device fleets.&lt;/p&gt;</description></item></channel></rss>